Thursday, November 7, 2013

starting out with Xinu on VirtualBox

Having examined the options for probing the workings of an operating system, I decided that Xinu would be the best for tying together the general concepts of an operating system with their most basic implementation.

Going down this path proved far from easy. The first challenge was getting a working version of Xinu.

According to the VirtualBox configuration document found here, the setup process should be fairly simple. However, the document fails to specify that it is the xinu-appliance.tar.gz file in the Xinu VM downloads directory that must be downloaded to start the setup process, instead of xinu-vm.tar.gz.

Having followed the document's instructions in configuring the virtual machines and then building Xinu on the development system, I found that I was not receiving any response from the Xinu backend system. As it turned out, I had improperly configured the backend VM to create the serial port COM1 - only the development system should create the port. Having corrected this, I soon found myself attached to a running Xinu machine via the minicom terminal emulator.

Almost as a reflex, the first command I typed upon reaching the Xinu shell was "ls". Sadly, this received only the message "command ls not found." Of course, I quickly discovered that Xinu does not implement a file system at all. In fact, in the VirtualBox setup, the GRUB bootloader loads the entire Xinu OS into memory via TFTP, and no form of persistent storage is made available by the operating system at all.

I spent some time scouring the Internet for versions of Xinu that had built-in filesystems, figuring that such a version would make for easier experimentation with other OS functionality, but though I stumbled across a couple of different implementations, I was unable to get any of them to compile on the developer box, and I realized that it would be wiser to spend my time investigating the way that Xinu is built.

No comments:

Post a Comment