Stewart's Honors Project - The Walnut Kernel

To Design and Implement an Object Store for the Walnut Kernel with support for advanced features such as transactions and versioning.


The Walnut Kernel is a persistent, capability based operating system kernel developed at and extending the previous work in the School of Computer Science and Software Engineering at Monash University. Building on work in the Password-Capability System, Walnut has some very unique features such as its capability architecture, charging scheme and persistence. Walnut requires a slightly specialised set of features from its equivalent of a file system, the Walnut object store. Various deficiencies with the original design were found, and it was decided that alternative systems should be explored.

This thesis extends initial work on the Walnut kernel by examining the issues related to its object store. Other operating systems use a file system as their method of on disk storage and various file systems are closely examined for their efficiency, reliability and possible applicability to a Walnut system.

As processes are persistent in Walnut, care must be taken to ensure these can be restored from disk in a consistent state. That is, the image on disk should match the appearance of these objects at a specific time, in essence a ``snapshot'' of the process and all objects it is using. We call this the problem of inter-object dependencies as the process object depends on a specific version of the objects it has loaded.

The addition of the revision tracking of objects is examined with the aim towards helping solve the problem of inter-object dependencies and remove the consequences of user error. A discussion on the possible Walnut interface and possible security implications is included and it is found that there needs to be further exploration of "Temporal Windowing" before access to previous revisions of objects can be done in both a flexible and secure manner.

The near complete design of a new object store for the Walnut is presented providing a flexible volume format that can be extended to encompass future ideas and features. Knowledge gained from other systems helps us in determining that this system has the capacity to fulfil the listed requirements. A proof of concept implementation in a simulation environment is presented with support for most of the features discussed and reasonable performance considering its stage in development. The implementation has been written so that it can be extended and eventually incorporated into Walnut.


I recorded progress, thoughts and comments in my Weblog, inside the hons-project category.

Interesting Things

If you are interested in some Walnut related things, sometimes not too academic :)

Available Documents

Other Documents Relating to Walnut

There are documents by several other poeple detailing parts of the theory behind Walnut, here are some of them (look at my bibliography for more references):

Available Code

The following code should be considered pre-alpha, pre-working, pre-everything really... It's a tarball of my working directory - literally. It will be mostly broken - get used to it.

Really Bad Docs

A quick runthrough of some of the stuff you can do with the current code. Note that I've removed some of the output from the listings here as it's just a bit verbose and lists what testkit is doing with block devices and caching. Not all that interesting unless you're a cache freak.


Stewart Smith (

$Id: index.html,v 1.18 2007-06-15 02:31:03 stewart Exp $