源码秘密

作者:Phil Hughes
  • 作者:William Jolitz 和 Lynne Jolitz

  • 出版社:Peer-to-Peer Communications

  • 页数:530(精装)

  • 价格:$49.95

  • ISBN:1-573988-026-9

  • 评论员:Phil Hughes

在您对这本关于 Linux 内核的新书过于兴奋之前,让我澄清一下——The Basic Kernel 实际上是关于 386BSD 的。如果您是一位精通操作系统的专家,那么您已经从作者的名字中推断出来了;Bill 和 Lynne Jolitz 是 386BSD 的创造者。那么,为什么要评论它呢?因为它是一本好书,涵盖了操作系统设计的内部原理——而且 386BSD,它所涵盖的系统,是可获得源代码的。

The Basic Kernel 是题为 Operating System Source Code Secrets 系列的第一卷。该系列的第二本书名为 Virtual Memory。这本书的前三十页解释了为什么需要这样一本书,并定义了内核是什么,以及书中使用的符号。

然后,本书讨论了内核需要完成的代码,并提供带有解释的代码片段。大约 60 页涵盖了与 386 处理器接口所需的汇编代码。由于我不是 386 汇编语言程序员(但具有丰富的系统编程经验),所以我在这里遇到了一些问题。这些解释显然是为具有汇编语言背景的人准备的。我希望看到更多关于“它是如何工作的”的解释。但是,如果您对 386 代码感兴趣,那可能很好。

我对下一章涵盖的 C 代码感到更舒服。该章的开头是后续章节的典型代表,所以我将用它作为一个例子。介绍了 trap.c 例程,以及它的列表和函数的简要说明,然后是对这些函数是什么、如何调用它们以及如何实现的详细解释。实现细节包括带有文本解释的代码片段。

本书以这种风格继续,涵盖 i386/trap.c、i386/cpu.c、kern/config.c、kern/malloc.c、kern/fork.c、kern/exit.c、kern/sig.c、kern/cred.c、kern/priv.c、kern/synch.c、kern/lock.c、kern/execve.c 和 kern/descrip.c。如果您看过或使用过 POSIX 内核,您可能可以猜到这些文件中包含哪些函数。

三个附录涵盖了内核源代码组织、网络级安全和动态 make 文件。本书以章节中包含的练习答案和一个包含所有描述函数的索引结尾。

这本书写得很好,而且,我希望,是准确的。如果您想知道 386BSD 内核是如何工作的,这本书会告诉您。而且,如果您想知道如何实现需要处理 386 硬件的底层功能,这本书在这方面有大量的信息。

这本书不会告诉您 Linux 是如何实现的。虽然在 Linux 中也需要完成同样的任务,但 386BSD 和 Linux 采用了不同的设计决策。当我阅读文本时,很多时候我都在想,“哎呀,我想知道这在 Linux 中是否以同样的方式完成?” 如果您对这种比较感兴趣,那么购买 The Basic KernelLinux Kernel Internals(在Linux Journal,1996 年 12 月评论)可能可以满足您的需求。

Phil HughesLinux Journal的出版商。

加载 Disqus 评论