LiveCD

 
In the present days, I really get shocked when people look down upon machines
with less than a gigabyte of RAM ... A Gigabyte!!!!

I strongly feel that cheap RAM is becoming an excuse for writing un-optimum
code!!! A good and usable operating environment can be built with real estate
in megabytes - less than 10MB that is. Fortunately, the growth in the embedded
systems market is making us review our attitudes towards cheap RAM.

For a long time, I struggled to write my own kernel - I got pretty far but the
problem of writing device drivers is what becomes challenging - the challenge
being standards - having so many of them that is. Every ethernet card is
different- Every video card is different

So I decide to go ahead with Linux kernel itself - I do all my work on Linux
anyway.


I have been able to build a Live CD OS using the following ingredients - 

1. Fresh Linux kernel - 2.6.16 
2. Busybox utilities - for all the (atleast all useful) 
   unix commands 
3. Nanox - A super cool, super slim windowing system - can 
   work on VESA frame buffer (that's the best part)
4. GRUB - love it - Although I am exploring gujin these days since it can load
   vmlinux (a simple ELF) instead of vmlinuz ( a more complex beast)

I've been doing all this using Qemu - an opensource x86 emulator. It emulates a
ne2k PCI ethernet card, so I put in the kernel module for ne2k.

I've put in TinyGL compiled against Nanox.


All this under 5MB.

Here are the screenshots - 

Pic1
At bootup, Linux kernel comes up and starts sh from the busybox set

Pic2
A small demo with nanox windowing system with nanowm window manager + some nanox and TinyGL programs


I am currently trying to make kaffe (JVM) work with the Nanox windowing system
- Its already supposed to work but I am facing some issues. Once I have that in
place, I can run a pure java browser in the live CD!!!