The Linux kernel3 is the most popular Open Source UNIX-like kernel available today. Because the source code is open, it is easy to make extensions, and experiment with new modules. Furthermore, because of its popularity, it is easy to find support and documentation about the Linux kernel. Unfortunately, there are many different versions of the Linux kernel available, and choosing one to standardize on wasn't an easy choice.
The two main options were the 2.2.x series kernel, which represents the current ``stable'' branch, and the 2.4.0-test-x series of development kernels. These kernels represent where Linux will be moving to in the next year. However, because they are in development, they are subject to substantial bugs, as well as evolving APIs.
Despite these details, we decided upon the 2.4.0-test9 kernel for our project. We feel that developing for this kernel will ensure that our code stays viable for a longer period of time. Furthermore, we feel that the development kernels are mature enough at this point for our uses, and that doing module development of this nature is feasible.