I am pleased to announce that the current push of ArcanOS represents a completion of features for release FOOL. The feature list won’t look very big, but remember that this is a labor of love being done in my (not very ample) spare time, and that most homebrew OS projects never even make it this far. The list of features slated for the FOOL release are:
- Bootloader which reads the kernel from disk
- Protected mode operation
- Flat memory model achieved through segmentation only
- Identification of the major kernel’s binary sections in memory
- Scratch space memory allocator
- Debugging output via a console print
- Hardware exception handlers
- Keyboard interrupt handler
I’m opting to call feature complete at this point because ArcanOS FOOL represents a small laundry list of features necessary to build the next set of kernel features. That is…FOOL is a kernel that doesn’t just fall completely on its face. Issues of booting have been worked out, the memory model is understood (if primitive), the exception handlers are in place so errors don’t cause a spontaneous reset, and the keyboard interrupt handler demonstrates that the PIC is remapped and that code for creating and registering interrupt service routines works. I don’t want to go any further on feature development at this point because I want to enable paging and use it to enforce the flat memory model, and switching to paging will mean having to deal with memory-mapped hardware (like the console) differently. A smaller codebase is easier to convert than a larger one.
ArcanOS is going to go through a cleanup and documentation phase now. I want to thoroughly scrub all unnecessary code from the codebase and to fully get ArcanOS off its JOS heritage so that it’ll be a consistent project moving forward. I’ll then carve off a release and post a build so people can play with it using Bochs, and then I’ll write Wiki pages to help document my major headaches. Then, it’ll be time to start looking forward to release MAGUS.