• fartsparkles
    link
    fedilink
    English
    arrow-up
    17
    ·
    1 year ago

    A kernel, in computing terms, is the computer program that sits between applications and the hardware, facilitating their interactions.

    This is the GNU/Linux operating system’s kernel (the part that is technically Linux) showing its architecture.

    The columns represent the areas of functionality the kernel offers, the rows (from top to bottom) representing the level of abstraction from the hardware.

    From the top; user space, where users barely have to think about the hardware enabling their applications. To the bottom; the hardware itself and the interfaces that enable the kernel to talk to them.

    The lines represent the relationships between the various Linux kernel functions and structures - the text - that interact with one another directly.

    The diagram is interactive in the sense that you can click the functions/structures and be taken to relevant resources to help a Linux kernel developer navigate the humongous amount of code that comprises the kernel, to accelerate debugging etc.

    This diagram has been continuously developed for well over 15 years at this point and is somewhat iconic in the Linux world as it makes tangible the kernel and its thousands upon thousands of lines of code which I doubt any one developer has or could read and comprehend as a whole without the use of tools like this map.