分类 观点 下的文章

开源贡献者 Hari Rana 表达了他对传统 Linux 软件包格式不再适合现代应用的看法。

传统的 Linux 软件包格式不适合现代应用

图片来源:来自 UnsplashKelli McClintock

我多次遇到用户抱怨 LTS 和稳定版的应用软件包有问题,但又声称开发版从来没有发生过这种事情。然而,以我在软件包技术方面的经验和知识,我不能不强调,这是不对的。

发行模式不是问题的根源所在,根本的问题是传统的软件包格式不适合现代的图形应用,不管是什么发行版。那么像 Nix 和 Flatpak 这样的格式是如何解决这些基本问题的?有趣的是,大多数服务器确实利用了容器化(即 Docker),因为它提高了可重复性并增强了可维护性。我们可以从中得到启发,采用一个适用于 Linux 桌面的类似标准。

免责声明

  1. “传统软件包”是指使用包管理器发布的图形应用程序,而不使用容器,如 aptdnfpacman 等。
  2. “发行模式”是指发行过程,如长期支持版(LTS)、稳定版和开发版等。
  3. “类似的应用程序”是指两个在技术上真正相似的应用程序,如 Visual Studio CodeCode - OSS
  4. 在这些例子中,我将使用 Arch Linux 作为参考。然而,这些行为与那些大量采用传统软件包格式的发行版是一致的。
  5. Nix 不使用容器,它也不是一种容器格式。但为了简单起见,我暂时把它称为一种容器格式。

根本问题

图片来源:来自 UnsplashJackson Simmer

大多数(或许不是全部)大量采用传统软件包格式的发行版都有这个共同的问题:它们都没有利用容器或其他方便的方法来分离依赖关系。用通俗的话说,容器是一个盒子,我们可以把东西放在里面,在不影响主系统(主机)的情况下单独使用它们。

容器通常不会影响“盒子”外的任何东西。并且它们是可移植的,因为它们可以安装在其他发行版上,同时提供一致的体验。利用容器的包管理器会将每个软件包安装在不同的容器中,这提供了一个额外的安全层。这给了开发者更多的控制权和灵活性,他们可以决定在软件包内捆绑什么。

传统的软件包格式产生了一些问题,比如依赖性和包的冲突,这些问题通常需要解决,而不同的发行版有不同的解决办法。

依赖性和软件包的冲突

如果我们试图安装 Visual Studio Codevisual-studio-code-bin),而 Code - OSScode) 已经安装在 Arch Linux 上,我们会遇到这个问题:

$ paru -S visual-studio-code-bin
[...]
:: Conflicts found:
    visual-studio-code-bin: code  
:: Conflicting packages will have to be confirmed manually
Aur (1)                     Old Version  New Version  Make Only
aur/visual-studio-code-bin               1.70.1-1     No

这就是所谓的软件包冲突,即两个或多个软件包不能共存。在这种情况下,我们不能同时安装 Visual Studio Code 和 Code - OSS。

当两个应用程序或软件包提供相同的文件,具有相同的名称,并被放置在同一目录下,那么它们实际上是不能共存的,因为这些文件会发生冲突。在这个例子中,Visual Studio Code 和 Code - OSS 都提供了一个名为 code 的文件,它们都被放在 /usr/bin 中。Visual Studio Code 提供的 code 文件用于启动 Visual Studio Code,而 Code - OSS 的 code 文件则用于启动 Code - OSS。 虽然这个例子只展示了 Visual Studio Code 和 Code - OSS,但这种情况经常发生在不同的应用程序、库和其他软件中。

无法选择依赖项

图片来源:来自 UnsplashPriscilla Du Preez

传统软件包格式的最大问题之一是,打包者不能选择依赖项。

例如,如果一个应用程序最近更新,需要依赖版本 1 的程序 A,但发行版只提供了版本 0.9 的程序 A,那么对于升级该应用程序来说就不太理想,因为发行版无法满足要求。这意味着打包者将不得不暂缓打包,直到该发行版发布新的依赖项,或者采用变通的方法。

同样,如果一个应用程序需要依赖 0.8.1 版本的程序 A,但发行版却只提供了 0.9 版本的程序 A,那么这个应用程序就会表现失常,甚至完全不能运行。

带补丁的库和编译配置

为了扩展,一些应用程序需要带补丁的库或额外的编译配置才能正常运行。例如,OBS Studio 需要一个 打了补丁的 FFmpeg 来与 OBS Studio 更好地整合。

在传统的软件包格式下,一次只能安装一个依赖项的变体。如果发行版提供的是未打过补丁的 FFmpeg,那么就没有办法安装打过补丁的 FFmpeg,除非打包者能解决这个问题。如果安装了打过补丁的 FFmpeg,但另一个程序高度依赖未打过补丁的 FFmpeg、打过其他补丁的 FFmpeg、内置或删除了其他功能的 FFmpeg,那么其他程序就会出现 bug。

现代应用程序本质上是脆弱的。依赖关系树中的一个小错误或不一致,就会导致应用程序的 bug,使用户体验恶化,甚至会让人觉得是应用程序的问题,而不是软件包本身的问题,这就会妨碍应用程序的声誉。

变通方法

让我们看看目前开发者用来打包应用程序的变通方法:

  1. 第一种解决方法是在不同的目录中安装依赖库。例如,Electron 是一个巨大的框架,开发者用它来构建应用程序,然后将它们捆绑起来。然而,基于 Electron 的应用程序是不同的,因为它们是建立在不同版本的 Electron 之上的。Discord 捆绑了 Electron 13,而 Element 捆绑了 Electron 19。对于 Arch Linux 上的 Electron 打包,某些目录需要安装在 /opt/APPLICATION_NAME 中,所以这些 Electron 版本 不会相互冲突
  2. 第二种解决方法是篡改应用程序。例如,给应用程序打上补丁,使其在没有某些依赖库或功能的情况下编译,这可以使应用程序成功编译,但不能保证该应用程序能够启动或按预期工作。
  3. 第三种解决方法是在编译应用程序时禁用许多编译选项,这也可能禁用一些功能。例如,在 Arch Linux 上,OBS Studio 在编译时禁用了许多基本功能,这 导致了不合格的体验

这些解决方法因人而异,有些会限制应用程序的功能,有些会引入稳定性问题等等。

不一致的体验

西班牙兰萨罗特岛(加那利群岛)的蒂曼法亚火山国家公园的火山口景观

图片来源:来自 Unsplashalevision.co

虽然这些技术限制在整个传统软件包格式中是一致的,但用户体验往往不是这样。由于软件包的发布方式,发行模式与传统软件包格式相结合会影响用户体验。

一些发行版,如 Arch Linux,接近于开发版,因此有最新版本的软件包。然而 Debian 和 Ubuntu LTS 是 LTS 长期支持版,所以它们的很多软件包都落后几个版本。同时,Fedora Linux 和 Ubuntu 稳定版处于 Debian / Ubuntu LTS 和 Arch Linux 之间。

