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.
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.