New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggestion: Define "kernel" #7
Comments
Excellent point - I will add! Thanks :) |
OK - here's a small draft... The kernel of an operating system is the very central bit of it. When your computer starts up, the kernel is loaded first. The kernel, in turn, then loads everything else. When your app needs resources (memory, disk I/O, etc) it has to go through the kernel, which then manages the task in some way. Note: this doesn't happen directly, there are various rings of protection around the kernel so it's abstracted somewhat, and the memory in which it executes is protected from everything other process. Direct access would probably be a bad thing. Everything coming in, everything going out (output, printers, devices, etc) passes through the kernel. |
That's very helpful. So I'm guessing that programs like bash, zsh, ssh, and such are part of GNU, then? |
Bash is: SSH is a protocol, but clients like OpenSSH (and Putty) use it. Linux is made of a number of small programs that yes, typically, are part of GNU.
|
If it’s OK with you: can I put this question in? It’s a really good one :)
|
Please do! :) |
In the first chapter, "Linux: A Little History", the term "kernel" is thrown around a lot. The first instance is the sentence: "In 1991 Linus Torvalds was completing his computer science degree at the University of Helsinki in Finland and decided to write an operating system kernel for his own use as, at that time, there were no freely-available kernels that he could use to create his own operating system".
Later, the same chapter explains "The term Linux actually refers to the kernel, though many people use the term to refer to GNU/Linux, which is the GNU operating system running on the Linux kernel.".
As I'm reading this, the #1 thought going through my head is "what exactly is a kernel?". How is a kernel different from "an operating system". I've always known in some vague sense that a kernel is a component of an OS, but in 16 years of professional development I've never had the need to strictly define its role. I've read Wikipedia's definition, but I still don't really grok it. If the kernel handles memory management, IO, device communication, and such. Then what does the rest of the OS do?
If you can fit it, some more information about what exactly constitutes an "OS" and a "kernel" would be much appreciated.
The text was updated successfully, but these errors were encountered: