One, the kernel version of Linux
The Linux kernel numbers are numbered in the following format:
The major version number. This version number. Main patch number. Minor Patch number
Example: 2.6.26.3
The first number "2" is the major version number, which represents the 2nd largest version.
The second number, "6", is this version number, which indicates that it is the 6th iteration of a large version of the Linux kernel, and because 6 is the even representation of the release version, (if it is odd, the beta version).
The third number "26" is the major version of the patch number, which represents the 26th patch package for the specified iteration.
The fourth digit "3" is this version of the patch Pack, which represents the 3rd minor patch for the minor patch number.
Second, the Linux system architecture
From the point of view of application, Linux system is divided into two parts of kernel space and user space. Among them, the kernel consists of 5 subsystems including process scheduling, memory management, virtual file system, network interface and interprocess communication.
1. Process Scheduling Sched
Process scheduling refers to a system's policy of transitioning between multiple states of a process. There are 3 different strategies for process scheduling under Linux: Sched_other, Sched_fifo, and SCHED_RR.
Sehed_other is a time-slice rotation scheduling strategy for ordinary processes. In this strategy, the system assigns a time slice to all the running states of the process, and after the time slice of the current process is exhausted, the system chooses the process to run from the highest priority process in the process.
Sehed_fifo is a process scheduling strategy that requires relatively high real-time performance and long running time. In this strategy, the system schedules the process according to the order of the incoming queue, and runs until no higher priority process arrives or the current process is not blocked by waiting for resources.
SCHED_RR is a process scheduling strategy for high real-time requirements and long running time. This strategy is similar to Sched_other's strategy, except that the SCHED_RR process has a much higher priority, the system is assigned to the SCHED_RR process time slices, and then polls the process to run the process, putting the elapsed time slice to the end of the queue.
Due to the existence of a variety of scheduling methods, Linux process scheduling using "conditional deprivation" scheduling mode. The common process is to use the Sched_other time slice polling method, the real-time process can deprive the ordinary process. If the normal process is running in user space, the normal process immediately stops running, giving the resource to the real-time process, or, if the normal process is running in kernel space, the system call returns the user space before it can be stripped of resources.
2. Memory Management MMU
Memory management is a memory sharing policy that is seen by multiple processes. In Linux systems, the main concept of memory management is virtual memory. Virtual memory allows the process to have more memory than the actual physical memory, which can be many times the actual memory. Each process has a different address space within the virtual, and the virtual memory of multiple processes does not conflict.
The allocation strategy for virtual memory is that each process can use virtual memory fairly. The size of the virtual memory is typically set to twice times the physical memory.
3. Virtual File system
4. Network interface
5. Inter-process communication
Linux Network Programming (i)--linux operating system Overview