📄 新建 文本文档.txt
字号:
头盖骨下的秘密:《操作系统 原理·技术与编程》
By:刘天北
古人说,头为六阳之首:高等动物的神经中枢系统大都安排在这儿。多亏了头盖骨下的那一套可敬而复杂的构造,我们才能够反应外界刺激,调度器官工作,甚至偶尔还会回忆、思考、读书写字。对于一个现代计算机系统来说,操作系统也起到了跟神经中枢类似的作用。它是系统中最核心的管理者和调度者,是人类曾制造出的与大脑最接近的东西。但是长久以来,在计算机科学的学习者和应用者中间,与操作系统相关的学习总被大家视为畏途。的确,操作系统处于软件和硬件之间,相关的知识庞杂而细微,既显得很抽象、又似乎很“底层”;跟这样的内容打交道,简直就像是打开头盖骨,做一回开颅手术——这似乎非得是华佗再世才办得了的营生。
可这头盖骨下的秘密,任何严肃的计算机开发人员却又都不能忽视。它不仅意味着种种抽象、玄虚的原理,同时还总与我们的日常开发实践紧密相关。所以,一部优秀的操作系统教材自然也是读者们极欲得到的:如果能有一个高明、体贴的向导带领,又有谁不想对这个复杂器官的构造和动力学一探究竟?我最近读到的《操作系统 原理·技术与编程》(机械工业出版社,2004年1月出版)一书,正是这样一位揭开头盖骨下秘密的称职向导。
该书是“重点大学计算机教材”丛书中的一部,由青岛大学和中科院计算所的两位资深专家合著。全书17章,分为“操作系统初始化”、“并发控制原理及实现”、“资源管理及实现”、“IPC和网络编程接口”4大部分;用区区500页的篇幅,覆盖了进程/线程管理、存储管理、文件管理、设备管理、通信等操作系统核心内容,另外也包含了计算机体系结构、软硬件接口技术、中断技术、系统调用、网络编程等重要方面。这样的教学、论述范围,完全满足了中、高级学习者和开发者的实际需要。
以往很多操作系统教材之所以难读难学,往往还要归咎于这个领域的自身特性。操作系统的种种原理、机制本来就略嫌抽象,而业界又现存多种厂商的操作系统产品;这样一来,为了保证“厂商中立性”,很多论著作者都采取了“先原理,后案例”的论述思路。如此编写的教材,原理部分那些复杂的框图和单调的解说,往往会显得空凿、枯燥;而最后针对不同厂商操作系统的案例分析,又大都类似于走马观花,并未起到加深认识、增进理解的作用。荷兰大师Tanenbaum的名著《操作系统:设计与实现》对以上论述套路做出了革命性的改进:他第一次把原理阐述和实际操作系统实现的案例结合起来,在各章节中剖析了一种小型系统Minix的源代码的相应部分,这构成了该书受欢迎的主要因素。
而我们介绍的这本《操作系统》也袭承了上述Tanenbaum著作在内容组织方面的优点。本书用作范例的产品,是目前业界流行的Linux系统。每一章中的原理介绍部分之后,作者们都随即安排了对Linux内核相关部分的分析。这样,读者可以通过切实、直观的源代码,加深对刚刚学到的概念的理解,完全避开了空凿、抽象的弊端。
正如副标题“原理·技术与编程”暗示的那样,本书的另一大特点在于它对编程开发实践的指导。在原理阐述、实现代码剖析之外,作者们对系统编程的多个方面做了详尽的介绍,并实际给出了5个重要的Linux系统编程实例(编写守护进程、修改内核调度算法、编写系统调用、编写设备驱动LKM、TCP/UDP网络编程)。也就是说,通过本书的学习,读者能够大致熟悉Linux系统上的开发实践。与其它单纯讲解操作系统的教材相比,这不能不说是一个意外收获。
刚刚看到作者们的内容组织构架时,我甚至不免有些担心——这里的分寸往往很难把握:以“结合代码与实例”的方式介绍操作系统,很可能要么仍旧过于偏重原理,失之抽象,要么陷入代码的沼泽中,又失之芜杂。两位作者精心的布置和流畅的讲解,成功地找到了这两种险境中间的羊肠小道。让我们引用序言中的说法:“源代码是这门学科的着陆点”——在本书的写作中,两位作者完成了一次平稳、精彩的着陆。
本书装帧雅致、印制精美,体现了国内重点教材的水准。如果在内容上适当增加“保护和安全”方面的介绍,书后再附上索引,庶几可称完美。当然,这些细微的挑剔全属于“不贤识小”,我更愿意表达的,还是一个幸运的读者,在见识了头盖骨下的秘密之后的愉悦和感激。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -