
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- Linux系统架构概述:Linux采用分层设计,包括硬件层、内核层、系统库层、Shell层和应用程序层。
- 内核模块化设计:支持动态加载/卸载内核模块(.ko文件),提高系统灵活性。
- 进程管理机制:通过task_struct结构体管理进程,使用CFS(完全公平调度器)进行进程调度。
- 内存管理策略:采用虚拟内存管理,包括分页机制、页面置换算法(如LRU)和Swap空间管理。
- 文件系统架构:基于VFS(虚拟文件系统)抽象层,支持ext4、XFS、Btrfs等多种文件系统。
- 设备驱动模型:通过字符设备、块设备和网络设备驱动与硬件交互,遵循统一设备模型(udev)。
- 系统调用机制:用户态程序通过软中断(如syscall指令)进入内核态执行特权操作。
- 中断处理流程:硬件中断触发IRQ,内核调用对应的中断处理程序(ISR)完成响应。
- 网络协议栈实现:TCP/IP协议栈分层处理数据包,包括Socket接口、传输层、网络层和链路层。
- Shell工作原理:Shell作为命令解释器,通过fork()+exec()执行用户命令,支持管道和重定向。
- 系统启动过程:从BIOS/UEFI→Bootloader(GRUB)→内核初始化→用户空间初始化(systemd)。
- 进程间通信(IPC):支持管道、消息队列、共享内存、信号量和Socket等多种IPC机制。
- 同步与互斥机制:提供自旋锁、信号量、互斥锁等同步原语,保证多线程/进程安全。
- 动态链接与静态链接:动态链接库(.so)节省内存,静态链接库(.a)提高可移植性。
- 系统性能分析工具:top、vmstat、iostat、perf等工具用于监控系统性能。
- 日志系统架构:syslog和journalctl(systemd日志)记录系统事件,便于故障排查。
- 安全机制:包括SELinux、AppArmor等安全模块,以及Capabilities机制限制进程权限。
- 容器技术基础:利用cgroups和namespace实现进程隔离,支撑Docker等容器技术。
- Shell脚本编程技巧:使用awk、sed、grep等工具进行文本处理,编写自动化脚本。
- 系统调优实践:通过调整内核参数(/proc/sys)、IO调度算法、TCP参数等优化系统性能。