It really is the week of back-to-core news for OSNews, as we’ve had news on various smaller operating systems and new projects. Forget Windows 7 and Snow Leopard; in the end this is what we’re all here for. Anyway, B Labs has recently announced that version 0.1 of their Codezero microkernel has been released.
This new microkernel is a new implementation of the L4 microkernel, written from scratch. As the FAQ states: “It is a modern microkernel implementation that provides capabilities for virtualization and implementation of native OS services. Codezero can act as a virtualisation platform, a hardware abstraction layer, and as a basis for developing operating system services. Codezero’s primary focus is on embedded systems.”
The project is completely open source, licensed under the GNU General Public License version 3, and they ask that you sign a copyright share agreement, and you can then freely contribute. They add, however, that this is just their current model, and encourage people to contribute possible alternative models to the mailing list.
A common question they apparently seem to be getting is why they don’t just work on improving “a popular open source kernel” instead of Codezero. According to them, open source POSIX kernels are not a good fit for the embedded market because of three core reasons:
- Their source code is encumbered and cluttered with legacy or unrelated components.
- Their user bases are saturated, their core developers are engaged and focused on non-embedded platforms.
- Their source code base is too complex to grasp and most components enforce unnecessary policy on embedded applications.
Since they do recognise that existing open source kernels offer some valuable features and drivers, they attempt to virtualise these on top of the Codezero kernel.
You can follow the download guide to get your hands on Codezero.
You’re article, it says 1.0 in the description…
I am article?
Nice! Great times for us OS enthusiasts. Lately, quite a few projects have arisen, some of them with very innovative ideas. It’s nice to see so much activity in a sector clearly dominated by giants with a lot of history (Windows, and the various flavors of UNIX including MacOS).
Indeed. Great to see more kernels.
I could have been personally interested, but even without the copyright share agreement, GPL3 is a complete show-stopper, and even more so in the embedded sphere.
Pretty much my thinking, too. Especially since there are other L4 variants you can use that are BSD-licensed.
The bigger story here is the number of L4 projects going on.
I still would be somewhat more interested in an L4/NetBSD port. Linux/glibc are just amazingly bloated these days.
or a finalized hurd on viegoos on L4 (Codezero?). Then we could port Apple’s IOKit or QNX drivers.
Care to explain why?
Actually I would rather leave this as my personal opinion to which I am hopefully entitled to.
But there is a voice of my employer in there too: we (employees) do not touch (distribute) GPLv3 code no matter what and try to avoid GPLv2 at all costs, regardless of me and my personal opinions.
That’s a good answer.
Again the same things: L4, POSIX, C, Makefiles, ugly x86 “AT&T-style” assembly… I wonder, why people are so keen about repeating the past?
Isn’t it much more exciting to design your own programming language, interfaces, environment, and then code your own OS there?
I agree with you. First of all we don’t use anything ugly and old. I hate them.
For example we don’t have Makefiles. We use SCons (new).
We don’t have ugly shell scripts. We use Python.
We don’t have ugly x86 assembly, although assembly is in itself hard to read, please take a look at Codezero vectors.S you will see how well documented it is.
Codezero *is* indeed, a candidate for you to design your own environment and OS. The L4 API gives you the least common denominator mechanism to build different systems on top. The POSIX services are just an example.
What’s better, is each of them may co-exist and interact on the same system.
The Codezero project started with the very same limitations I see in the existing systems that you have mentioned.
Okay, my apologies, I didn’t notice that your system is for ARM only. I would definitely like to clone the git tree and look at your implementation more closely.
I praise the idea of having only the minimum of system calls in the kernel. I tried to clone QNX Neutrino kernel long time ago; I think it grew too much already (~64 syscalls).
I am currently developing a completely new programming system (kind of new language + IDE, but not exactly), and I’m looking for some open microkernel implementation that could become a basis for my own kernel (written in this new language).
I just want to say that I think that your contribution to the open source community is awesome.
I hope this isn’t way too off-topic, but I’ve got a UI project in the planning stage that shares similar goals, but it’s more aimed at the desktop. It could be interesting to use the kernel at some point though. If you want to check it out, take a look at http://brevityos.blogspot.com/.