操作系统是一种对计算机中各个设备和资源进行管理并给应用软件提供各种服务的系统软件,它的实现可分用户态和内核态两大部分。一般而言,操作系统的算法和设计的复杂性大多在内核态部分。因此,了解操作系统的内核实现对于了解整个操作系统是非常重要的。本书详细阐述操作系统的内核(也包括少量用户态部分),选择UNIX第6版的全部内核代码及少量用户部分代码、总计10 000行作为讲解对象,由框架到细节、由基础到高级地进行讲述;在此过程中贯穿了操作系统中的各种知识和概念,比如内存管理、进程调度、中断和设备管理以及文件系统等,使得内容非常易于读者理解。选择UNIX作为讲解对象是因为它强大的生命力和应用的广泛性。在精妙的设计思想下,它具有小巧高效而健壮的内核、丰富的功能、易扩展的架构和良好的开放性。UNIX所定义的很多接口(比如文件访问接口)已经成为行业标准。本书在讲解时,作者把这10 000行代码按照不同的功能模块分成不同的章节。每章一般最小以函数为单位,但在讲解某个功能或接口时,又会牵涉到很多相关的函数,并其中揭示了很多优秀的设计思想、数据结构和算法。本书适用于具有丰富开发经验的高级软件工程师,尤其是有志于进行操作系统研究或对操作系统实现感兴趣的软件工程师,也可作为本专科院校计算机及相关专业学生学习操作系统和C语言的参考书。初级软件开发人员在阅读本书时可能会碰到一些困难,但如能坚持研究,它也会是你提高编程水平的一个很好的选择。