Pan Junyang Original works reproduced please specify the source "Linux kernel Analysis" MOOC course http://mooc.study.163.com/course/USTC-1000029000
An operating system is a low-level support software that deals with hardware and provides a limited set of services for user programs. A computer system is a kind of hardware and software symbiosis, they depend on each other, inseparable. A computer's hardware that contains peripherals, processors, memory, hard disks, and other electronic devices that compose a computer's engine. But there is no software to operate and control it, itself is not working. The software that completes this control is called the operating system, which is called the "kernel" in the terminology of Linux, and can also be called "core". The main modules (or components) of the Linux kernel are divided into the following sections: storage management, CPU and process management, file systems, device management and drivers, network communication, and system initialization (booting), system invocation, and so on.
Week One: See how a computer works from a compilation of a piece of code
Second week: A simple time slice rotation multi-channel program kernel
Third week: Analyzing the operating system boot process from Linux kernel code
Week Four: A code parsing system call principle
Week Five: Analyzing the System_call interrupt processing process
Week Six: A brief analysis of the Linux process startup process
Seventh Week: A brief analysis of Linux loading executable program
Eighth week: Linux process switch Code analysis
The first week the teacher introduced the computer's infrastructure: The von Neumann architecture, the CPU reads the in-memory code and data into its own registers, and then carries out further operations according to a command call register, while the teacher explains the basic assembly language syntax. The second week is the extension of the first week, in class, the teacher explained a program based on C and assembly language, the realization of the time-slice rotation multi-channel program function, I also personally experienced the context of the save, switch, code jump specific implementation.
The third week, the teacher took us to analyze the Linux boot process, we witnessed the first process of the creation and the idle process cycle, the operating system to start the process of a more in-depth understanding.
And the fifth week, deep into the system call this Linux kernel in an important module, we understand the system call "three layer Skin" (API, interrupt vector, Interrupt service program), through the Assembly to implement a system call, recognize the INT 0X80 's role (this should be the most impressive assembly code I've ever had, O (∩_∩) o~); We have a more in-depth understanding of the specific implementation of the system invocation by deeply tracing the kernel code of the Sys_call system call. (Thanks to the simplified assembly code provided by the teacher, greatly facilitated my analysis of the work Orz)
第六、七、八 Week is the analysis of the Linux kernel of the three specific functional modules: process creation, executable loading, process context switch, pay particular attention to fork this special system call, it has "one call, two return" feature, which is not the same as the general process of Linux in the same place.
At the end of the eighth week, the teacher summed up the architecture and execution of the Linux system, in a nutshell, the user-state process is located in the memory of the 0~3g space, the kernel code is located in the memory of more than 3G, the process from the user state into the kernel State or switch between processes before the context of the Save, In order to return to the previous environment.
Linux Kernel Analysis Summary