Linux是怎样工作的(198张图解+大量实验程序,直击Linux运行原理;“现代计算机操作系统”图解趣味版)(图灵图书)(武内觉)

书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:

  1. Linux内核架构:采用宏内核设计,包含进程管理、内存管理、文件系统、设备驱动等核心模块。
  2. 进程管理机制:通过fork()创建进程,exec()加载程序,wait()等待子进程结束。
  3. 进程调度策略:CFS(完全公平调度器)基于虚拟运行时间分配CPU资源。
  4. 内存管理:虚拟内存机制(分页、页表、TLB)实现进程隔离和高效内存分配。
  5. 文件系统结构:VFS(虚拟文件系统)抽象不同文件系统(ext4、XFS、Btrfs等)。
  6. 设备驱动模型:基于字符设备、块设备和网络设备,通过设备文件(如/dev/sda)访问硬件。
  7. 系统调用流程:用户态通过软中断(如int 0x80syscall)进入内核态执行特权指令。
  8. 中断处理机制:硬件中断触发IRQ,内核调用对应的中断服务例程(ISR)。
  9. 网络协议栈:TCP/IP协议栈分层处理(链路层、网络层、传输层、应用层)。
  10. Shell工作原理:解析用户输入的命令,调用fork()+exec()执行程序。
  11. 动态链接与静态链接:动态链接库(.so)节省内存,静态链接(.a)提高移植性。
  12. 信号处理:进程通过sigaction()注册信号处理函数,响应SIGKILLSIGTERM等信号。
  13. 管道与进程通信:匿名管道(|)和命名管道(mkfifo)实现进程间数据传输。
  14. 共享内存shmget()创建共享内存段,mmap()映射到进程地址空间。
  15. 同步机制:互斥锁(mutex)、信号量(semaphore)、自旋锁(spinlock)避免竞态条件。
  16. 页缓存(Page Cache):内核缓存磁盘数据,加速文件读写性能。
  17. Swap交换空间:当物理内存不足时,将不活跃的页面换出到磁盘。
  18. 模块化设计:内核模块(.ko)可动态加载/卸载,扩展内核功能。
  19. 启动流程:BIOS/UEFI → Bootloader(GRUB)→ 内核初始化 → 用户空间(systemd/sysvinit)。
  20. 系统日志与调试dmesg查看内核日志,strace追踪系统调用,gdb调试内核。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注