【Linux复习笔记】
Linux是一种广泛使用的开源操作系统,其核心在于其高效、稳定和灵活的内核设计。在准备Linux相关的考试时,理解操作系统的基础概念、处理器模式、内存管理、中断系统、多处理器支持(SMP)、系统启动流程、进程管理以及线程模型是至关重要的。
1. **操作系统的主要功能**:
- **进程管理**:负责处理器的调度和分配,包括进程的创建、撤销、同步和通信。
- **存储管理**:有效地管理和分配内存资源。
- **文件管理**:处理文件的创建、删除、读写等操作。
- **设备管理**:通过设备驱动程序控制硬件设备的工作。
2. **处理器工作模式**:
- **实模式**:早期的8086处理器模式,无保护机制。
- **保护模式**:引入了内存保护和分页机制。
- **虚拟8086模式**:允许在保护模式下运行16位的MS-DOS等应用程序。
3. **控制寄存器**:
- CR0、CR1、CR2、CR3是80386的控制寄存器,其中CR0包含系统控制标志,CR1保留未用,CR2用于错误报告,CR3用于保存页目录表的起始物理地址。
4. **地址类型**:
- **逻辑地址**:程序使用的地址,由段和偏移量组成。
- **虚拟地址**:保护模式下的逻辑地址,经过分段和分页转换。
- **线性地址**:分段机制后的地址,是物理地址之前的中间形式。
- **物理地址**:实际内存中的地址,是最终的目标地址。
5. **分页机制**:
- 分页是在分段机制之后进行的内存管理手段,可启用或禁用,通过CR0的最高位控制,用于将线性地址转换为物理地址。
6. **中断系统**:
- 中断是计算机响应外部或内部事件的关键机制,由硬件中断装置和软件中断处理程序构成。
- Intel x86使用8259A中断控制器管理外部中断源。
7. **SMP技术**:
- 对称多处理(SMP)意味着系统有多个处理器,它们共享内存和I/O设备,提高了系统并行处理能力。
8. **BIOS引导**:
- PC启动后,CPU进入实模式,从地址FFFF0H开始执行BIOS,进行系统检测、初始化,并搜索引导设备。主引导扇区(MBR)包含引导加载程序,负责加载操作系统。
9. **进程创建**:
- 在Linux中,使用Fork系统调用创建新进程。
10. **进程控制块(PCB)**:
- PCB是内核用来跟踪和管理进程的结构,包含进程状态、资源分配等信息。
11. **task_struct**:
- 在Linux内核中,进程控制块被定义为task_struct结构。
12. **进程状态转换**:
- 就绪->运行,运行->就绪,运行->阻塞,阻塞->就绪。
13. **进程标识**:
- 进程ID是进程的唯一标识,内核中使用task_struct地址标识当前进程,current宏指向当前进程的task_struct。
14. **线程与进程的区别**:
- 进程是资源分配的基本单位,拥有独立的资源。
- 线程是调度的基本单位,共享进程资源。
- 每个进程至少有一个线程,IDLE进程的ID都是1。
15. **Linux线程模型**:
- Linux 2.6内核使用轻量级进程(LWP),实际上是内核级线程,线程和进程在内核中使用相同的数据结构和管理方式。
16. **Fork实现**:
- alloc_pid分配新进程的PID,copy_process完成大部分复制工作,包括复制父进程的上下文和资源。
理解这些基础知识对于深入学习Linux系统操作和编程至关重要,它们是操作系统原理和Linux内核实践的基础。