Nothing Special   »   [go: up one dir, main page]

The Linux Kernel

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

The kernel

Selecting transcript lines in this section will navigate to timestamp in the video
- [Narrator] While it's common to think about Linux as an operating system. It's more
precise to understand Linux as the kernel of an operating system. All operating
systems have a kernel. Though we don't often talk about them as much as we do
with the Linux kernel. The Linux kernel is an open source program which has been
built and modified over the years by thousands of contributors. It was first released
by Linus Torvalds in 1991. And it was created in response to restrictive licensing that
burdened other operating systems at the time. The license that applies to the Linux
kernel allows it to be used and distributed freely. And this has resulted in the Linux
kernel being made available in a large variety of Linux distributions, which we'll talk
about later on. A kernel is software that communicates with the computer's
hardware in order to give programs and therefore users access to these resources so
they can do what they need to do. A kernel can run on its own, though it's not very
useful without programs communicating with it. And we can't run programs without
a kernel taking requests and information and translating them to the systems
hardware. The kernel is what allows us to use a computer but it's only part of a
working operating system. We can think about this using three levels. First there's the
hardware, the memory, the CPU, the storage, the network card, and so on. The kernel
communicates with this hardware and presents a series of system calls or SIS calls to
programs running in what we call user land or user space. A metaphorical area
outside of kernel space where the software running on the system operates. Imagine
the action of saving a file in a text editor. When I click save, the text editor
software uses a user space library to tell the kernel what to save and where to save
it. The kernel then communicates this information to the storage medium and
reports back that the operation succeeded. Modern Linux kernels are able to
communicate with a huge variety of computer hardware and they can provide an
ever-increasing number of useful functions for programs to use. The Linux kernel can
run on tiny devices like circuit boards intended for hobby use, on super computers,
solving the mysteries of the universe on desktops, on laptops, on mobile devices. and
even in cars. Usually, these applications will employ a customized kernel which has
been slightly modified to run on different kinds of processors or which have support
for unnecessary hardware removed. But they're still all the Linux kernel. Thinking
about the kernel can seem pretty technical and intimidating. Though we don't need
to worry about it, if we're just getting started with Linux or if we're going to be using
Linux in a way that doesn't involve working directly with the kernel. For most users,
the kernel just sits in the background taking care of what needs to get done. Some
Linux users though, especially hardware designers and some types of programmers
and system administrators will interact with the kernel directly. In some cases, people
working with the kernel will need to edit the source code of the kernel, to add new
features or make changes to how it works. And as I mentioned before, that's
something that's encouraged. The Linux kernel is open source, and anyone can
download, edit and run the code that makes the Linux system work. If you're so
inclined, you can download the source code of the kernel @kernel.org. The kernel is
what makes Linux, Linux. But in order to have a working system where we can get
work done, we need software that interacts with the kernel. And we need some other
supporting configurations to get a system up and running. When a Linux system
starts up or boots, it goes through a process where the kernel is loaded and then
software called an Initialization System or System Manager, takes over and starts up
programs to get the system to a state where we can interact with it. This Initialization
System starts up services like networking, storage, sometimes it does top
environment, and things like that. Again, many Linux users won't need to concern
themselves with this. But system administrators and hobbyists who like to tweak the
knobs and dials on things, might find themselves diving deeper into this
process. Even if you plan to use a Linux system without concerning yourself with all
the under the hood stuff, it's helpful to know a little bit about the Linux kernel, and
what its role is. And if you plan to get into the technical details and make changes
yourself, Linux is one of the few operating systems that makes that possible.

You might also like