> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/openbsd/install-and-configure/introduction.md).

# 引言

## 概述

本章介绍 OpenBSD 操作系统。内容涵盖项目起源、指导原则、开发实践、许可证策略与技术重点，让读者在进入安装与配置主题前，先对系统及其目标有基本认识。

## 历史背景

OpenBSD 始于 1995 年，从 NetBSD 分叉而来。Theo de Raadt 离开 NetBSD 核心团队后创立了该项目。最初动机是建立开放、可供公众讨论与审视的开发环境，并格外注重代码质量与安全。

OpenBSD 自创立起便与众不同：不仅关注正确性与性能，更注重主动的安全措施与宽松的许可证。项目很快在代码审计、按时发布与内置加密功能上建立了声誉。随着时间推移，OpenBSD 引入了许多安全新技术，后来其他操作系统纷纷采用。

OpenBSD 项目总部位于加拿大阿尔伯塔省卡尔加里，但拥有遍及全球的开发者社区，通过 CVS 与邮件列表协作。项目口号“Secure by default”（默认即安全），体现了其使命：交付默认安全、攻击面最小的操作系统。

## 项目目标与开发模式

OpenBSD 项目遵循一组核心原则，这些原则决定了项目的架构、策略与发布流程。项目强调代码简洁正确，谨慎集成新特性，并坚持开放的开发方式。系统中的任何改动都会从可移植性、正确性、安全影响与可维护性四个方面接受审查。

开发通过中央 CVS 仓库协调。开发者提交补丁，合并前需经审查。项目不提供匿名提交权限。日常快照与半年一次的发行版均来自此仓库。代码改动立即公开，系统的方方面面都可供检视。

与从外部来源拼凑软件包的发行版不同，OpenBSD 提供自洽的基本系统，接口与文档保持一致。用户应查阅手册页了解具体技术行为。手册页与代码同等用心维护。

## 发布流程

OpenBSD 遵循严格的半年发布周期。新版本在五月与十一月发布。版本以数字命名，例如 7.7 或 7.8，可用于生产环境，视为稳定版本。

每个版本会获得约一年的二进制安全补丁支持。补丁通过 `syspatch(8)` 分发，仅适用于受支持的架构。对希望紧跟开发进度者，项目还提供每日快照。

发布工程强调稳定性与正确性。尚未就绪的特性会推迟，而非仓促发布。所有受支持的架构在版本定稿前都必须成功构建并启动。

## 许可证与代码复用

OpenBSD 偏好宽松的软件许可证，例如 ISC 许可证与 BSD 许可证。项目尽量避免引入 GNU 通用公共许可证（GPL）下的代码。这一策略让其他系统与组织可以更自由地复用 OpenBSD 代码，不受法律限制。

基本系统作为一个整体开发，核心组件与第三方组件一视同仁。这样项目就能在整个代码库上保持高度一致，并完成审计。

其他系统广泛采用 OpenBSD 代码。典型例子包括 FreeBSD 采用 `pf(4)`、几乎所有类 Unix 平台都使用 OpenSSH，以及许多环境集成了 OpenBSD 的 malloc 实现。

## 支持的架构

OpenBSD 高度重视可移植性，支持大量硬件架构。截至当前版本，官方支持的平台包括 amd64、arm64、macppc、riscv64 等。每个受支持平台在发布前都必须通过完整的系统构建、回归测试与启动验证。

多架构支持确保 OpenBSD 保持可移植、结构清晰，可适应嵌入式系统、桌面与高性能服务器等多种部署环境。架构的增减取决于硬件可获得性、开发者兴趣与构建质量。

## 安全理念

OpenBSD 把安全视为设计原则，而非被动应对的过程。项目通过代码审计、基于编译器的缓解措施与系统调用限制，主动应对潜在的漏洞类别。

以下若干特性源自 OpenBSD：

* W^X 内存保护，强制可写内存区不可执行
* `pledge(2)` 与 `unveil(2)`，限制进程能力与文件系统访问
* 内核与用户态集成的加密支持
* 基于 `pf(4)` 的默认拒绝网络过滤策略
* libc 中安全的内存分配例程

安全特性通常默认启用。例如，用户态二进制文件编译时启用栈保护，受支持平台启用 ASLR，默认安装只启用必要服务。

