Fiasco is a preemptible real-time kernel supporting hard priorities. It uses non-blocking synchronization for its kernel objects. This guarantees priority inheritance and makes sure that runnable high-priority processes never block waiting for lower-priority processes. Is it the Java of operating systems?
I’ve always liked this kernel, glad to see a new release. keep up the good work guys.
Is it the Java of operating systems?
What does Java have to do with this? Can someone try to explain that comment?
my guess is it is a reference to the portability of the JVM . . .
and how is that related to L4? as far as I know, L4 reaches optimal performance because has a very platform specific implementation of its IPC mechanism (one of the most important features in a microkernel OS) [on every supported platform, of course]
Edited 2010-07-15 01:52 UTC
As far as I know, the Linux kernel reaches optimal performance because has a very platform specfic implementation of context switching.
If your kernel is only a few throusand LoC, optimizing certain subsystems does not affect maintainability or robustness as much. In his (video-)lecture on Advanced OS, Gernot Heiser shows partially superior L4 performance compared to Linux. He provides an example of an optimization that was rejected on LKLM because of complexity.
If that’s definition then the answer is Linux is the Java of operating systems, because it runs on pretty much everything. For example take the subtitle on the coLinux-page: “If Linux runs on every architecture, why should another operating system be in its way?”
The only modern microkernel that actually ships with some rudimentary userspace.
New OKL4 versions are closed and old ones also have no noteworthy userspace. Neither does Pistachio. PikeOS is closed and targets embedded systems.
If you want to experiment with microkernels, use Fiasco. Or Genode.
(I submitted the news)
My comment that it is like Java means that it is a framework and can be used to easily create OSes from scratch. I hope to see that all bits of OpenSolaris are ported to Fiasco.
Edited 2010-07-15 05:39 UTC
But, but, but… that makes no sense. Any language that is at a similar level of development as Java can create the same types of applications as Java. There’s nothing specifically clever about Java or what it does and the concepts it uses are mainly borrowed from previous generations such as Smalltalk, Lisp, C etc. Portability is a façade. Java is no more portable than C, it just has a different set of portability issues (VM and JIT vs Assembler.)
The only thing you can do on that is modifying the actual OpenSolaris kernel to fit in the paravirtualization interface published by L4, nothing simple at all. They are committed to paravirtualize Linux and that’s why they created L4Linux:
http://os.inf.tu-dresden.de/L4/LinuxOnL4
There is another L4 implementation called Pistachio that has almost same construction blocks: Iguana (a library as L4Env), Wombat (a paravirtualized Linux on top of Iguana) and there was a research project aimed to implement Darwin on top of Iguana (Darbat):
http://l4ka.org/projects/pistachio
Another approach the Fiasco guys implemented was creating a user land implementation of its L4 kernel, building it on top of Linux (Fiasco/UX). I do not know if such code is highly portable to be compiled on any UNIX-like OS; I do not think so.
Anyway, none of both approaches have anything related to the Java platform essence.
Edited 2010-07-15 19:44 UTC