The general plan for the OS is to create a micro-kernel based design with sufficient drivers that a basic user-mode interface can be created. The user-mode interface will include a basic tablet or laptop user interface with the ability to start user mode applications. The final goal is to develop a web-browser application to demonstrate the power of the OS.
FlingOS is an educational operating system designed to aid in teaching and learning low-level operating system programming.
Though not active in OS development, I am very interested in the design and implementation of OSes, given the time, could probably have a good stab at implementing something that vaguely works.
It is the nitty gritty details of bare metal OS development that fascinates me. Stuff like virtual memory mapping and task switching, the stuff primarily done by the core services, that have to be done close to the metal, that make C the ideal language. But higher levels, such as file systems and virtual memory management, and perhaps even some physical memory management, could easily be done using a higher level language using services provided by the lower levels. Even NetBSD now allows device drivers to be written in Lua, which I find amazing. I guess it points again to monolithic vs micro kernel design, but instead of using process boundaries to protect components, you can instead rely on language enforced boundaries to protect components from each other, and use the lower level code for the interface layer between components.
I wonder how much easier OS development would be if drivers could simply throw/catch exceptions instead of propagating errors up through call chains, with the inevitable errors that creep in that result in the error not being propagated or translated properly. Higher level languages have much better facilities in this respect and allow separation of error detection and error handling/recovery that straight return codes just don’t allow.
Hopefully, their Ahead of Time compiler work could eventually work work with or feed into the Mono AOT compiler.