系统极客一直在努力
专注操作系统及软件使用技能

什么是 BSD?它与 Linux 有哪些不同?

FreeBSD

在探索操作系统的世界时,你可能会碰到像 BSD 或者 FreeBSD 这样的名字。虽然 Linux 和 BSD 都是开源的类 Unix 操作系统,但它们的起源和本质有着很大不同。接下来,我们就来聊聊 BSD 的故事,以及它和 Linux 到底有哪些不同。

BSD 已死?不,它的精神永存!

BSD 的起源:从 Unix 到 BSD

Linux 是一个从零开始构建的类 Unix 操作系统,而 BSD 则直接继承了 Unix 的血统。Unix 的故事可以追溯到 20 世纪 60 年代末,由贝尔实验室开发。

1973 年,两位 Unix 的核心开发者在一次学术会议上发表了一篇论文,引起了广泛关注。许多人开始对这款操作系统产生浓厚兴趣,纷纷开始「索要」副本。

然而,由于 AT&T(贝尔实验室的母公司)受限于当时的贸易法规,无法将 Unix 商业化并从中营利。于是,他们「脑洞大开」:通过收取象征性的运费,将 Unix 的源代码和许可证分发给需要的人们。加州大学伯克利分校就是众多受益者之一。

伯克利的改进:从 Unix 到 BSD

Unix 的主要设计者 Ken Thompson 曾短暂离开贝尔实验室,到伯克利分校担任客座教授。在那里,他和一群研究生合作,为 Unix 添加了许多新功能和改进。其中,一位名叫 Bill Joy 的研究生(后来成为了 Sun Microsystems 的联合创始人)贡献尤为卓越,他引入了虚拟内存管理和 TCP/IP 网络协议栈等关键技术。

随着伯克利版的 Unix 越来越受欢迎,它被包装成了一个名为 Berkeley Software Distribution(BSD)的附加组件进行发布。不过,当时运行 BSD 仍然需要获得 Unix 的许可证。但后来,Keith Bostic 领导了一个项目,逐步替换掉了 AT&T 的代码,用伯克利团队自己编写的代码取而代之,最终诞生了完全自由的类 Unix 操作系统。

BSD 的进化:从学术到桌面

为了让 BSD 适配 Intel 80386 处理器,研究人员开发了一个被称为 386BSD 的版本,让 BSD 成功走入了桌面 PC 领域。而 386BSD 的一个衍生项目,正是我们今天所熟知的 FreeBSD

虽然最初的 BSD 系统已经退出历史舞台,但它的精神通过 FreeBSD 和其他衍生版本得以延续,甚至在一些你意想不到的地方继续发光发热。

BSD 与 Linux 的不同之处

除了历史的渊源,Linux 和现存的 BSD(最著名的是 FreeBSD)也有着不少明显的区别。虽然 FreeBSD 是一个类 Unix 操作系统,但它和 Linux 一样,并没有通过 UNIX 认证。不过,有趣的是,macOS 也采用了经过大幅修改的 BSD 内核,还是一个获得了 UNIX 认证的系统。

内核之争:FreeBSD 与 Linux

FreeBSD 和 Linux 最大的区别之一就是内核。FreeBSD 使用自己开发的内核,而不是 Linux 内核。这种独立性让 FreeBSD 在设计和优化上更加灵活,但也意味着,它与 Linux 生态的兼容性需要额外考量。

命令行工具:熟悉又陌生

在 FreeBSD 中,你可以找到类 Unix 操作系统中常见的命令行工具,但它们的版本和使用方式可能与 Linux 略有不同。例如,某些工具的选项或「行为模式」可能与你在 Linux 中习惯的会有所不同。

虽然这些差异不会严重影响使用,但偶尔会让人不太习惯,甚至抓狂。所以,在使用之前,最好先查阅一下 man pages。

应用程序生态:本地 vs. 兼容层

FreeBSD 自身就拥有 3.6W+ 本地应用程序,涵盖了从开发工具到多媒体软件等多个领域。因此,你可能根本就不需要依赖 Linux 软件。不过,如果你确实需要运行 Linux 应用程序,也可以通过 Docker 镜像或安装 Linux 兼容层来使用。

安装方式:Ports 与 pkg

FreeBSD 提供了两种应用程序安装方法:

  1. Ports:通过源码在本地编译安装,适合需要自定义编译的用户。
  2. pkg:使用 FreeBSD 自带的包管理器安装现成的二进制软件包,这种方式更加快捷,更适合大众用户。

硬件兼容性:挑战与权衡

