Writing an OS in C#

Iโ€™m going to write a bare metal OS in C# .Net, thatโ€™s the goal for 2024. With some kind of minimal bootloader in asm, I suspect.

I’ve worked out how to compile C# .Net to machine code without using MSBuild nor the standard runtime libraries, avoiding horrendously sized AOT outputs.

A skeleton base class library will need to be implemented to avoid linking the .Net runtime. Kind of like implementing libc again. Native structs for int, string etc will also be required, along with a base ‘object’ to inherit from.

Debugging and symbols is probably a lifetime away. But it would be cool ultimately to get it to respond to ping requests, file transfers over TFTP or something like that.


Frank Ray Consulting. Software requirements for agile development teams, particularly remote, outsourced and offshore development teams working in financial services.

Get in touch if you need our help

Woking, Surrey, GU22, United Kingdom