Friday, May 16, 2008


Wow, a whole month with no updates. Well, I've been very busy with stuff around the house and at work, so I guess that's to be expected.

To the point of the post, is it time for ParrotOS? ParrotOS is my nickname for an operating system that's a virtual machine. All machine-specific instructions/configurations/etc. are hidden from the programs running on the machine by the kernel. Also, the reason I call it ParrotOS is because I can see the Parrot Virtual Machine being a good choice for this.

Now, what's the point of this.
  1. Since all software would be compiled for one architecture, the VM, you can go from machine to machine and never have to recompile a binary.
  2. The kernel could be made aware of hardware optimizations and take advantage of them if possible. For example, if we have a math co-processor that's much more efficient for scientific computing applications, the kernel could take advantage of that for any instructions that perform such operations. This can result in a nice speed boost for an application without knowing what the hardware is.
  3. In theory, if the "machine code" is well defined, you could write an app in any language, compile it, distribute it, and if someone wanted to modify it in their own language, they could decompile the binary into that language. For example, I could take a program written in C and decompile it into Python to modify it. Granted, this may be too theoretical, but still cool.
  4. This could potentially be a faster OS and previous generations since there are many optimizations you could do in the background, such as good garbage collection and optimizing apps on the fly.
  5. Potentially better security by only allowing safe operations to be performed in the VM.
  6. Eliminate language performance differences. Instead of having to focus on the "performance" of a language, you can focus on other, potentially more important aspects, such as functional vs. procedural.
Now, this may force people to move away from certain languages as they may not work well with the kernel. For example, if our VM of choice uses a very safe string data type, then programming in C may not work out the best since there a string is an array of characters.

Anyway, I'm thinking more and more that this is the time to start working on such a beast. I think more consistency across operating systems is going to make things a lot easier on everyone and if we can have vendors like IBM and Sun talking the same language, we don't have to worry about porting issues. The software treats them both as the same machine!

The big problems are vendor support for drivers and ensuring reasonable performance for heavier apps, such as a GUI environment and office suites.

Labels: ,


Post a Comment

Links to this post:

Create a Link

<< Home