# DragonFly BSD 系统导论

## DragonFly BSD 概述

DragonFly BSD 是一款具有独特设计理念的类 UNIX 操作系统，其发展历程与 FreeBSD 有着密切的技术渊源和历史联系。

DragonFly BSD（蜻蜓 BSD）是一款基于 FreeBSD 4.8 衍生的类 UNIX 操作系统。该项目由曾参与开发 Amiga（上世纪重要的个人计算平台）的 Matthew Dillon（毕业于加州大学伯克利分校）于 2003 年 6 月启动，并于 2003 年 7 月正式发布于 [FreeBSD 邮件列表](https://lists.freebsd.org/pipermail/freebsd-current/2003-July/006889.html)。

Dillon 启动 DragonFly BSD 项目的核心动因在于对 FreeBSD 5 中采用的 SMP（对称多处理）并行计算架构存在不同的技术判断。SMP 是指多个处理器共享同一个内存空间的架构设计，他认为该设计可能引入不必要的性能开销。这一技术分歧导致了与 FreeBSD 核心开发团队的讨论，并最终促成了独立项目的形成。尽管存在技术路径的差异，DragonFly BSD 与 FreeBSD 项目在错误修复和驱动程序更新等领域仍保持着协作关系。

DragonFly BSD 在继承 FreeBSD 4 技术路线的同时，在多个关键系统层面进行了创新性设计，包括轻量级内核线程实现机制和 HAMMER/HAMMER2 文件系统等核心组件。值得注意的是，DragonFly BSD 的部分设计理念受到了 AmigaOS 架构的启发。

从硬件支持的现状来看，DragonFly BSD 自带 i915 显卡驱动，架构仅支持 x86-64 平台，未提供 Linux 兼容层。其 DPorts 软件包系统与 FreeBSD Ports 保持兼容。需要指出的是，DragonFly BSD 的驱动支持存在一定滞后性，特别是显卡驱动的更新节奏相对较慢。

捐赠 DragonFly BSD：[Sponsoring projects](https://www.dragonflybsd.org/donations/)，目前仅支持国际 PayPal。

> **注意**
>
> DragonFly BSD 的文档相对陈旧，但这并不能反映其实际开发进度。事实上，DragonFly BSD 的开发仍然活跃，不应因官方文档的陈旧而被劝退。

## 安装 DragonFly BSD

了解 DragonFly BSD 的基本信息后，就可以开始进行系统安装了。下面介绍 DragonFly BSD 的安装步骤。

安装视频：[安装 DragonFly BSD 6.4](https://www.bilibili.com/video/BV1BM41187pD/)

DragonFly BSD **RELEASE** 版本下载页面在 <https://www.dragonflybsd.org/download/>。开发版 **Bleeding-edge** 下载页面在 <https://docs.dragonflybsd.org/user-guide/download/>。

U 盘安装应使用 `USB: dfly-x86_64-6.4.0_REL.img as bzip2 file`：先解压出 `dfly-x86_64-6.4.0_REL.img`，然后使用 Rufus 将其刻录到 U 盘。IMG 镜像与 ISO 镜像不同，IMG 是原始磁盘镜像格式，包含完整的分区表和文件系统结构，适合直接写入 USB 存储设备。

本文示例使用 `Uncompressed ISO: dfly-x86_64-6.4.0_REL.iso`。

***

### 启动安装盘

准备好安装介质后，开始启动安装程序。

![启动安装程序](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-80ded5ccf8a17afa3fdd1c83b3b2ab2eaa6b589b%2Fdragonflybsd1.png?alt=media)

输入用户名 `installer`（即安装的意思）开始安装。

![输入用户名](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ed1841565e993b53327f93e072f9f8029bb763b5%2Fdragonflybsd2.png?alt=media)

选择 `Install DragonFly BSD`（安装 DragonFly BSD 系统）。

![安装 DragonFly BSD 系统](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b08f0d8cb328c9592c5362b0375e8d5d02738567%2Fdragonflybsd3.png?alt=media)

选择 `Install DragonFly BSD`（安装 DragonFly BSD）。

![安装 DragonFly BSD](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5b33fc5c599d6be80f4c3095f34f2a4fbbd25259%2Fdragonflybsd4.png?alt=media)

### 写入硬盘与引导

完成初始引导后，需要进行硬盘写入和引导配置。本文基于 UEFI，选择 `UEFI`。新电脑（2016+）都应选择 UEFI。UEFI 是统一可扩展固件接口，是传统 BIOS 的替代方案，提供了更现代的启动机制。

![初始引导后](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-87d22e2a647e3955e0a7d04d26e00ceaf14ee8f9%2Fdragonflybsd5.png?alt=media)

选择要安装的硬盘。

![选择要安装的硬盘](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-85844fbd1978588db89b9f10e27dbb149650251b%2Fdragonflybsd6.png?alt=media)

确认硬盘。

![确认硬盘](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-535417ea905912d8ca564b398d1ad1373b593461%2Fdragonflybsd7.png?alt=media)

格式化完成。

![格式化完成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-e9510f90f69db641acaf5448239b72d9cb782505%2Fdragonflybsd8.png?alt=media)

选择文件系统，此处选择 `HAMMER2`。HAMMER2 是 DragonFly BSD 开发的下一代文件系统，支持快照、校验和等特性。

![选择文件系统](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-1357276481e0456aa7c863b90c56671c834370c8%2Fdragonflybsd9.png?alt=media)

进行分区操作，完毕后选择 `Accept and Create`（确认并创建）。

![进行分区操作](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7a08ffb50805ccefb8323ee90f3510429a61c018%2Fdragonflybsd10.png?alt=media)

警告信息，点击 `OK` 确认。

![警告信息](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b519796e8c0c6a6ca8601b999359295a0c11db60%2Fdragonflybsd11.png?alt=media)

`Begin Installing Files`（开始安装文件）。

![开始将文件解压到硬盘](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c143221e494c6baad8277449302dd43d4ca649ae%2Fdragonflybsd12.png?alt=media)

正在将文件解压到硬盘。

![正在将文件解压到硬盘](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c06b2b47b5c17ec4c8c09aa2b40f425781199df2%2Fdragonflybsd13.png?alt=media)

### 配置系统

文件安装完成后，需要对系统进行基本配置。选择 `Configure this System`（配置此系统）。

![配置系统](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ad59eadab455b1048fa3bb8534ad53131b9b5a12%2Fdragonflybsd14.png?alt=media)

配置时区（`Select timezone`）：

![配置时区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-92c99dbc1016da63faa176bd127ee46a5043ea4a%2Fdragonflybsd15.png?alt=media)

选择 `No`，手动配置时区：

![手动配置时区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-0e9dc42ea32974429fec2b6d71e1b67a810964b5%2Fdragonflybsd16.png?alt=media)

选择 `Asia`，亚洲：

![时区选择亚洲](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-f862d267fe83fcae185bb6d8b38b146262df7b8b%2Fdragonflybsd17.png?alt=media)

选择 `Shanghai`，上海，即北京时间：

![时区选择上海](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-34f93623eb9dc1f91a0dbf9c9954e9403bc5ef95%2Fdragonflybsd18.png?alt=media)

时区配置完成。

![时区配置完成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-955b71e61ddbf2b723e7cbb6e77be0330a56ed84%2Fdragonflybsd19.png?alt=media)

设置日期和时间（`Set date and time`）：

![设置日期和时间](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-33d7d421ea4fb5d374a8ec04dc47e94b600bdca0%2Fdragonflybsd20.png?alt=media)

点击 `OK` 完成配置。

![完成配置](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3e77a00cd3c5d1aed05824eb26ef090502d227c6%2Fdragonflybsd21.png?alt=media)

时间和日期配置完成。

![时间和日期配置完成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7bfe7645382d55a896aa306fa350b0903b2ce845%2Fdragonflybsd22.png?alt=media)

键盘布局（`Set keyboard map`）无需配置，使用默认设置即可。

![键盘布局](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-79f143251ff0839c231ad91a13c543f4140ed813%2Fdragonflybsd23.png?alt=media)

设置 root 密码（`Set root password`）：

![设置 root 密码](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5e6893f7ba1bcb48910e1d93d5a2d9a0c85a9a19%2Fdragonflybsd25.png?alt=media)

输入密码并确认：

![输入密码并确认](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-80805a3405bc21af485d055b56ea9c9ad95fca7b%2Fdragonflybsd26.png?alt=media)

root 密码设置完成。

![root 密码设置完成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-dd246feacf257e09fb8c740e4632206a29199d7e%2Fdragonflybsd27.png?alt=media)

添加用户：

![添加用户](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-039c3fdf3876fd01955066e5221171332b6bc331%2Fdragonflybsd28.png?alt=media)

设置完成后点击 `Accept and Add`（确认并添加）：

![确认并添加用户](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c6db0314da59f3838b47a63da90d28cae9a73726%2Fdragonflybsd29.png?alt=media)

用户添加成功。

![用户添加成功](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-4a0fa2a4f978bc9b677a528174ecbef2dee6bdc2%2Fdragonflybsd30.png?alt=media)

配置网络（`Configure network interface`）：

![配置网络](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-037b907955e9d6473c05f1bc9de3a40f232e591a%2Fdragonflybsd31.png?alt=media)

选择网卡接口：

![选择网卡接口](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-a329e7c72d25a83f65cd4a7db9870e5d24a3c476%2Fdragonflybsd32.png?alt=media)

使用 DHCP：

![使用 DHCP](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-475fdfb0cce263d9f48674a99a33cf96d45bd7ea%2Fdragonflybsd33.png?alt=media)

配置完成。

![配置完成](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3566e90a31bde8b9a4e79017543033ee3ca1f2a6%2Fdragonflybsd34.png?alt=media)

设置主机名和域名：

![设置主机名和域名](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5c0f3337b966acddb882409505cebaa531e3d439%2Fdragonflybsd35.png?alt=media)

### 结束安装

系统配置完成后，结束安装流程。

![完成设置](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7cb0666aef0049eb10238e408bb38dc87898dc5b%2Fdragonflybsd36.png?alt=media)

结束安装。

![结束安装](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-88685959db734cffce8dc63c9f2fd29b658c31c7%2Fdragonflybsd37.png?alt=media)

重启：

![重启](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7f809cda5f52ee66ded4d9b5ae71e4ed5299359b%2Fdragonflybsd38.png?alt=media)

确认重启。

![确认重启](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ad0e74cc2eaa04ace4bc377731bf34486735204f%2Fdragonflybsd39.png?alt=media)

### 开机

系统重启后，进入 DragonFly BSD 系统。

![登录 DragonFly BSD 系统](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-0d7f7f255ac0c9b60eb14f6465e2f8404c4ab6a0%2Fdragonflybsd40.png?alt=media)

输入用户名 `root`，输入设置的密码，回车即可登录。首次登录后，建议创建普通用户用于日常操作，以提高安全性。

![登录 DragonFly BSD 系统](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5ca83407b7f4561cdeb4b242a27f3ae39eb89590%2Fdragonflybsd41.png?alt=media)

### 故障排除与未竟事宜

在安装和使用 DragonFly BSD 的过程中，可能会遇到问题。以下是已知的问题和注意事项。

* 配置似乎未成功，未输入密码就登录了 root 账户。
* VMware 17 安装失败，无论是否使用 UEFI。
* 对于 NVMe 存储设备的支持可能有限，建议查阅官方硬件兼容性列表。

## 配置 DragonFly BSD

完成系统安装后，需要对 DragonFly BSD 进行一些基本的系统配置。下面介绍 DragonFly BSD 的系统配置方法。

### 网络

网络配置是系统配置的重要组成部分。使用 DHCP 为指定网卡接口获取 IP 地址：

```sh
# dhclient 网卡接口名称
```

网卡接口名称可通过命令 `ifconfig` 查看。

### 软件源

配置合适的软件源可以提高软件安装和更新的速度。可以使用 ee 编辑器编辑 pkg 仓库配置文件 `/usr/local/etc/pkg/repos/df-latest.conf`，找到其中的国内镜像站：将 `no` 改为 `yes`，将之前的源改为 `no`。

```sh
/usr/local/
└── etc/
    └── pkg/
        └── repos/
            └── df-latest.conf  # DragonFly BSD pkg 仓库配置文件
```

> **注意**
>
> 在 DragonFly BSD 6.4 中，该镜像站已被移除，需要手动配置。请读者参考 <https://mirror.sjtu.edu.cn/docs/dragonflybsd/dports>。

### 中文环境

中文环境相关文件结构：

```sh
/etc/
├── csh.cshrc  # C Shell 系统配置文件
└── profile     # POSIX Shell 系统配置文件
```

为了更好地使用中文，还需要配置系统的中文环境。在 `/etc/csh.cshrc` 文件中添加：

```ini
setenv LANG "zh_CN.UTF-8"
```

用于在 C Shell 中将系统语言环境设置为中文 UTF-8。

在 `/etc/profile` 文件中找到相关条目，并按如下方式修改（**需测试**）：

```ini
export LANG="zh_CN.UTF-8"       # 设置系统语言环境为中文 UTF-8
export LC_ALL="zh_CN.UTF-8"     # 设置所有本地化环境变量为中文 UTF-8
export LC_CTYPE="zh_CN.UTF-8"   # 设置字符类型本地化为中文 UTF-8
```

### Intel i915kms 显卡驱动

DragonFly BSD 对 Intel 显卡有特定的支持要求。[根据硬件说明](https://www.dragonflybsd.org/docs/supportedhardware)，DragonFly BSD 6.4 显卡只支持到英特尔第八代（Coffeelake）处理器。

## 参考文献

* Michael Larabel. DragonFlyBSD Updates Its Graphics Drivers With New GPU Support But Still Years Behind\[EB/OL]. (2024-06-11)\[2026-03-25]. <https://www.phoronix.com/news/DragonFlyBSD-DRM-Linux-4.20.17>. 2025 年，DragonFly BSD DRM 驱动程序代码方才与 Linux 4.20.17 中的代码同步。
* Booting, UEFI, and text consoles\[EB/OL]. (2017-09-14)\[2026-03-25]. <https://www.dragonflydigest.com/2017/09/14/booting-uefi-and-text-consoles/>. 详述了 DragonFly BSD 的 UEFI 启动机制与文本控制台配置方法。

## 课后习题

1. 在 QEMU 或 VirtualBox 中安装 DragonFly BSD 并使用 HAMMER2 文件系统，查找 HAMMER2 的相关文档，尝试创建一个快照并验证其功能。
2. 查找 DragonFly BSD 中与 SMP 相关的内核源代码或文档，对比其与 FreeBSD 的并行计算架构设计差异，分析技术分歧会导致社区分裂的原因。
