FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 中文期刊
  • 编辑日志
  • 2025-123 下游项目
    • FreeBSD 发布工程:新主管上任
    • GhostBSD:从易用到挣扎与重生
    • BSD Now 与将来
    • 字符设备驱动教程(第三部分)
    • 学会走路——连接 GPIO 系统
    • FreeBSD 中对 SYN 段的处理
    • FreeBSD 2024 年秋季峰会
  • 2024-1112 虚拟化
    • 字符设备驱动程序教程(第二部分)
    • 面向 Linux 和 Windows 用户的 bhyve
    • Xen 与 FreeBSD
    • Wifibox:一种嵌入式虚拟化无线路由器
    • 嵌入式 FreeBSD:Fabric——起步阶段
    • DGP:一种新的数据包控制方法
    • 会议报告:我在都柏林的 EuroBSDCon 体验
  • 2024-0910 内核开发
    • 字符设备驱动程序教程
    • VPP 移植到了 FreeBSD:基础用法
    • 利用 Kyua 的 Jail 功能提升 FreeBSD 测试套件的并行效率
    • FreeBSD 上的 Valgrind
    • 嵌入式 FreeBSD:探索 bhyve
    • TCP/IP 历险记:FreeBSD TCP 协议栈中的 Pacing
    • 实用软件:实现无纸化(Paperless)
  • 2024-0708 存储与文件系统
    • FreeBSD 中的 NVMe-oF
    • FreeBSD iSCSI 入门
    • 使用 ZFS 原生加密保护数据
    • 嵌入式 FreeBSD:打造自己的镜像
    • TCP LRO 简介
    • 基于 Samba 的时间机器备份
  • 2024-0506 配置管理对决
    • 基本系统中的 mfsBSD
    • rdist
    • Hashicorp Vault
    • 在 GitHub 上向 FreeBSD 提交 PR
    • 悼念 Mike Karels
    • 2024 年 5-6 月来信
    • 嵌入式 FreeBSD 面包板
    • TCP/IP 历险记:TCP BBLog
    • 实用软件:开发定制 Ansible 模块
  • 2024-0304 开发工作流与集成
    • FreeBSD 内核开发工作流程
    • FreeBSD 与 KDE 持续集成(CI)
    • 更现代的内核调试工具
    • 从零开始的 ZFS 镜像及 makefs -t zfs
    • 提升 Git 使用体验
  • 2024-0102 网络(十周年)
    • FreeBSD 中的 RACK 栈和替代 TCP 栈
    • FreeBSD 14 中有关 TCP 的更新
    • if_ovpn 还是 OpenVPN
    • SR-IOV 已成为 FreeBSD 的重要功能
    • FreeBSD 接口 API(IfAPI)
    • BATMAN:更优的可移动热点网络方式
    • 配置自己的 VPN——基于 FreeBSD、Wireguard、IPv6 和广告拦截
    • 实用软件:使用 Zabbix 监控主机
  • 2023-1112 FreeBSD 14.0
    • LinuxBoot:从 Linux 启动 FreeBSD
    • FreeBSD 容器镜像
    • 现在用 Webhook 触发我
    • 新的 Ports 提交者:oel Bodenmann (jbo@freebsd.org)
  • 2023-0910 Port 与软件包
    • 回忆录:与 Warner Losh(@imp)的访谈
    • 在你自己的仓库中定制 Poudriere 源
    • Wazuh 和 MITRE Caldera 在 FreeBSD Jail 中的使用
    • PEP 517
    • CCCamp 2023 旅行报告
  • 2023-0708 容器与云
    • 在 Firecracker 上的 FreeBSD
    • 使用 pot 和 nomad 管理 Jail
    • 会议报告:C 与 BSD 正如拉丁语与我们——一位神学家的旅程
    • 抒怀之旅:与 Doug Rabson 的访谈
    • 基于 Jail 的广告拦截教程
    • 我们收到的来信
  • 2023-0506 FreeBSD 三十周年纪念特刊
    • CheriBSD 近十多年的历程
    • AArch64:成为 FreeBSD 新的一级架构
    • 岁月如梭:我个人的时间线
    • 安装 FreeBSD 1.0:回顾 30 年前
    • ZFS 是如何进入 FreeBSD 的呢?
    • 我不是来自约克郡的,我保证!
    • 回忆录:采访 David Greenman Lawrence
    • FreeBSD 和早期的 Unix 社区
    • 早期的 FreeBSD 移植
    • FreeBSD 30 周年:成功的秘诀
    • FreeBSD 在日本:回忆之旅与今日之实
  • 2023-0304 嵌入式
    • CheriBSD port 和软件包
    • 让我们来试试 ChatGPT
    • GPU 直通
  • 2023-0102 构建 FreEBSD Web 服务器
    • ZFS 的原子 I/O 与 PostgreSQL
    • 虚拟实验室——BSD 编程研讨会
    • ZFS 简介
    • 会议报告:落基山庆祝女性计算机科学家
    • 进行中的工作/征求反馈:数据包批处理
    • 基金会与 FreeBSD 桌面
  • 2022-1112 可观测性和衡量标准
    • 在 FreeBSD 的 DDB 内核调试器中编写自定义命令
    • DTrace:老式跟踪系统的新扩展
    • 基于证书的 Icinga 监控
    • 活动监控脚本(activitymonitor.sh)
    • 实用 IPv6(第四部分)
    • EuroBSDCon 会议报道
    • 实用 Port:Prometheus 的安装与配置
    • 书评:《用火解决问题:管理老化的计算机系统(并为现代系统保驾护航)》Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones)
  • 2022-0910 安全性
    • CARP 简介
    • 重构内核加密服务框架
    • PAM 小窍门
    • SSH 小窍门
    • 实用 IPv6(第三部分)
    • 书评:Understanding Software Dynamics(深入理解软件性能——一种动态视角)—— Richard L. Sites 著
    • 访谈:保障 FreeBSD 安全性
    • MCH 2022 会议报告
  • 2022-0708 科研、系统与 FreeBSD
    • 在 FreeBSD 上构建 Loom 框架
    • 教授本科生 Unix 课程
    • FreeBSD 入门研讨会
    • 实用 IPv6(第二部分)
    • 在 2022 年及以后推广 FreeBSD
    • 进行中的工作/征求反馈:Socket 缓冲区
    • FreeBSD 开发者峰会报告
    • 支持 Electromagnetic Field 2022
  • 2022-0506 灾难恢复
    • 使用 FreeBSD 构建高弹性的私有云
    • LLDB 14 —— FreeBSD 新调试器
    • 实用 IPv6(第一部分)
    • 利用 netdump(4) 进行事后内核调试
    • 进行中的工作/征求反馈:FreeBSD 启动性能
    • 实用 Port:在 OpenZFS 上设置 NFSv4 文件服务器
  • 2022-0304 ARM64 是一级架构
    • FreeBSD/ARM64 上的数据科学
    • Pinebook Pro 上的 FreeBSD
    • 嵌入式控制器的 ACPI 支持
    • 进行中的工作/征求反馈:Lumina 桌面征集开发人员
    • 实用 Port:如何设置 Apple 时间机器
  • 2022-0102 软件与系统管理
    • 为 FreeBSD Ports 做贡献
    • 使用 Git 贡献到 FreeBSD Ports
    • CBSD:第一部分——生产环境
    • 将 OpenBSD 的 pf syncookie 代码移植到 FreeBSD 的 pf
    • 进行中的工作/征求反馈:mkjail
    • 《编程智慧:编程鬼才的经验和思考》(The Kollected Kode Vicious)书评
    • 会议报告:EuroBSDCon 2021 我的第一次 EuroBSDCon:一位新组织者的视角
  • 2021-1112 存储
    • 开放通道 SSD
    • 构建 FreeBSD 社区
    • 与完美操作系统同行 27 年
    • 进行中的工作/征求反馈:OccamBSD
    • 通过 iSCSI 导入 ZFS ZIL——不要在工作中这样做——就像我做的那样
  • 2021-0910 FreeBSD 开发
    • FreeBSD 代码审查与 git-arc
    • 如何为 FreeBSD 实现简单的 USB 驱动程序
    • 内核开发技巧
    • 程序员编程杂谈
  • 2021-0708 桌面/无线网
    • 通往 FreeBSD 桌面的直线路径
    • FreeBSD 13 中的人机接口设备 (HID) 支持
    • Panfrost 驱动程序
    • 用 Git 更新 FreeBSD
    • FreeBSD 的新面孔
    • 想给你的桌面加点佐料?
  • 2021-0506 安全
    • 七种提升新安装 FreeBSD 安全性的方法
    • copyinout 框架
    • 使用 TLS 改善 NFS 安全性
    • Capsicum 案例研究:Got
    • 对 Jail 进行安全扫描
  • 2021-0304 FreeBSD 13.0
    • 展望未来
    • FreeBSD 13.0 工具链
    • FreeBSD 13.0 中有新加载器吗?
    • TCP Cubic 准备起飞
    • OpenZFS 中的 Zstandard 压缩
    • 会议报告:FreeBSD 供应商峰会
    • Git 不够吗?
  • 2021-0102 案例研究
    • Tarsnap 的 FreeBSD 集群
    • BALLY WULFF
    • Netflix Open Connect
    • FreeBSD 的新面孔
    • 写作学者的 FreeBSD
    • 在世界之巅
  • 2020-1112 工作流/持续集成(CI)
    • FreeBSD Git 快速入门
    • 使用 syzkaller 进行内核 Fuzzing
    • Mastering Vim Quickly 书评
    • 线上会议实用技巧
    • 在控制台上进行网络监控
  • 2020-0910 贡献与入门
    • 采访:Warner Losh,第 2 部分
    • 代码审查
    • 撰写良好的提交消息
    • 如何在不是程序员的情况下做出贡献——成为 FreeBSD 译者
    • 如何成为文档提交者
    • 谷歌编程之夏
    • 为 FreeBSD 期刊撰写文章
    • 你为什么使用 FreeBSD
    • FreeBSD 的新面孔
  • 2020-0708 基准测试/调优
    • FreeBSD Friday
    • 采访:Warner Losh,第 1 部分
    • 构建和运行开源社区
    • 在 FreeBSD 上轻松搭建我的世界(Minecraft)服务器
    • FreeBSD 的新面孔
  • 2020-0506 网络性能
    • 内核中的 TLS 卸载
    • 访谈:Michael W Lucas
    • FreeBSD 桌面发行版
    • 使用 Poudriere 进行 Port 批量管理
    • FreeBSD 的新面孔
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
在GitHub上编辑
导出为 PDF
  1. 2023-0506 FreeBSD 三十周年纪念特刊