## 文档与手册页

OpenBSD 文档的首要来源是手册页系统。每个工具、系统调用、配置文件与守护进程都以一致且维护良好的格式记录在案。

手册页按章节分类。例如，`rcctl(8)` 记录系统管理工具，`vm.conf(5)` 描述配置文件格式。出现信息冲突时，以手册页为权威参考。

OpenBSD 手册提供更高层次的解释、结构化指引与上下文信息——这些内容并不适合放进参考手册。建议读者在阅读手册页的同时参考本手册，并用源码核对命令与选项。

## 社区与支持

OpenBSD 维持着规模不大但技术过硬的社区。项目不设官方论坛或面向用户的支持机构。交流主要通过 `misc@openbsd.org` 等邮件列表进行，实时交流则在 Libera.Chat 的 `#openbsd` 等 IRC 频道。

提问应具体、做过功课，并附上相关系统输出。社区文化推崇自力更生、完善文档与可复现的缺陷报告。

缺陷跟踪通过邮件列表进行，而非基于网页的跟踪系统。补丁与问题报告应以纯文本提交，开发者可能直接回复，要求补充说明或额外诊断信息。

OpenBSD 鼓励用户审计、理解并贡献代码。所有代码公开可访问，凡符合项目目标的贡献都受欢迎。

## 使用场景

OpenBSD 是一款通用操作系统，强调正确性、代码清晰与安全。凡是重视透明度、可审计性与可预期行为的场景，OpenBSD 都适用。凭借宽松的许可证与完整的源码获取，OpenBSD 尤其适合长期基础设施、教育、研究与开发环境。

许多机构将 OpenBSD 部署在对安全敏感、面向网络的场景。系统内置高质量 TCP/IP 协议栈、健壮的守护进程实现，并原生支持现代基础设施常见的功能。

典型用例包括：

* **互联网服务**：OpenBSD 常用于提供面向互联网的核心服务，包括：
  * 用 `httpd(8)` 或 `relayd(8)` 搭建 Web 服务器
  * 用 `smtpd(8)` 搭建邮件服务器
  * 用 `nsd(8)` 与 `unbound(8)` 提供 DNS 解析器与权威域名服务器
  * 通过 SSH 用 `sftp`、`scp` 或 `rsync` 安全地传输文件
  * 用 `ipsecctl(8)` 或 `openiked(8)` 搭建 VPN 端点
* **网络基础设施**：OpenBSD 可作为可靠、可维护的路由系统的基础：
  * 用 `OpenBGPD` 进行 BGP 路由
  * 通过 `OpenOSPFD` 与 `OpenRIPD` 进行 OSPF 与 RIP 路由
  * 用 `carp(4)` 搭建高可用集群
  * 用 `relayd(8)` 做负载均衡与代理
  * 用 `pf(4)` 做 NAT 网关与包过滤
* **防火墙与网关**：许多人将 OpenBSD 部署为加固的边界系统：
  * 基于 `pf(4)` 的有状态防火墙
  * NAT 与端口重定向
  * DHCP 与 DNS 中继服务
  * 流量整形与过滤
* **开发与测试**：OpenBSD 常被需要可复现、最小环境的软件开发者选用，提供：
  * 可预期的基本系统，无隐藏依赖
  * 干净的基于 C 的用户态与编译器工具链
  * 安全的默认配置与基于 `pledge(2)`、`unveil(2)` 的强用户态隔离
* **研究与教育**：OpenBSD 为以下场景提供完全可审计、自洽的系统：
  * 操作系统研究与内核插桩
  * 安全软件设计研究
  * 网络协议实验
  * 系统编程与 C 语言教学
* **嵌入式与设备系统**：凭借极简与行为一致，OpenBSD 常被选作嵌入式系统、定制设备与无头部署的平台。

OpenBSD 虽然支持 X11、音频设备与无线网络，但优势在于简洁、可靠与可验证。基于 OpenBSD 构建的系统更易于推理、测试与长期维护，不会出现依赖漂移或配置歧义。因此 OpenBSD 是工程师、管理员与研究人员的优选——他们要求系统行为与文档完全一致。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/openbsd/install-and-configure/introduction.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
