“Linux 之父” Linus Torvalds :桌面版 Linux 的程序兼容性才是最糟糕的问题!你怎么看

简介: “Linux 之父” Linus Torvalds :桌面版 Linux 的程序兼容性才是最糟糕的问题!你怎么看

近日,“Linux 之父” Linus Torvalds 在 7 年前某会议上对桌面版 Linux 所存在问题进行“吐槽”的视频,再次被网友和媒体们挖了出来,由此引发了热议。

image.png

视频中,Linus 强调:乱改核心,造成应用程序不兼容,这才是桌面版 Linux 最糟糕的问题所在!

众所周知,Linus 向来以犀利、激进的言语而闻名。去年,Linus 还对 Intel 的 Advanced Vector Extensions 512(AVX-512)指令集提出了一些激进看法,称其为“功率病毒”,并怒喷 Intel 直言“去死”。

而在这个视频中,Linus 就直指各大 Linux 桌面发行版的程序兼容性问题,并强调了该问题将给开发者和普通用户带来的很多糟糕体验。

首先,Linus 指出了Linux 分裂的一个重要原因:每个发行版都在随意地修改 glibc 库,改变底层 API。

由于这些 API 的差别导致应用开发者无法为 “Linux” 平台创建一个通用的包,因此应用的二进制文件通常只能适用于某个发行版。

我们知道,Linus 一直以来都在呼吁且要求各版本的 Linux 尽量不要更改核心,不能破坏用户空间,但现实中基本没人遵守这个原则。

Linus 表示,自己也参与了一个聊天软件的开发,为 Windows 和 OSX 制作了二进制文件包,但“我一般不为 Linux 桌面制作二进制文件,不同的 Linux 发行版有不同的规则,因为给不同版本的 Linux 做适配真他X的痛苦。”

其次,API 的变动也会让一些桌面版 Linux 在向后兼容方面变得很差,Linus 称这会给非开发者的普通用户带来很不好的交互体验。

最后,Linus 也谈到了桌面版 Linux 在包管理上浪费了太多精力,以及 SteamOS 对桌面 Linux 发行版的影响等。

image.png

其实,这已经不是 Linus 第一次“吐槽”所谓桌面版 Linux “烂”了。

在过去的  20 年里,我们一直听说桌面版 Linux 将如何在“5 年”内成为主流的话题。但与此同时,Linus 也花了 20  年时间,试图向那些“狂热的”桌面版 Linux 操作系统用户解释——Linux 根本不是为普通桌面操作系统用户设计的,而是为开发者、IT  专家和程序员而设计的。

所以,我们看到了这条 Linus 在 7 年前 DebConf14 上的视频。

但今天看来,Linus 当初提出的程序兼容性问题不仅没解决,新 Linux 版本又在不断的分裂 Linux 软件生态,这属实很无奈。

好在,我们也看到了一些好的方面的改进,比如 Snap、 Flatpak 这种跨 Linux 版本的统一包管理程序。

其中,snap 包中含有软件的二进制文件和其所需的所有依赖和库,因此可无视软件版本、在任意 Linux 发行版上安装软件。

而 Flatpak 作为分发桌面应用的新框架,可让开发者完全摆脱为不同 Linux 发行版打包分发应用的这些负担,只需构建一个 Flatpak app 就可以在多种发行版上安装使用。

以上这些方法,都能很好的解决了 linux 软件安装时烦人的依赖问题。

如果你也正考虑将 Linux 作为自己的主要桌面操作系统,那么可以先看看来自 Linus Torvalds “吐槽”该问题的完整视频。

https://www.reddit.com/r/prog...


相关文章
|
1月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
101 6
|
2月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
216 2
|
2月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
51 2
|
14天前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
24 5
|
2月前
|
前端开发 Linux
深度探索Linux操作系统 —— 构建桌面环境3
深度探索Linux操作系统 —— 构建桌面环境
36 12
|
2月前
|
存储 搜索推荐 Linux
深度探索Linux操作系统 —— 构建桌面环境1
深度探索Linux操作系统 —— 构建桌面环境
45 8
|
2月前
|
Linux 编译器 C语言
深度探索Linux操作系统 —— 构建桌面环境2
深度探索Linux操作系统 —— 构建桌面环境
27 6
|
2月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
2月前
|
Linux API
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
|
2月前
|
Linux Windows Python
最新 Windows\Linux 后台运行程序注解
本文介绍了在Windows和Linux系统后台运行程序的方法,包括Linux系统中使用nohup命令和ps命令查看进程,以及Windows系统中通过编写bat文件和使用PowerShell启动隐藏窗口的程序,确保即使退出命令行界面程序也继续在后台运行。