一些软件包格式喜欢尽可能少地给软件包打补丁,以保持它们最接近原版;而另一些格式打补丁是为了增加更多的功能,使用旧库或进行其他类型的更改,以改善用户体验。一些格式喜欢使软件更加轻量化;而另一些格式更喜欢尽可能地添加更多内置功能。软件包有各种各样的习惯和偏好。

正如我们所看到的,一个应用程序在不同的发行版中的构建方式非常不同。此外,不同的发行版的依赖关系也是不同的。传统软件包格式的许多技术限制需要根据发行模式和打包策略采取不同的解决方法。这些微小的变化往往给用户带来不完整的、不合格的体验和错误的印象。一些应用程序可能在某些发行版上运行得更好,但在其他发行版上运行得很差,而其他一些应用程序则运行得更好。即使一个应用程序在每个发行版上的构建方式不同,但其名称和品牌却保持原样,给用户留下错误的印象。

解决方案

图片来源:来自 UnsplashRiccardo Annandale

如上所述,解决这些问题的方法是使用容器。

容器被设计用来分离系统的几个方面。通过使用容器,打包者可以挑选依赖项而不受主机上的库限制。因此,打包者可以发布最新的、功能完整的软件包,同时保持发行的稳定性。

这一点非常重要,因为这些容器格式可以将应用程序和发行版发挥出最大的作用,而不会对系统造成破坏性的影响。

Nix 和 Flatpak

Nix 是一个跨平台的包管理器,可以在类 Unix 操作系统中运行,如 Linux 发行版、BSD 和 macOS。Nix 有几个 通道(分支)供用户使用。

另一方面,Flatpak 是一个用于 Linux 桌面的通用软件包格式,它也利用容器,但另外还有沙盒来隔离它们。它旨在以后可以供普通人使用,并被设计为与软件商店(如 GNOME “ 软件 Software ” 和 KDE “ 发现 Discover )集成。换句话说,Flatpak 更像是发行版的一个扩展,而不是一个软件包格式的替代品,因为它的设计初衷不是为了取代系统包管理器。

如果使用 NixOS 等发行版,Nix 也可以作为一种扩展或单独使用。

类似的应用

Nix 和 Flatpak 解决了传统软件包格式的许多基本问题。由于应用程序的分离,这些格式可以安装类似的应用程序,如 Visual Studio Code 和 Code - OSS,而不会冲突。

多个版本

Nix 和 Flatpak 可以安装同一个应用程序的多个版本。使用 Nix,我可以从 nixpkgs-stable(LTS)安装应用程序,同时也可以从 nixpkgs-unstable(开发版)安装同一个应用程序。

同样地,使用 Flatpak,我可以同时从 stablebeta 分支安装应用程序。我可以从更多的途径和分支继续安装同一个应用程序,而不会遇到冲突。

挑剔的依赖项

采摘樱桃

图片来源:来自 UnsplashIsh de loyola

此外,打包者可以将应用程序与不同变体的库捆绑在一起,从而有机会启用更多的构建选项,并使用打过补丁或特定版本的库,从而为用户提供完整的体验。

这意味着打包者可以将打了补丁的 FFmpeg 与 OBS Studio 捆绑在一起,只为了用在 OBS Studio 中。如果我在主机上安装了普通的 FFmpeg,那么 OBS Studio 的补丁 FFmpeg 就不会与主机的 FFmpeg 发生干扰或冲突。

各个发行版的环境都是一致的

如上所述,各发行版使用不同的补丁、构建选项和环境构建应用程序。这导致了应用程序的碎片化,每个应用程序的构建方式和工作方式往往不尽相同。由于 Nix 和 Flatpak 是为跨发行版运行而设计的,它们在每个发行版中为应用程序提供一致的环境,前提是发行版提供了 Nix 或 Flatpak 的支持版本。

缺点

就像所有事物一样,Nix 和 Flatpak 不是完美的。由于最近在 Linux 桌面上容器技术得到了推崇,它们可能为许多应用程序提供了不寻常的环境。

Flatpak 不仅包含了应用程序,还对它们进行沙盒处理。Flatpak 的开发者已经实施了一个短期的变通方案,“在沙盒上打洞”,即所谓的静态权限。他们正在开发适当的长期解决方案,称为 XDG 门户,以解决有关沙盒的许多问题,并使其像 Android 的安全模型一样。

唯一的短期问题是,工具包、框架和应用程序必须采用这些标准。GTK 和 Qt 这样的工具包集成了其中一些 门户 portal ,但它们也需要时间来集成其他的门户。同时,许多其他的工具箱还没有真正集成任何门户。

工具包、框架和应用程序采用这些新标准是一个时间问题,因为在 XDG 门户之前没有任何适当的标准。应用程序可以直接访问文件系统和 API,所以静态权限保持这种 “标准”。

结论

传统软件包格式的根本问题是它没有利用容器。许多图形化的应用程序本质上是复杂的,需要非常具体的依赖关系才能按预期运行。许多发行版通过使用变通的方法在不同的环境中构建同一个应用程序,例如给应用程序打补丁或禁用某些构建选项。这导致了一个应用程序的不同变体、不一致的行为和不合格的用户体验。

当然,发行版的维护者不可能在几天内现实地重写他们的包管理器并使用容器。这些重写会破坏许多脚本、功能等,而且还需要很长时间才能投入生产环境。

我个人的建议是使用和推广 Flatpak,因为它只是为了扩展现有的发行版,而不是取代它。打包者不必担心打包应用程序,以及诉诸变通的问题,因为 Flatpak 已经在处理这些问题了。

作者 Hari Rana 最初发表于此博客

Hari 是 Fedora 杂志的 Fedora 编辑委员会的成员。他也是 Fedoea 质量保证(QA)的一员。Hari 希望通过推广各种技术和帮助需要帮助的人,为 Linux 桌面的采用作出贡献。

本文所表达的观点和意见是作者本人的,并不代表我们的观点。


via: https://news.itsfoss.com/traditional-packaging-modern-applications/

作者:Community 选题:lkxed 译者:gpchn 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

关于 Unix 及其起源的简短回忆。

The beginning

Unix 的起源

如今,几乎整个世界都运行在 Linux 之上。数以十亿计的移动电话和服务器运行在 Linux 之上。但在 Linux 之前,是 Unix,没有 Unix 就没有现在的 Linux。

Unix 的起源可以追溯到人类登陆月球的时候。在 1965 年,三个著名的机构共同开展了一个操作系统研发项目,准备开发一个能够服务多个用户,并共享数据和资源的操作系统。

Scanned copy of actual Unix code

