Version 20 (modified by ktpedre, 8 years ago) (diff)



Kitten is a lightweight kernel (LWK) operating system designed to be used on the compute nodes of distributed memory supercomputers. At this point, Kitten is, well, still a kitten, but eventually our intent is for it to be used on systems consisting of tens or hundreds of thousands of multi-socket, multi-core compute nodes (i.e., mega-core systems). The primary goal of Kitten is to enable supercomputer applications to scale to significantly higher node counts and perform substantially better than is possible with general-purpose compute node operating systems, such as Linux. Kitten is based on Linux in part, but makes different design choices that are targeted at scalability (low noise, deterministic behavior) and performance (physically contiguous memory layout, transparent large pages, novel techniques for taking better advantage of multi-core processors, like  SMARTMAP).

To get the latest Kitten release, click on the  Downloads link to the right and choose "Kitten Lightweight Kernel (GPL)" from the drop-down menu. See the README file in the release for information on building and running Kitten.

To get the latest development (unstable) version of Kitten, visit  Kitten Project at Google Code.

Notes from our CodeSessions with Northwestern and Univ. of New Mexico are online.


  • Open Source (GPL)
  • New LWK codebase partially derived from  Linux, familiar organization and build process
  • Fully symmetric kernel, locking used to protect shared data
  • Multiple processes and threads per core
  • Partial Linux ABI support (what matters, similar to IBM's  CNK)
  • User-space uses standard system Glibc
  •  SMARTMAP memory mapping (see SC08 paper) to enable single-copy intra-node MPI messaging. This significantly reduces intra-node memory bandwidth requirements.
  • Guest OS support (when linked with the V3VEE project's  Palacios hypervisor)
  •  lwIP TCP/IP stack with ne2k and seastar drivers

Kitten Releases

  • 1.0.0, Dec. 8, 2008
  • 1.1.0, May 1, 2009
    • Integration with Palacios VMM, allows guest OSes to be loaded alongside native Kitten applications  Build Instructions
    • Initial support for POSIX threads and OpenMP user applications
  • 1.2.0, Jan 27, 2010  Current Release
    • Updated Palacios interface, matches Palacios 1.2.0 release
    • Added SMARTMAP test application
    • Added experimental Open Fabrics Infiniband stack
    • Misc. bug fixes and improvements