1
00:00:06,530 --> 00:00:07,669
Let's talk
about the kernel.

2
00:00:08,789 --> 00:00:11,250
To use computer hardware,
a kernel is needed.

3
00:00:12,289 --> 00:00:16,809
The kernel has core operating system
components and it dynamically loads drivers.

4
00:00:18,109 --> 00:00:21,089
And the kernel ensures
security, stability and performance.

5
00:00:21,850 --> 00:00:27,899
It's really the most essential part of
the operating system and it has main responsibilities.

6
00:00:28,800 --> 00:00:34,990
It is responsible for processes, it's
responsible for memory management, for file system

7
00:00:34,990 --> 00:00:41,179
management, for device management, for networking,
for interrupt handling and hardware communication.

8
00:00:42,119 --> 00:00:46,780
And it uses system calls
to provide user space interaction.

9
00:00:47,659 --> 00:00:52,019
What does that mean? Well, that means
that if you run an application in user

10
00:00:52,019 --> 00:00:56,379
space that needs to communicate with the
kernel, it uses a so called system call.

11
00:00:57,039 --> 00:01:00,819
That's a deep level instruction that you
will normally never find unless you are

12
00:01:00,819 --> 00:01:04,599
going to search for it or you
are going to use the audit subsystem.

13
00:01:06,079 --> 00:01:08,439
So let's talk about
user space and system space.

14
00:01:09,299 --> 00:01:10,900
The kernel audience
is system space.

15
00:01:11,659 --> 00:01:15,060
That is a privileged execution
environment where no restrictions apply.

16
00:01:16,019 --> 00:01:20,604
You can't have restrictions in system space
because it is about the kernel. And

17
00:01:20,604 --> 00:01:25,189
the kernel needs full access to the
hardware, which is used by using drivers.

18
00:01:25,930 --> 00:01:29,790
Drivers, also known as kernel
modules, are also a part

19
00:01:29,790 --> 00:01:33,650
of system space and applications
normally run in user space.

20
00:01:34,650 --> 00:01:36,569
And that is
a restricted environment.

21
00:01:37,409 --> 00:01:40,914
And for applications to access
components that are running in

22
00:01:40,914 --> 00:01:44,419
system space, as just
mentioned, system calls are used.

23
00:01:45,060 --> 00:01:51,680
Before continuing, I would like to make a drawing to make it
more clear what exactly this user space and system space is doing.
