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.
When the system is running, each process will be assigned a certain time slice, and then the process scheduler will select each process to run in turn according to different time slices. For example, when a process runs out of time slices, the scheduler will select a new process to continue running.
Because the switching time and frequency are very fast, users feel that multiple programs are running at the same time, but in fact only one CPU process is running at the same time, which is the result of 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.
This file system can be divided into logical file system and device driver: logical file system refers to the file system supported by Linux, such as ext2, ext3 and fat device driver refers to the device driver module written for each hardware controller.
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.
Network device drivers are mainly responsible for communicating with hardware devices, and every possible network hardware device has a corresponding device driver.
Extended data:
The birth, development and expansion of Linux operating system always depend on five important pillars: UNIX? Operating system, MINIX? Operating system, GNU project, POSIX? Standards and internet networks.
198 1 year, IBM introduced the microcomputer IBM PC.
199 1 year, the GNU project developed many tools and software, and the most anticipated GNU C compiler appeared. HURD, the core of GNU operating system, has been in the experimental stage, and has not been published. In essence, it has not been able to develop a complete GNU operating system, but GNU has laid the foundation for Linux users and development environment.
199 1 At the beginning of the year, linus torvalds began to learn the minix operating system on a 386sx compatible microcomputer. 1991April, linus torvalds began to brew and prepare his own operating system.
1991April 13 posted on comp.os.minix that he had successfully transplanted bash to minix, and he couldn't put it down without this shell software.
1993, about 100 programmers participated in the writing/modification of Linux kernel code, among which the core group consisted of 5 people. At this time, the code of Linux 0.99 is about100000 lines, and the number of users is about 65438+ 10000.
1March, 994, Linux 1.0 was released, and the code amount was170,000 lines. At that time, it was released according to the completely free agreement, and then the GPL agreement was formally adopted.
1995 65438+ 10, Bob Young founded RedHat (Little Red Riding Hood), with GNU/Linux as the core, integrated more than 400 open source code program modules, developed a branded Linux, namely RedHat Linux, which was called the "distribution version" of Linux and sold in the market. This is a pioneering work in the business model.
The release of 200 1 1 and Linux 2.4 further improves the scalability of SMP system, and also integrates many features supporting desktop system: USB, PCMCIA support, built-in plug and play, and so on.
From June 5438 to February 2003, the kernel version 2.6 of Linux was released. Compared with the kernel version 2.4, the system support has changed greatly.
In 2004, SuSE married Novell in 65438+ 10, SCO continued to "beg for alms" under the stigma, and Asianux and MandrakeSoft also announced quarterly profits for the first time in five years. In March, SGI announced the successful implementation of a Linux operating system supporting 256 An Teng 2 processors.