Linux内核分析

从根本上看,内核是为了管理好进程来设计的,需要创建各种结构体来描述进程管理过程中需要用到的一切。

首先,为什么要划分内核空间与用户空间,出于安全的考虑,需要把用户程序与内核隔离,这就带来各种复杂性的东西,当然这是值得的。

对于模块与模块的交互,用户通过系统调用进入内核,这里又包含中断管理,异常管理。

进程与进程间的同步与互斥,需要在时序上控制进程的运行。

操作系统提供了包括信号量,互斥量,共享内存,锁等方式来保证时序的正确性。

进程要运行,需要加载到内存当,这就开始涉及到内存管理的部分,需要明白虚拟内存,逻辑地址,线性地址,内存管理单元,直接内存存取,内存的寻址过程管理,

分段的概念,分页的概念,cache,总之是为了加快进程的执行速度,这是IO特性决定的,CPU执行速率与硬盘和内存速率不匹配导致的

同时,进程大多数需要与外界交互,硬盘,网络,字符设备,块设备,网络设备。

最后,Linux封装了一个概念,一切皆文件,

需要了解虚拟文件系统,读写文件。

进程的执行过程,编译,加载,可执行文件。

原文地址:https://www.cnblogs.com/luxiaolong-lxl/p/9059276.html