The C Programming Language remains one of the most popular ones in the history of computer science.
All major operating systems use it, and if you design your own systems language you will have to
make it talk to C if you want to accomplish anything.
However, during my own journey through the weeds of systems programming over the last several
years, i have experienced several annoyances with its “features” and lack thereof.
Let’s fix that!
The world seems to be slowly distancing itself from The x86 in favor of less insane architectures
like ARM and, in some cases, even RISC-V.
Naturally, as someone who has experienced what systems programming on The x86 is like themself
lately, i welcome this shift with open arms (believe me, you really do not want to bootstrap an
However, this does not mean we aren’t going to run into major issues.
TL;DR: It would be super cool to have an ARM daughter board that pops into one of your x86 tower’s
PCIe slots, and use kernel magic to connect the two for native binary compatibility with multiple
The most common implementations of human-machine interaction are the CLI and GUI–two concepts with
mutually exclusive core beliefs, having caused countless heated discussions over which one of them
being superior. While the former focuses on brevity and efficiency, the latter excels at guiding
(especially, but not only) unexperienced users by being more expressive than raw text. But is that
everything there is to this story? Obviously not, otherwise this would be the end of the article.