Thursday, October 19, 2006

Variable functionality

Most of the variable functionality in the runtime services are now in place. Implemented as a runtime module they utilize the variable store protocol for backing storage. Currently only a memory store is implemented that can keep variables for duration of boot- and runtime services. The next step is to implement a non-volatile store that keeps the variables in a special file on the system partition.

An open question is how to detect which partition is the system partition. If the disk uses the GPT scheme the partition can be detected using the partition GUID. But what about disks with MBR partitions? Should the partition that contains a \efi directory be picked? Should some other algorithm be used? Suggestions are welcome.

Tuesday, October 17, 2006

Work in progress

I've been quite busy the last couple of weeks, not working on gnufi. What a shame. But I've managed to get some small things done; the ext2 file system driver is somewhat working. It is possible to list the contents directories and most likely read files. I'll try that later. The next step is to start working in a kick-ass simple boot manager.

When all that is done I'll register a project at Savannah and release the sources, provided that the copyright assignment has worked out as it should.

Wednesday, September 27, 2006


I've started to refactoring the code a bit, doing cleanups and moving code around. This will result in a flatter source tree. I'll probably also get rid of the include directory, moving its contents down to the root.

I'm slowly working my way to a 0.0 release. Things left to do is;

* implement an ext2 file system driver,
* add a 'variable driver' that stores variables on disk, and
* write a simple boot manager

The boot manager should be responsible for booting GRUB2 from disk. When that is done, my next focus is to get the whole thing running on LinuxBIOS.

Tuesday, September 19, 2006

gnufi dubed an official GNU package.

rms has agreed and dubed gnufi an official GNU package. As soon as copyright issues has been settled, I'll go ahead and create a project at Savannah. The only problem is that I use bazaar to version control my sources, and Savannah do not support that yet. But they do support GNU Arch, which also use dumb transports, so it might work anyway.

Wednesday, September 13, 2006

Linux kernel booting


After messing around with runtime mappings, hacking runtime drivers and moving memory around to not get overwritten by Linux, I finally got the kernel booting. There are still some problems; the kernel is complaining about a few things;

Setting up standard PCI resources
EFI: Failed to allocate res Reserved Memory : 0x0-0xffffffff
EFI: Failed to allocate res Reserved Memory : 0x0-0xffffffff
EFI: Failed to allocate res Reserved Memory : 0x0-0xffffffff

Speaking of which; GRUB2 should probably not allow to boot bzImages on EFI platforms, since the decompression code does not care about the memory map at all. The decompress code thinks it is OK to write over low memory (0x1000 to 0x90000). BAD LINUX, BAD!