4.2 Linux 用户迁移指南
历史
许多流行于 Linux 中的常见概念,其最初的提出者实际上是 BSD:
例如“容器”的概念(可参考 什么是 Linux 容器?);
“发行版”的概念(参见 《FreeBSD:原始操作系统发行版的火炬传承者》);
Gentoo 的 Ports 方法源于 BSD;
乃至开源理念本身,也是 BSD 最早提出的,世界上第一款开源许可证即 BSD 许可证。在这个意义上,BSD 是世界上第一款真正自由开源的操作系统。
FreeBSD 与 Linux 不同之处
init
FreeBSD 仍然使用 BSD init 而非 systemd;BSD init 与传统的 SysVinit 也有所不同——BSD 没有运行级别(runlevel),也没有 /etc/inittab,均由 rc 系统控制。
当以用户进程身份运行 init 时,可以模拟 AT&T System V UNIX 的行为——即超级用户可以在命令行中指定所需的运行级别:该 init 进程会向原始的(PID 为 1 的)init 进程发送特定信号,以执行相应操作,实现类似功能。参见 init。例如,在 FreeBSD 中执行 init 0 仍然表示关机。
0
SIGUSR1
停止系统运行。
0
SIGUSR2
停止系统运行并关闭电源。
0
SIGWINCH
停止系统运行,关闭电源,然后重新启动。
1
SIGTERM
进入单用户模式。
6
SIGINT
重启计算机。
c
SIGTSTP
阻止进一步的登录。
q
SIGHUP
重新扫描终端设备文件(ttys(5))。
shell
FreeBSD 所有用户的默认 shell 均为 sh(14 之前 root 默认为 csh),而非 bash(如有需要亦可切换);
基本系统去 GNU 化
FreeBSD 基本系统几乎不包含任何与 BSD 协议不兼容的软件;
容器技术
许多 Linux 的常用概念最初源于 BSD,例如容器和发行版的概念。
我们现在称为容器技术的概念最初出现在 2000 年,当时称为 FreeBSD jail,这种技术可将 FreeBSD 系统分区为多个子系统(也称为 Jail)。Jail 是作为安全环境而开发的,系统管理员可与企业内部或外部的多个用户共享这些 Jail。2001 年,通过 Jacques Gélinas 的 VServer 项目,隔离环境的实施进入了 Linux 领域。在完成了这项针对 Linux 中多个受控制用户空间的基础性工作后,Linux 容器开始逐渐成形并最终发展成了现在的模样。2008 年,Docker 项目通过 dotCloud 平台推出其同名的容器技术并进入公众视野。
参考文献
Comparison of init systems,各大 init 对比图
GPL Software in FreeBSD Base,FreeBSD 基本系统中的 GPL 软件
基本对比
命令替代/软件替代
由于 Linux 广泛使用 GNU 工具,因此理论上只要不依赖特定的 Linux 函数库,这些工具都可以在 FreeBSD 上运行。
lsusb
sysutils/usbutils
显示 USB 信息
粗略地可以用 cat /var/run/dmesg
lspci
sysutils/pciutils
显示 PCI 信息
粗略地可以用 cat /var/run/dmesg
lsblk
sysutils/lsblk
显示磁盘使用情况
/
free
sysutils/freecolor
显示内存使用情况
FreeBSD 未提供 free 命令,因为该命令依赖 Linux 特性,通常由 procps 包提供。如确实需要 free,可使用 https://github.com/j-keck/free,其他替代命令包括 vmstat
lscpu
sysutils/lscpu
显示处理器信息
/
glibc
bsdlibc
C 库
/
GCC
LLVM + Clang
编译器、编译链工具
非要用也可以安装 devel/gcc
vim
editors/vim/
文本编辑器
FreeBSD 的 vi 不是软连接到 vim,而是早期的 nvi
wget
ftp/wget
下载器
系统默认的下载工具是 fetch
bash
shells/bash
shell
系统默认的 shell 是 sh(非软连接)。你可以自己改。
NetworkManager
net-mgmt/networkmgr
网络连接工具
NetworkManager 依赖 systemd 无法直接移植
lsmod
kldstat
列出已加载的内核模块
/
strace
truss
跟踪系统调用
/
modprobe
加载内核模块:kldload;卸载内核模块:kldunload
加载内核模块、卸载内核模块
/
最后更新于
这有帮助吗?