回忆录:采访 David Greenman Lawrence

上一页我不是来自约克郡的,我保证!下一页FreeBSD 和早期的 Unix 社区

最后更新于1个月前

  • 原文:

  • 作者:Tom Jones

  • 译者:颜曾一【】为 ykla 注

FreeBSD 项目起初得益于众多人的贡献,但是该项目的早期阶段以及我们最喜爱的操作系统背后的人们并没有得到很详细的报道。作为《FreeBSD 杂志》30 周年纪念问题的一部分,我决定采访那些参与开发初期的人,并了解他们是如何参与其中的。

这是对 David Greenman Lawrence 的第一次采访,他是一个早期的贡献者,为 FreeBSD 赢得了“高性能服务器”的赞誉。接下来的一期中将继续发布其他采访的内容。

Tom Jones:在 FreeBSD 项目开始之前的 80 年代末到 90 年代初,你可以简要解释一下你当时都在做什么吗?

David Greenman Lawrence:那是我二十几岁时的时候,我同时参与了许多不同的事情,也朝着许多看似无关的方向前进。例如,我是一家视频制作公司的技术总监,为有线电视接入提供艺术节目。我共同创办了一家公司,参与建立了美国与俄罗斯远东的“姐妹城市”之间的贸易往来(这是在俄罗斯叶利钦时期的早期)。我创办了一家安装 TVRO 家庭卫星系统的公司(C 波段卫星的 12 英尺天线,而不是今天的小型 Ku 波段天线),同时还作为一个独立承包商为一家电视广播公司提供卫星上行工程服务。我还是一名拥有 DEC PDP-11 和 VAX 系统专业知识的独立承包商(主要是为客户修理硬件)。最后,我还是一个对操作系统开发感兴趣的电脑爱好者。我对 RSTS/E 和 VAX/VMS 进行了一些趣味性的破解。然而,这是非常困难的,因为 DEC 只提供有限的 RSTS/E 源代码,而对于旧版 VAX/VMS 工具,他们只提供汇编程序清单。我学会了成为一个相当不错的 DEC 机器码破解者!我短暂地担任过“波特兰计算机协会”的主席(一个由当地电脑爱好者组成的 501(c)(3) 非营利组织)。这是一段有趣的时光,但正是作为一个操作系统开发爱好者的兴趣,最终让我开始玩弄 2.9 BSD 的源代码,并在我的 PDP-11 系统上运行它。这引导我接触到了 Bill Jolitz 在 1992 年发布的 386BSD 0.0,并参与了“386BSD Patchkit”的开发(由波特兰的同行 Rod Grimes 带领的一个项目)。我为此目的搭建了第一台英特尔 PC,一台带有 4MB 内存的 386SX。然而,Bill Jolitz 并不是一个非常善于“团队合作”的人。他通常拒绝甚至公开嘲笑人们提供的补丁和改进,甚至最终反对在“补丁包”和一个“临时”版本的系统(我们当时称为“386BSD Interim-0.1.5”)中使用他的“386BSD”商标。他坚持要求我们停止使用那个名字,最终,这迫使我们这群爱好者组织了自己的开发项目,完全独立于 Bill Jolitz 之外。

