Advanced

SprezzOS emerges, promising new-school tech with old-school gumption

Posted by nickblack on Feb 2, 2013 12:25 AM · 14 comments
Special to LXer; By Nick Black, SprezzOS Project Hacker-in-Charge



LXer Feature: 01-Feb-2013

SprezzOS 1 has emerged for general use. I'll explain here the motivations of the SprezzOS Project, how we're unlike other new distros of note, and why you ought watch us for Linux's most exciting developments.

To the readers of LXer, my greetings and salutations!

We're a few weeks into the launch of SprezzOS 1, which I've seen mentioned here on LXer once or twice. I hoped to elaborate here upon the aims of the SprezzOS Project, what you can expect from SprezzOS, and why you perhaps ought try it on your next machine. Let me know your thoughts in the comments; I think a lot of exciting things will emerge from SprezzOS over the course of this year. We're not pushing things around on the desktop and playing with old forks of GNOME; we're redefining and rigorizing the core system applications of the modern Linux environment. SprezzOS is about the new code it features, not creating a holistic operating system aimed at the lowest common denominator of user. This is our story..

I started work on what would become SprezzOS late in the summer of 2012, having become convinced that LLNL's ZoL (ZFS on Linux) was not only the best multidisk storage solution on Linux, but the only approach that was even acceptable. At that same time, UEFI was coming into its own, with the mandate of GPT partition tables. GPT was further required to make use of the 3TB SATA drives then coming onto the market. GPT is pretty much a wholly reasonable table type, certainly superior to the MSDOS BIOS antistandard. UEFI has definite issues, is about 1,200 pages too long, mandates a firmware operating environment that threatens to collapse due to its own gravity into a supernova capable of destroying our solar system and voiding your warranty, but it remains, for the present, the future.

All of this was a mess on Linux, with mjg still working out the bootloader basics and shaking his head, and Rod Smith having put the fdisk-incompatible GPT fdisk out there, and GNU gdisk being clearly outclassed by aforementioned GPT fdisk, and EFI stub support just then entering the kernel. Looking upon this merry scramble, I threw my hat in the ring and began work on Growlight, an Ncurses-based disk tool capable of dealing with ZoL, mdadm (of which I had a 16-disk RAID6 at the time), GPT, EFI's EFI System Partition, and proper alignment of partitions on SSDs and 4k sector disks. I borrowed a UI from the Omphalos tool I'd written in 2011, and about two months later I had what I still believe to be the premier Linux disk management tool.

But even if I packaged this up for Debian, it didn't solve the problem of handling all this garbage during install. Furthermore, if there's anything in Debian I've disliked more than gcc documentation being in non-free, it's the aesthetically (and often functionally) atrocious installer. I had this beautiful fullscreen curses application, and was going to have to shove it in among debconf prompts and who knew what else. With a sigh I began sloshing around in the dark underbelly of d-i, and ohhhhhhhh lord i do not recommend doing that, at all, ever, to any of you. Stupid, uninteresting, obscure problems emerged which I had failed to foresee.

The default VGA console's palette likely isn't the same as that of your favorite terminal, for instance, and a colorful fullscreen UI of bright cyans and magentas can inflict permanent blindness in less than a minute of exposure. That's if the default fonts had included glyphs for my Unicode-enhanced boxes, anyway. Or if the library support necessary for conversion to GPTs UTF16LE partition names had been present. Or if the installer didn't use a totally different kernel packaging system than the non-installer Debian method, because all the world's a 1.44M floppy disk apparently, causing unspeakable wretchedness as I tried to bash EFI support into place. Somewhere in September I said, "doing a whole distro can't be too much worse than this godawful misery." At that point, I started calling the effort a distro, having suspected for about a week by then that Debian would never accept such an intrusive patch anyway. I'll admit that the idea of 40,006 exasperatingly polite and circumspect mails being required before ZoL could go into the installer contributed to this decision.

Mint was then getting a lot of press, and I thought that was just terrible. I took my first serious look at mint today, seeing what I needed to rip off^H^H^H repackage. The "mintsystem" package lies at the core of Mint's acclaimed GNOME/menu configuration tools. I pulled the git repo and took a look. What first caught my eye was "apt", a shell script installed into /usr/local/bin. It's a good thing for Mint Linux that there's not seven-hundred things obviously wrong with this, because otherwise people might wonder whose heads were up what asses, and whether forked desktops named after Sri Lankan spices are worth having your PATH crapped up by aliases representing a gang of drunken eight year olds' first UNIX steps.

At this point, I had lost most of my interest in borrowing packages from Mint Linux, or even accepting them as gifts. Also, I'm jealous of their art, which is generally much better than what I throw together in the GIMP after having been up fifty hours writing C++ (lens flare, ahoy!). Ubuntu was a few months removed from packing your desktop searches into uncovered cargo trains for transport to Amazon's grim maw, but it was already aping the Apple look, and thus the rape and exploitation of your personal information could be assumed not far behind.

