James Tauber : Cleese

James Saiz

journeyman of some


Cleese is a project to build a functioning operating system written almost entirely in Python.

I am working on it with Gavin Nicol, Dave Long and Chris Olds.

We successfully built a proof-of-concept back in 2003. No work has been done on it since but I'd love to revive it.

See http://sourceforge.net/projects/cleese/ although I will probably be setting up a new Trac-based project site soon.

Old Blog Entries on Cleese


At 3.40am this morning I reached probably the most significant milestone to-date: a version of the "print 1+1" Python VM bootable from GRUB. Took a pretty solid (15hr) debugging session. Most of the errors were very silly ones on my part. Most of the errors that weren't silly were my lack of knowledge.


Finally got the "print 1+1" version of Python 2.3 to compile and run using only a small handful of library functions.


Cleese made the Daily Python-URL. Perhaps a little earlier than I was ready to announce it - but hey, I'm not complaining :-)


Successfully got a bootloader working in Bochs and managed to write my first "hello world" protected mode kernel in C.

Now I'm working on a super-stripped-down version of Python 2.3 — just enough to be able to boot to a frozen module with the single statement "print 1+1".

Getting back into C made me realise something: any advantage I thought Java had over C, Python has over Java. So that leaves C for doing what neither Java nor Python are good at and leaves Java...well... :-)


After a solid 12-hour coding session, I've managed to successfully put together a first pass of what I'm calling HalfPy.

HalfPy is a stripped-down version of the Python 2.3 source code with no support for an interactive prompt, a parser or a compiler. It is essentially just the byte-code interpreter / Python VM part of Python.

I put it together by building up a new source tree one file at a time, copying over files from the standard source tree and modifying them as necessary in order to get it to compile without having to include parser or compiler code.

It was relatively straight forward (even for an inexperienced C programmer like myself), although there were a couple of places where compiler code was mixed in with byte-code interpreter code (most notably in compiler.c) which made it a little more involved.

HalfPy compiles on Cygwin - I doubt it will currently work on anything else as I took a lot of liberties with regard to #defines and I hardcoded files that in the original source are generated via autoconf.

There are still some warts and potentially a fair bit of work to do, but what you end up with when you type 'make' meets the initial objective: you can run a pre-compiled helloworld.pyc

I've checked the code into the Cleese SourceForge CVS.


Wrote first VSTa server ("helloworld") and set up project Wiki. Used PHPWiki after I failed to get MoinMoin or PikiPiki to successfully work under SourceForge.


SourceForge project accepted.


Got VSTa 1.6.8 running under Bochs 2.0 and have been studying the VSTa source code. Have focused mostly on how VSTa servers work. Am now working out how to compile a new server within VSTa.

This page last modified Tuesday 27 December, 2005 by James Saiz
Content made available under a Creative Commons Attribution-NonCommercial-ShareAlike license