从NetBSD用户的角度来看FreeBSD

2021-06-07 03:21:33

我一直是一个三年的NetBSD开发人员,而且已经是 我的主要操作系统很长一段时间 - 关于一切:路由器,笔记本电脑, 覆盆子PIS,PowerPC Mac Minis,Vortex86嵌入式电路板, 和服务器。

我最近在工作中使用FreeBSD。 我们有很多服务器和嵌入式电路板运行它,我被赋予了 选择我在工作站上安装任何我想要的东西。我选择了FreeBSD. 在我的工作和家庭生活之间保持分离BSD;)

我以为我会写一点关于一些差异 脱颖而出。因为每个人都知道我很好地知道这一点 Web Hosting等典型用例并不是我的果酱, 而且我更多的是嵌入式,音频和图形人, 也许我可以提供更加罕见的视角。

FreeBSD港口的包装非常简单地来自 NetBSD / PKGSRC背景,我想象在另一个方面是一样的 方向。几十年来,PKGSRC从FreeBSD港口叉 以前,并在更多的操作系统上运行 - 所以开发人员有 对可移植性更加谨慎。

当你立即安装时,最明显的差异是 NetBSD默认为将第三方软件安装到/ usr / pkg 和freebsd默认为/ usr / local。

在NetBSD上,我使用/ usr / local for文件 我通过包装系统以外的方式安装系统宽。 在服务器,路由器等上,我保留了关于什么的文件 机器在/ usr / local / man中。

我想我可以使用/选择 在FreeBSD上为此,但大多数安装脚本默认为 / usr / local。

我不确定FreeBSD包装的想法如何 始终安装到/ usr / local是 - 有时它很好 例如,如果您想要较大,则拥有其他目录布局 和新的包树共存。我想这个问题 更常见的是在FreeBSD上使用Jails解决。

为了管理二进制包,FreeBSD似乎总是给你 默认情况下,高级PKG工具,可与 pkgsrc的pkgin。但是,默认情况下NetBSD附带 更乡村的pkg_add,pkgin是那些人的可选 想要它。与Pkg的几个相比,Pkgin只有一个人页, 但它也不是较低级别的一体化替代品 包装工具,只是一个用户友好的前端 - 与pkgsrc 您需要PKG_工具进行某些任务。

对于管理源包,Poudriere似乎与Pbulk相当相似, 除了它使用监狱而不是Chroots。你可以做有限的 自定义构建和整体功能套装似乎非常相似。

FreeBSD端口有时会向我展示用于配置的文本菜单 包选项,而PKGSRC只使用文本配置和 尝试使其成为使您不需要重新配置包。 我是那种喜欢文字配置的人,但我 可以看出别人的唯一不会。

FreeBSD的Init系统是NetBSD的Init系统端口,所以它是 有趣的是看什么是不同的。

在NetBSD上,从单个目录加载init文件 - /etc/rc.d。由于PKGSRC不允许触摸外部文件 它的安装前缀,如果要使用init文件 您必须从$前缀/ share / simem / rc.d复制它们要么复制它们 (必要时制作特定于特别的自定义),或制作一个 符号链接。

在FreeBSD上,/usr/local/etc/rc.d也是一个搜索路径 init系统使用,因此您可以立即运行init脚本 由包装安装(只有在您没有改变时才推测 默认安装前缀)。 来自Linux的用户可能更加自然。

在编写我自己的初学脚本时,我注意到了一些事情 从FreeBSD缺失 rc.subr. 手册页,也许有一些同步可以在那里进行。

我不会抱怨缺少司机,等等 - 一个严肃的bsd 用户知道在购买并保持之前检查硬件 在紧急情况下,一堆USB网络适配器。 虽然,但我对如何对如何的差异更感兴趣 处理硬件支持。

一些非常震惊的东西是网络摄像头支持的支持 处理。在NetBSD中,有一个 通用驱动程序 所有USB视频设备 内置于默认内核。这个实现 一个与Video4Linux兼容的API。当驾驶员时 检测到您的网络摄像头,它将自动创建/ dev / video0 可以用ffmpeg录制,并从Firefox流流。

我在NetBSD上广泛测试的唯一会议软件 是 Jitsi见面 - 它在Firefox中完美地工作。其他 视频会议Web工具通常要求您使用Chrome, 尚未移植到NetBSD(永久上游的全部BSD补丁 套装是巨大的)。 如果您使用假用户代理配置Firefox,我被告知zoom有效。

在FreeBSD中,您似乎首先要安装 WebCamd, "一种应用程序,它是一个Linux USB设备驱动程序的港口,进入FreeBSD的用户空间。" 您将其配置为附加到公开的特定通用USB设备 由内核到用户空间,例如Ugen0.6,装载后 丝模块。 我不确定是否有这种方式有特殊的优势。

现在,我只是在会议期间不使用我的网络摄像头 - 我不认为 任何人都在思考。

在FreeBSD上,您必须明确安装和加载图形驱动程序, 在NetBSD上,它们被烘焙到默认内核并将 自动加载。 FreeBSD拥有专有的司机 NVIDIA GPU,它需要一些额外的小心来配置,而在NetBSD上 使用开源驱动器Nouveau代替。

我经常希望移植到的-Linux DRM / KMS GPU驱动程序缺席 从NetBSD上的默认内核,主要是因为它们膨胀了尺寸 显着并经常绊倒内核未定义的行为消毒剂, 但我也很感谢他们自动加载和安装 默认 - 肯定是可以在此处击中一个很好的平衡 通过将它们作为自动加载的模块。

FreeBSD监狱非常好。 NetBSD并没有真正具有可比性的功能,但它确实有了 常用为沙箱的硬化的切片。

在NetBSD上,有一个令人惊讶的工具 chroot sandboxes - 我最喜欢的是 Sandboxctl。 对于它来说,它真的很惊人,你有几个命令 NetBSD / I386 8.0 Shell在NetBSD / AMD64 9.2主机上。 它甚至会自动处理下载操作系统。 使用FreeBSD似乎建议使用BSDinstall工具 (这只是正常的FreeBSD安装程序程序)设置 监狱,这很令人惊讶。

可以对监狱应用一些额外的安全限制, 例如,不允许原始插座。限制似乎 与netbsd的相似 设计了Kauth框架 为了处理,也许我们可以建立类似的东西(眨眼,轻推)。

对于VM,我没有用FreeBSD的Bhyve将其与NetBSD进行比较 nvmm / haxm / xen。 nvmm和haxm使用qemu,所以你可能会得到 访问更多外围设备并运行旧的操作系统 由于多十年的模拟硬件,可能更容易 烤成qemu。另一方面,qemu是这个巨大的 一块软件,文件散落在一起 网站和没有人的页面。

我在我的家庭网络上使用组播DNS - 主要是这只是为了 方便,所以我不必记住很多不同的 IP地址。

NetBSD默认情况下包括组播DNS支持 通过麦斯科斯港的MDNSRespononder mdnsd。它似乎是可用的 对于FreeBSD但不是操作系统的核心部分。我也在下面 印象是使用avahi更常见的印象 (Linux社区对MDNSResponder的答案) 在FreeBSD上,但我不知道某些。

还有其他位可用的逐个in-in-netbsd软件 需要从FreeBSD的包装安装, tmux,而且 Bozohttpd很快 通过网络共享文件。 其他一些默认工具是完全不同的。 我很习惯使用 我的shell脚本的进度 在NetBSD上,和 PW. 男人的页面比NetBSD更可怕 Useradd。 而不是使用 ftp下载文件 来自HTTP,您使用获取...哪个,足够公平。 我在两者上使用ZFS,也没有问题没有问题。 NetBSD Bootloader本身不能处理ZFS,所以我有一个小的 FFS根分区,然后在其顶部的图层ZFS。 在我的案件中有一个小的FFS根源是一件好事, 因为我继续建造新内核, 忘记构建ZFS模块(因为模块在NetBSD上没有使用过多!), 然后想知道下一个启动时缺少为什么/家庭缺失。