"The kernel" is a very small piece of software which is devoted to controlling the hardware. It provides a complement of services upon which everything else depends, but there are many layers of software which are built to run in the environment that it creates. This includes things like the glibc library, various "command-line shells," and of course various "GUIs." Most of what you usually think of as "Linux" is not "the kernel."
As you can see for yourself by actually examining the source-code to the kernel, it is actually a very compact and special-purpose system, "obsessed with microseconds." When we speak of things like "processes, threads, locking and synchronization, network sockets, drivers, and files," all of these things are provided by "the kernel," which in effect abstracts away(!) our need to deal with the hardware directly.
"Linux programs" can today run on "everything from a mainframe to a phone or a microwave oven" because "the kernel" provides the essential layer of abstraction and control. (More than 25 "hardware platforms" last time I checked ... see the /arch subdirectory.)
Last edited by sundialsvcs; 03-23-2023 at 02:55 PM.
|