硬件兼容性可能是 FreeBSD 面临的一大挑战,尤其是在笔记本电脑上。要让蓝牙、Wi-Fi 或声音正常工作,有时需要花费不少的精力,甚至在某些情况下完全无解。不过,一旦设置好,FreeBSD 的稳定性可谓首屈一指。这也是为什么很多人即使不用 FreeBSD 当桌面系统,也会将它作为家庭服务器的原因。

开发哲学:稳健 vs. 激进

FreeBSD 的高稳定性可能与它的开发者社区相对小众有关。跟 Linux 发行版的社区相比,FreeBSD 的开发节奏要慢得多。它不追求「快速行动并打破常规」,而是走稳健路线。这种「稳如老狗」🐶的开发哲学已经取得了不俗的成绩,尤其是在需要长期稳定运行的场景中。

使用 FreeBSD

安装过程:复古但实用

FreeBSD 的安装程序采用了基于文本的用户界面,乍一看会让人有种回到了 20 世纪 90 年代的既视感(别告诉我你还没出生 🐣)。不过,千万别被它的外表所迷惑——这个界面实际上运行得非常流畅,而且提供了清晰的安装引导和提示。

安装 FreeBSD
安装 FreeBSD
安装 FreeBSD

整个安装过程简也单明了,只要按屏幕上的指示一步步操作即可。完成安装后,你就会拿到一个功能完整的 FreeBSD 系统,但默认只有命令行界面,没有预装任何桌面环境。

如果你打算将 FreeBSD 作为家庭服务器,通常也不需要图形界面,所以这种设计非常合理。嗯~ 就是「非常合理」。

安装桌面环境:简单快捷

如果你需要桌面环境,可以自己手动安装。我装了个 XFCE,整个过程只花了几分钟。

FreeBSD + XFCE 桌面
FreeBSD + XFCE 桌面

安装软件:使用 pkg 包管理器

在 FreeBSD 上安装软件也非常简单,尤其是使用 pkg 包管理器。它的使用方法和 pacman、dnfapt 大同小异。比如,我想安装 htop,就先通过su -命令切换到 root 用户,然后运行 pkg 命令来安装:

pkg install htop
使用 pkg 安装软件包
使用 pkg 安装软件包

Shell 差异:sh vs. Bash

FreeBSD 默认使用的是 sh Shell,而不是 Bash。sh 完全符合 POSIX 标准,而 Bash 并不完全符合。如果你习惯了使用 Bash,可能还会发现一些细微的差异,比如:

  • Bash 中的双括号[[ ]]用于条件判断,但在 sh 中并不可用。
  • 此外,sh 不支持 Bash 中的作业控制功能。如果你经常使用这些功能,在切换到 FreeBSD 后可能需要稍加适应。

意想不到的广泛影响

BSD 的精神能够延续至今,并且在当代各个 BSD 系统中得到体现,着实令人感叹。更有趣的是,BSD 的影响力早已超越了传统操作系统的范畴,渗透到了许多现代技术的核心。

BSD 的现代足迹:从 macOS 到 Windows

你可能不知道,macOS 和 iOS 的核心部分正是基于 BSD 内核构建的。苹果通过 Darwin 项目,将 BSD 的强大功能与自己的创新设计相结合,打造出了今天大家熟知的操作系统。

微软也曾借助 BSD 的力量。在早期开发 Windows 网络功能时,微软使用了 BSD 的 TCP/IP 协议栈来实现自己的 Winsock 库和 TCP/IP 网络功能。这不仅加速了 Windows 网络能力的发展,也为 BSD 技术的普及做出了贡献。

FreeBSD vs. Linux:选择你的体验

对比于 Linux,FreeBSD 和其他 BSD 系统都提供了一种更贴近 Unix 的原汁原味体验。如果你对 Unix 的设计哲学和历史感兴趣,BSD 无疑是一个绝佳选择。它的简洁性、稳定性以及忠实继承 Unix 传统的特点,都散发着一种独特的技术魅力。

不过,如果你更注重硬件兼容性和广泛的社区支持,Linux 可能会更适合你。Linux 在支持更多类型硬件设备的同时,往往还能提供更丝滑的使用体验,尤其是在桌面和移动设备领域。


无论你是将 BSD 作为技术探索的起点,还是将它用作稳定可靠的服务器操作系统,BSD 都展现出了独特的价值。它的影响力不仅体现在许多现代操作系统的核心设计中,更在于为我们提供了一种不同于 Linux 的技术选择。如果你想尝试一种更贴近 Unix 的体验,BSD 绝对值得一试。

赞(2) 赞赏

评论 抢沙发

微信赞赏