本书讨论FreeBSD11和12。
免费提供的类Unix操作系统。起始于1979年的BSD。
【略】
BSD代码可供任何人使用,这可能是软件开发史上最自由的许可证。许可证可以概括如下:
【代码版权之争】
386BSD和FreeBSD源自1992年BSD版本。
如果一家公司需要提供大量的互联网带宽,它可能正在运行FreeBSD或其BSD相关产品。
所有FreeBSD开发都是公开进行的。FreeBSD的进展由三组人负责:提交者(committers)、贡献者(contributors)和用户(users)。
大约500名开发人员或【提交者】。
提交者拥有FreeBSD主源代码的读写权限,可以开发、调试或增强系统的任何部分。
committer一词来自他们commit源代码更改的能力。
提交者承担着沉重的责任。
大多数提交者是志愿者,只有少数人会得到报酬。
数千名【贡献者】。提交补丁供提交者参考。
提交者评估贡献者提交的内容,并决定接受和拒绝什么。
积极的贡献者有可能成为提交者。
no good deed goes unpunished——好心没好报
【用户】是运行FreeBSD系统的人。
NetBSD和FreeBSD共享开发人员和代码。
NetBSD的主要目标是提供一个安全可靠的操作系统,可以轻松移植到任何硬件平台。
1996年从NetBSD分支出来,目标是成为最安全的BSD。
第一个支持硬件加速加密的BSD。
默认安装在几年内基本上不受远程攻击。
OpenBSD团队为世界贡献了几款有价值的软件,包括LibreSSL TLS库和OpenSSH套件。
2003年从FreeBSD分支出来。
采用了新的内核消息传递系统(kernel messaging system)。
其HAMMER文件系统支持快照和细粒度历史记录。
苹果公司持续将大量FreeBSD整合到其macOS中。
界面友好、内核强大稳定。
但包含了许多互联网服务器不需要的东西,而且它只在苹果硬件上运行。所以不建议将其用于廉价的通用服务器。
最著名的Unix。
gobs是一个技术术语,意思是比你可能需要的更多。
主要在Sun制造的SPARC硬件平台上运行,这使Sun能够支持有趣的功能,如热插拔内存和主板。
甲骨文公司在2009年收购Sun公司时收购了Solaris。2016年停止了Solaris开发。
在Oracle收购Sun的几年前,Sun开源了Solaris的大部分内容,并赞助了OpenSolaris项目来改进该代码库。后来Oracle关闭源代码访问并收回所有OpenSolaris资源。
OpenSolaris社区讲OpenSolaris分叉为illumos。
FreeBSD包括OpenSolaris的两个重要特性,ZFS和DTrace。
DTrace是一个完整的系统跟踪系统。
来自IBM,最出名的是日志文件系统,它记录所有发生的磁盘事务,并允许从崩溃中快速恢复。
AIX最初是基于BSD的,但AT&T机会对所有东西都进行了处理,所以今天你不会找到太多的BSD。
Unix的近亲,从头开始编写的。
在很多方面与FreeBSD相似。
任何分发Linux的用户都必须将其更改提供给最终用户。
Linux developers believe in share-and-share-alike, while BSD developers offer a no-strings-attached gift to everyone.
BSD和Linux阵营之间的所谓冲突多数是存在于菜鸟之间。大多数开发人员都以友好和开放的方式进行沟通和合作。
曾经的竞争者包括Silicon Graphics(硅谷图形公司)的IRIX、惠普的HP/UX、Tru64 Unix和灾难性的SCO Group的UnixWare。
废弃的产品包括苹果的A/UX和微软的Xenix。
Unix是 The Open Group的商标。
Unix认证不仅要求供应商必须证明该操作系统符合当前版本的单一Unix规范(持续的测试和重新认证需要花费资金),而且要求有人签署一份文件,声明他/她不仅对系统符合单一Unix规范负责,而且他/她将修复未来发现的任何与标准的偏差。FreeBSD的开发模式使这一点变得更困难,没有人能签署一份保证100%符合标准的文件。
FreeBSD项目的目标是提供一个可自由再分发、稳定和安全的操作系统,在人们最有可能访问的计算机硬件上运行。也可以移植到各种不太常见的平台上。
FreeBSD对硬件的基本要求较少,可以将更多的资源用于更上层的软件。
pkg、ports collection。
第十五章将讨论packages,第十六章将讨论ports。
FreeBSD提供了一个无痛的升级过程,也允许你为硬件精确定制操作系统。
文件系统是信息在物理磁盘上存储的方式。
第十一章讨论UFS,第十二章讨论ZFS。
UFS已经存在了几十年,具有高度的抗损伤性。ZFS更年轻,但包括网络复制和自愈等功能。
FreeBSD的历史表明它对网络服务有着强烈的偏好:网络、邮件、文件和辅助应用程序。
它是任何网络服务的底层平台的绝佳选择。
Mac比FreeBSD更适合做桌面系统,除非是为了学习FreeBSD。
NetBSD适合古老或古怪的硬件。
对安全有极致最求的,可以考虑OpenBSD。
如果你需要的软件只能在专有操作系统上运行,你的选择是非常明确的。
此书设计是从头到尾阅读一次。每一章都是建立在前面知识的基础上的。
此书针对新的Unix管理员。
三十年前,一般的Unix管理员都有内核编程经验,并且正在攻读计算机科学硕士学位。
即使在十年前,他们已经是一名熟练的Unix用户,拥有真正的编程技能,并且大部分拥有计算机科学学士学位。
今天,类Unix操作系统是免费的,电脑比食物便宜,甚至12岁的孩子也可以运行Unix、阅读源代码,并学习到足以恐吓老鸟的东西。
要充分发挥这本书的潜力,你需要熟悉一些基本任务,例如如何更改目录、列出目录中的文件以及使用用户名和密码登录。建议先阅读《Unix系统管理手册》(UNIX System Administration Handbook)。
还需要了解一些硬件知识。
最好的学习方法就是自作自受。
建议清除主机上的操作系统,转向FreeBSD。运行原始的FreeBSD,而不是TrueBSD或GhostBSD那样的衍生物。
学习操作系统就像学习一门语言,全身心投入是最快、最有力的学习方式。
如今许多Unix系统管理员都有Windows背景。
Unix不会适应你,你必须适应它。
如今大多数Unix系统都自带漂亮的GUI,但它们只是视觉上的糖果。
无论桌面看起来多美观,真正的工作都发生在命令行上。
Unix命令行实际上是Unix的优势之一,它对其无与伦比的灵活性负责。
Unix的基本哲学是许多小工具,每一个都能很好地完成一项工作。
习惯于GUI环境的人可能不熟悉Unix如何处理输入和输出。他们习惯于点击一些东西,然后看到一条OK消息、一个错误、nothing,或者(经常)一个漂亮的蓝屏,上面有漂亮的高科技字母,用极客语言解释系统崩溃的原因。
Unix的做法有点不同,Unix程序有三个通信通道或管道:标准输入、标准输出、标准错误。
了解这些管道中的每一个是如何工作的,有助于你了解整个系统。
标准输入(standard input)是信息的来源。可能的来源有:键盘输入、网络、文件、另一个程序或其他来源的数据。
标准输出(standard output)是显示程序输出的地方。通常是控制台(屏幕)、网络、文件、另一个程序或其他可用的地方。
最后,标准错误(standard error)是程序发送错误消息的地方。控制台程序经常将错误返回到控制台;其他人在文件中记录错误。如果你设置的程序不正确,它可能会丢弃所有错误信息。
这三个管道可以任意排列。例如可以将错误信息重定向到一个文件;如果你不想在命令中重复键入大量信息,可以将信息放在一个文件中,并将该文件转储到命令的标准输入中;或者直接将第一个命令的输出通过管道发送到第二个命令。
从逻辑的极端来看,这些输入/输出管道和各种工具似乎势不可挡。
xxxxxxxxxx
$ tail -f /var/log/messages | grep -v popper | grep -v named &
小而简单的程序和管道提供了几乎无限的灵活性。
Unix没有Windows风格的注册表。程序、账户信息和系统配置都存储在文件中。
更重要的是,系统将系统硬件识别为文件。
【略】