TOSP goes ISO 9660

It looks like finally, our disk image standards are going to enter the 21th century :)

Although TOSP has made from the start the choice of using GRUB as a bootloader on x86_64, it began by using it in the crudest possible way. Early builds used a very raw install of GRUB on a floppy image, created using dd, which didn’t even have a filesystem to begin with, and required specifying the raw location and length of bootstrap and kernel binaries in the image at each boot, on the GRUB prompt. This made testing very tedious.

Then I learned about the wondrous mtools, which allowed me to automatically generate FAT-formatted disk images of the OS by starting from a “blank” floppy image that had nothing but an install of GRUB on it. Said GRUB image is a vital component of the bootable image generation process, because the Windows development tools which I used at the time and still want to support, based on Cygwin, didn’t include a GRUB 1 package, but only GRUB 2. For reasons which I may explain later if someone asks for it, I think that GRUB 2 is not a very useful OS development tool yet, and that one is better served by GRUB 1 “Legacy” for those purposes.

Today, while I’m discussing my RPC design and waiting for it to mature, aside from continuing to test memory management, I’ve decided to work on something else in parallel : a switch to “El Torito” bootable CD images. This would mean that I could test my OS on real, modern hardware that doesn’t have any floppy drive anymore. Apparently, CD images may also be “burned” to USB pen drives, for use as a live bootable medium on computers which do not have a CD drive, though I have yet to investigate if it is simply a matter of DDing the image or if said image must be specifically tweaked for this process to work. Anyway, if mkisofs or genisoimage are available and work under Cygwin, this definitely looks like a very good step forward for the OS-periment project, and I hope I’ll succeed at it. More info on this later, as it becomes available.

EDIT – Here, it’s done. Easier than I thought, really :) I now generate ISO CD images, which could also potentially be used with USB pen drive. I’ve asked the question, am waiting for an answer. But my god, I had forgotten how crappily Windows 7 performs as soon as it’s under load… I thought Linux was already pretty bad in that area, but here we’re talking about extreme *keyboard* latency when an application is using the hard drive. The wow starts now…

3 thoughts on “TOSP goes ISO 9660

  1. Kyle Spaans June 12, 2011 / 9:23 am

    Man, get off x86! I’ve been doing RTOS dev on ARM systems where the worst I have to worry about is “Will u-boot on this hardware boot my ELF binary?”

  2. Hadrien June 12, 2011 / 10:53 am

    I think about porting to ARM in the future, but right now I’ll stick with x86_64 for early development because…

    1/x86 powers almost all desktops and laptops in this word, and you don’t have to worry about vendor-specific drivers early because of the many things which are handled in a standard way (keyboard interrupts, text output, VESA…).
    On the other hand, the sole pieces of tinker-friendly ARM devices which I know of are either isolated products from phone manufacturers which are not, by any means, guaranteed to be replaced when their lifetime is over, or bare circuitry boards with switches and blinking LEDs for electronics enthusiasts. And even then standard is a big word : between, say Qualcomm and NVidia SOCs, there seems to be a whole world of difference from an implementation point of view, as soon as you want to do basic things like display text on a screen, handle basic external interrupt sources, etc.

    2/All programmable real hardware which I, personally, have is x86 :)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s