2.10. 文档约定

系统手册页以 名称(数字) 的格式引用,其中数字是手册的章节号。 表示“不指向任何地方”的指针值称为 NULL; C 编译器在大多数需要指针的情况下会将整数 0 转换为 NULL 值,但请注意,C 标准中没有任何内容要求 NULL 实际上由一系列全零位实现。 C 和 C++ 特别对待字符 '\0' (ASCII 0),本书中将此值称为 NIL(通常称为“NUL”,但“NUL”和“NULL”听起来相同)。 函数和方法名称始终使用正确的大小写,即使这意味着某些句子必须以小写字母开头。 我使用术语“类 Unix”来表示 Unix、Linux 或其他底层模型与 Unix 非常相似的系统; 我不能说 POSIX,因为有些系统(例如 Windows 2000)实现了 POSIX 的一部分,但具有截然不同的安全模型。

攻击者被称为“attacker”、“cracker”或“adversary”,而不是“hacker”。 一些记者错误地使用“hacker”一词代替“attacker”; 本书避免这种误用,因为许多 Linux 和 Unix 开发人员在传统的非恶意意义上将自己称为“hacker”。 对于许多 Linux 和 Unix 开发人员来说,“hacker”一词仍然仅仅意味着专家或爱好者,尤其是在计算机方面。 诚然,一些黑客会 совершать 恶意或侵入性行为,但许多其他黑客不会,并且声称所有黑客都执行恶意活动是不公平的。 许多其他词汇表和书籍都指出,并非所有黑客都是攻击者。 例如,行业咨询委员会信息保障 (IA) 特别兴趣小组 (SIG) 的 信息保障词汇表 将 hacker 定义为“一个热衷于深入了解计算机和计算机网络内部运作的人。 该术语在负面语境中被误用,应该使用 'cracker'。” 术语文件hacker 有一个冗长而复杂的定义,开头是“一个人,他喜欢探索可编程系统的细节以及如何扩展它们的能力,而不是大多数用户,他们宁愿只学习最少的必要知识。”; 它指出,尽管有些人使用该术语来表示“一个恶意的干预者,试图通过窥探来发现敏感信息”,但它也指出,这种定义已被弃用,并且此含义的正确术语是“cracker”。

本书使用“新”或“逻辑”引号系统,而不是传统的美国引号系统:如果标点符号不是被引用材料的一部分,则引号信息不包括任何尾随标点符号。 虽然这可能会导致排版美观性略有损失,但传统的美国系统会导致无关字符被放置在引号内。 这些无关字符对散文没有影响,但在代码或计算机命令中可能是灾难性的。 我使用标准美式(非英式)拼写; 我还没有遇到过任何大陆的英语使用者对此有疑问。