A complete Linux kernel generally consists of five parts, namely memory management, process management, inter-process communication, virtual file system and network interface.
1, memory management
The main task of memory management is how to manage the physical memory of the whole system reasonably and effectively, and at the same time respond quickly to the requests for memory allocation from each subsystem of the kernel.
Linux memory management supports virtual memory, and the extra memory is obtained through disk application. At ordinary times, the system only saves the currently running program block in memory, and all other program blocks are saved in disk. When memory is insufficient, memory management is responsible for exchanging program blocks between disk and memory.
2. Process management
Process management mainly controls the access of system processes to CPU. When a process needs to run, the process scheduler starts a new process according to the priority-based scheduling algorithm. Linux supports multitasking, so how to support multitasking on a single CPU? This work is realized by process scheduling management.
3. Interprocess communication
Inter-process communication is mainly used to control synchronization, data sharing and exchange between different processes in user space. Because different user processes have different process spaces, the communication between processes should be realized by calling the kernel.
Usually, a process is suspended while waiting for a hardware operation to complete. When the hardware operation is completed, the process is resumed, and the communication mechanism between processes coordinates this process.
4. Virtual file system
The virtual file system in the Linux kernel uses a common file model to represent different file systems, which shields the differences of many specific file systems and enables the Linux kernel to support many different file systems.
5. Network interface
Network interface provides the realization of various network standards and the support of various network hardware. Network interfaces are generally divided into network protocols and network drivers. The network protocol part is responsible for implementing every possible network transmission protocol.
What standard does linux follow?
Minimum configuration of Linux system:
CPU:700 MHz;
Memory: 384MB;;
Hard disk: 6GB of remaining space;
Graphics card: the resolution is above 800x600.
Linux is a Unix-like operating system, which can be used and distributed for free. It is a multi-user, multi-task, multi-thread and multi-CPU operating system based on POSIX and Unix. It can run major Unix tools, applications and network protocols. It supports 32-bit and 64-bit hardware. Linux inherits the network-centric design idea of Unix and is a multi-user network operating system with stable performance.
Extended data:
Main features of Linux:
1, completely free
Linux is a free operating system, users can get it through the network or other channels for free, and can modify its source code at will. This is beyond the reach of other operating systems. Because of this, countless programmers from all over the world have participated in the modification and writing of Linux, and programmers can modify it according to their own interests and inspiration, which makes Linux absorb the essence of countless programmers and grow continuously.
2, multi-user, multi-task
Linux supports multi-users, and each user has his own special rights to his own file device, which ensures that each user does not affect each other. Multi-tasking is one of the most important features of computers. Linux allows multiple programs to run independently at the same time.
3. Good interface
Linux has both a character interface and a graphical interface. In the character interface, users can input corresponding instructions through the keyboard to operate. At the same time, it also provides an X-Window system similar to Windows graphical interface, which users can operate with the mouse. In the X-Window environment, similar to Windows, it can be said that it is a Linux version of Windows.
4. Support multiple platforms
Linux can run on a variety of hardware platforms, such as platforms with x86, 680x0, SPARC, Alpha and other processors. In addition, Linux is an embedded operating system, which can run on PDA, set-top box or game machine. The Linux2.4 version 2.4 kernel released in June 20065438+0 has been able to fully support the Intel64-bit chip architecture. Linux also supports multiprocessor technology. Multiple processors work at the same time, which greatly improves the system performance.
What are the main components of the linux kernel?
Linux system generally has four main parts: kernel, shell, file system and application program. Kernel, shell and file system together constitute the basic operating system structure, which enables users to run programs, manage files and use the system. 1.。 Linux kernel kernel is the core of the operating system, which has many basic functions, such as virtual memory, multitasking, library sharing, on-demand loading, executable programs, TCP/IP network functions and so on. The modules of Linux kernel are divided into the following parts: storage management, CPU and process management, file system, device management and driver, network communication, system initialization and system call.
2.。 Linuxshellshell is the user interface of the system, which provides users with an interface to interact with the kernel. It receives commands input by users and sends them to the kernel for execution. It is a command interpreter.
In addition, the shell programming language has many characteristics of ordinary programming language, and the shell program written in this programming language has the same effect as other applications.
3.。 Linux file system File system is an organizational method to store files on storage devices such as disks. Linux system can support many popular file systems, such as EXT2, EXT3, FAT, FAT32, VFAT and ISO9660. 4.Linux application standard Linux systems generally have a set of assemblies called applications, including text editors, programming languages, X windows, office suites, Internet tools and databases.
What is the linux kernel and what is its function?
The (Linux) kernel is the core of the (Linux) operating system, which generally includes five parts: process management, storage management, file management, device management and network management. It is a set of program modules that can access hardware devices and all main memory spaces, and it is the only program that can execute privileged instructions. The main functions are: resource abstraction, resource allocation and resource sharing. (Resources refer to CPU, memory, etc. Mounting third-party software on the basis of the kernel constitutes the operating system. Ubuntu, RedHat, Fedora, Debian, etc. They are all different operating systems based on Linux kernel (version numbers may be different). Kernel functions are completely transparent to users, and there are only two ways for users to call kernel functions: one is application → system call (program interface) → operating system; The second is operation command → system program (operation interface) → operating system. Does the kernel mean something controlled by the shell? Shell commands may be ordinary applications, library functions or system calls (you can understand them as kernel functions). If you want to check whether a command is a normal shell command, a library function or a system call, you can enter "man command" at the terminal to check. For example, manopen, the upper left corner should be opened (2). 1 means ordinary shell command, 2 means system call and 3 means library function. Note: Library function is actually the encapsulation of kernel function, which is between application and kernel function. Applications can't directly access kernel functions, but must go through library functions. This is a mechanism to protect kernel functions. In fact, many times we need to use kernel functions, but we just don't know, such as calling open () when opening a file, calling close () when closing a file, and so on.
What is the rule of Linux kernel version number?
There are two versions of Linux kernel: stable version and development version. The version number of the Linux kernel consists of three numbers: r.x.y
R: The kernel major version released at present.
X: even numbers represent stable versions; Odd numbers indicate that the version is under development.
Y: the number of bug fixes.
What does each kernel version number stand for?
Take the version number as an example: 2.6.9-5. ELsmp,
R:2, major version number
X:6, minor version number, indicating stable version.
Y:9, revision number, indicating the number of revisions.
The first two numbers together can describe the kernel family. For example, the stable version of 2.6.0, that is, the 2.6 kernel series.
5: indicates the fifth fine-tuning patch of the current version, and ELSP indicates that the current kernel is specially tuned for ELSP.
EL:enterprise Linux; Smp: indicates that multiple processors are supported, indicating that the kernel version supports multiple processors.
Knowledge expansion
There are generally three kinds.
1smp
2bigmem
3 universal kernel
When RedHatLinux is turned on, GRUB's startup menu will have two options, namely
RedHatEnterpriseLinuxES (version number ELsmp)
RedHatEnterpriseLinuxES-up (version number. EL)
What do these two differences mean?
In fact, this is the difference between a single processor and a symmetric multiprocessor when GRUB boots the system.
RedHatEnterpriseLinuxES (version number Multiprocessor (symmetric multiprocessing)
RedHatEnterpriseLinuxES-up (version number. EL) single processor
Let's list the options available in the startup menu of SUSE and RedHat.
Sousse
Version number-default: the default option of suselinuxkernelforuniprocessormachines, which supports single-processor machines.
Version number -SMP:suselinuxkernelthapports symmetric multiprocessor and 4gboframe
Symmetric multiprocessor machine supporting 4GB memory
Version number-bigsmp: suselinuxkernelsupport symmetric multiprocessing and up to 64 GB
Symmetric multiprocessor machine supporting 64GB memory
RedHatLinux
Version number. El: RedhatlinuxKernelForUniProcessors supports single-processor machines.
Version number. El hugemem: redhatlinuxkernelthat supports 64 gbofram.
Symmetric multiprocessor machine supporting 64GB memory
Version number. Elsmp: RedhatlinuxkernelThapports symmetrically handles symmetric multiprocessor machines and supports 4G memory.
In some cases, you need to support the 1 and 2 features, so you can: recompile the kernel and select the option corresponding to your configuration among the processor and memory options.
How to download the source code of the corresponding kernel version?
Generally speaking, you can download it directly from the official website of http://www.kernel.org.
Disadvantages: Not suitable for any distribution with special kernel tuning, especially fedoraubuntu. After all, they have done a lot of patches and optimizations on the kernel. If you use the official source code directly, you won't enjoy these things. The newer the kernel, the better.
So it's best to download it from the publisher official website, because the official has provided the compiled source rpm package.
How to use the corresponding kernel source package?
Take the kernel source code provided by fedora: kernel-2.6.23.9-85.fc8.src.rpm as an example.
First, install the source code.
# rpm-ivhkernel-2 . 6 . 23 . 9-85 . fc 8 . src . rpm
Then, convert the source code.
Before conversion, please make sure that there is a redhat directory under the /usr/src/ directory (generally /usr/src/ is an empty directory).
# rpmbuild-BP-target = $(uname-m)/usr/src/red hat/SPECS/kernel . spec
This will put the source code in/usr/src/red hat/build/kernel-2.6.23/
Here are two useful folders:.
Linux-2.6.23. This package provided by arch-kernel.org was patched and upgraded by Fedora. That is, the patched kernel 2.6.23.9-85.fc8.
The output results of ARCH and uname-m are consistent, usually i686. If you need a different output, you can use the.
"-target =" specified options.
Vanilla-This is a standard source code, provided by kernel.org, without patches and upgrades.