这三个机构是著名的 贝尔电话实验室 Bell Telephone Laboratories 通用电气公司 General Electric Company (GE)以及 麻省理工学院 Massachusetts Institute of Technology (MIT)。这个合作项目被称为 “Multics” —— 即“ 多路传输信息和计算业务 Multiplex Information and Computing Service ”的缩写。

不幸的是,该项目并没有见到成功的曙光,由于系统设计复杂且没有什么成果,贝尔实验室停止了该项目。

曾参与该项目开发的贝尔实验室的 肯·汤普森 Ken Thompson ,也投入到了新的工作中。在 数字设备公司 Digital Equipment Corporation (DEC)的一台古老的 PDP-7 计算机上,他重新开始设计了一个新操作系统。不久后, 丹尼斯·里奇 Dennis Ritchie 也加入了,二人一起设计了分层文件系统、设备文件、命令行解释器以及进程。这就是 Unix 的诞生过程,它的名字是由 Multics 项目的另一名成员 布莱恩·克尼汉 Brian Kernighan 给命名的。(LCTT 校注:前不久,80 高龄的布莱恩还为他共同创造的 AWK 添加了新的特性。)

接着在 1971 年,Unix 被移植到了稍微先进一些的 PDP-11 计算机上,它仅有 512 KB 的磁盘。当时,Unix 只支持 16 KB 内存,可以为用户程序分配 8 KB 的内存。

然而,Unix 大多数代码是用汇编语言编写的,十分依赖于硬件。因此它并不具备移植性。

Ken Thompson (sitting) and Dennis Ritchie at PDP-11 (credit and learn more about this image1)

C 语言的创建

如此一来,要使 Unix 具有可移植性,使之与 机器无关 machine-independent ,唯一的方法是使用高级语言编写它,这样编译和相应的目标代码就可以进行机器指令的转换了。

解决该问题的伟大思想诞生于一瞬间。肯·汤普森从零开始创建了一种名为 “B” 的高级语言。然后,他做了大量的工作,将 Unix 的汇编代码转换成这种新创建的语言。然而,“B” 语言也存在一些局限性,丹尼斯·里奇在此基础上创建了著名的 “C” 语言,这使得 Unix 真正成为一个可移植的操作系统。

著名的 “C” 语言至今还在使用。

到上世纪 80 年代中期,Unix 已经变得十分成功,从微型计算机到大型机,它可以在成千上万种硬件上运行。

The text book of C which we all read

MINIX 和 Linux 的诞生

1987 年,计算机科学教授 安德鲁·斯图尔特·特南鲍姆 Andrew S. Tanenbaum 开发了一个名为 NINIX 的类 Unix 系统,在其著作《 操作系统设计与实现 Operating Systems: Design and Implementation 》中用以解释操作系统的概念,并随该书一起免费分发了这个操作系统(16 位的版本)。那些学习计算机科学专业(包括我)或相关专业的人都知道,这是一本解释操作系统基础知识的“神级”教科书。

1991 年, 李纳斯·托沃兹 Linus Torvalds 在赫尔辛基大学学习期间开始了一项 爱好项目。他的项目是基于 MINIX 和 GNU C 编译器的。他启动这个项目是为了能够在他的配有新款 80386 处理器的新 PC 上运行程序。他编写的整个操作系统包含了 MINIX 所缺乏的特性,最终成为了 Linux 内核。

Famous operating systems book by Tanenbaum

BSD 和 macOS

上世纪 80 年代,当 Unix 初具规模时,贝尔实验室基于 Unix 的最初源代码(在 PDP-7 和 PDP-11 上运行的版本)开发了 BSD( 伯克利标准发行版 Berkeley Standard Distribution )。BSD 是由加州大学伯克利分校的 计算机系统研究小组 Computer Systems Research Group (CSRG)分发的。在其形成之后,BSD 被许多工作站供应商(传统桌面系统),如 昇阳微系统 Sun Microsystems ,改编为专有的 Unix 变体。

该版本最终分叉创建了一些开源的变体,例如 OpenBSD、FreeBSD 等。这些自由版本为 史蒂夫·乔布斯 Steve Jobs 创立的 NeXT 创建 NeXTSTEP 开辟了道路。而 NeXTSTEP 最终成为苹果公司 macOS 的基础。

总结

Unix 是少数具有独到思想并致力于解决问题的人取得的非凡成就。如果考虑到在创建操作系统当时可用的计算能力和内存量,这个操作系统简直就是一件艺术品。

几十年来,所有这些一步步的进步,最终使我们走到了今天。无论有多少内核、操作系统和以编程语言形式出现的抽象概念,就其本质而言,它们都始于一个单一的来源。

我一直认为程序或代码是人类的思想,是你的逻辑、想法,只是写在 “IF-ELSE” 语句中,以实现一些现实世界的结果。

参考资料:

“所有的革命,在它们发生之前,都是历史的必然。” —— 大卫·米切尔 《云图》

via: https://www.debugpoint.com/unix-history/

作者:Arindam 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

九年前,也是这个上午,我创建了 LCTT 及其第一个项目 TranslateProject。从最初只是有感于 Unix/Linux 上的中文手册页实在太糟糕,希望做一些事情;到最后变成了一个以翻译国外各个开源社区的技术文章和开源资讯/讨论的“流水”式项目,LCTT 已经走过了令我自己都非常吃惊的九年。

人的一生,几十年而已,能在一件事上持续投入九年时光,这是我从未想过的事情。驻足回望,LCTT 其实并没有完成我最初的想法,这是缺憾;但是 LCTT 就这样变成了另外一种并非在我计划中的样子,或许也有其必然性。现在看来,LCTT 做了一些事情,也有一些存在的意义。我试着总结一下:

LCTT 的主项目 TranslateProject,选题广泛,参与门槛低,从某种意义上,为初识开源的小伙伴提供一种成为开源贡献者的方式。一些人就是通过这个项目,迈出了成为开源贡献者的第一步,并在日后的学习和工作中,成为了开源爱好者、专业技术人员。

LCTT 持续翻译了数千篇(截至今日,已经翻译发布了 6395 篇文章),这些文章的专业程度横跨了入门到精通等不同难度,内容方向涉猎了开发、运维、使用和文化等各个方面。虽然,有些文章仅堪一读,但也有不少文章值得收藏、一再细读。我屡屡能从读者那里得到反馈,这些文章对他们提供了很大的帮助,我想这就是 LCTT 的存世价值之一吧。唯独可惜的是,这些文章,没有以很好的方式组织起来,甚憾。

LCTT 有数百成员(截至今日,成功地在仓库中进行了贡献的贡献者有 311 位),他们的年龄不等,最年轻的有初中的学生、最老的,嗯这个不需要说了;他们的职业各异,比较多的是大学生,也有很多从事技术工作的专业人员,甚至还有完全不从事技术工作的贡献者。但是,他们都有一个共同的身份就是 LCTT 贡献者,因此,他们都有很多开源兄弟姐妹。

