When writing the OS, the main goal is to maintain the highest abstraction in order to make the code reusable for different architectures, but in the end there is inevitably architecture .
Each machine performs very low-level functions in such a specialized way so as not to support a common programming language.
Task switching, bus control, device interrupt handling, just to name a few, cannot be effectively encoded using a high-level language (consider command sequences, included registers and possible critical CPU timings and priority levels).
, , , , , .
, , . , , , .
.