Linux的困境

随着近年来的开源运动，越来越多的大软件选择使用更加开放的工具链去构建，这也给了 Linux 翻身的可能，随着软件越来越多，越来越多人把 Linux 当成了他们的首要的操作系统，以至于到今天 Linux 的桌面占有量 (算进去其他的 * nix) 大概 5%, 好歹也算一个小有规模的操作系统了.

然而其实 Linux 从来就没有是一个系统过，它上次长得像一个系统的时候还是大家还在用 gnu 全家桶和 sysv 的时代，后来越来越分崩离析，生态也越来越一盘散沙，导致现在基本没有几个一般用途的软件开发者傻到先做 linux 的 target, 这究竟是怎么回事呢？

大集市造就了极高的上手门槛

Linux 无论是各个发行版还是软件开发者都要把自己的软件用不同的方式去反复的打包，就如同把他们的货物放在不同的集市上售卖，这个也不能说不好，但是往往会出现大大小小的兼容性问题.

一个合格的 Linux 用户往往是不断踩坑，不断修坑，然后将自己的解决方式放到网站上使别人查阅... 可是，就连我这个从高中就开始使用 Linux 作为我的首要操作系统的人，在 2019 年开始的 WSL 的步步紧逼下，我竟然彻底放弃了 Linux, 我觉得我们应该从里面找一些原因.

我在早期使用 Linux 的时候 (Ubuntu14.04) bug 奇多，但是网站上论坛上的人很多都对我表现出一种近乎敌对的态度，这个都不会，请查阅 man, 或者请自行搜索。这其实对于一个新手来讲是非常困难的一个事情，我甚至不知道 man 的存在，也没有受到过正经的 Linux 为基础的教育，也从来没 Unix 系列的操作系统使用经验何谈知道怎么用 man.

等当我有了一定的 Linux 上手基础之后，我发现市面上用的 RPM 系比较多，等当我使用 Fedora 时再次陷入了同样的问题... 我文档呢？

就跟去大集市购物一样，你会知道菜市场里的菜是使用的什么农药，什么化肥，产地是哪里哪个国家的种子，转的哪一个基因吗？不你只是能看见这是一颗被割下来放哪里再喷了点水的 "新鲜" 的菜.

生态的缺失不是靠开源情怀复刻就能解决的

我体验到过的没有一款 Linux 有什么能够占领用户心智级别的体验 (KDE 的 connect 挺好用的，感谢 INOKI 的团队), 如 Windows, 从当年的 XP 到现在的 Windows11, 你想用全套的 Office 吗？你只可以在 Windows 上跑，而 Linux 上只有拙略的替代品 (如 OpenOffice), 跟正常用户讨论什么开源精神其实是并没有太大的用处的，因为再有什么精神什么口号，但是你没有人喊得再响也没有什么用.

还有比如 Photoshop, 我认为 Linux 的态度很暧昧，如果没有为什么不让 Adobe 公司移植？如果移植 Linux 很难？不根本就没有这种如果，因为 Adobe 很多产品都是 Mac 起家的，而 Mac 的核心就是隔壁的 BSD, 而 COCOA 当时 GNU 也搞过 GNU NeXT. 只不过是这群趾高气昂的人不欢迎不开源的软件，非要自己做，最后你看看 GIMP 和 Krita 哪个像正常人用的软件的样子？你指望美工去使用这个满是 Bug 而且 UI 丑的要死的软件？？

松散而分散

使用过 Windows 的人多多少少都会听说过注册表，控制面板，设置.

上个世纪伟大的发明

据微软的不可靠统计，Windows 的可配置项是 Linux 的两倍.

而你看看这 Linux 配置一个配置甭说注册表了，你需要在 /etc/usr /usr/local ~/.local 等的某个文件夹的某个.conf 或.ini 文件里通过 nano 或 vim 等编辑器去使用一天一个的奇葩语法编辑.

如果这还算好的... 那你应该听说过多版本，也就是 /etc 有一个 /usr 有一个 /usr/local 也有一个... 这种你都不能确定你的配置有没有生效，其实这也还算好的.

现在越来越多软件都把配置文件直接扔到～/. 软件名，行，彻底赢了.

虽然各种各样的人批判注册表，但调整注册表和组策略或SELinux 和 Systemd你选一个？

通过解耦我们获得了更难用的接口.

这还算好的，你看看 DBus 有几个实现，常用的有几个...

苹果：我们一家子都 COCOA

微软: COM 接口反正还活着

Linux: Systemd dbus, kdbus, gtdbus, qtdbus, libdbus

关键是你比他们复杂几倍啊，造那么多一些进 kernel 一些默认装，还有一些从软件分发，真的无语死了.

能够随便气死运维的目录之一

反正这是我的 etc 目录，大概几千来个不同的文件，用了几十种不同的描述语言吧 2333

有人要说了，俺们 Linux 的祖宗可是 Unix

还记得当年 Unix 怎么扩张的吗？
没错就是因为好用，想当年大家都一人一套傻逼接口 (就跟现在的 Linux 有点类似), 买一个电脑只能用一个 OS, 然后换电脑约等于换 OS, 中间的数据根本不能迁移 (就跟现在的 Linux 有点类似), 于是一群做游戏的花了一个星期开发了 Unix 的原型.

Unix 和 C 语言的崛起正是说明了简单粗暴且实用才有利于传播，而现在的开源社区和黑客的风气就味道怪怪的，仿佛不想让菜鸡 (比如说我) 去融入这个圈子，圈地自萌，做出来的东西也越来越看不懂 (如我们可爱的 k8s)

还有个反驳就是说：你看 Unix 时代不也是有什么坏了就自己修吗？

你可以看看那时候的计算机用户受过高等教育的比例，随着计算机系统越来越复杂，曾经一万行代码就可以说我写了一个非常棒的操作系统，你看看现在就连写一个脚本语言都不止一万行了，已经不是黑屏幕 + 绿色字的 shell 能解决一切的年代了，再者说了，现在 Linux 的用户环境动不动就是 2000 多个包，每一个包都很可能是非常领域相关的知识.

时代已经变了，之前确实一本 200 页的书就可以详细的记载整个操作系统的所有功能，现在我觉得靠一个人去记住操作系统有什么顶级模块都费劲.

Unix 流行的年代基本人人都是半个程序员，我记得我爸说他们那个年代去网吧玩游戏都会手动加载显卡，调整分辨率，加载声卡，mount 一个软盘，mount 第二个... 直到最后执行，你看看现在又有几个人可以在 linux 的 CLI 里面干相同的事情？

总之我的观点是，现在那一套已经过时了，我们作为开发者可以在开发时预留出一些可配置相，但所有东西都可以配置或者都允许用户自己去鼓捣的年代已经过去了.

碎碎念的总结

历史的车轮滚滚向前，至于未来的操作系统长什么谁都没有一个确切的定论，但科技的发展方向一定是更加以人为本，使得每一个人都能享受到科技的红利的产品绝对是风口，微软的 windows3 是这么飞起来的，Mac 的 NeXT 是这么飞起来的，下一个是谁？一定是比他们对人类更友好的.