How does the Linux Kernel work?
Linus Torvalds developed the Linux kernel with C and Assembly, so he succeeded in creating a lightweight and portable core that was released to the public as open source.
You can see the Linux kernel in various fields like space, computing, smartwatches, mobile phones, robotics and health. But have you ever wondered how the Linux kernel works?
Using hardware on Linux
First of all, the Linux kernel controls which hardware to run and in what way when you turn on your computer. In addition, advanced software control is possible thanks to the programming interface. To give examples of these controls, you can view information about the hardware installed in the slots on your motherboard and benefit from this insight.
In addition, this programming interface provides an abstraction layer. For example, if you want to video chat with friends, you'll need a webcam. The abstraction layer makes it possible for the software you use to use this webcam regardless of manufacturer and model. The software here can only use interfaces that exist for Linux. The Linux kernel translates this interface's function calls into actual hardware commands that the webcam needs.
Using the /proc and /sys virtual file systems, the Linux kernel can output detailed information about the hardware it detects. Below you can see some of the tools used for this, as well as which devices and cards they output:
- lspci: For PCI devices
- lsusb: For USB devices
- lspcmcia: For PCMCIA card
As you can see, the Linux distribution in the screenshot above runs on VirtualBox. However, you have a chance to see a lot of information like VGA controller, USB, bridge and SATA controller.
You can also use the -v parameter for more detailed information.
In the Linux kernel, applications usually access the device through special files that exist in the /dev directory. These special files represent drives and other physical devices. Files such as /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 and dev/snd/* are examples of these special files.
Linux file system management
The file system is one of the most notable components of the Linux kernel. The Linux file system is one of its biggest benefits. All files on a Linux system are gathered into a single branch. Therefore, users can use this hierarchy to get to where they want to go.
The starting point of this hierarchy is the root directory (/). The other subdirectories are under the root directory. The most used subdirectory in / is the /home directory. This subdirectory contains other subdirectories and each directory contains the actual data storage files.
For example, you can think of a text file on the desktop. If you create a text file named helloworld.txt on your desktop, you can call it /home/muo/Desktop/helloworld.txt. The /muo example here will of course vary from case to case. As this subfolder name depends on your current username. With this naming system, the Linux kernel switches between the actual storage and the physical storage that exists on the drive.
In addition, the Linux kernel can integrate data from several drives. This is where the mount system comes into play. It uses one of the drives in the root system and mounts the others to existing directories in the hierarchy. The other drives are then placed under the mount points. This allows users to store the /home directory on a second hard drive that also contains other subdirectories.
When you mount the drive to the /home directory, you can access these directories from normal locations. Therefore, paths like /home/muo/Desktop/helloworld.txt continue to work.
You can see the mount points between files on your system with the findmnt -A command.
With many file system formats, you can store data on the drive. The most widely known on Linux are the ext2, ext3 and ext4 file system formats. However, there are many other file system formats. In any case, you must format the file system before mounting it. You can use commands like mkfs.ext3 (mkfs stands for 'make file system' - create file system and ext3 is file system) for this.
These commands accept the device file path that you want to format as a parameter. This is a risky operation and you should use it with caution if you don't want to accidentally delete or reset the file system.
In addition, there are network file systems such as NFS that the Linux kernel uses. NFS is a network file system where data is not stored on a local drive. With NFS, data travels over the network to a server that stores the data. Since the data will reside on a server, the user does not have to constantly process it. They can also use Linux's traditional hierarchical file system as usual.
General functions
All software in a Linux system has common functions. This is why these functions are central in the Linux kernel. For example, when opening a file, you can only open it by the file name without knowing where the file is physically stored, what functions and operations it will use. All these functions are already in the kernel.
You can store your files on your hard drive, split files between multiple hard drives, or even keep files on a remote server. Shared file communication functions are important in such cases. Applications exchange data regardless of how the data is moved. The shared communication functions are there to perform these data exchange processes. This movement can be over a wireless network or even a landline phone line.
Process Management in Linux
The active version of a program that operates on data or information in memory is called a process. The task of the Linux kernel is to create and monitor these memory areas. The kernel allocates memory for a running program and loads the executable code into memory from the file system. Immediately after, the kernel runs the code.
Linux kernel supports multitasking. It is capable of running multiple processes at the same time. However, there is only one trade in any given timeframe. However, the Linux kernel divides time into small chunks, and as a result each procedure happens sequentially.
Because these small time segments are in millisecond increments, they are active only at specific times and inactive for the rest of the time. The Linux kernel's job here is to maximize performance by running multiple processes at the same time.
If the time interval is too long, the running application may not respond as you expect. If the time frame is too short, there may be problems with changing tasks. Depending on the priority of the process, the amount of time required here will vary. You may have heard of high-priority processes and low-priority processes before. This is one of the functions that the Linux kernel controls.
This explanation is not always correct. The real limitation is that there can only be one worker process per processor core at a time. Multiprocessor systems allow several processes to run in parallel. A basic system almost always has dozens of processes running.
Permissions in Linux
As with other operating systems, you can create multiple users on a Linux system. In such cases, there is a rights management system that supports individual and group users. This is where user and file permissions come into play.
The Linux kernel manages data and checks the necessary permissions for each process. For example, if you try to open a file, the kernel must check the process ID for permissions. If the kernel checks and finds that you have permissions, it will open the file.
As you can see, the Linux kernel monitors everything from file security to creating users and downloading files from the Internet. Everything is in a certain order. Every user has permissions. Linux kernel manages processes and intervals for peak performance.
Furthermore, the file system, which is one of the biggest features that distinguishes the Linux kernel from other operating systems, is very important. Linux is not something of a mystery. In contrast, all files and source code are accessible. To better understand the practical and powerful nature of the Linux kernel, you can examine the Linux directory hierarchy.
You should read it
- What's New in Linux Kernel 5.14?
- Linux Kernel 5.16 officially released with great features for gamers
- How to downgrade kernel in Linux
- Update Linux kernel on Ubuntu via UKUU
- Is Linux the operating system or the kernel?
- Microsoft will release Linux 'genuine' Linux kernel with Windows 10 WSL
- Compare the most popular Linux distributions today
- What is KVM (Kernel-Based Virtual Machine)?
May be interested
- Learn about the Linux Kernel and their main functionswith more than 13 million lines of code, the linux kernel is one of the largest open source projects in the world, but what exactly are they and what do they do in the system?
- How to Update Ubuntu Kernelthis wikihow teaches you how to update your ubuntu linux kernel, which is the core software that runs the rest of your linux distribution. the easiest way to do this is by installing and running a package manager called 'ukuu', but you can...
- What is KVM (Kernel-Based Virtual Machine)?getting started with kvm on linux is a straightforward process. if you want to run other linux distributions or even windows on your linux pc, all you need to do is install a few modules and prepare your pc for virtualization.
- 28 interesting facts about Linuxlinux is a computer operating system and is also the kernel name of the operating system. it is probably the most famous example of the concept of free software and of open source development.
- Linux kernel vulnerability exposes Stack memory, causing local data leakthe way the researcher tells an international has just disclosed information about a relatively serious vulnerability that exists in the linux kernel, which can be exploited to leak data and act as a bridge. effective coupling for deeper penetration into victim systems.
- 6 signs that Microsoft really loves Linuxdoes microsoft really like linux?
- How to check your Linux versionif you need to find the actual linux version or even the linux kernel version, please read the following article.
- Compare the most popular Linux distributions todayit can be said that linux is not a complete operating system, it is just a kernel operating system, which is the foundation for developing other operating systems.
- How are Linux kernel updates distributed on Windows Update?users will be allowed to download linux kernel updates in wsl2 from windows update.
- Linux - Journey from a fun to software that dominates the worldlinux is everywhere, crept into every corner of our lives. from the phone, computer, to the whole internet. even linux is now finding a way to be present on tvs, heat sensors, and cars.