按照惯例,每两年,我会写一篇 LCTT 总结。今年又快到这个时间了,我却有些不知道该如何下笔。恍惚间,我突然想到,LCTT 是一个贡献者组织,是大家的 LCTT,那么,为什么不让大家来为 LCTT 写两句话呢?于是,我在 LCTT 群内发起了号召,请诸位成员写写自己参与 LCTT 的经历、感受或收获,也可以是祝愿、建议。下面,是我收集到的其中一些成员的留言(以留言时的顺序列出):

  • 译者-acyanbird:Linux 中国是我的开源引路人,让我有机会从零开始参与开源社区,认识到了开源精神,见到了世界的另一个可能性。也借此机会参与不少活动,认识了很多开源人士。目前在组长的帮助下,我也开始自己建立社区,十分感谢您给我这个机会~希望我们都越来越好,有更多的人也来一起参与开源
  • 译者-mandeler:LCTT community forever!
  • 译者-Kira-Pgr:For a better open source world!
  • 译者-mengxinayan:LCTT 不仅可以用来锻炼翻译能力,同时有专人进行校对,能有效找到自身不足。此外还可以用来接触新知新方向,最重要的是可以培养自身英文阅读的习惯。Thanks LCTT!
  • 译者-aftermath0703:从 LCTT 我收获到了许多知识,有时间我就会去 GitHub 上读读新的文章,有更多时间我就会去翻译一篇。翻译过程中先自己翻译一遍,再用翻译网站翻译一遍,有偏差的地方相互比对,我觉得这对我的各项英语能力都有很大的帮助。希望 LCTT 蓬勃发展,越办越好!
  • 译者-MFGJT:虽然因为工作原因很久没有翻译了,但是还是每天在看微信公众号。感觉到大家都很努力,希望今年有机会继续参加翻译 ?
  • 译者-stevending1st:加入 LCTT 最大的惊叹是核心贡献者能够做到维护一个几百人的贡献者群体,背后是他们巨大的努力。希望能在 LCTT 不断学习,努力提升自己的能力。也祝愿 LCTT 越来越好。
  • 译者-aREversez:作为一个学翻译的学生,能参与到 LCTT 这样一个项目,了解更多关于开源与技术的知识,见识更宽阔的世界和更深远的历史,让自己能尽己所能为开源贡献一份力量,实属荣幸之至。希望咱们社区能够一直繁荣下去,传播更加丰富多彩的开源技术与思想!
  • 译者-mcfd:LCTT 翻译的许多实用的技术文章,能够简明、易懂地为广大小白答疑解惑,扫除学习、日常中遇到的坑,间接且不断地为开源社区注入生机。清风不解凌云志,明月无声照九州​。
  • 核心-lkxed:在裸辞考研失败之后,我曾一度陷入迷茫。偶然间读到老王写的《如何以翻译贡献参与开源社区》,决心加入进来。自此,我从一个连 Git 和 GitHub 都搞不大懂的小白,成长为一名熟练的译者,又成长为一名熟练的选题。踏踏实实地做好一件小事,每天如此,不正是对抗焦虑和迷茫的好办法吗?感谢开源,给了我这个成长的机会;感谢 LCTT,领着我敲开了开源的大门;感谢老王,在我困惑时指点迷津。祝愿 LCTT 越办越好,我们一路与你同行!
  • 核心-bestony:刚刚专门回到网站上看了一下,我参与 LCTT 已经 8 年了,8 年来,LCTT 见证了我从小透明到半透明,也经历了我人生的三分之一。希望在未来的时间里,我可以和 LCTT 共成长,也可以与 LCTT 共人生。
  • 核心-Locez:今天是 LCTT 的生日,也是我的生日,一种奇妙的缘分。LCTT 是我接触 LC,接触开源以后第一个比较正式贡献的项目,对我来说意义比较非凡,重要的是通过这个项目在 LC 以及 LCTT 结识到了热爱分享的大家,特别是老王,viz,bestony 等人,很感谢大家在我学生时代起,就对我的一些耐心引导与帮助。
  • 译者-robsean:科教兴国,实干兴邦
  • 译者-TravinDreek:作为一位自由软件活动者,我主要从事技术伦理相关文章的翻译。我在 LCTT 的翻译动机,不止在于增进自己对当今技术伦理问题的认识,更在于让人们有机会了解到并利用自由(和开源)软件来应对这些问题。希望 LCTT 今后能在传播 FLOSS 方面起到更大的作用。Happy hacking.
  • 译者-Wlzzzz-del:之前备考考研时,偶然接触到 LCTT。为了多了解一些 Linux 知识,同时提高自己的英语水平,因此选择加入了 LCTT,这也是我第一次参与开源项目。虽然因为很多原因,翻译的文章不多,但是 LCTT 发布的文章我都会认真阅读。在未来我希望能多抽出时间来,参与到翻译活动中来。
  • 译者-Veryzzj:今年年初在朋友的介绍下认识了 LCTT 并参与到了其中,仔细回想 LCTT 的意义于我是什么?是打破开源项目于我的神秘面纱,是从申领到翻译每一篇收获的成就感,是发布了文章感受到的正反馈,是在翻译群中和大家交流时的友好气氛。正是这些点滴,是我对抗生命无意义感的武器。我们用语言打破边界,也用语言拓宽世界。预祝 LCTT 越来越好!
  • 译者-Chao-zhi:加入 LCTT 已经六年了,我已经不记得自己是怎么加入 LCTT 了。但我一直记得我是通过 LCTT 的 wiki 学会使用 GitHub 的。也是通过 LCTT 慢慢了解开源世界的。希望能继续和 LCTT 一起成长。
  • 核心-MjSeven:但愿 LCTT 长久,千里共婵娟
  • 译者-mudongliang:LCTT 是早期我参与的开源项目,通过这个项目我学会了很多开源知识,熟练使用 Git 使用,为后期在内核项目贡献,奠定了坚实基础 ?

说实话,LCTT 和 Linux 中国能走到今天,全赖这些贡献者的支持,这让我每每感觉吃力时,都有了不能放弃的理由。

那么,你是不是也想加入 LCTT 呢?很简单,访问 LCTT 官网:https://linux.cn/lctt/ 即可了解如何成为一名 LCTT 贡献者了。

最后,感谢大家九年来的支持和信任!顺祝大家中秋节、教师节快乐!

我们经常对比 Linux 和 Windows,那 macOS 和 Linux 有什么区别呢?

Linux 和 Windows 的差异很明显,但 Linux 和 macOS 在很多人看起来却很相似。

二者都可以在命令行中运行 Unix 命令,并且与用户在 Windows 中的体验大相径庭。同时,并不是所有 Windows 上的应用和游戏可以在 macOS 和Linux 上运行。

