Hacker News new | ask | show | jobs
by FrankWilhoit 744 days ago
Extremely difficult task. Think of a kernel as a container of device drivers, where the motherboard/system is the top level device (scheduling, including interrupts), each processor is a device, memory is a device, etc. The most important decisions to make up front have to do with managing state across transitions between kernel mode and user mode. Say what you will of Windows, its model for this is potentially highly performant, though Microsoft's documentation is so poor that most drivers are badly written: too much is done in ISRs versus DPCs. (In the early days, Microsoft sold very expensive training under NDA; I'm not sure they are still doing that but it is why, to this day, the doco still leaves out so much essential context.)