Small is Beautiful

Look Ma! No OS!

by Cees de Groot

September 26, 2008



Summary

SqueakNOS is an old idea that has gotten the kiss of life again. You want fast, simple, and OO? Check it out.


Years ago, the SqueakNOS - Squeak No Operating System - was started. Squeak, as you may know, is a Smalltalk system built by the godfather of OO and his consorts - Alan Kay and his friends from Xerox PARC that invented the computer as we know it, including the most prevalent programming model, Object Orientation.

SqueakNOS was an attempt to remove the OS underneath Squeak. First and foremost, I think, just because it was possible and cool - but also because having a system that really doesn't have an OS, just objects all the way down, sounds like an extremely interesting proposition.

If you don't agree with me - I'm typing this on a laptop that has a dual core processor, a SATA-300 disk, and 4 gigs of memory. So why, please tell me, is it slow and is the cursor changing into an hour glass all the time? Your answer could be "because you run Windows XP", but I don't feel that the major alternative, Linux, has that much more to offer. Apart from a much worse user experience if you like to dock and undock your laptop all the time, switching between two external monitors and the internal one. But I'm digressing - this is not about OS wars, this is about No OS...

SqueakNOS got a new boost last May, and the current version (distributed as a VMware image) really is something: it boots in a couple of seconds, has networking support, a fully loaded Squeak image, and all that with 99.9% Smalltalk and - according to the developers - just some 1400 lines of C code and 60 lines of assembly powering it all.

Think about it - you like OO development, you love the interactivity of Smalltalk (if you don't know it, what are you doing reading this post? Go off - learn it! It's worth it), and now, all of a sudden, you can write device drivers in that language. You can write an end user app that has direct access to the TCP stack (or, for that matter, to the network card). You decide where you want to tread, not the OS...

Bad idea? I don't think so. OSes have become more and more bloated over time. Take the KLOC of the Linux kernel over time as a case in point (the source used to fit on a floppy drive...). Part of the increase is due to better hardware support, but a large amount is just management stuff - bean counting, interfering with what you really want to do, limiting your options because otherwise you could do a lot of harm (or good), and in the meantime eating most of the budget. Just like real-world management, in essence.

What if your computer was a single object system all the way down, where you - the software developer - could decide what to interface with and what not? No management, all the CPU power for *you*, and if you don't like the TCP implementation, fire up the refactoring browser and change it while the system is running.

I hope that thought is intruiging to you - if so, run to the SqueakNOS download site and grab the VMware image. I promise you, you'll have fun!.

Talk Back!

Have an opinion? Readers have already posted 13 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Cees de Groot adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Cees de Groot is currently working as team lead for eBay on one of the worlds largest classified sites. Cees brings 20 years of experience in a variety of industries, languages and positions. He was one of the earliest-adopters of Java, equally vocal and present in the Jini and Smalltalk communities, and has decided a long time ago that he's too lazy to understand complex systems. Therefore, he sticks to simple stuff resulting in a bookshelf full of works on agile development and no-nonsense OO techniques.

This weblog entry is Copyright © 2008 Cees de Groot. All rights reserved.