这就是为什么一些人认为苹果公司的 macOS 是基于 Linux 的系统。但事实并非如此。 尽管有相似之处,但 macOS 并不是 Linux。

这两个类 Unix 的操作系统有很多不同之处,我将在这篇文章中指出二者的异同之处。

就让我们来比较一下苹果和橙子企鹅吧。

起源

macOS 有一段迷人的历史。它的基础是由史蒂夫·乔布斯的 NeXT 计算机公司所开发的,那时候乔布斯不在苹果公司工作。从技术上讲,它是基于 Mach 内核) 和 Unix 派生的 BSD。

那时候,NeXT 开发了 NeXTSTEP 操作系统来驱动它设计的设备和电脑。虽然它得到了一些关注,但是它并没有大获成功。之后,苹果公司恢复了史蒂夫在董事会的席位,作为交易的一部分,收购了 NeXT 公司,使得 NeXTSTEP 操作系统成为了 macOS 的基础。

这就是为什么 macOS 是结合了 Unix 组件和苹果公司的专有技术的操作系统。

相反,Linux(内核)是 Unix 的自由并开源的替代品。

Linux 不是一个操作系统,它需要一些组件比如 桌面环境 才能成为一个操作系统。有许多 基于 Linux 的操作系统,称之为发行版。

简单起见,我们将这些操作系统称为 Linux 操作系统而不是特定的发行版。

macOS 内核 vs. Linux 内核

macOS 内核的官方名称为 XNU。该 缩写 代表 “ XNU 不是 Unix XNU is Not Unix ”(LCTT 校注:典型的 GNU 式回文缩写)。根据 苹果公司的 GitHub 页面 所说,XNU 是“将卡内基梅隆大学开发的 Mach 内核,与来自 FreeBSD 的组件,和用于编写驱动程序的 C++ API 相结合的一个混合内核”。其代码的 BSD 子系统部分是 “通常在微内核系统中作为用户空间服务器实现”。Mach 部分负责底层工作,例如多任务处理、受保护内存、虚拟内存管理、内核调试支持和控制台 I/O。

macOS 内核结合了 微内核 micro kernel Mach))和 宏内核 monolithic kernel BSD)的特性,而 Linux 只是一个宏内核。宏内核 负责管理 CPU、内存、进程间通信、设备驱动程序、文件系统和系统服务器调用。

二者共同之处

macOS 利用了 Unix 组件,而 Linux 是作为 Unix 的替代品而构建的。那么,二者有什么共同点呢?

二者都可以使用 Unix 命令、bash/zsh、以及其他 shell。或许 默认 shell 会有所不同,但是你可以根据你的喜好进行设置。除此之外,我想不到二者还有什么相似之处。

大概在十年前,我们可以说 Linux/macOS 提供的应用程序都比较少。但时过境迁。多年来,二者的软件生态和游戏支持都在不断发展,我们将在本文后面讨论。

代码库:闭源与开源

open source proprietary illustration

macOS 是一个闭源的操作系统,意味着你无法看到完整的操作系统源码。

当然,可以获得 部分 macOS(大多为 GNU)库的源码。还有用来开发 macOS 和 iOS 操作系统的 XNU 内核代码。但是 你不能只用这些代码构建出一个 macOS 的克隆版,并安装在任何硬件上。

没有源码并不不是世界末日,但你会因为苹果公司保护和增强你使用电脑体验的主张和实践,而获得 更少的透明度

一些人认为出于安全的原因而应该保持闭源。然而,不论开源还是闭源都面临安全威胁。

二者的不同 是:相对于员工数量有限的苹果公司来说,由于有很多开发者在开源社区中,所以开源软件会很快得到修复。

除非你毫无保留的相信苹果,不然 Linux 的开源模式更胜一筹。

目的和用途

macOS 专为台式机和笔记本电脑使用而设计。它非常适合于 视频编辑、图形设计和音频编辑

