- Take me to the Video Tutorial
In this section, we will take a look at the core concepts of a linux operating system.
- We will start with introduction to the linux kernel.
- We will then learn about the kernel space and user space.
-
The Linux kernel is monolithic, this means that the kernel carrries out CPU scheduling, memory management and several operations by itselfs.
-
The Linux Kernel is also modular, which means it can extends its capabilities through the use of dynamically loaded kernel modules
To understand a kernel in simple terms, let us use an analogy of a College Library
. Here the librarian is equal to Linux Kernel.
- Memory Management
- Process Management
- Device Drivers
- System calls and Security
Use uname
command to get the information about the kernel (by itself it doesn't provide much information except that the system uses the Linux
Kernel.
$ uname
Use the uname -r
or uname
comamnd and option to print the kernel version
$ uname -r
$ uname -a
One of the important functions of the linux kernel is the Memory Management
. We will now see how memory is seperated within the linux kernel
Memory is divded into two areas.
- Kernel Space
- Kernel Code
- kernel Extensions
- Device Drivers
- User Space
- C
- Java
- Python
- Ruby e.t.c
- Docker Containers
All user programs function by manipulating data that is stored in memory and on disk. User programs get access to data by making special request to the kernel called System Calls