Tom Jones:你是如何接触到 FreeBSD 的呢?当时人们很少讨论如何获取信息,是通过 USENET 吗?(如果是的话,你是如何连接的?)PC BSD 的努力是否在更传统的媒体(杂志等)中得到报道?

David Greenman Lawrence:Julian Elischer 在 comp.unix.bsd 于 1992 年 11 月 17 日发布了一条信息,介绍了一系列为讨论 386BSD(Bill Jolitz 的项目)而设立的邮件列表。我阅读了这篇帖子,并可能在同一天订阅了其中的一些列表。Julian 还在运行 386BSD 的 ref 上设置了一些登录账号,希望人们能够充分利用它们。不过在创建邮件列表之前,我可能已经在那台机器上有一个账号了,但我不能确定,因为当时我对互联网的实时访问非常零散和有限。例如,新闻组和电子邮件是通过 UUCP 传递的。我想我可能需要使用调制解调器拨号到另一台系统以进行 telnet 访问。无论如何,Julian 的 ref 资源并不是我与其他 386BSD 用户的第一个接触。我知道我直接与 Bill Jolitz 和其他一些 386BSD 爱好者有过联系。我因为另一个波特兰地区的项目“RAINet”(“研究和信息网络”)而认识了 Rod Grimes,这是一个早期尝试,旨在将当地的电脑爱好者(Inter)连接到新兴的“全球互联网”,主要通过拨号调制解调器使用 SLIP 进行连接。当时,许多当地的电脑爱好者,其中一些人在英特尔或泰克电子工作,或在波特兰州立大学任教或就读,通过各种活动和社交圈子相互认识(包括我之前提到的波特兰计算机协会)。

