内容简介
本书内容分成两篇,第一篇是基本框架,第二篇是文件系统及相关内容。在第一篇的各章中:第1章先对Linux进行简要介绍并给出本书分析时所用的模型;第2章从C语言程序、可执行文件到进程的虚存空间影像的全过程作为起点,给读者建立起进程用户空间管理的概念;然后第3章讨论物理页帧如何支撑这些虚存空间,并且讨论了与物理空间一致的内核空间的管理;接着第4章就是进程的概念、进程的组织、进程切换和进程的创建撤销等活动;第5章专门讨论进程调度和负载均衡问题;后面4章继续讨论进程间通信、系统调用、内核的并发活动和同步问题。第二篇开始讨论盘根错节的文件系统:先在第10章分析文件系统和VFS的基本概念;然后在第11章讨论页高速缓存及块缓存;第12章分析了VFS的通用文件访问操作;第13章讨论ext2文件系统的具体格式和操作细节;接着第14章讨论同步;第15章讨论内存回收问题;最后第16章和第17章讨论设备管理和块设备问题。
本书以内存模型和时空模型为主要参考来分析各章的相关内容,给出了比较直观的图示,这不仅对初学者非常有用,对希望了解Linux内核的读者和相关开发人员也非常有参考价值。
前言
每当想到操作系统,大多数读者脑海里浮现的应该是本科课程里反复强调的4大管 理——处理机(进程)管理、内存管理、文件管理和设备管理。但是我们一头扎入到Linux内核分析的书籍中,却发现这些概念在代码中似乎混杂在一起。读者可能已经看过《Linux内核设计与实现》、《深入理解Linux内核》、《深入Linux内核架构》、《深入理解Linux虚拟内存管理》或者《Linux内核源代码情景分析》、《Linux内核完全剖析》等书籍。它们的内容都非常出色,读完之后收获颇丰。但是除了长期使用并研究Linux的人,大多数国内的读者,特别是大学的本科生和研究生,读完之后总感觉有欠缺和大量的不解。原因也许在于上述书籍中不屑于提到的那些基本概念对于理解Linux内核却是必不可少的,没有了这些基本概念,所学到的知识就类似于对“如长矛”、“如莆扇”、“如柱子”、“如草绳”的正确却又不完整的认识。所以本书将尽量回答这些基本问题、努力做到“科普”的角色,帮助读者弄清楚Linux的设计原点并在心中形成一个Linux的全景“海图”。