Linux 二进制兼容性
  FreeBSD 提供了与 Linux 的二进制兼容。这使得用户可以在 FreeBSD 系统上安装和运行许多 Linux 二进制文件, 而无需首先修改二进制文件。在某些特定情况下,Linux 二进制文件在 FreeBSD 上的表现甚至比在 Linux 上的表现更好。
并非所有 Linux 特定的操作系统功能都能在 FreeBSD 上得到支持。例如,如果 Linux 二进制文件过度使用 i386 的特定调用,例如启用虚拟 8086 模式,那么它们将无法在 FreeBSD 上运行。

安全事件审计
  FreeBSD 包含对安全事件审计的支持。事件审计支持对各种与安全相关的系统事件进行可靠、精细和可配置的记录,包括登录、配置更改、文件和网络访问。这些日志记录对于实时系统监控、入侵检测和事后分析都是非常宝贵的。FreeBSD 实现了 Sun 发布的 Basic Security Module (BSM) 应用编程接口 (API) 和文件格式, 并可与 Solaris 和 MacOS 的审计实现互操作。

最后说明
  这篇文章并没有详尽地列出使用 FreeBSD 而不是 GNU/Linux 的技术原因。还有许多其他的原因我没有提及。然而,这些是我个人认为最突出的一些特性。
除非您有非常特殊的需求,例如对硬件的特殊支持,否则当您运行和管理 FreeBSD 时,您通常会体验到更大的整体感、控制感和和谐感。
您在使用 FreeBSD 时可能会遇到的问题是缺乏硬件支持的情况,或者是特定的第三方应用程序非常以 Linux 为中心的情况。后者主要与桌面应用程序有关,而不是服务器应用程序。
  例如,Mozilla 开发 Firefox 时,主要关注的是 Linux 、OSX 和 Windows 。这些被称为 Tier-1 平台。FreeBSD 、OpenBSD 、NetBSD 和 Solaris 作为 Tier-3 平台位于支持列表的底部。Mozilla 开发人员无法可靠地访问非 Tier-1 平台或构建环境。在任何时候,从 mozilla-central 为非 Tier-1 平台构建的 Firefox 都可能无法正常运行或根本无法构建。Tier-3 平台有一个维护者或社区,他们试图保持平台的工作。这些平台不受 Mozilla 的持续集成过程的支持,Mozilla 也不会在这些平台上进行例行测试。
  这意味着 FreeBSD 的维护者必须花费额外的时间来确保像 Firefox 这样的应用程序能够在 FreeBSD 上编译和运行。而且当出现问题时,Mozilla 的开发人员往往不会像在 Linux 、Windows 或 OSX 上出现问题时那样关注这些问题。其他以 Linux 为中心的第三方应用程序也是如此。
这并不意味着这些应用程序不能在 FreeBSD 上运行,只是意味着您偶尔会遇到一些问题。例如,当我写这篇文章的时候,Micro 编辑器出现了一个问题,当你试图用 Alt-g 打开菜单时,它在 FreeBSD 上崩溃了。这个问题在 Linux 上并不存在。
  我在服务器和桌面工作站上都使用 FreeBSD,最近我把在 Debian GNU/Linux 和 Arch Linux 上运行 ZFS 的系统迁移到了 FreeBSD 。由于 FreeBSD 为 ZFS 提供了更好的集成,我不仅体验到了性能的提升,也体验到了可靠性的提升。
  我的一个主要工作站运行的是使用 i3 作为窗口管理器的 FreeBSD 。我有一个相同的设置,在同一台机器上用不同的硬盘运行 Arch Linux 。从纯粹的桌面使用角度来看,您看不出任何区别,也没有任何理由将 Arch Linux 作为桌面操作系统而不是 FreeBSD,无论是从性能上、从简单性上还是从任何其他原因来看 -- 唯一的例外是,如果您有不支持的硬件。
  FreeBSD 没有像 GNU/Linux 那样得到同样的关注,实在是一个遗憾。在很多情况下,尤其是在生产服务器和商业用途上,一个公司运行 FreeBSD 而不是 Linux 可以获得很多好处,而他们运行 Linux 的唯一原因往往是出于习惯和对 FreeBSD 缺乏了解。
下一次当您需要部署一个新的系统时,我建议您也调查和测试一下 FreeBSD 。它是非常值得您花时间的。