I formed SprezzOS as a reactionary, contrarian response to these discouraging trends. Not only does SprezzOS lack a default window manager, the installer does not install X, because that's well outside the minimum system damnit and belongs in the post-install environment. Hell, we don't even have desktop background yet -- we're just using whatever random Debian theming was already being applied. In the case of Enlightenment E17 0.17.1 or RazorQT, we're not using any theming at all, since those were packaged fresh. In the case of Unity and Cinnamon, we're using the Ubuntu and Mint theming, because WHO CARES. I'm a programmer, not an artist, and I'm just going to replace whatever gradient-heavy iOS-inspired default you have with a picture of orcas or thermonuclear tests or the Battle of Stalingrad or the grim future of Hello Kitty anyway.

No, instead we aggressively updated user space, rolling out literally hundreds of fixes to the "watchfiles" used to check for upstream updates to Debian source packages. We replaced the obsolete Debian font stack with a cutting-edge graphite3+harfbuzz+pangocairo stack, applied the Infinality patches, and as a result have the best text layout I've ever known, on any operating system. We updated the Glasgow Haskell Compiler and its ecosystem across the board, and are rebuilding the Perl ecosystem now after having introduced 5.16. Growlight development has continued, and it remains the sole interactive tool capable of creating and managing ZoL zpools. We've packaged up the Sony PictureWorks projects, and used them to build up a Blender capable of truly stunning effects.

More of this kind of thing will come. It is what I live for.

I hope you are intrigued, and encourage you to try SprezzOS! Thanks for your time. Hack on.

--rigorously, nick

About me: In addition to an on again, off-again PhD student at the Georgia Institute of Technology (go Jackets!), I am a systems and HPC programmer by 15 years' trade. My masters thesis involved portable continuations for dynamic parallel UNIX systems applications, and I'm never happier than when I can come another .5% or .8% closer to peak performance on this week's high-performance microprocessor. I've used Linux, FreeBSD and Solaris exclusively for almost exactly half my life, since installing 2.1-RELEASE FreeBSD on my P90 in the summer of 1996. I have not used an Apple product since the beige IIe and gray IIgs boxen ubiquitous in early 90s American elementary schools, and make exclusiveuse of black IBM Trackpoint II Model-M13 keyboards. They are even louder than you imagine. I am 32 and have lived all my life in Atlanta, GA.

Return to the LXer Features

Comments (14)

Maybe I just missed a giant section, but your project looks very interesting. I'm wondering about the following:

What package manager are you using?

Do you only provide your own repos or do you pull from other sources as well?

What does the installer look like?

What does the release cycle look like? How long is support provided for?

~Jeff
Me, me!

Do I get extra points for staying awake?
Well, I am intrigued and installed von Neumann in a VBox VM. Sort of. Here are the steps I took in the partitioner:

(1) Create partition table "m"

(2) Select DOS

(3) Create new partition "n" (selected swap)

(4) Set size to 1024M

(5) mkswap "M"

(6) Make filesystem name="swap"

(7) Create new partition "n" (selected Linux filesystem)

(8) Set partition size as remaining space (100%)

(9) Make filesystem "M" (selected ext3)

(10) Entered filesystem name as "Sprezz"

(11) No matter what filesystem I choose for /, it comes out as ext4.

(12) Mount filesystem "o" (selected /)

(13) Mount target "t" (selected /)

(14) Selected mount option nostrictatime.

(15) Finalize BIOS "#" and installation continues.

Yes, I used a DOS partition table. Anyway, after booting to the hard drive, nothing I write to the file system survives a reboot. Contents of /etc/fstab:

/dev/sda1 none swap

/dev/sda2 / ext4 rw,relatime,data=ordered 0 1

/dev/sr0 /media/cdrom auto noauto,user 0 0

proc /proc proc defaults 0 0

I also have no eth0 device. A first for me for a Debian installation in VBox. It's obviously there during the live session or I wouldn't be able to finish the installation.

Any comments? Am I an ignoramus, or what?
@Jeff,

It appears Nick is not following up on this. So, I'll volunteer what little I know.

Quoting:What package manager are you using?


apt

Quoting:Do you only provide your own repos or do you pull from other sources as well?


/etc/apt/sources.list shows a mix of official Debian sid and sprezzatech.com unstable. There's nothing in /etc/apt/sources.list.d/.

Quoting:What does the installer look like?


The installer is ncurses based and appears to follow the same routine as a Debian netinstall, minus the component choices. (desktop vs. server, desktop environment, etc.) The partitioner is custom and somewhat of a challenge the first time around.

Quoting:What does the release cycle look like? How long is support provided for?


