Thursday, November 13, 2008

Head Implosion Time...

I have always been interested in operating systems. Ever since the days of DOS, I have wanted to build my own new system. I read a book on building your own 32-bit operating system in college (not as a class). I've looked into the OSKit and other interesting sites. I keep fairly up to date with the Linux kernel and I whine about the major flaws in the Windows (don't call it a) micro kernel. One of my major gripes about every OS is there seems to have been very little innovation due to a certain monopoly on them. Linux has started to change this, but it is still UNIX which is over 30 years old. Why that is I can't say but I have a few theories. One is, people like their old software to work with the new version of the OS. Also, maybe UNIX is "good enough" for all purposes. Maybe UNIX really is the "Golden Mean" of OSes. Maybe people like penguins and candy-colored controls.

But you would still think there would be some new OSes that would blow us away by now. CPUs are now hundreds or thousands of times faster than before, but they don't seem to be any faster. I mean, the amount of computing power it takes to run a word processor should not have changed that much, even in a graphical environment. So where is the new environment that will blow me away? I'm thinking something so amazing I would have trouble grasping its greatness. Like UNIX and Lisp when I first learned them.

Well, it seems there was one. It was written as a thesis and I still read it an am amazed. It's called Synthesis, and it is a self modifying OS. In the end they sped up the computer by 10 times. Imagine what your computer could do with that kind of power! It's built on a few principles such as self-modifying code/data structures, fine grain scheduling, and lock free threading. The author calls the basic code/data structures "Quajects". It seems to be a great idea to me. I am curious about a few things:
  1. Is it possible to make this a portable OS?
  2. Could Lisp be used to generate the code?
  3. Could a Lisp be developed to use quajects internally, if so would it speed things up?
I ask the last one because of picoLisp's findings where interpreted code ran faster than compiled code. You can read more about that here.

Putting all this together might allow for an operating system unlike anything we have seen before. What would be possible? Using Lisp all the way down seems to have a real following so it follows that it allows people to do more. Maybe in the near future there will be something better than what we have now.

No comments:

Post a Comment