选择 FreeBSD 而不是 Linux 的技术性原因4的更多相关文章

  1. 选择 FreeBSD 而不是 Linux 的技术性原因3

    选择 FreeBSD 而不是 Linux 的技术性原因3 jail FreeBSD Jails 系统是另一个惊人的工程壮举. 在 2000 年 3 月 14 日的 4.0 版本中,FreeBSD 引入 ...

  2. 选择 FreeBSD 而不是 Linux 的技术性原因2

    ZFSZFS 文件系统是 FreeBSD 上的一等公民.这不仅意味着可以在 ZFS 上安装根目录,安装程序也支持这一点,而且还意味着很多基础系统工具都已经紧密地集成或构建了对 ZFS 的支持.在 Fr ...

  3. 选择 FreeBSD 而不是 Linux 的技术性原因1

    Ports FreeBSD Ports 是一个惊人的工程壮举.NetBSD 的 pkgsrc (package source) 和 OpenBSD 的 ports collection 都源于 Fre ...

  4. 【热文】 为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows?

    校对:伯乐在线 - 黄利民 链接: 1. Why do most of the developers in Silicon Valley prefer OS X over Linux or Windo ...

  5. 让 FreeBSD 和 Gentoo Linux 在 ZFS 存储卷上共存

    自我回归到 Librem 15 已经有段时间了.我一般会选择 FreeBSD 来处理所有的事情,但有时会要访问一个运行在 Librem 平台上的 Linux OS,以便用它来帮助我对一些遗留的设备驱动 ...

  6. 企业开发中选择logback而不是log4j的理由

    不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因 ...

  7. Effective C# 学习笔记(原则二:为你的常量选择readonly而不是const)

    原则二.为你的常量选择readonly而不是const      Prefer readonly to const 对于常量,C#里面有两个不同的版本:运行时常量(readonly)和编译时常量(co ...

  8. 优先选择nullptr而不是0和NULL

    我们知道:0是一个int,而不是一个指针.如果C++在一个只有指针才能够使用的上下文中发现它只有一个0,那么它会勉强将0解释成空指针,但那时一种倒退行为.C++的主要方针是0就是一个int,而不是指针 ...

  9. 如何选择适合自己的Linux版本

    如何选择适合自己的Linux版本: 1.Linux桌面系统,首选Ubuntu; 2.服务器端的Linux系统,首选RHEL或CentOS,这两种中首选CentOS,如果公司有钱,不在乎成本也可以选择R ...

随机推荐

  1. C# TCP应用编程三 异步TCP应用编程

    利用TcpListener和TcpClient类在同步方式下接收.发送数据以及监听客户端连接时,在操作没有完成之前一直处于阻塞状态,这对于接受.发送数据量不大的情况或者操作勇士较短的情况下是比较方便的 ...

  2. MySql 执行 DELETE/UPDATE时,报 Error Code: 1175错误

    MySql 执行 DELETE FROM Table 时,报 Error Code: 1175. You are using safe update mode and you tried to upd ...

  3. 一个方便 LeetCode 复习的脚本

    这个脚本半年前就在用了,只不过一直没有公开. 这是一个简易的 LeetCode 自动统计程序, 可自动统计最近提交通过的题目, 并以 Markdown 的形式展示相关的数据. 采用 GitHub Ac ...

  4. Nginx 版本回滚

    目录 参考信息 源码安装 nginx-1.14.2 版本升级 nginx-1.16.1 版本回滚 ①.对于软件的版本升级.添加官方模块.添加第三方模块,都需要用源码安装包重新生成(configure) ...

  5. kubernetes实战-交付dubbo服务到k8s集群(二)交付jenkins到k8s集群

    首先下载jenkins镜像并上传到我们自己的私有仓库:7-200 # docker pull jenkins/jenkins:2.190.3 # docker tag 22b8b9a84dbe har ...

  6. μC/OS-III---I笔记6---互斥信号量

    互斥信号量 操作系统中利用信号量解决进程间的同步和互斥(互斥信号量)的问题,在多道程序环境下,操作系统就是遮掩实现进程之间的同步和互斥.但是在使用的过程中厉害的前辈还是发现了这一优秀机制的缺陷,它会导 ...

  7. value-key

    value-key object 如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识. value-key 作为 value 唯一标识的键名,绑定值为对象类型时 ...

  8. uni-app in action

    uni-app in action uni-app 实战 $ npm run dev:%PLATFORM% $ npm run build:%PLATFORM% app-plus app平台生成打包资 ...

  9. Semantic Pull Requests All In One

    Semantic Pull Requests All In One https://github.com/zeke/semantic-pull-requests docs: Update direct ...

  10. 微信分享 API

    微信分享 API https://market.cmbchina.com/MPage/online/190416201200302/wechatShare.js /* * 注意: * 1. 所有的JS ...