That I can't answer. What I have installed is 64bit, and is the "von Neumann" edition. Although I have it installed, I can't do more than login and poke around. sudo ifup eth0 throws an error message that /run/network/ifstate does not exist. I can sudo mkdir /run/network, (yes, the directory does not exist), then create and populate the ifstate file, but nothing survives a reboot. Anyway, after creating the ifstate file and rerunning sudo ifup eth0, the error message says "interface eth0 already configured". That's odd, because sudo ifconfig only shows the lo device. And running sudo ifconfig eth0 throws an error message "error fetching interface information: Device not found". Doing sudo chattr +i /run/network/ifstate throws the error "Inappropriate ioctl for device while reading flags on /run/network/ifstate".

Pretty weird for a Debian installation.
Alrighty - that description plus the lack of follow up makes it seem like something not worth spending time on.

~Jeff
Hey there. Sorry about this -- I didn't get any notifications about this post. So I've put up a new installer (the 1.0.4) with a lot more context-sensitive help for growlight. Let me address your questions inline. Thanks for trying it out!
Package manager: we're an APT-based distro. Currently we're rebuilding about ~2k Debian source packages, fewer than a hundred Ubuntu packages, and about a dozen of our own. You can see the version comparison matrix here: http://sprezzos.com/debversions.html (updated weekly or so).

When you install, you'll have an /etc/apt/sources.list with both the SprezzOS repository and Debian Unstable configured at equal preference levels. Since our rebuilt packages will have a higher debian revision (see deb-version(5)), they'll be considered more up-to-date than the corresponding Debian package, unless Debian then updates the package and I don't. In general, we will be compatible with Debian and Ubuntu packages, though of course not in the case of API changes that aren't strictly additive, etc. We actively cooperate with Debian, and feed patches and bugs back to them. Some useful reading:

http://www.sprezzatech.com/wiki/index.php/APT http://www.sprezzatech.com/wiki/index.php/SprezzOS_and_Debia...
That handles your second question as well, I think. What does the installer look like is answered here:

http://plus.google.com/photos/118364511747568235669/albums/5...

there's twenty stills of the installer, from GRUB through bulk package install, focusing on Growlight. You can see here the availability of ZFS in the installer and also creation of a RAID0. The SprezzOS installer is generated from several forked Debian installer components, plus my Growlight and Nethorologist tools. Some useful reading can be found here:

http://www.sprezzatech.com/wiki/index.php/Installation http://www.sprezzatech.com/wiki/index.php/Installer_developm...
As for your final question, we are a rolling release, and have thus far done a major snapshot every six months or so. During the following development epoch, the previous snapshot's installer is upgraded as necessary, but there is no authorized "stable". In that sense, we are kind of the inverse of Debian. There's some useful reading here:

http://www.sprezzatech.com/wiki/index.php/Release_Model

Again, my apologies for delayed answers; I'm going to try and see what I can do about getting LXer communication mailed to me. Thanks a lot for trying out SprezzOS!
Well, okay. I guess my question/comments don't merit a response. That's fine. I'm outta here.
@djohnston: It looks to me like nickblack answered your questions point by point. What specific question did he miss?
He answered Jeff's questions. I had already answered all but one of Jeff's. I was looking for a response to my comments on:

(1) no eth0 device (2) nothing written to the file system survives a reboot (3) proper steps for the custom-written partitioner

It's all moot now. I've lost interest.
But this isn't the sprezzos support forum... or is it‽

Post a comment

A free account is needed to post. Write your comment here first: your text is kept in this browser while you sign up or log in, and is waiting for you when you come back.

Your message:
|||||
10
Markdown: **bold**, *italic*, [text](https://link), - lists, > quotes, $x^2$ for math. Formatting help

Sign up and post (it is free)  or  Log in and post

LXer

  Latest Features
bob: LXer now speaks Markdown
Oct 27, 2026

bob: How to protect against PHP2Shell
Oct 26, 2026

Scott Ruecker (San Diego, U.S.): Linux That's Small
Oct 14, 2024

penguinist: Encryption, Trust, and the Hidden Dangers of Vendor-Controlled Data
Aug 27, 2024

Scott Ruecker (San Diego, U.S.): My Linux Mint Tribute
Aug 23, 2024

Scott Ruecker (San Diego, U.S.): How I Turned My Chromebook Into A "Mintbook"
Jul 08, 2024

Scott Ruecker (San Diego, U.S.): Adventures With My New Chromebook
Jun 10, 2024

Scott Ruecker: My Linux Laptop
May 08, 2022

Scott Ruecker: Laptop Dual Boot Project: Part 2
Nov 30, 2021

Scott Ruecker: Laptop Dual Boot Project
Nov 30, 2020


View all

  Search Features

Search LXer Features:

[ Copyright © LXer | All times are recorded in Central Daylight Time (CDT) ]

[ Contact Us | Privacy Policy | Terms of Service | About us | rss | Mobile ]

Login