为什么要从 Linux 迁移到 BSD1
为什么要从 Linux 迁移到 BSD1
作为一个操作系统,GNU/Linux 已经变得一团糟了,因为项目的分散性,内核的臃肿,以及商业利益的玩弄。从 GNU/Linux 迁移到 BSD 有几个技术上的原因,但这篇文章不是关于这个的,它只是一个观点性的唠叨,而不是其他。
简介
过去,我一直喜欢根据技术优劣来选择操作系统和工具。然而,在微软、苹果、谷歌等众多公司损害用户隐私、进行争议性活动的今天,我认为这不是正确的理由。
像微软 Windows 10 、苹果 MacOS 、谷歌 Android 这样的专有操作系统,已经因其不良行为而闻名,甚至像联想这样的公司,也在利用 UEFI 引导,注入定制的 Windows 组件,让系统可以打电话回家给联想。
由于这一切,我在很长一段时间内都是 GNU/Linux 和 BSD 等开源替代品的支持者。不仅如此,我还认为,开源替代方案在很多技术领域都要好得多。
我也一直非常反对关于 BSD 和 Linux 的典型讨论,正如我当年在文章中写的那样,我一直认为不同的开源项目可以互相帮助,友好合作,终端用户应该只从技术角度而不是个人喜好来辩论这些问题。
只要有可能,我就会建议人们,包括私人和行业内的人,把他们使用的操作系统换成开源的替代品,当人们接受我的主张时,我就会帮助他们把工作站上的微软 Windows 迁移到 Linux Mint 、Xubuntu 或 Debian GNU/Linux 等系统上。而在服务器方面,我同时使用了 BSD 和 GNU/Linux 。这是一个成功的尝试,老实说,我从未遇到过不满意的人。
然而,随着越来越多的公司想要控制项目的方向,GNU/Linux 的世界开始发生变化。由于 GNU/Linux 作为一个操作系统的结构和组织,它很容易受到这些影响,虽然它仍然是开源的,而且还没有达到专有替代品的坏处,但一些选择退出的功能已经慢慢被引入到内核和 systemd 中。
你仍然可以选择退出这些功能,然后继续走你的路,但是作为一个开源爱好者和支持者,作为一个关注隐私的人,也许更好的办法是把系统迁移到一些你不必担心 "爬行软件 "的地方。
作为一个系统管理员,我不想担心下一次升级系统时是否会被吓到,我也不想保留一份清单,每当我运行这些系统时,我都要记得选择退出。
有几个 Linux 发行版已经决定(不仅是因为隐私选择退出问题,还有其他问题)实现 systemd 以外的其他 init 解决方案,但随着内核开发的情况,以及许多第三方应用程序越来越依赖 systemd,问题正在向系统的其他部分蔓延,我相信这正在成为一场艰苦的战斗。
我不相信 GNU/Linux 的未来会像过去那样光明,作为一个可能的替代解决方案,我建议把所有的东西(在可能的情况下)迁移到更合理的地方,比如 BSD 项目。
Linux 是碎片化的
1983 年,Richard Stallman 在一条 Usenet 消息中宣布他打算开始为 GNU 项目编码。到 1987 年 6 月,该项目已经积累并开发了自由和开源软件,包括一个汇编器、一个几乎已经完成的可移植优化 C 编译器( GCC )、一个编辑器( GNU Emacs )和各种 Unix 实用程序,如 ls 、grep 、awk 、make 和 ld 。
1991 年,由 Linus Torvalds 在 GNU 项目之外开发的 Linux 内核出现了,并在 1992 年 12 月以 GNU 通用公共许可证第 2 版的形式发布。结合 GNU 项目已经开发的操作系统实用程序,它成为 GNU/Linux 操作系统,也就是大家熟知的 "Linux"。
接着,Linux 发行版出现了。不同的项目将 Linux 内核、GNU 工具和库、额外的第三方软件、文档、X 窗口系统、窗口管理器和桌面环境,结合到发行版中。不同的发行版有不同的目标,有的侧重于桌面,有的侧重于服务器,还有的试图提供一个多用途的操作系统。
在过去,所有这些不同的组件和项目都是由开源爱好者开发的,对编程和开源的热情是驱动力。
但现在已经不是这样了。
Linus Torvalds 曾多次明确表示,他并不关心 "Linux 世界 "里发生的事情,他关心的只是内核的开发。2020 年 1 月 6 日,在 realworldtech.com 的 "主持讨论 "论坛上,Linus Torvalds 用绝对令人瞠目结舌的评论回答了一个用户的问题,这个问题是关于一年前的内核维护争议,严重影响了 ZFS on Linux 项目。
在回答完用户的实际问题后,Torvalds 又对 ZFS 文件系统提出了非常错误且具有破坏性的说法。Torvalds 说
它(ZFS)一直是一个流行语,而不是其他任何东西。
Linus Torvalds 将 15 年来世界上最强大和最流行的文件系统之一的发展缩减为一个 "流行语"。
ZFS 被描述为 "文件系统的最后一个词"。它是由 Sun Microsystems 公司最初设计的一个结合了文件系统和逻辑卷管理器的系统。ZFS 是一个稳定、快速、安全和面向未来的文件系统。它是可扩展的,包括广泛的保护,防止数据损坏,支持高存储容量,最大 16Exabyte 文件大小,最大 256Quadrillion Zettabytes 存储,对文件系统(数据集)或文件数量没有限制,高效的数据压缩,快照和写后复制克隆,持续的完整性检查和自动修复,RAID-Z,原生 NFSv4 ACL,并可以非常精确地配置。
Oracle 和 OpenZFS 项目的两个主要实现极为相似,使得 ZFS 在类似 Unix 的系统中广泛使用。
正如维基百科文章中提到的,OpenZFS 是一个伞形项目,旨在将使用 ZFS 文件系统的个人和公司聚集在一起,并对其进行改进,目的也是为了让 ZFS 以开源的方式得到更广泛的使用和开发。OpenZFS 汇集了来自 illumos 、Linux 、FreeBSD 和 macOS 平台的开发者,以及众多的公司。该项目的高层次目标包括提高人们对 ZFS 开源实现的质量、实用性和可用性的认识,鼓励就正在进行的 ZFS 开源变体的改进工作进行公开交流,并确保所有 ZFS 发行版的可靠性、功能和性能的一致性。
对于我说的 "Linux 是碎片化的 "harryruhr 写道。
是的,它是。但现在的 BSD 也是如此。3 个 "传统的 "BSD - FreeBSD, NetBSD 和 OpenBSD - 单单在技术和目标上就有很大的不同。还有一些 "新 "的 BSD 分叉,比如 Dragonfly 、MidnightBSD 、HardenedBSD 等等。Distrowatch.com 列出了 18 种不同的 BSD "发行版"。笔者极力称赞的 ZFS 文件系统,只有 FreeBSD 和近亲才有,而且是基于 "ZFS on Linux"。它在 NetBSD 和 OpenBSD 上是不可用的。
Linux 是碎片化的,因为内核、GNU 工具、库以及其他所有部分都是完全独立的项目。这些项目实际上都没有任何关系,但同时,如果不把这些不同的项目以某种形式粘合在一起,你就不可能拥有一个 Linux 操作系统,这就是不同的 Linux 发行版正在做的事情。
GNU 项目甚至从 1990 年开始就一直在开发他们自己的内核--GNU Hurd,它最初的计划是作为 Unix 内核的替代品。由于 Hurd 内核还没有完成,Linux 内核只是一个方便的方式,让一个工作的操作系统启动和运行。
BSD 的根本不是零散的,它们每个都是完整的操作系统和独立的项目,它们都有内核、基础工具和其他所有的东西。它们是独立的项目,有着不同的目标。它们共享 BSD 内核的家族树,偶尔也会共享代码,但除此之外,它们是相互独立的。如果 FreeBSD 或 NetBSD 被取消,OpenBSD 也不会受到任何影响,同样的,反之亦然。
蜻蜓 BSD 也是一样的。Matthew Dillon 是 1994 年到 2003 年之间的 FreeBSD 开发者,他在 2003 年分叉了 FreeBSD,因为他认为 FreeBSD 中采用的线程和对称多处理的技术会导致性能差和维护问题。因此,也因为其他 FreeBSD 开发者不同意他的观点,他创建了 DragonflyBSD 。但 DragonflyBSD 现在也是一个完全独立的操作系统和项目。
所有这些不同的 BSD 项目仍然是完整和独立的操作系统。它们并不是由不同项目的独立部分拼凑起来的。
至于 MidnightBSD,HardenedBSD,以及其他类似的项目,那么这些也与碎片化无关。这些项目大部分都是基于 FreeBSD 的,他们在 FreeBSD 的基础上设置了不同的应用程序,或者他们给内核打了补丁等等。它们与碎片化没有任何关系。
如果 BSD 项目应该像 GNU/Linux 一样被碎片化,那么 BSD 内核应该由一个单独的项目来开发,而基本的实用程序应该由另一个单独的项目来开发。
这就是 GNU/Linux 操作系统和 BSD 操作系统的碎片化性质的区别。
FreeBSD 或 NetBSD 可以在基础安装中提供大量的应用程序,但这些项目这样做没有任何意义。
事实上,这些应用程序并不影响操作系统的完整性。另一方面,如果你没有内核,或者你没有 "用户区 "工具,你就什么都没有了。这就是 GNU/Linux 的现实。
最后,我想指出,我之所以提到 GNU/Linux 操作系统的碎片化状况,是想指出这种碎片化是我们面临的问题的主要原因之一。这些碎片化的项目往往有利益冲突,这是问题的核心,而不是哪个操作系统的基础安装工具最多。
为什么要从 Linux 迁移到 BSD1的更多相关文章
- 虚拟机下linux迁移造成MAC地址异常处理办法
虚拟机下linux迁移造成MAC地址异常处理办法 Linux无法启用网卡:Device eth0 has different MAC address than expected,ignoring解决 ...
- 为什么要从 Linux 迁移到 BSD 5
为什么要从 Linux 迁移到 BSD 5 干净的分离 在 FreeBSD 的设计方式下,不同的组件组合在一起的,处理配置和调优,以及多年来开发和改进的所有工具,使得使用 FreeBSD 是一件很特别 ...
- 为什么要从 Linux 迁移到 BSD 4
为什么要从 Linux 迁移到 BSD 4 许可证问题 Linux GPL 许可证对开发者的要求比较严格,它是一种开源的反模式,因为它强制发布所有修改过的源代码,并且阻止其他开源项目的集成,例如 GP ...
- 写个.net开发者的Linux迁移指南
前言 为什么要迁移到Linux 首先我个人还是有点软件洁癖,以前是穷酸学生的时候也是用盗版的用户,后来在知乎被洗脑终于有了点版权意识.然后便有了能用开源软件的就用开源,实在不能就选社区版或者免费版.于 ...
- linux迁移至固态硬盘全过程
自从台式机上用上固态硬盘后,就再也受不了笔记本上的5400转的机械硬盘了,所以这次又买了块固态硬盘打算装到笔记本上. 笔记本里装的是Ubuntu 14.04 + Win7双系统,Win7主要偶尔运行一 ...
- 由 Windows 向 Linux 迁移字体 和 Linux 等宽字体
1. From Windows Windows下字体库的位置为C:\Windows\fonts,这里面包含所有windows下可用的字体.2. To Linux linux的字体库是 /usr/sha ...
- linux 迁移项目ProtocolException
背景:服务器跟换机房,虚拟机完整迁移项目,只修改ip和主机名 1.检查/etc/hosts 中ip 和主机名映射 2.检查网络端口是否有限制以及端口开放是否全了,检查ip有没有配对.RMI注册不上.
- 为什么要从 Linux 迁移到 BSD3
BSD 是正常人所在的地方 首先我要说的是,我并不是字面上的意思.我这里说的是从系统管理和编码的角度出发的设计和开发决策. 与 Linux 发行版相反,Berkeley 软件发行版( BSD )并不是 ...
- 为什么要从 Linux 迁移到 BSD2
OpenZFS on Linux,是项目的 Linux 部分,目前有 345 个活跃的贡献者,有超过 5600 个提交,而且几乎每天都有提交!一些世界上最大的 CDN 和数据存储服务在 FreeBSD ...
随机推荐
- 系统找不到C:\ProgramData\Oracle\Java\javapath\java.exe问题及解决方案
一.问题由来 前一段时间本人的电脑崩溃了,系统还原之后,eclipse就用不了,也找不大原因.eclipse报错原因是jvm出现问题:JVM terminated Exit code=2 C:\Pro ...
- java笔试中创建String对象的思考
题目是这样的下面那些生成新的String对象() A . String s = new String(); B . String s = new String("A"); C. ...
- 7816协议时序和采用UART模拟7816时序与智能卡APDU指令协议
7816时序 7816时一个比较早的老通讯时序了,最近项目上需要用UART模拟所以,简单学习时序. 时序比较简单,熟悉UART的一眼看着就像是串口的时序,只是他没有停止位,取而代之的就是保护时间gur ...
- 对于maven中无法加载类路径下的配置文件
<build> <resources> <resource> <directory>src/main/java</directory> &l ...
- 如何使用 js 实现一个树组件
如何使用 js 实现一个树组件 tree component const arr = [ { id: 1, value: 1, level: 1, parentId: 0, }, { id: 2, v ...
- free useful skills videos courses & tutorials
free useful skills videos courses & tutorials website video courses https://realpython.com/ http ...
- js webpack打包时保留指定注释
optimization: { minimizer: [ new TerserJSPlugin({ terserOptions: { format: { comments: /(\s*#if)|(\s ...
- 「NGK每日快讯」12.22日NGK第49期官方快讯!
- Fast R-CNN训练自己的数据集时遇到的报错及解决方案
最近使用Fast R-CNN训练了实验室的数据集,期间遇到一些报错,主要还是在配置环境上比较麻烦,但可以根据提示在网上找到解决这些错误的办法.这里我只记录一些难改的报错,以后再遇见这些时希望能尽快解决 ...
- 亿级流量客户端缓存之Http缓存与本地缓存对比
客户端缓存分为Http缓存和本地缓存,使用缓存好处很多,例如减少相同数据的重复传输,节省网络带宽资源缓解网络瓶颈,降低了对原始服务器的要求,避免出现过载,这样服务器可以更快响应其他的请求 Http缓存 ...