The high-level OS challenge

14 points by wofo


wrs

The less ambiguous way to say this would be a “userland from scratch challenge” since it starts with an existing kernel. Established examples include Gokrazy.

mccd

I think the Linux kernel is harder to setup. I’m looking into doing my own OS project, and Netbsd seems like a nice place to start.

Bootstrapping Netbsd is very easy compared to Linux. And if you’re not married to using Rust, you could load the netbsd lua module and use lua as your programming language (or maybe even fennel and make it a lisp machine).

icholy

I recently did something like this. This video was extremely helpful: https://www.youtube.com/watch?v=u2Juz5sQyYQ

oriansj

Or you could do the easiest path to writing an operating system and starting from the optimal basic:

https://github.com/ironmeld/builder-hex0

Just re-implement the functionality of builder-hex0 in the high language of your choice and instantly you have a full path to all of the tooling in a Modern Linux (or to the subset that you want)

As it is literally a useful operating system kernel, shell and everything you need to build C compilers, Lisp interpreters, a FORTH, proper shells, tar, unxz, ungz, unbz2, sha256sum and editors (or even other operating systems)

That was written in HEX0 so literally done the hardest way possible, so it is as simple and efficient as possible.

spc476

Perhaps I’m missing something, or being overly pedantic, but the definition of an “operating system” the author is working with seems to be different than what I learned. As I learned, an operating system is the code (it’s not exactly a program, not exactly a library, something like both) that manages the hardware (initializes, multiplexes, hides details) on behalf of other programs (even MS-DOS does this, mostly for disks). What the author describes sounds more like a shell than an operating system, which is still a worthy project.