Thursday May 07, 2009

Solaris 10 Containers for OpenSolaris

Branded Zones/Containers is a technology that allows Solaris system administrators to virtualize non-native operating system environments within Solaris zones, a lightweight OS-level (i.e., no hypervisor) virtualization technology that creates isolated application environments. (Look here for more details.) Brands exist for Linux on OpenSolaris and Solaris 8 and 9 on Solaris 10, but not Solaris 10 on OpenSolaris...until now.

On April 23, Jerry Jelinek announced the development of Solaris 10 containers on and requested that the project be open-sourced as a part of ON (i.e., the OpenSolaris kernel). Solaris 10 Containers will allow administrators to adopt technologies found in the OpenSolaris kernel (e.g., Crossbow networking and ZFS enhancements) by maintaining Solaris 10 operating system environments on top of the OpenSolaris kernel. In other words, you will be able to run your Solaris 10 environments on top of the OpenSolaris kernel (provided that your Solaris 10 environments meet the standard Solaris zone requirements).

Both Jerry and I have been working on Solaris 10 containers for at least a month. We are currently able to archive and install Solaris 10 environments into Solaris 10 containers (i.e., p2v Solaris 10 systems) and boot the containers as shared-stack zones. Automounting NFS filesystems, examining processes with the proc tools, tracing process and thread behavior with truss, and listing installed Solaris 10 patches are a few of the many features that appear to run without problems within Solaris 10 containers as they currently are. I even managed to forward X connections over SSH and establish VNC sessions with my Solaris 10 containers on all three Solaris-supported architectures (x86, x64, and SPARC).

Jerry and I prepared screencast demos of archiving, installing, booting, and working within a Solaris 10 container for the upcoming Community One West developer conference. We couldn't decide whose narration was best suited for the demo, so we submitted two versions, one featuring my voice and the other featuring Jerry's voice. Take a look at Jerry's demo if you want to see the results (though you might have to download the flash video file because it might not fit within the preview window). We are considering producing more videos or blog posts (or both) as the technology evolves.

For more information on Solaris 10 containers and zones/containers in general and how you can contribute to both, visit the zones community page and the Solaris 10 Brand/Containers project page at

Wednesday Jul 30, 2008

The Best Way to Learn Kernel Programming Is to Do It Yourself

I want to contribute to an open-source operating system in order to broaden my understanding of operating systems and make my mark in the F/OSS community.  The three biggest contenders in my mind are the OpenSolaris OS, the Linux kernel, and the FreeBSD project.  I don't think I could go wrong choosing any of them, but I decided that spending time learning how the kernels work and trying to navigate the source trees would be a waste of time.  So I concluded that if I want to learn about operating systems on the lowest possible level, then I should construct a kernel for fun.

Following my tradition of sticking 'KANE' into my project names in honor of Kane from the Command & Conquer series of video games, I have decided to name my new kernel KANEOS, the Kick-Ass New and Expeditious Operating System.  I'm not quite sure what I'll put into it, but I'm looking at targeting 64-bit x86 extensions and multitasking.  It'll be fun to write a small kernel that provides a basic standard C library.  (Of course, I'll continue to contribute to OpenSolaris.  :-D )

I found a couple of websites that might be helpful for amateur kernel hackers like me:

Typing "osdev" into Google search yielded a fair number of OS developer sites, including the ones above.

I'm sure that I'll be in for a long but profitable experience.  :-) 


I am a kernel developer at Sun Microsystems, Inc., working on zones and resource pools. This blog logs some of my thoughts regarding my work and the [mis]adventures that I have while working on Solaris.


« February 2016