当谈到 Linux ,你可以做很多事情。你可以将 Linux 用于:

  • 客户端
  • Toaster(希望你了解 物联网 IoT
  • 单板机
  • 服务器

当然,在各种平台上使用它的体验并不相同,但 Linux 可以针对各种用例运行。

所以,如果你喜欢 Linux,你可以选择在其他平台上也使用 Linux,以获得舒适的体验。

用户体验

当谈到用户体验,这取决于个人喜好。

macOS 提供了 令人愉悦的用户界面。细致的动画和高分辨率的壁纸、图标,这在视觉上很有吸引力。

macOS Monterey

你可以期待在整个平台上获得轻松和无缝的体验。

使用 Linux,你可以获得同样令人愉悦且易于使用的用户界面。

Zorin OS 16 Pro

不幸的是,用户体验随着不同发行版所安装的桌面环境而不同。

你可以查看 最好的桌面环境 列表。你甚至还可以选择 类似 macOS 的 Linux 发行版

例如,如果你使用 Pop!\_OS、Ubuntu、Zorin OS 或者 elementary OS ,你将获得超棒的体验。

Pop!_OS 22.04 LTS

如果你使用类似于 MX Linux 或者其他的发行版,用户体验可能无法与 macOS 相提并论。

MX Linux

总的来说,Linux 的开箱即用体验是不一致的,但如果你知道自己在做什么,它就足够了。

如果你之前使用的是 Windows,刚开始会对 Linux 的界面感到困惑。

可定制性

customizability

如果你想要一个可以让你对它的各个方面进行改动的操作系统,那 macOS 不适合你。

尽管大多情况下苹果的设计在美学上会令人愉悦,但并不是每个人都喜欢它们。

如果你想要个性化、控制,并大量定制操作系统的具体细节,Linux 应该是完美的选择。

你可以根据需要选择自定义用户界面,使用各种不同元素,并根据你的喜好尽情发挥。请查看我们的 KDE 定制 指南以探索可能性。

虽然这很好,但在 Linux 系统上自定义内容时可能会适得其反,把它搞乱。因此,你需要学习、探索你想要自定义的内容。

运行硬件要求

hardware illustration

硬件是 macOS 遭受“重创”的地方。

如果你想获得 macOS 并有良好的体验,那需要购买昂贵的苹果硬件。

例如,支持 macOS 的笔记本电脑的基本配置从 8 GB 内存256 GB 存储空间 开始,价格为 $1200 或更多。

除非你想经常使用交换空间进行多任务处理,并且已经拥有云存储空间,否则买苹果设备将是一个糟糕的主意。

相比之下,如果你不想花很多钱,但仍希望为你的系统(PC/笔记本电脑)配置一个不错的配置,那么以 800 美元左右的价格购买一台配备 16 GB 内存 + 512 GB SSD 的设备来运行 Linux 是很容易的。

个人说明:我习惯了 32 G 的内存 + 500 GB 的 SSD 存储。为了获得这种多任务处理空间(不使用交换空间),我将不得不向苹果公司支付溢价。

一些熟练的“修补匠”尝试在非苹果公司的硬件上运行 macOS。这样的系统被称为 黑苹果 Hackintosh ,但它肯定远不及在普通计算机上运行 Linux 的舒适度。

软件生态

通过苹果公司为 macOS 制作的专属应用程序或工具,可以在 macOS 上获得 一流的原生体验

是的,你可能必须购买这些应用程序。但是,与某些订阅选项不同的是,你可以通过 macOS 获得一次性购买选项。

Final Cut Pro on macOS

对于想要设计、编辑视频、编辑照片并拥有创意的用户,如果你不介意投资的话,macOS 的软件套件应该是一个不错的选择。

免费的苹果工具(如 iMovie、Keynote 等)本身就很好。将它们与 Final Cut Pro、Affinity Designer 等高级工具结合使用,你将获得世界级的编辑体验。别忘了,在 macOS 上也可以使用 Adobe 等创意工具。

此外,苹果公司对其平台上的应用程序有严格的指导方针,以增强第三方应用程序(免费或付费)的原生体验。

这就是为什么许多设计师和编辑更喜欢使用 macOS 而不是其他操作系统的原因。

对于 Linux 平台,你可以使用 很棒的自由及开源软件 来替代一些仅限于 macOS 的应用程序。除非你喜欢或有使用 macOS 特定应用程序的经验,否则你应该不会在使用适用于 Linux 的软件方面遇到问题。

kdenlive editor

原生应用的体验基于你使用的 Linux 发行版。

Planner (To-do list app for Linux)

它可能不像 macOS 那样完美,但如果你不是专业级的视频、图形编辑人员,应该没有任何问题。

在 Linux 和 macOS 上游戏

gaming illustration

虽然苹果公司在使其新的 M1/M2 芯片尽可能强大方面取得了不错的进展,但 macOS 目前对游戏的支持很差。

少数游戏可以正常工作,并且大多数都不受官方支持。说实话,为游戏而买台 Mac 并不是它的目的。

关于 Linux,许多 AAA 级游戏和独立游戏运行良好。当然,某些游戏存在一些问题。但是,随着 Valve 推动游戏对 Steam Deck 的官方支持,即使是像 《蜘蛛侠:重制》 这样的最新版本,都得到了 Steam Deck 的认可。

最终,这会帮助改善 Linux 平台对游戏的支持。

此外,考虑到 PC 显卡市场几乎恢复正常(接近或低于建议零售价),你可以获得不错的 PC 版本或笔记本电脑,而不必担心性能瓶颈。

你会花 1800 美元以上购买配备 16 GB 内存和 512 GB SSD 的 Mac,还是购买配备 32 GB 内存(或更多)和至少 1 TB SSD(或更多)的 PC/笔记本电脑?

那由你来决定。

软件包管理

package manager illustration new

软件包管理器能够让你很快地找到、安装或卸载你的操作系统中的软件。

与现有的任何系统相比,Linux 一直在包管理方面占据优势。

你可以获得 FlatpakSnapSynaptic 等开箱即用的选项。

但是,在默认情况下,Mac 用户没有任何可依赖的软件包管理器。幸运的是,像 Homebrew 这样的选项极大的方便了 macOS 用户。

当然,它还支持 Linux。因此,你可以在多个设备上使用它来简化操作。

系统升级

software update illustration

苹果公司不会发布其操作系统更新的具体计划。

例如,macOS Ventura(在撰写本文时即将进行版本升级)突然抛弃了 2017 年之前的所有 Mac 设备。

有趣的是,以前的操作系统版本平均支持 七年左右,但随着更新的变化,现在似乎是 五年左右

对于苹果公司设计的芯片,这或许不是一个简单的答案。但是,至少 4 到 5 年的软件支持是安全的。

Linux 为你提供了选择。如果你想要一个没有功能升级,只专注于维护和安全性的稳定操作系统,Linux 发行版的 LTS 版本 可以免费为你提供 五年 的更新。这主要适用于 Ubuntu 或基于 Ubuntu 的发行版,如 Linux Mint。

此外,有一个 Ubuntu 订阅项目,你可以持续 十年 得到安全更新。

而且,不止于此,你还可以选择 滚动发行的版本,来获得没有结束时间的持续的前沿更新。只要你的硬件能够胜任,你应该就能毫无问题地更新操作系统。

macOS vs. Linux: 你应该选择哪一个?

如果你需要的话,macOS 可以说是物有所值。

不建议只需要上网、发送电子邮件,以及执行一些在任何平台上都可以执行的任务的用户购买 macOS。

macOS 仍然是一个小众的选择。

然而,随着 Linux 的改进,它已经成为先前是 Windows/macOS 的用户、计算机专业学生、开发人员、创意专业人士(如我们)以及广泛潜在用户的有用的选择。

选择 Linux 而不是 macOS (而不是反之)的原因有很多,但这是我的看法。

你对 macOS 与 Linux 有何看法?欢迎在下面的评论中分享你的想法。


via: https://itsfoss.com/mac-linux-difference/

作者:Ankush Das 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版。

Manjaro 是基于 Arch 量身定制的 Linux 发行版。

两者在用户体验以及功能上都大相径庭。

然而,将 Manjaro 的 GNOME 版和 Ubuntu 放到一起比较时,其中一个共同点是 桌面环境

但它们到底有什么不同?Manjaro 的包管理器会更好用吗?Ubuntu 和 Manjaro 上的软件生态怎么样?

接下来,我们来看看两个 Linux 发行版在某些关键问题上的差异。

发行周期

Ubuntu 根据你选择的版本不同提供了两个发行周期。如果你选择的是 长期支持版本 Long Term Support (LTS),那么你在至少未来五年内都会收到安全维护更新。

假如你安装了 Ubuntu 22.04 ,那么你在 2027 年 4 月 之前都能获取更新。

ubuntu22 04 lts about

因此,我们更推荐普通桌面用户使用 LTS 版本。

如果你想要更新更好的体验,你可以选择每九个月更新一次的非 LTS 版本。例如 Ubuntu 21.04、 Ubuntu 21.10、Ubuntu 22.10。

需要注意的是,非 LTS 版本涉及的更改可能会影响你的工作流程以及用户体验。因此并不推荐所有人都去使用非 LTS 版本。

选择 Manjaro Linux 时你将会获得滚动发布的更新,因此你不必担心对你使用版本的支持过期。它会通过定期更新升级到最新的可用版本。

manjaro about

由于滚动发行周期的原因,你可以快速获取到最新的软件包。因此如果你想使用某个软件的历史版本,Manjaro 或许并不适合你。

桌面环境

Ubuntu 特别提供了一个定制版的 GNOME 桌面。它可能不是最新的,但如果你使用较新的 Ubuntu 版本,它基本上包含的就是最新的 GNOME 桌面环境。

ubuntu 22 04 wallpaper

Canonical(Ubuntu 背后的公司)并不提供其它桌面环境。

但如果你想在 Ubuntu 上使用其它桌面环境,你可以选择包含了 KDE、Budgie、LXQt、MATE 以及 XFCE 等桌面环境的 Ubuntu 官方 风味版 Flavour 。与提供了其他桌面环境的非官方版或更新的 特色版 Spin 的 Ubuntu 相比,它们是经过良好测试且稳定的 Ubuntu Linux 发行版。

但是这些 Ubuntu 风味版没有五年的软件支持;相反,你只能受限地得到对 LTS 版本的三年支持。

如果使用 Manjaro,你可以选择官方提供的三个版本:XFCE、KDE 和 GNOME。 无论桌面环境如何,你都会使用滚动发布模式。

manjaro gnome 42

当然你也可以使用 Manjaro 的一些社区版本,如 Budgie、MATE、LXQt。

包管理器以及软件生态

在上述这两类发行版中,找到大多数必要的 Linux 应用是没问题的。

不过,Manjaro Linux 使用 Pamac 作为其包管理器而获得了更快速的体验。

manjaro package manager

与 Ubuntu 上的应用商店相比,Manjaro Linux 在快速安装/更新软件方面提供了更好的体验。而且,它还支持开箱即用的 Flatpak/Snap,如果你只需一键即可启用它们。

Ubuntu 比较重视 Snap 软件包,你会发现一些应用程序预装为 Snap 软件包(如 Firefox 浏览器)。

firefox as snap

对于 Manjaro Linux 来说,你可以根据自身需求决定是否启用 Flatpak/Snap。

在使用 Ubuntu 时,其应用商店提供的 Linux 应用并不是最好的。取决于你的系统配置和使用年限,它会变得越来越慢。

ubuntu 22 04 software center

除此之外,Manjaro Linux 还可以访问 AUR,它可以获得你在 Ubuntu 应用商店中可能找不到的几乎所有软件。

因此,就软件生态系统和包管理器而言,Manjaro Linux 的确要比 Ubuntu 有更多的优势。

易用性和目标用户

Ubuntu 桌面主要是为了易于使用而量身定制的。它专注于提供最佳的软件和硬件兼容性组合,让所有计算机用户都可以使用 Ubuntu Linux,而无需了解 Linux 世界中的大部分内容。

即使有人不知道 Linux 上的“包管理器”是什么,在他们使用它时也可以完全把它作为 Windows/macOS 的完美替代品。

当然,我们也有一个指南来帮助你 安装最新的 Ubuntu 后要做的事情

Manjaro Linux 也是为桌面用户使用量身定制的。但是它并不适合首次使用 Linux 的用户使用。

它旨在简化 Arch Linux 的操作。因此主要面向想要使用 Arch Linux 的 Linux 用户,但是增加了一些便利性。

稳定性

stability tux

Ubuntu LTS 版本主要关注稳定性和可靠性,因此你也可以在服务器上部署它们。

相比之下,Manjaro Linux 可能没有提供现成的的稳定性。你在 Manjaro Linux 中安装软件包时需要更加仔细,同时密切注意你的配置,以确保更新不会破坏你的系统。

对于 Ubuntu 用户来说则无需担心软件更新,尤其是在考虑 LTS 版本时,更新通常不会破坏你的系统。

个性化

Ubuntu 特别提供了一个由 Canonical 为最终用户设置的定制 GNOME 桌面。虽然你可以自由定制你的 Linux 发行版的各个方面,但 Ubuntu 开箱即用提供定制很少。

Ubuntu 多年来一直在改进,最近增加了 在 Ubuntu 22.04 LTS 中添加强调色 的能力。 但是它仍然还有很长的路要走。

如果你想获得个性化的桌面体验,你只能借助 GNOME Tweak 等软件来实现。

对比 Manjaro GNOME,你也只能使用相同的工具来自定义桌面。

Manjaro 还对外观进行了一些自定义调整。但是它提供了更多组件来更改布局和其他一些选项。

manjaro layout

在个性定制方面,你在 Manjaro 和 Ubuntu 上的体验大致相同。

如果你想要更多自定义选项,Manjaro Linux 可能是一个不错的选择。但是如果你只想要个性化体验而不需要太多的改变,Ubuntu 应该就足够了。

臃肿的软件

这对每个人来说可能都不是什么大问题。但如果你不喜欢预装许多应用程序,那么 Ubuntu 可能会令你感到麻烦。

ubuntu 22 apps

虽然可以随时删除不需要的应用程序。但是你会发现随 Ubuntu 一起安装的软件和服务还有很多。

使用 Manjaro 时,你在安装时只需要安装最基础的内容即可。它们坚持使用最基础的实用程序,最大限度地减少预装的软件包数量。因此,Manjaro 很少会和软件臃肿联系到一起。

但是你在默认安装的 Manjaro 上可能找不到你最喜欢的 Linux 软件。因此,如果你想在安装后立即使用一些你喜欢的软件,Ubuntu 可能是一个不错的选择。

性能

ubuntu 22 04 neofetch lolcat

虽然 Ubuntu 改进了其系统表现,甚至可以在 2 GB 内存的树莓派上运行,但它仍然不是性能最好的 Linux 发行版。

当然,性能确实取决于你选择使用的桌面环境。

但是与 Manjaro 的 GNOME 版本相比,Manjaro 提供了更快捷的体验。

需要注意的是,性能和动画首选项的用户体验还取决于你的系统配置。例如,Manjaro 的推荐系统要求(1GB 内存和 1GHz 处理器)给了你使用旧电脑的机会。

但是,对于 Ubuntu,在撰写本文时,你至少需要 4GB 内存 和 2GHz 双核处理器,才能获得理想的桌面体验。

文档

考虑到 Ubuntu 的受欢迎程度,Ubuntu 更易于使用,并且对新用户来说可能更舒适。

Ubuntu 的文档 即使不是最好也足够好了。

谈到 Manjaro Linux,他们有一个 维基,其中包含基础信息和深入的指南来帮助你入门。

总的来说,Arch Linux 的文档 非常细致,几乎每个人(甚至是老手)都会参考它来寻求帮助。

Arch Linux 的文档在很大程度上也适用于 Manjaro Linux,因此在文档方面,使用 Manjaro Linux 比 Ubuntu 更有优势。

结束语

作为两个完全不同的 Linux 发行版,它们服务于各种类型的用户。你可以选择你感兴趣的任意一个并尝试去使用它来判断它是否适合你。

但是,如果你想避免对系统进行任何更改,并专注于你的工作,那么 Ubuntu 应该是一个明智的选择。

而如果 Ubuntu 的性能对你的体验有相当大的影响,你应该去尝试 Manjaro。 你可以阅读我的 关于从 Ubuntu 切换到 Manjaro 的初步想法


via: https://itsfoss.com/ubuntu-vs-manjaro/

作者:Ankush Das 选题:lkxed 译者:Return7g 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Windows 用户在转换到 Linux 的过程中会遇到很多问题。如果反过来,一个一直用 Linux 的用户第一次用 Windows 或 macOS 会遇到什么问题呢?

一直用 Linux 的人第一次用 Windows 或 macOS 会怎样?

还记得 YouTube 频道 Linus Tech Tips 中 Linus Sebastian 尝试在 Linux 上玩游戏 的场面吗? 尽管终端显示了明显的警告, 他最后还是把他的桌面环境删掉了。

Linus Sebastian 弄坏了他的 Linux 系统

考虑到 Sebastian 日常用 Windows 玩游戏, 换到 Linux 肯定需要一定的时间。

所以,这是 Linux 的问题吗? 还是 Sebastian 搞错了?

难道说,任何对操作系统不熟悉的用户在第一次尝试使用该系统的时候都会遇到问题?

接下来,你可以从不同的角度去了解 Linux 用户第一次使用 Windows 或者 macOS 的感受。

Linux 用户第一次用 Windows 或 macOS 会非常容易?还是会和 Sebastian 用 Linux 时一样感觉糟糕?

这肯定是非常有趣的话题……

一位 DevOps 高级工程师 Scott Williams 在一系列推文中假想了 Linux 用户第一次用 Windows 或 macOS 的场面。

在 Windows 11 上怎么启用 TPM 2.0?

如何安装 Windows 的最新版本 Windows 11?

Scott Williams
今晚,看我在能不能在这台用了 4 年的笔记本电脑上启用 TPM2.0 并运行 Windows 11。这台电脑支持 Intel PTT,所以应该会很顺利吧?

怎样启用 TPM 2.0? 如何在 BIOS 菜单中找到它? 启用 TPM 2.0 安全吗? 我是否需要刷一个更新的 BIOS? 更新 BIOS 的过程中是否会弄坏我的主版?

这些就是些每个 Linux 用户(甚至是 macOS/Windows 用户)将系统升级到 Windows 11 时都会遇到的一些问题。

Linux 用户从来没有必要做如此奇怪的事情来让系统正常工作。即使是在 2022 年。但是 Windows 11 需要你在升级前了解 BIOS 设置和 TPM 芯片的情况。

虽然 Scott 提到的是旧笔记本电脑,但值得注意的是,即使是最新的主板(比如 Z590),你可能也需要调整 BIOS 设置或者刷一个版本更高的 BIOS 版本才能支持 Windows 11。

由于更新 BIOS 有一定的风险,这种事情即使是对于懂技术的用户也是很不方便。

我需要用杀毒软件吗?用哪个?

虽说苹果的 XProtect 和 Windows Defender 能提供基本保护,但对于想要更好保护的用户来说,在杀毒软件方面有几个选择:

Scott Williams
所以我究竟需不需要装杀毒软件?装哪个?

网上有那么多选择和软文,用户很难确定那个杀毒软件最好,已经为之付费是否值得。

而 Linux 用户就会这么想: 我竟然还要安装这个? 不会很浪费性能吗? 我需要这么多安全防护功能吗? Windows 不是一个安全的操作系统吗?

macOS 和 iCloud:一个爱情故事?

Scott Williams
iCloud 是什么?我怎么把它删掉?

Linux 用户们并不喜欢集成的云服务。他们宁愿挂载一个网盘(或网络存储器)。

即使他们选择了网盘,也应该按照用户的意图来工作。但是,在 macOS 上,你会经常被提示要使用 iCloud,同时 Siri 还会跳出来捣乱。

Linux 用户清理注册表

原先使用 Linux 的新手 Windows 用户为了能优化系统性能去清理注册表,但在面对那么多清理注册表和优化系统以提高性能的工具和选项时,可能会以一个没有反应的 Windows 而告终。

Scott Williams
Reddit上有些人说需要“清理注册表”,我按照几个教程删除了一些东西,然后现在我的 Windows 变得很奇怪。

即使在 2022 年,对于应该在什么时候手动或者用工具清理注册表还是没有明确的规定。

虽说资深 Linux 用户喜欢在尝试新东西前关注细节。但如果 GUI 中没有恰当的警告或提示,还怎么知道所有的注意事项呢。

经常需要重启

虽说不像 Linux 的重启那样,Windows 的重启可以修复问题。不过,我到底要在更新 Windows 或者安装软件后重启多少次啊?

Scott Williams
第一次尝试 Windows 或 macOS 的 Linux 用户是这样的:
“究竟需要安装多少个版本的 .NET? 已经重启了多少次了?”
“为什么我的 Adobe 版本不支持这个版本的 macOS? 难怪那么多人在用 macOS 时会遇到麻烦。苹果公司需要修复这个问题了。”

每次我重启的时候后台运行的程序都被干掉了。

为什么 Windows 就不能在检测新安装的程序或者更新的时候简单地刷新一下,而不是重启呢。Windows 为什么反着来呢。

这些东西还需要花钱? 我有 Windows 许可证还不够?

Linux 主要是自由和开源软件构成的,因此预装的工具也是免费的。

所以, 一个用惯那些工具的用户就不得不突然需要花钱买一个 Windows 许可证,而且还要支付软件费用。

微软是不是太贪婪了呢?

默认就缺少必须的软件包

在安装完 Windows 后我连压缩包都解压不了?Windows 真的是现代操作系统吗?

macOS 配置多显示器

Scott Williams
怎样让我的显示器在 macOS 上工作呢?

在 Linux 上配置多显示器非常轻松。但在 macOS 上完全不是那回事。

总结

归根到底,这要看用户的标准和你熟悉的内容。Windows 和 macOS 经常被看作标准的桌面系统。

然而相比之下,大多数人除了知道 Linux 很难用外,对有关 Linux 的东西了解甚少。

不过,你只要掌握使用 Linux 的要领,就像你掌握 Windows、macOS 那样,用 Linux 桌面环境就很轻松了。

只不过在用 Linux 的过程会遇到各种各样的问题,但你只要有耐心就能享受整个过程了。

Linux 本身没有什么问题,是其他系统用户未能熟悉 Linux 的问题。我们并不希望 Linux 变成 Windows,也不希望 Windows 表现得像 Linux,任何操作系统都应该“做它自己”。

但话又说回来,不应该因为一个长期使用 Windows 的用户在最初使用时没有良好的体验就把 Linux 排除在外,因为同样的情况也可能发生在一个长期使用 Linux 的用户尝试 Windows/MacOS 时。


via: https://news.itsfoss.com/linux-user-trying-windows-macos/

作者:Abhishek 选题:lkxed 译者:Kira-Pgr 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出