SPICE: lots of theoretical wankery that may someday be an OS
Posted: Sat Jul 05, 2014 11:37 pm
It's a quiet Saturday evening and I'm waiting for the laundry to be done, so I may as well register on an Internet forum and introduce myself by way of a long, rambling post on how I'd like to design an operating system!
I started thinking about OS development about three years ago, when a few key developments took place in my computing lifestyle. First off, in November of 2011, I finally gave up on the idea of switching to Linux. Man, I tried to drink the Flavor-Aid, but after a miserable three-month full-switchover attempt capping off a good seven years of periodic screwing around with a whole bunch of distros and running into the same problems (ridiculously complex yet unbelievably primitive system architecture, the complete lack of a unified, redistributable binary format necessitating both the use of poorly-maintained repositories and building from source in order to get a full complement of useful software, and astonishingly poor, inconsistent UI owing to a graphics system that doesn't so much separate Mechanism and Policy as lock them in separate cells in separate dungeons in separate fortresses on separate continents and then summary-execute Policy for good measure, and to a developer culture that worships the command line as though it were handed down by God Almighty) on every single one of them, I reached the point where I realized that Linux is just fundamentally broken on an architectural and cultural level, and is never, ever going to be a pleasant, usable desktop operating system.
I was so disgusted with that mess that I very nearly swore off the idea of alternative operating systems altogether, even though that would leave me to try and resign myself to the increasingly retarded UI of post-XP Windows for the rest of my life. I may have gone through with that anyway, if it weren't for the fact that I'd also been reading through Andy Hertzfeld's folklore.org, a collaborative history of the development of the Macintosh. I grew up on 68k Macs, and it was both a nostalgia trip and a revelation - I knew the general textbook blurb of "Mac OS was influenced by projects from Xerox PARC," but actually reading about what those influences were and how they got there, in anecdotes about and by Mac Team member and actual PARC alumnus Bruce Horn, was astonishing. It led me to look into the details of SmallTalk and the Alto, and threw into sharp relief just how much and in just how many ways Unix/Linux, OSX, and even my OS-of-choice Windows NT/XP are a giant step backwards from the actual work that was being done at PARC in the early- to mid-'70s, or even from the simplified versions of those ideas that were built into classic Mac OS.
The final influence took a lot longer to manifest, but it was at this time that I started looking into Haiku. It seemed like a very sensible, clean design for an operating system, and I was convinced that once it finally "got there" with regards to hardware support and application software, it would be basically my ideal OS. Unfortunately, three years later, it not only hasn't gotten there, it's made some problematic strides backward, pulling in terrible Linux concepts like package management and repositories and sidelining the actual development work to do it. It now has a useless package manager, but it still divides things confusingly down the lines of which versions of gcc are supported, and it still doesn't have a decent wi-fi client or working power management on multicore systems - Progress! What a shame.
From that, I took away some crucial lessons: A. if you want something done right, you gotta do it yourself, B. getting tied down to architectural details is a sucker's game, and C. Unix/Linux-worship is poison, pure and simple. So at this point, I started thinking about what my ideal computing environment would be like, and how to go about implementing it. I was spurred on in this by exposure (via my overly-zealous supervisor "upgrading" all our workstations) to Windows 8, solidifying my certainty that if this is the future of Windows, I don't want any part of it. On the theory that I might be able to focus more on this project if I discuss it with other people, I figure I'll share my thoughts here - but I'm not making an announcement thread just yet, since I don't have so much as a single line of code written. This is still all just ideas at this point. For now, I'm calling it SPICE (Sensible, Pleasant Interpreted Computing Environment,) which nicely sums up my design goals.
But the laundry is now done, and it's late, so further yammering will follow as I get the time.
I started thinking about OS development about three years ago, when a few key developments took place in my computing lifestyle. First off, in November of 2011, I finally gave up on the idea of switching to Linux. Man, I tried to drink the Flavor-Aid, but after a miserable three-month full-switchover attempt capping off a good seven years of periodic screwing around with a whole bunch of distros and running into the same problems (ridiculously complex yet unbelievably primitive system architecture, the complete lack of a unified, redistributable binary format necessitating both the use of poorly-maintained repositories and building from source in order to get a full complement of useful software, and astonishingly poor, inconsistent UI owing to a graphics system that doesn't so much separate Mechanism and Policy as lock them in separate cells in separate dungeons in separate fortresses on separate continents and then summary-execute Policy for good measure, and to a developer culture that worships the command line as though it were handed down by God Almighty) on every single one of them, I reached the point where I realized that Linux is just fundamentally broken on an architectural and cultural level, and is never, ever going to be a pleasant, usable desktop operating system.
I was so disgusted with that mess that I very nearly swore off the idea of alternative operating systems altogether, even though that would leave me to try and resign myself to the increasingly retarded UI of post-XP Windows for the rest of my life. I may have gone through with that anyway, if it weren't for the fact that I'd also been reading through Andy Hertzfeld's folklore.org, a collaborative history of the development of the Macintosh. I grew up on 68k Macs, and it was both a nostalgia trip and a revelation - I knew the general textbook blurb of "Mac OS was influenced by projects from Xerox PARC," but actually reading about what those influences were and how they got there, in anecdotes about and by Mac Team member and actual PARC alumnus Bruce Horn, was astonishing. It led me to look into the details of SmallTalk and the Alto, and threw into sharp relief just how much and in just how many ways Unix/Linux, OSX, and even my OS-of-choice Windows NT/XP are a giant step backwards from the actual work that was being done at PARC in the early- to mid-'70s, or even from the simplified versions of those ideas that were built into classic Mac OS.
The final influence took a lot longer to manifest, but it was at this time that I started looking into Haiku. It seemed like a very sensible, clean design for an operating system, and I was convinced that once it finally "got there" with regards to hardware support and application software, it would be basically my ideal OS. Unfortunately, three years later, it not only hasn't gotten there, it's made some problematic strides backward, pulling in terrible Linux concepts like package management and repositories and sidelining the actual development work to do it. It now has a useless package manager, but it still divides things confusingly down the lines of which versions of gcc are supported, and it still doesn't have a decent wi-fi client or working power management on multicore systems - Progress! What a shame.
From that, I took away some crucial lessons: A. if you want something done right, you gotta do it yourself, B. getting tied down to architectural details is a sucker's game, and C. Unix/Linux-worship is poison, pure and simple. So at this point, I started thinking about what my ideal computing environment would be like, and how to go about implementing it. I was spurred on in this by exposure (via my overly-zealous supervisor "upgrading" all our workstations) to Windows 8, solidifying my certainty that if this is the future of Windows, I don't want any part of it. On the theory that I might be able to focus more on this project if I discuss it with other people, I figure I'll share my thoughts here - but I'm not making an announcement thread just yet, since I don't have so much as a single line of code written. This is still all just ideas at this point. For now, I'm calling it SPICE (Sensible, Pleasant Interpreted Computing Environment,) which nicely sums up my design goals.
But the laundry is now done, and it's late, so further yammering will follow as I get the time.