Another post about HALT. I get a lot more hits on my RSS feed after the original braindump/announcement/self-indulgence blog post about HALT, so I'm planning to blog once a week about the progress.
I'm currently doing Algorithms, Part 1 on coursera. I'm also reading up on garbage collection algorithms so I know more than the basic concepts before I embark on writing my own GC. Unsurprisingly, there's lots of prior art here that is very relevant to an immutable system, such as Haskells GC that differs from traditional models since Haskell has lots of immutability, and ML has something similar for its immutable values. The less I have to invent, the better.
The EFI bootloader is close to finished now. The next step is to write the actual kernel. As mentioned before, the entry point will be assembly. This is more flexible, and I don't have to figure out how to to cross ABI function calls in C. The EFI loader hopefully doesn't have to do more than build the struct, parse the file and put the executable code in a location in memory, and jump to that location.
I look forward to playing around with page tables and other CPU APIs. Even if progress is slow, the idea of a OS running directly on the hardware appeals almost infinitely more to me than doing a VM. Thankfully, the worst case scenario is that nobody will care if the project fails due to a steep learning curve and general bike shedding.