Keeping Kernels Open

There are a lot of pioneering technology companies. Many of them don’t pay homage, respect or contribute to open-source software. But that’s ok, not all technology companies can be expected to. And many of them, it simply is not in their business interests to do so and probably not the reason they’re involved in the IT industry in the first place.

But when a company has a service sitting in its portfolio that was once open-source but since been shut off to public developers and development all now kept in-house, it can sometimes be a little frustrating for the free and open-source community. More so, when the community strongly believes more potential can be squeezed from such service.

I am referring to Oracle and its treatment of the Solaris operating system. But more specifically, the kernel. Solaris has had many development path changes over its long history. There are some forked projects of Solaris available, but none of them have really the same edge and potential as what Oracle Solaris does.

The fact that Solaris can be recognized for having potential also raises the question of whether that is one of the contributing reasons of why Oracle has such a tight grip on Solaris. Sun Microsystems was at least a little more open, giving and tolerant of the free and open-source development community with Solaris. But things quickly changed when Sun Microsystems was acquired by Oracle back in early 2010.

 I have well and truly embedded myself into the software development world of programming and kernel hacking. But not just the Linux kernel. I’ve also taken a great interest and involvement in the Solaris (Illumos) kernel and BSD (NetBSD) kernel. I have decided to take it upon myself to learn more about the Solaris kernel, specifically and how it functions, compiles and operates.

Obviously, one would be led to believe the first port of call would be Oracle. But let me cut this short; after a couple of days of research on Solaris and the kernel, I quickly began to realize that I was going to find nothing of usefulness or any help from Oracle and the official Solaris development channels. No matter where I looked or where I was directed, I was faced with red tape and brief glimpses of what lies beneath. I would have to think outside the box. Previously, OpenSolaris was outside that box. But when Oracle acquired Sun Microsystems, the OpenSolaris project was quickly put into lock-down and development remains behind the closed doors of the Oracle buildings. How much code from OpenSolaris has made its way into current versions of the Solaris OS is unclear to all but those involved within the Oracle Solaris Development Team. But one thing is for sure; Oracle don’t want to have its kernel left open-source and ready for the picking by the average hobby kernel hacker and programmer.

Thankfully, I am not completely out of luck. The good and bright group of coders at OpenSolaris could see what was happening and a forked project was quickly established. Illumos and OpenIndiana were born. They remain associated in an odd sort of manner but remain two separate projects and entities. Illumos being the ‘new’ open-source Solaris kernel. And OpenIndiana would be the new OpenSolaris project.

I am relatively new to Solaris kernel development and new to be involved with the Illumos kernel. Some Linux devotees and developers would be put off by the sheer difference between the Linux kernel and a Unix kernel. But it’s fresh and new. And to a developer who loves all things code, it’s very exciting to see what a not-too distant cousin kernel is capable of and what the source code itself is made up of.

If you’re interested in getting involved with either the OpenIndiana or Illumos projects, see the links below which will give you all the information necessary to get you started.

Also, don’t be afraid to email some of the other developers which I have found to be very welcoming and friendly. Or you can even email myself here at Unixmen and I’ll do my best to be able to help you get started with your own Unix kernel hacking.

Illumos kernel: http://illumos.org

OpenIndiana: http://openindiana.org