But seriously unless you’re a systems engineer with 15 years of experience you probably don’t know how any popular OS works (note, I’m not either, I don’t know shit). They are huge beasts with astonishing complexity.
I spent a semester writing a microkernel OS with three other students. We got the init sequence working, memory management working, a shell accessible over UART, FAT32 on an SD card, a little bit of network, and a minimal HTTP server for the demo. And this was considered a big accomplishment worthy of top grades.
And that’s only the scratching the surface of what makes an OS, just think of all the other things you need. Journaling filesystems, user and rights management, hundreds of drivers for devices and buses* full networking support, with dual stack, DNS, tunneling, wifi, then things like hibernation, sleep, power management in general, container and virtualization support, NUMA support, DMA support, graphical output, clocks and time sync, cryptography primitives and TPM support, etc etc
*I did USB only for mass storage once, that also took me a semester, and I bet PCIe is much harder.
I reckon it works a bit like Unix.
But seriously unless you’re a systems engineer with 15 years of experience you probably don’t know how any popular OS works (note, I’m not either, I don’t know shit). They are huge beasts with astonishing complexity.
I spent a semester writing a microkernel OS with three other students. We got the init sequence working, memory management working, a shell accessible over UART, FAT32 on an SD card, a little bit of network, and a minimal HTTP server for the demo. And this was considered a big accomplishment worthy of top grades.
And that’s only the scratching the surface of what makes an OS, just think of all the other things you need. Journaling filesystems, user and rights management, hundreds of drivers for devices and buses* full networking support, with dual stack, DNS, tunneling, wifi, then things like hibernation, sleep, power management in general, container and virtualization support, NUMA support, DMA support, graphical output, clocks and time sync, cryptography primitives and TPM support, etc etc
*I did USB only for mass storage once, that also took me a semester, and I bet PCIe is much harder.