vendredi 6 mars 2015

Bare bones OS kernel programming



I have recently started to take an interest in the topics of operating systems. I have a couple of things that are weighing on my mind, but I have decided to split the questions.


Let's assume we're designing a kernel for a new instruction set architecture that's out on the market. There are no C runtime libraries, no nothing. Only a compatible compiler for that ISA.


Presumably, this means the only C constructs that are available to the kernel programmer are only basic assignment operators, bitwise operators and loops. Is this correct?


If so, how are more complex things like main memory I/O and process scheduling achieved on the lowest level? Can they only be implemented in pure assembly?


What does it mean then, for a kernel to be written in C (linux for example). Are some parts of the kernel inherently written in assembly then?


Thanks.




Aucun commentaire:

Enregistrer un commentaire