OpenBSD FAQ - 对 OpenBSD 的简介¶
关于 OpenBSD¶
OpenBSD 项目提供了一个自由可用的基于 4.4BSD 系统的多平台 UNIX 系操作系统。我们的目标聚焦于正确性、安全性、标准化和可移植性。
为什么我要使用OpenBSD?¶
这是我们认为 OpenBSD 是一个很有用操作系统的原因:
- OpenBSD 可以运行在许多不同的硬件平台上
- OpenBSD 在无数的源代码审查后,被各安全专家视为最安全的 UNIX 系操作系统
- OpenBSD 是一个具有免费且具有完整特性的 UNIX 系操作系统,并同时以源代码和二进制格式提供
- OpenBSD 集成了最先进适用的安全技术,可以被用作构建防火墙以及在分布式环境中构建私有网络服务
- OpenBSD 受益于在各个区域强大的持续开发进程,提供了与新兴技术、国际化开发者社区和最终用户合作的机会
- OpenBSD 努力最小化自定义和微调的需求。对于庞大的主要用户群体而言,OpenBSD 就在他们的硬件上为应用而良好工作
OpenBSD 真的是自由的吗?¶
OpenBSD 完全是自由的。二进制文件是自由的,源代码也一样。OpenBSD 的所有组成部分都有为自由的再发行提供的合理的版权许可条约。更多关于 OpenBSD 的版权政策可以在此被找到。
OpenBSD 的主要维护者自掏腰包维护此项目。这包括为他们为编程花费的时间,用来支持许多移植的设备,用来为您发行 OpenBSD 所用的网络资源以及解答问题和研究 Bug 报告的时间。OpenBSD 的开发者们并不富有,不过小小的时间,设备以及资源的投入也可以产生极大的作用。
基本系统中包含什么?¶
OpenBSD发行时带有大量的第三方软件包,包括:
OpenBSD 团队经常为第三方产品提供补丁,这通常是为了提升代码的安全性或是质量。很多自制的软件也被包含其中。附加的应用可以作为 package 而可用。
为什么 xxx 被包含了/没被包含?¶
人们经常询问为什么某个软件被包含或者没有被包含在 OpenBSD 中。答案主要基于两个点:开发者们的愿望和与此项目目标的兼容性。授权协议经常是最大的问题:我们希望 OpenBSD 保持对全世界任何人对于任何目的的可用性。
下一个发行版本何时发布?¶
OpenBSD 团队大约每六个月发布一个新版本,预计时间为五月和十一月。更多关于开发周期的信息可以在此被找到
硬件支持¶
OpenBSD 可以运行在以下平台上:
详细的硬件支持细节位于各自的平台页面上。
手册页¶
OpenBSD带有大量man页面形式的手册页。它们是OpenBSD权威的信息源,因此相当多的工作被进行来确保他们最新且精确无误。对系统进行更改的开发者应当随他们对代码的更改更新手册页。而对于用户,在寻求帮助前也应当先查看手册页。
这是一个一些对于新用户有帮助的手册页的列表:
- afterboot(8) - 在第一次完全启动后应当检查的东西
- help(1) - 对于新用户和管理员的帮助
- hier(7) - 文件系统的结构
- man(1) - 显示手册页
- adduser(8) 以及 rmuser(8) - 添加和移除新用户
- reboot(8), halt(8) 以及 shutdown(8) 停止和重启系统
- syspatch(8) - 应用安全和可靠性更新
- sysupgrade(8) - 更新到下一个 OpenBSD 发行版或者一个更新的快照版
- dmesg(8) - 重新显示内核启动信息
- doas(1) - 以另一个用户的身份运行命令
- tmux(1) - 终端复用器
- ifconfig(8) - 配置网络接口参数
- ftp(1) - 从网络上下载文件(支持 FTP/HTTP/HTTPS 协议)
- login.conf(5) - 登陆配置文件的格式
- sendbug(1) - 报告一个你找到的 Bug
全部的OpenBSD手册页可以在 man.openbsd.org 网站或 man70.tgz
文件中被找到。
总之,如果您知道一个命令或者手册页的名字,你可以通过运行 man 命令
来阅读它。如果你不知道命令的名字,或者如果 man 命令
没有找到手册页,你可以通过运行 apropos 一些东西
或者 man -k 一些东西
来查找数据库,“一些东西”就是一个很可能在您要查找的手册页标题中出现的单词。
$ apropos "time zone"
tzfile(5) - time zone information
zdump(8) - time zone dumper
zic(8) - time zone compiler
这些括号里面数字表示该手册页存在的章节。在一些情况下,您可能会遇到分散在不同章节中却有相同标识符的手册页。例如,假设您想要知道cron守护进程的配置文件格式。只要您知道您想要的手册页所在的章节,您可以运行 man n 命令
,其中n是手册章节序号。
$ man -k cron
cron(8) - clock daemon
crontab(1) - maintain crontab files for individual users
crontab(5) - tables for driving cron
$ man 5 crontab
邮件列表¶
OpenBSD 项目包含几个你可以订阅和跟进的邮件列表。比较受欢迎的邮件列表有:
- announce - 公告和安全警报
- bugs - 通过sendbug(1)收到的bug反馈及相关讨论
- misc - 总的用户问题和解答
- ports - 讨论ports源码树
- source-changes - 自动构建的CVS源码树改动
- tech - OpenBSD开发者和高级用户对技术话题的讨论
在向任何邮件列表发送问题之前,请检查邮件列表的归档中已经被无数次问过的问题。即使您可能是第一次遇到此问题,邮件列表中的其他订阅者可能在上周刚见过这个问题几次,不太希望再见到它。如果询问的问题可能与硬件相关,请一定在邮件中包含完整的 dmesg(8) 输出。
你可以找到几个邮件列表的归档,其他的指导和更多的信息位于邮件列表页面上。对于邮件列表的订阅可以很容易通过Web界面完成。
(从其他系统)迁移到 OpenBSD¶
如果您已经读过其他关于 Unix 类系统的优秀的著作,理解了 Unix 哲学并也将你的知识面扩展到了某一个特定平台上,您将会对 OpenBSD 感到非常熟悉。
这里有一些 OpenBSD 和其他 Unix 变种之间最经常被遇到的差别:
- OpenBSD 是一个 BSD 风格的 Unix 系统,紧密遵循这 4.4BSD 的设计思想。Linux 与 Solaris 是 System V 风格的操作系统。一些 Unix 系操作系统混合着 System V 与 BSD 的风格。一个因此经常造成混乱的地方是启动脚本。OpenBSD 使用rc(8)系统。
- OpenBSD 是一个完整的系统,各个部分应当保持同步。它并不是可以被独立升级的、一个内核和一套工具的聚合体。
- OpenBSD 维护着一套ports源码树来提供第三方软件。预编译的包(packages)由 OpenBSD ports 团队创建和维护。
- OpenBSD 使用 CVS 来追踪代码更改。OpenBSD 提倡匿名 CVS,其允许任何人在任何时刻提取 OpenBSD 任何版本的完整源代码。其也包含一个 Web 界面。
- OpenBSD 已经通过了重度不间断的安全性审查来确保代码的质量与安全性。
- OpenBSD 不支持日志文件系统。相反,我们使用快速文件系统(Fast File System,FFS)的软同步特性。
- OpenBSD 带有包过滤器(Packet Filter,PF)。这意味着网络地址转换(NAT),队列等待与包过滤由 pfctl(8),pf(4) 和 pf.conf(5) 处理。
- OpenBSD 的默认 Shell 是 ksh,其基于位于公有领域的 Korn Shell。例如 bash 的其他 Shell 可以从包中被添加。
- 设备由驱动程序命名,而不是通过设备类型命名。换而言之,没有
eth0
eth1
设备。对于一个 Intel PRO/1000 以太网卡,命名可能是em0
;对于 Broadcom BCM57xx 或者 BCM590x 以太网设备,命名可能是 bge0;对于一个 RaLink 无线设备,命名可能是 ral0,诸如此类。 - OpenBSD/i386,amd64 和其他几个平台使用双层磁盘分区系统,其中第一层是 fdisk BIOS 可见的分区,第二层是盘标(disklabel)
- 一些其他的操作系统鼓励你为你的机器定制内核。OpenBSD 用户则被鼓励着使用开发者提供的标准通用内核。
报告 Bug¶
报告 Bug 是最终用户最重要的责任之一。为了确定较严重的问题,需要极其详细的有关细节。例如,以下即是一份恰当的 bug 报告:
From: user@example.com
To: bugs@openbsd.org
Subject: 3.3-beta panics on a SPARCStation2
OpenBSD 3.2 installed from an official CD-ROM installed and ran fine
on this machine.
After doing a clean install of 3.3-beta from a mirror, I find the
system randomly panics after a period of use, and predictably and
quickly when starting X.
This is the dmesg output:
[...]
This is the panic I got when attempting to start X:
panic: pool_get(mclpl): free list modified: magic=78746572; page 0xfaa93000;
item addr 0xfaa93000
Stopped at Debugger+0x4: jmpl [%o7 + 0x8], %g0
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports. Insufficient info makes it difficult to find and fix bugs.
ddb> trace
[...]
Thank you!
另见此页面来得到关于创建和提交 Bug 报告的细节。良好的 Bug 报告应该包括关于发生了什么,您计算机的精确配置和重现问题的方式。只要可能,请使用 sendbug(1) 来报告您的问题。否则,请至少包括您系统的 dmesg(8) 输出。sendbug(1) 命令需要你的系统能够发送邮件。
OpenBSD 邮件服务器使用 spamd(8) 实现灰名单垃圾邮件处理,所以在邮件服务器接受您的 Bug 报告前可能有半个小时左右的时间。请耐心等待。
在提交一个 Bug 反馈之后,您可能会被开发者联系来寻求附加的信息或者是希望您测试的补丁。您也可以关注 bugs@openbsd.org 邮件列表的归档 - 详情见邮件列表。
支持本项目¶
我们对曾经为 OpenBSD 项目作出贡献的人和组织表示极大的感激。
OpenBSD 项目总是需要来自社区的几种不同种类的支持。如果您觉得 OpenBSD 很有用,您可以找一种方式以为它做出贡献: