Most books and courses introduce Linux through shell commands, leaving the kernel as a mysterious black box doing magic behind the scenes. In this post, we will run some experiments to demystify it: the Linux kernel is just a binary that you can build and run.
Well, the kernel is not “just a program” in that it is not like the other programs on your system. If it was, you would “just” run it in your shell. The kernel cannot run this way of course because it is not a user mode program.
That said, if course the kernel is a program in the sense that it is a set of machine instructions that make the hardware do what you want.
And the kernel is designed to talk to hardware and other programs—to be the bridge between the two. It is not something an end-user interacts with directly.
Actually…
Point taken but….
UML requires:
1 - extensive support from the host kernel above and beyond what is required to execute for regular programs
2 - the guest kernel to be specially compiled to be a UML guest
In other words, even though UML allows a guest Linux kernel to execute as a process on a host Linux kernel, that Linux kernel is not “just a program” like every other user mode application is.