Tom Jones:Julian 的机器是我之前没有听说过的。在未来的项目中,我肯定会更深入地研究这个方向。

David Greenman Lawrence:此外,Nate Williams 为 386BSD 的主要参与者建立了一个邮件列表,名为 interim@bsd.coe.montana.edu。大部分讨论发生在 386BSD 0.1 之后的时期,当时我们正在等待 Bill Jolitz 发布 0.2 版本,但这似乎被无限期推迟了。

Tom Jones:你能告诉我你是如何编写 sendfile(2) 函数并且优化它的,使得它能让 ftp.cdrom.com 承载那么大的服务量?

David Greenman Lawrence:Wcarchive(又名 ftp.cdrom.com)成为了我迷恋的对象,也是我在 FreeBSD 开发中的主要动力。Rod Grimes 在 1993 年建立了第一个基于 PC 的版本,但是我很快就开始处理机器每天都会出现的可靠性问题。不久之后,我接手了硬件和软件的管理工作。首要的挑战之一是 Walnut Creek CDROM 公司 1.5Mbps 的 T1 连接到 BARRnet 的非常有限的带宽。即使在那个非常早期的时候,wcarchive 也是当时最受欢迎的共享软件的 FTP 分发库。T1 连接一直以 24x7 的方式工作,大部分时间丢包率超过 50%。事实上,T1 连接超载导致了 BARRnet 的严重拥塞问题,对其他客户产生了不利影响。Bob Bruce (cdrom.com 的所有者) 提议将 T1 升级为 45Mbps 的 T3,但那个时候这个想法被证明是不切实际的(甚至不可能)。我想是 BARRnet/BBN 的某个人建议将服务器迁移到斯坦福大学位于圣何塞的数据中心(该地区的主要 BARRnet/BBN POP),这将缓解与 T1 连接的拥塞问题。因此,在 1994 年 9 月,我搭建了一台新机器,并将其部署在斯坦福大学。当然,没有人真正知道 T1 连接被过度使用的程度。BARRnet/BBN 认为负载只有 1.5Mbps。但令他们惊愕的是,待我们在数据中心将服务器上线,流量立即跳升至 30Mbps 以上,这给 BARRnet/BBN 的网络工程师带来了一些恐慌。我们继续运行服务器,但很明显 BBN 并没有看到为托管这样一个带宽昂贵的资源的经济盈利点,我认为他们不得不实施带宽限制来控制成本。最终,在一年左右的时间里,我不得不为这台机器找到一个没有限制的新家。

