eli5 What’s the difference between os and an kernel

1.13K views

eli5 What’s the difference between os and an kernel

In: 33

33 Answers

Anonymous 0 Comments

Windows is an operating system; the computer won’t function without it (or a different OS, like Linux).

The kernel is the ‘core’ of the operating system. In a sense, the kernel *is* the operating system — it’s responsible for virtually everything you see on the screen, and even some behind-the-scenes functions that only the OS/kernel should ever be permitted to do (accessing certain protected areas of memory, for example).

For that reason, the kernel is *extremely* well-protected against tampering –software is very rarely allowed direct access to the kernel, because of how important it is for system stability, and if the operating system enters an unrecoverable state, a security measure known as a ‘kernel panic’ (also called a ‘stop code’ or ‘The Blue Screen of Death’) kicks in and the system halts and restarts.

That’s part of the reason that software such as EZ Anti-Cheat is so controversial in gaming circles — it’s *designed* to run at the kernel level, so that it can monitor the kernel for signs of tampering that may indicate the presence of a cheat program.

Many find that problematic because it means that EZ Anti-Cheat *itself* has to have access to certain parts of the kernel, which introduces the risk that someone might tamper with EZ Anti-Cheat directly to bypass the kernel’s security protocols.

Anonymous 0 Comments

Various parts of an OS: bootloader, kernel, drivers/modules, display system, audio system, printing system, networking system.

On the border between OS and applications: standard commands and tools.

Anonymous 0 Comments

Various parts of an OS: bootloader, kernel, drivers/modules, display system, audio system, printing system, networking system.

On the border between OS and applications: standard commands and tools.

Anonymous 0 Comments

Various parts of an OS: bootloader, kernel, drivers/modules, display system, audio system, printing system, networking system.

On the border between OS and applications: standard commands and tools.

Anonymous 0 Comments

The Kernel is the piece of software that is effectively managing requests to your computer’s hardware.

The OS is what we define as the collection of programs that provide the end user experience, the Kernel “is” a program within the OS (it’s the nervous system of the OS so to speak).

The kernel exposes a series of interfaces that your OS applications can utilize to “request” to do things like… start a program, draw something to the screen, take in keyboard input, take in mouse input, etc; if those requests are malformed it will simply return an error, and if those requests are valid it will forward them on to the a relevant subsystem that the Kernel manages to do that work.

Ie. An OS program communicates with the Kernel interface to see what keystroke’s have been hit and the Kernel’s job is to take that request, communicate with the driver system, and then work with that system to well to retrieve those keystrokes.

We split things up this way to improve the reliability / security / and overall consistency of the overall OS; if we need to change how we get keystroke’s it means that we don’t have to change the interface that the OS program is communicating on (hardware changes very frequently, the goal is to limit those changes to the underlying software).

This way if that request to get keystroke’s fails, the Kernel handles it and returns a well formed error or simply no data; if the Kernel simply did that logic it might cause what’s known as a “Kernel Panic”.

It wouldn’t might not know how to handle the error, and then the only thing to do is either exit (crashing the OS) or return garbage (which would harm the stability of the system).

—-

Common responsibilities would include:

* Management of the processes open on the OS (ie. your browser, photo editing app, music player, etc.)
* Management of the file system (if you need to create a file, a request is sent to the kernel, same for reading a file)
* Management of memory (The Kernel, will do things like virtualize the memory available and randomizing locations so that hacker’s can’t easily load viruses onto your computer but it’ll also do things like kill processes to free memory or suspend / hibernate them to a location on the file system… perhaps one of the more complex aspects to a Kernel).
* Management of networked resources (ie. your ability to communicate on the internet)
* Management of CPU resources (ie. Preventing an application from using 100% of the system, hanging it effectively and much much more.)

—-

For instance, on a Window’s machine you have a process called “explorer.exe” this process is the visual interface you see on your screen that lets you click around and well… explore.

It has another process called “system.exe” which is effectively the “Kernel” to Windows; if that process stops or hangs or experiences any trouble… the system will hang and you will need to reboot.

Anonymous 0 Comments

The Kernel is the piece of software that is effectively managing requests to your computer’s hardware.

The OS is what we define as the collection of programs that provide the end user experience, the Kernel “is” a program within the OS (it’s the nervous system of the OS so to speak).

The kernel exposes a series of interfaces that your OS applications can utilize to “request” to do things like… start a program, draw something to the screen, take in keyboard input, take in mouse input, etc; if those requests are malformed it will simply return an error, and if those requests are valid it will forward them on to the a relevant subsystem that the Kernel manages to do that work.

Ie. An OS program communicates with the Kernel interface to see what keystroke’s have been hit and the Kernel’s job is to take that request, communicate with the driver system, and then work with that system to well to retrieve those keystrokes.

We split things up this way to improve the reliability / security / and overall consistency of the overall OS; if we need to change how we get keystroke’s it means that we don’t have to change the interface that the OS program is communicating on (hardware changes very frequently, the goal is to limit those changes to the underlying software).

