它是什么,不是什么
Linux 二进制兼容层让 FreeBSD 内核实现一组 Linux 系统调用 ABI,并在 /compat/linux 提供 Linux 用户态库。它不是 Linux 虚拟机,也不是 Docker 内核;依赖特定 Linux 内核模块、cgroup、eBPF、systemd 或专有驱动的软件可能不能运行。
启用前先查原生包
pkg search 软件名
pkg search '^linux_base-'
优先使用原生 FreeBSD 包。确实只有 Linux 二进制时,再根据目标应用所需 ABI 选择当前仓库提供的 Linux base;不要从旧文章硬编码已经淘汰的 CentOS 版本名。
基础启用
sysrc linux_enable=YES
service linux start
kldstat | grep linux
安装 Linux base 包和挂载 linprocfs/linsysfs 的具体步骤以当前 Handbook 为准。把文件系统条目写入 /etc/fstab 前先手工挂载验证,并确认挂载点位于 /compat/linux 的正确层级。
诊断
file /path/to/program
ldd /path/to/program
brandelf /path/to/program
sysctl compat.linux
file 先确认二进制架构和格式,ldd 查缺失动态库。不要通过从任意 Linux 系统复制一批 .so 来“修复”;库版本、动态链接器和包数据库会失去一致性。
图形与服务边界
图形应用仍需与 FreeBSD 的 X11/Wayland、音频和 GPU 驱动集成。后台软件如果假设 systemd、Linux 路径或容器运行时,需要单独适配;可执行不等于可维护。
回退
记录安装的 Linux base 与应用包。停止相关服务、卸载 linprocfs/linsysfs、设置 linux_enable=NO 并重启后,确认没有 FreeBSD 原生服务依赖兼容层,再删除明确安装的包与 /compat/linux 中由包管理之外创建的数据。