毕竟 FreeBSD 的声誉受到了威胁。从 wcarchive 下载的普通用户无法区分服务器是否被压垮还是网络是否拥塞,而我也渴望创造新纪录,推动运行 FreeBSD 的单个服务器的能力极限。因此,我在位于旧金山的 ISP“CRL 网络服务”找到了一个新的位置。在 1996 年 2 月,我将机器迁移到了 CRL,我们获得了 100Mbps 的带宽。

随后的几年中,与需求的增长进行不断的斗争。进行了许多硬件和网络升级,但我真正关注的是 FreeBSD 的性能。通过广泛的测试和内核分析,很明显在 TCP/IP 和套接字层代码中存在着显著的性能和可扩展性问题。其中一些问题可以进行优化(我也做了),但真正的圣杯【是一种理想的、几乎完美的解决方案,可以完全满足作者的需求】不仅仅是那些,我需要摆脱文件和网络数据的所有复制。虽然在其他操作系统中已经实现了一些“零拷贝套接字”的技巧,但它们在架构上有些混乱,在应用中难以使用,并且仍然存在与用户 - 内核上下文切换和其他许多问题相关的性能开销。我认为需要的是一个像魔法般的系统调用,几乎可以做到一切 - 你只需要给它一个文件描述符和一个套接字描述符,它就会将文件的内容发送到网络中。

在 1998 年参加一个技术会议(可能是 Usenix ATC)时,我向几位同事提出了我的 sendfile() 的想法。有人说 Sun Microsystems 可能已经实现了与我提出的 sendfile() 类似的东西。出于兼容性的考虑,我对 API 非常感兴趣,但当我与 Sun Microsystems 联系以了解他们的 API 时,我很快发现这个谣言并不真实。我想 Sun Microsystems 的某人可能会认为 HP/UX 可能实现了类似 sendfile() 的功能。不管怎样,我没有在惠普有任何联系(也不知道那个谣言可能是不是假的),所以决定继续使用自己的 API。我提出的方案在 FreeBSD 中传递了比任何其他系统调用都更多的参数,这让我有点担心,但这仍然是最有效的方法。编写 sendfile() 是一个困难的系统调用。它似乎触及了内核中的几乎每个子系统 - 文件 I/O、虚拟内存系统、网络缓冲区等。

不管怎样,sendfile() 的初始版本将服务器的总 CPU 时间减少了约 75%,换句话说,使 wcarchive 加快了大约 4 倍。这是一个巨大的胜利。

Tom Jones:你能告诉我是什么促使你更多地参与其中吗?项目的组织和管理?

David Greenman Lawrence:我一直在思考这个问题,并最终找到了我难以回答它的原因:“是什么驱使你”这个词组有一个错误的假设,它暗示了有些力量推动我走向组织和管理角色,但实际上并非如此。虽然有些经理是被推上这个位置的,但我称这些不幸的人为“不情愿的经理”,往往他们并不适合这个工作。对我而言,更多的是对一个需要的组织角色的吸引,这是我的天性使然。

话虽如此,管理和组织一个免费志愿者项目与管理营利性私营企业的员工是非常不同的。在一个没有预算和有限捐赠资源的全志愿者项目中,经理几乎没有权威来命令别人做事情。如果你试图命令一个志愿者去做某件事,他们很可能会对你生气、忽视你或者离开。相反,你必须更加巧妙地引导人们朝一个方向前进,通过讨论、共识、合作,并愿意自己首先进行(至少)概念验证。通过展示雄心和方向感(或者说目标感),其他人会跟随。

噢,"牵引猫咪"这个词也涌上脑海。;-)

Tom Jones:作为一个核心团队的成员你有什么特别的问题想说的吗?

David Greenman Lawrence:当然,我的项目主要关注软件的开发(尤其是内核)。我专注于可靠性和性能,同时也关注 FreeBSD 的架构方向。我觉得拥有一个核心团队对于管理 BSD 代码库的传奇质量非常重要。然而,在团队中确实有一部分人反对任何形式的正式秩序,他们更喜欢 FreeBSD 只是一个无组织的开发者的秘社,但这并不是我想要的。

