Run a custom C application as the Linux init process

Well, I’ve managed to swap out the Linux init process for a C hello world binary and booted into it. The code is located here.

The next step is to build the hello world binary in C# without the .Net runtime and to compile it to bare metal machine code.

Then I can boot Linux to that as the init process instead.

It’s not particularly groundbreaking if you’ve ever done LFS (Linux From Scratch) or configured your own Arch Linux, but progress nonetheless.

One step closer to swapping out the whole kernel and booting from UEFI right into the binary.

I’ll probably create some kind of blog or GitHub repo to track the development of a custom C# OS over the coming year.


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