linux教程第三版孟庆昌第五章
### Linux教程第三版孟庆昌第五章知识点梳理 #### 一、Linux系统体系结构 - **层次划分**: - **内核层**:Linux操作系统的核心部分,直接与硬件交互,提供基本的服务如进程管理、内存管理等。 - **Shell层**:介于内核与用户之间的一层,主要包括各种Shell程序,用于解析用户的命令并将它们转换成内核能够理解的形式。 - **应用层**:包括用户使用的各种应用程序和服务。 #### 二、Linux系统核心结构组成 - **内存管理**:负责内存的分配和回收,确保各个进程能够高效地使用内存资源。 - **进程管理**:管理进程的生命周期,包括进程的创建、调度、终止等。 - **设备驱动程序**:实现硬件设备与操作系统之间的通信。 - **文件系统**:管理文件的存储、检索和更新等操作。 - **网络管理**:提供网络通信功能,如TCP/IP协议栈。 #### 三、进程与线程概念 - **进程**:操作系统进行资源分配和调度的基本单位,是程序的一次执行过程。 - **线程**:进程中的独立执行路径,共享同一进程的资源,比进程更轻量级。 #### 四、Linux系统中的进程状态 - **运行态**:进程正在CPU上运行。 - **可中断等待态**:进程正在等待某种事件发生,但可以被信号中断。 - **不可中断等待态**:进程正在等待某种事件发生,不能被信号中断。 - **停止态**:进程已暂停执行。 - **僵死态**:进程已结束但尚未被父进程收集的状态。 #### 五、获取进程状态的方法 - 使用`ps`命令查询进程状态: - `-a`:显示当前终端的所有进程信息。 - `-u`:以用户为主格式输出进程信息。 - `-x`:显示当前用户在所有终端下的进程信息。 - `-e`:显示系统内的所有进程。 - `ps aux`:显示系统中所有进程的详细信息。 #### 六、Linux系统中的两种模式及其特点 - **用户模式**:运行用户程序的模式,不能直接访问内核资源。 - **内核模式**:运行内核代码的模式,可以直接访问和修改硬件资源。 #### 七、进程控制块(PCB)的作用及其与进程的关系 - **作用**:存储进程的关键信息,如PID、状态、内存地址空间等。 - **关系**: - 每个进程都有唯一的PCB。 - 操作系统通过PCB控制和管理进程。 - PCB是进程存在的唯一标识。 #### 八、Linux系统中的进程调度机制 - **调度策略**:选择就绪队列中的进程进行调度,通常优先选择优先级高的进程或者实时进程。 - **调度步骤**: - 查找就绪队列中的进程。 - 选择优先级最高的进程。 - 如果存在实时进程,则优先执行实时进程。 - 如果新选择的进程与当前进程不同,则挂起当前进程并切换到新进程。 #### 九、Shell的基本工作流程 1. **读取命令**:读取用户输入的命令行。 2. **解析命令**:分析命令,准备执行。 3. **创建子进程**:使用`fork()`创建一个新的进程。 4. **执行命令**:子进程使用`execve()`执行命令。 5. **等待子进程完成**:父进程使用`wait4()`等待子进程完成。 #### 十、Linux文件系统类型及其构造 - **类型**:ext2文件系统(现代版本可能使用ext3或ext4)。 - **构造**: - **数据块**:用于存储文件的实际内容。 - **块组**:将逻辑分区划分为多个块组,每个块组包含关键信息和数据块。 - **超级块**:描述文件系统整体信息的数据结构。 - **引导块**:位于介质的第一个数据块,用于系统引导。 #### 十一、块组与超级块的概念 - **块组**:物理上的一组连续的数据块,包含关键信息的备份,提高文件系统的可靠性。 - **超级块**: - 位置:位于每个块组的最前面。 - 功能:描述文件系统的整体信息,如文件系统的总大小、未使用的空间、文件和目录的位置等。 #### 十二、索引节点的作用及其与文件的关系 - **索引节点**: - 内容:存储文件的元数据,如权限、创建时间、所属用户等。 - 关系:Linux系统通过索引节点而非文件名来识别文件,保证了文件引用的唯一性。 - 特点:索引节点号(inode number)是文件的唯一标识符。 #### 十三、虚拟文件系统(VFS)的意义 - **目的**:为了统一管理和访问不同的文件系统类型。 - **作用**: - 提供了一个抽象层,屏蔽了具体文件系统的差异。 - 使Linux能够支持多种文件系统(如ext2、ext3、ext4、NTFS等)。 - 便于开发者添加新的文件系统类型而不需改动大量现有代码。 以上内容涵盖了《Linux教程第三版》第五章的主要知识点,通过这些知识点的学习,可以帮助读者更好地理解和掌握Linux系统的内部结构和工作机制。