sprezzatech blog #0010
Why SprezzOS is Necessary.
Fri, 01 Feb 2013 03:33:10 -0500
We're a few weeks into the launch of SprezzOS 1.
I hope 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.
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 sane user 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 computer scientist, a poet, and a madman (in that order), not a graphics designer, 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. Some days I ponder whether I can't find an excuse to rewrite apt in FORTRAN just for the sheer mysteriousness and awed reverence some DOs and ABENDs would lend to that codebase. 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! Hack on.
Similar sentments are expressed, in more lyrical form, in the SprezzOS Manifesto.
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 booted an Apple product since the beige IIe and gray IIgs boxen ubiquitous in early 90s American elementary schools, and make exclusive use of black IBM Trackpoint II Model-M13 keyboards. They are even louder than you imagine. I am 32 and have lived 31 of those years in Atlanta, GA.
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 sane user 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 computer scientist, a poet, and a madman (in that order), not a graphics designer, 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. Some days I ponder whether I can't find an excuse to rewrite apt in FORTRAN just for the sheer mysteriousness and awed reverence some DOs and ABENDs would lend to that codebase. 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! 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 booted an Apple product since the beige IIe and gray IIgs boxen ubiquitous in early 90s American elementary schools, and make exclusive use of black IBM Trackpoint II Model-M13 keyboards. They are even louder than you imagine. I am 32 and have lived 31 of those years in Atlanta, GA.