| ▲ | tombert 4 days ago | ||||||||||||||||
I love blog posts like this. You're not wrong in saying that the kernel is sort of this magical block box to most engineers (including me). I know how to use systemd and I know how to use bash and I know a few other things, but the kernel has always been "the kernel", and it's something I've never really tried to mess with. But you're right: ulimately the kernel is just a program. Yes, it's a big and important program that works at a lower level than I typically work at, but it's probably not something that is impossible for me to learn some basic stuff around. I have had a bit of a dream of building a full desktop operating system around seL4 [1], with all drivers in user space and the guts fully verified in Isabelle, but learning about this level of code kind of feels like drinking from a firehose. I would like to port over something like xserver and XFCE and go from there, but I've never made a proper attempt because of how overwhelming it feels. [1] I know about sculpt and Genode, and while those are interesting, not quite what I want. | |||||||||||||||||
| ▲ | ronsor 4 days ago | parent | next [-] | ||||||||||||||||
You can actually disable most features of the Linux kernel, including multi-user support (everything will run as root). The end result is a stripped down kernel fit for only running your single desired application. | |||||||||||||||||
| |||||||||||||||||
| ▲ | bicolao 4 days ago | parent | prev | next [-] | ||||||||||||||||
> But you're right: ulimately the kernel is just a program. Play a bit with user mode linux [1] the kernel becomes literally a linux program, that I believe you can even debug with gdb (hazy memory as I tried uml last time maybe a decade ago) In theory you can also attach gdb to qemu running linux, but that's more complicated. | |||||||||||||||||
| |||||||||||||||||
| ▲ | bitwize 4 days ago | parent | prev | next [-] | ||||||||||||||||
Try working on NetBSD or OpenBSD. You can learn kernel hacking by literally reading the man pages. Changing, rebuilding,and booting your own custom kernel is tremendously exciting. | |||||||||||||||||
| ▲ | TZubiri 4 days ago | parent | prev [-] | ||||||||||||||||
It reminds me of when people speak of money as a product. Sure, maybe you are right, but I think more of it as something in relation to products/programs than as a product/program itself. The fact that it's also a product/program is some brainfucky exercise that might either be an interesting hobby thought experiment OR it might be a very relevant nuance that will be useful to the top 0.1% of professionals who need a 99.9% accuracy, like the difference between classical and relativistic mechanics. I mean, sure you are right that kernels are programs and that money is a product, and that gravity is not a force. But I am a mere mortal and I will stick to my incorrect and incomplete mental model at a small expense of accuracy to the great advantage of being comprehensible. | |||||||||||||||||