One: The origins of Linux
Linux is an open-source computer operating system kernel. It is a Unix-like operating system written in C and POSIX compliant, and Linux was originally developed by Finnish hacker Linus Torvalds to try to provide free and free Unix-like operating systems on the Intel x86 architecture. The program began in 1991 with the help of some minix hackers in the early stages of the program, and today countless programmers around the world are helping out with the program for free.
II: Linux kernel version
(1) linux0.01. First edition, followed by the 0.02, 0.03, 0.10, 0.11, 0.12, 0.95, 0.96, 0.97, 0.98, 0.99, and subsequent 1.0.
(2) linux0.11. Many of the Linux kernel source code parsing books are based on this version of the original
Originally said. "The art of graphic Linux kernel design"
(3) linux2.4. Compared to the modern version, many classic books are in the 2.4 version
For example, "LDD3". The late kernel of linux2.4 is often used in previous years
met with useful.
(4) Early linux2.6. The early 2.6 and the late 2.4 kernel are quite similar.
(5) Late linux2.6. The late kernel of 2.6 has some changes in the earlier kernel, especially the drive
The location of the related parts and some header files. The late kernel of 2.6 is now more of a master
Flow.
(6) Linux3.x 4.x, now the latest version is linux4.7.1
Three: kernel and distribution differences
Difference: Kernel is the kernel of the operating system, kernel is responsible for implementing the core of the operating system
Function (Resource management module, such as memory management, scheduling system ...) ), the kernel does not include
Application. So it's not possible for a kernel person to do anything because people do everything
The appropriate application to complete. So the people who sell the operating system put the kernel and some common
Applications are packaged together for regular users, which is the release of the operating system
(i.e. the operating system in the ordinary sense).
(1) There is only one kernel. www.kernel.org
(2) There are a lot of distributions. such as Ubuntu, Redhat, SuSE, CentOS ...
Four: Modular design of the Linux kernel
1: What is modular design
(1) Because the Linux kernel is very large, the code is very large, a lot of things, if the design is completely
Designed as one (tightly coupled between individual files and functions), the complexity exceeds the
can understand the scope. So modular design is also a necessity.
(2) Modular design is the core of each function module in the code is independent of each other, such as
There is no reference to the global variables between the dispatch system and the memory management system, even
The number of calls to each other is also very small, even if there is an interface specification is followed. The modular Design
The purpose is to realize the loose coupling of functional modules.
2: The embodiment of modular design
(1) can be cropped when configured. The Linux kernel can be configured before compiling, and the configuration can be configured with the choice of the thousands of modules that make up the kernel each one or the other. After that, there are a few more details to configure.
(2) Modular compilation and installation. For ease of operation, gradually from the static upgrade to a dynamic upgrade (no need to restart the system, but also do not need to re-burn the system). This dynamic upgrade is also supported by modularity.
(3) Use conditional compilation in source code. This has already been seen in the Uboot .
Linux kernel porting (i)--linux kernel introduction