This way if that request to get keystroke’s fails, the Kernel handles it and returns a well formed error or simply no data; if the Kernel simply did that logic it might cause what’s known as a “Kernel Panic”.

It wouldn’t might not know how to handle the error, and then the only thing to do is either exit (crashing the OS) or return garbage (which would harm the stability of the system).

—-

Common responsibilities would include:

* Management of the processes open on the OS (ie. your browser, photo editing app, music player, etc.)
* Management of the file system (if you need to create a file, a request is sent to the kernel, same for reading a file)
* Management of memory (The Kernel, will do things like virtualize the memory available and randomizing locations so that hacker’s can’t easily load viruses onto your computer but it’ll also do things like kill processes to free memory or suspend / hibernate them to a location on the file system… perhaps one of the more complex aspects to a Kernel).
* Management of networked resources (ie. your ability to communicate on the internet)
* Management of CPU resources (ie. Preventing an application from using 100% of the system, hanging it effectively and much much more.)

—-

For instance, on a Window’s machine you have a process called “explorer.exe” this process is the visual interface you see on your screen that lets you click around and well… explore.

It has another process called “system.exe” which is effectively the “Kernel” to Windows; if that process stops or hangs or experiences any trouble… the system will hang and you will need to reboot.

Anonymous 0 Comments

The Kernel is the piece of software that is effectively managing requests to your computer’s hardware.

The OS is what we define as the collection of programs that provide the end user experience, the Kernel “is” a program within the OS (it’s the nervous system of the OS so to speak).

The kernel exposes a series of interfaces that your OS applications can utilize to “request” to do things like… start a program, draw something to the screen, take in keyboard input, take in mouse input, etc; if those requests are malformed it will simply return an error, and if those requests are valid it will forward them on to the a relevant subsystem that the Kernel manages to do that work.

Ie. An OS program communicates with the Kernel interface to see what keystroke’s have been hit and the Kernel’s job is to take that request, communicate with the driver system, and then work with that system to well to retrieve those keystrokes.

We split things up this way to improve the reliability / security / and overall consistency of the overall OS; if we need to change how we get keystroke’s it means that we don’t have to change the interface that the OS program is communicating on (hardware changes very frequently, the goal is to limit those changes to the underlying software).

This way if that request to get keystroke’s fails, the Kernel handles it and returns a well formed error or simply no data; if the Kernel simply did that logic it might cause what’s known as a “Kernel Panic”.

It wouldn’t might not know how to handle the error, and then the only thing to do is either exit (crashing the OS) or return garbage (which would harm the stability of the system).

—-

Common responsibilities would include:

* Management of the processes open on the OS (ie. your browser, photo editing app, music player, etc.)
* Management of the file system (if you need to create a file, a request is sent to the kernel, same for reading a file)
* Management of memory (The Kernel, will do things like virtualize the memory available and randomizing locations so that hacker’s can’t easily load viruses onto your computer but it’ll also do things like kill processes to free memory or suspend / hibernate them to a location on the file system… perhaps one of the more complex aspects to a Kernel).
* Management of networked resources (ie. your ability to communicate on the internet)
* Management of CPU resources (ie. Preventing an application from using 100% of the system, hanging it effectively and much much more.)

—-

For instance, on a Window’s machine you have a process called “explorer.exe” this process is the visual interface you see on your screen that lets you click around and well… explore.

It has another process called “system.exe” which is effectively the “Kernel” to Windows; if that process stops or hangs or experiences any trouble… the system will hang and you will need to reboot.

Anonymous 0 Comments

Okay, imagine you have a big toy box called a “computer.” Inside the box, there are a lot of different toys that need to work together to play a game. The “operating system,” or “OS,” is like the rule book for that game. It tells all the toys how to work together and what they can do.

Now, the “kernel” is like the boss of the toys, or the main toy in the box. The kernel’s job is to make sure that all the other toys follow the rules from the rule book (the OS) and to help them talk to each other. So, the kernel is a very important part of the operating system, but it’s not the whole thing. It’s like the boss toy in the big toy box computer.

Anonymous 0 Comments

Okay, imagine you have a big toy box called a “computer.” Inside the box, there are a lot of different toys that need to work together to play a game. The “operating system,” or “OS,” is like the rule book for that game. It tells all the toys how to work together and what they can do.

Now, the “kernel” is like the boss of the toys, or the main toy in the box. The kernel’s job is to make sure that all the other toys follow the rules from the rule book (the OS) and to help them talk to each other. So, the kernel is a very important part of the operating system, but it’s not the whole thing. It’s like the boss toy in the big toy box computer.

Anonymous 0 Comments

Okay, imagine you have a big toy box called a “computer.” Inside the box, there are a lot of different toys that need to work together to play a game. The “operating system,” or “OS,” is like the rule book for that game. It tells all the toys how to work together and what they can do.

Now, the “kernel” is like the boss of the toys, or the main toy in the box. The kernel’s job is to make sure that all the other toys follow the rules from the rule book (the OS) and to help them talk to each other. So, the kernel is a very important part of the operating system, but it’s not the whole thing. It’s like the boss toy in the big toy box computer.