Alternate OS: Kolibri, Part 1

AltOS: Kolibri

MenuetOS was originally written in May 2000 by Ville Turjanmaa. Menuet began as a 32-bit OS, written completely in assembly language. It fit on a single floppy, along with more applications that came as standard with the OS. It featured protection for the memory and code, had a GUI running at 16.7 million colors, sound at 44.1 khz stereo, and a low level API. By January of 2005, Ville announced work on a 64-bit version. In June 2005, he released the first 64-bit OS. It still fit on a single floppy. By March 2006, he announced an end to the 32-bit code, due to "open source fighting". A 32-bit development fork had developed, which resulted in KolibriOS. The first release of Kolibri was announced in February of 2007. It still fit on a single floppy, had NTFS read support, an AC'97 music player, drivers for Fat12/16/32/ISO9660 filesystems, a TCP/IP stack, network applications including ftp/http/mp3 servers, a GUI with resolutions up to 1280x1024 and 16 million colours, and over 150 programs (text editor, paint editor, file managers, games, etc.) A screenshot of an early version of MenuetOS is shown below.

pic

I should note that MenuetOS has since continued limited development on the 32-bit version. I did install it in VirtualBox, but didn't use it long because I could not maintain control of the virtual mouse. Menuet's home page is at http://www.menuetos.net/index.htm, where you will find links to both the 32-bit and 64-bit files.

I began the installation for this article by going to Kolibri's home page at http://www.kolibrios.org/. On the page, you will find links to a bootable floppy disk image, a live CD image, source code for the kernel, applications and libraries, and a software development kit. I downloaded both a floppy image and a live CD image. Although I had not run Kolibri before, I had run Menuet on real hardware, from a small 32 MB partition on my hard drive. To do so, I installed MSDOS, then installed Menuet, and modified the autoexec.bat file to automatically load Menuet. I wanted to run Kolibri "natively" in Virtualbox, if at all possible. I started researching at their wiki at http://wiki.kolibrios.org/wiki/Main_Page, and jumped to the FAQ link. In the "How do I boot Kolibri from my Harddisk" section are instructions for dual-booting with Windows and booting from GRUB. In the booting from GRUB instructions, we find:

If you want to boot KoOS directly with grub, you need to do this:

  • get and install the syslinux package
  • copy /usr/lib/syslinux/memdisk to /boot
  • point your config "root"-entry to your FAT or NTFS-partition, where the image resides, and write the kernel-entry with (hd0,0)/boot/memdisk or where ever your linux partition is.
  • add this lines to your grub.conf:

Code:

label KoOS
root (hd0,0) # edit this to your correct partition, given example is hda1
kernel /boot/memdisk
initrd /boot/kolibri.img
  • reboot and enjoy

BTW, there is one limitation in this method: The kernel cannot save its boot settings :(

NOTE: I found that it is possible to save the boot settings.

The syslinux package comes pre-installed on PCLinuxOS. The kolibri.img file is the resulting floppy disk image, after unzipping the downloaded file. For GRUB to boot, I would need the stage1, stage2, and the fat_stage1_5 files. I copied /usr/lib/syslinux/memdisk, kolibri.img, and the /boot/grub stage files needed to a new directory. I then created a new VirtualBox virtual machine with a FAT16 hard drive and the PCLinuxOS ZenMini live CD as the boot drive. Starting the VM for the first time, and booting from the ZenMini CD, I started PCC's diskdrake in order to partition and format the hard drive, since this cannot be done from the Kolibri live CD. I saved the changes and shut down the VM.

pic

The next step was to copy all the required files from my hard drive to the VM's FAT16 hard drive. I could have used a shared folder to do this, but I chose another method. Using AcetoneISO, I created an iso file of the folder containing the required files for the VM. (See above screenshot.) I then booted the Kolibri VM from the ZenMini live CD again, and chose the Copy to RAM boot option. This would leave VirtualBox's CD slot open to mount the iso I had created from a folder. After booting, I unmounted the ZenMini iso, then mounted the iso containing the files required for Kolibri. Using Zen's Nautilus file manager, I created a /boot directory on the FAT16 hard drive. Changing to the new directory, I copied kolibri.img and memdisk from the iso to the boot directory. Then I created a /boot/grub directory and changed into it. Next, I copied stage1, fat_stage1_5, and stage2 files to the /boot/grub directory. Last, I created the text file menu.lst with the following contents:

timeout 5
label KolibriOS
root (hd0,0)
kernel /boot/memdisk
initrd /boot/kolibri.img

I could have left out the timer, but I like being able to troubleshoot GRUB when necessary. The file copies and creation of menu.lst being done, it was now time to make the hard drive bootable. I shut down the VM. I booted once more from the ZenMini live CD, this time pressing the escape key at the GRUB menu, and answering OK to leave the graphical boot menu. I then pressed c to get to the GRUB prompt. The next set of commands were issued from the prompt to setup Kolibri to run and to create a bootable hard drive.

root (hd0,0)
kernel /boot/memdisk
initrd /boot/kolibri.img
setup (hd0)

After verifying the results were successful, I issued the halt command to shut down the VM session. Then I detached all the iso images from the Kolibri VM, leaving only the hard drive to boot from. Finally, I booted Kolibri from the FAT16 hard drive. The GRUB boot screen is shown below.

pic

Without intervention, Kolibri will boot in 5 seconds to the screen shown below.

pic

Note that the default videomode for setting [a] is 1024x768x24. It now defaults to the current values because I changed it and saved the kernel boot settings after starting the Kolibri VM. By pressing a at this screen, you can select the desired video mode. Item [c] is to change the vertical refresh rate. It defaults to 60 hz. After pressing the Enter key, we are presented with the Kolibri desktop.

pic

In the next installment, we will take a look at the applications included.