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.  :-) 

Tuesday Jul 29, 2008

A Lunchware License?

This is my first blog for work, so I thought I'd kick it off with a note on open-source licensing.  I'm a fan of F/OSS but used to struggle when deciding between open-source licenses for my software.  For me, the battle was between the GPL, the revised BSD license, the MIT license, and the University of Illinois/NCSA Open Source License.  However, I tend to favor BSD-style licenses ("permissive licenses,") for the following reasons:

  1. For me, "free software" means that the licensed code can be incorporated into any application or library, including proprietary projects.  Proprietary software should be able to incorporate and modify free software and remain proprietary.  BSD-style licenses permit such incorporation: the GPL does not.
  2. BSD-style licenses are pithy: the GPL is not.

To complicate matters, I recently stumbled across a Wikipedia article on "beerware" and was instantly amused by its simplicity and liberalness.  After some more consideration, I decided that all of my software would be licensed under either a revised BSD license or a beerware-like license.  Unfortunately, I can't use the beerware license because I don't drink beer, so I created the "Lunch-ware License" for drys everywhere:

/\*
 \* THE LUNCH-WARE LICENSE
 \* I, <AUTHOR> <<EMAIL>>, wrote this file in <YEAR>.
 \* You can do whatever you want to do with it as long as you retain this notice
 \* verbatim.  If we meet some day and you think this stuff is worth it, you can
 \* buy me a lunch in return.
 \*/

I doubt that this license will be widely used. Whatever. :-)

About

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.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today