Tom Jones:在你担任核心团队期间,项目发生了怎样的变化?

David Greenman Lawrence:我曾经在核心团队担任了整整 10 年的成员。前 8 年我是未经选举/自我任命的核心团队的创始成员,然后又在第一届选举产生的核心团队中任职了 2 年。

最初的核心团队是由一群非常有才华的软件开发者组成的,他们对 BSD Unix 有共同的崇敬,并对将其作为一个开源项目延续下去有着浓厚的兴趣。在早期阶段,主要是为了使 FreeBSD 变得足够可靠,以便有用。随着 FreeBSD 逐渐走向独立,项目规模逐渐扩大,有 300 多名开发者贡献了各种各样的东西,这些东西在一开始我从未想象过。例如,Jordan 对 FreeBSD ports 的精妙构思在推动系统的采用和使用方面起到了巨大作用,并吸引了大量的额外的贡献者。这一切都是好事,唯一的问题是,随着开发团队的增长,意见的多样性、意见不合的频率和对项目领导的挑战也增加了。由于核心团队是自我任命的,一直存在一个关于核心团队权威来源的问题。最终,核心团队重组为一个由开发者选举产生的机构。我必须说,在核心团队内部,这并没有真正改变日常运作的方式,但或许对我们的权威给予了一点合法性的提升。

该项目在许多其他方面也发生了变化。随着 FreeBSD 成熟为最佳服务器操作系统之一,该项目开始能够吸引来自各个企业用户的捐赠和特定项目赞助。在某些情况下,这些捐赠和赞助有些困难,因为事实上,FreeBSD 并不是一个法律实体。甚至 FreeBSD 商标也必须由 Walnut Creek CDROM 持有,而我个人拥有 <freebsd.org> 域名。然而,当 Justin Gibbs(一位核心团队的前成员)于 2000 年 12 月创建了 FreeBSD 基金会作为一个美国 501(c)(3) 非营利法律实体时,一切都发生了改变。

Tom Jones:FreeBSD 的长久传承是什么?

David Greenman Lawrence:有很多传承可以选择。事实上,David Greenman Lawrence 地球上的普通人每天都在使用部分由 FreeBSD 项目开发的软件——从早晨起床到晚上睡觉。如果你使用基于 Android 或 iOS 的手机,那么这些平台在其库和用户应用程序中大量借鉴了 FreeBSD。如果你使用 Microsoft Windows、Apple MacOS 或 iOS,那么你正在使用一个主要来自 FreeBSD 的内核网络堆栈。如果你晚上坐下来在 Netflix 上观看流媒体视频,那么这些内容是由运行 FreeBSD 的服务器提供给你的。如果你是一个使用任天堂 Switch 控制台的游戏玩家,那么你正在使用一个由 FreeBSD 驱动的平台。如果你进行在线银行业务,或在股票市场交易股票,或将包裹运送到世界各地,那么你可能是在使用运行 FreeBSD 的服务器进行操作(尽管我从未能够让他们公开承认这一点!)。

在所有借用代码或完全基于 FreeBSD 构建平台的情况下,公司选择使用 FreeBSD 而不是 Linux 是有原因的。这是所有传承中最重要的传承,也是我们继承自之前的 BSD 的传承。如果你问一位软件专业人士,现实中最通行的宽松软件许可证是什么,他们会告诉你“(N 条款)BSD 许可证”。而在 BSD 中,是 4 条款许可证,但 FreeBSD 再进一步,将其缩减为简单的 2 条款许可证。基本上它的意思是只要你不声称自己编写了代码,你可以按照任何方式使用该软件。你可以根据自己的需求进行修改,并保留你的修改内容的专有性。你可以从中赚很多钱,而无需向原作者付一分钱。这意味着它在每个方面都是真正自由的软件。我可以告诉你,当项目于 1993 年 6 月 19 日采用“FreeBSD”这个名称时,这是我(我们所有人都有这个想法)头脑中的首要考虑。尽管当时并没有计划或者想到,但这也是一个巧合,正好发生在“六月十九日”的纪念日——这也是庆祝美国正式结束奴隶制的日子——即 1865 年 6 月 19 日。

FreeBSD 留下的深远影响就是真正自由软件的概念。


Tom Jones 是一个对保持网络栈快速感兴趣的 FreeBSD 提交者,在白天他在 Klara 公司负责 FreeBSD 的开发管理工作。

Recollections: An Interview with David Greenman Lawrence