我大概2000年上大学在宿舍开始玩Linux,到现在20年了!也算是最早一批痴迷于Linux桌面用户啦!记得当时的毕业设计BBS论坛开发就是在Mandrake Linux(后改名Mandriva,一种继承自Redhat体系面向桌面的软件)上面完成的,为了下载三张700M的iso镜像,拿着硬盘跑到网吧玩通宵下载,现在想起来也很美妙!

最开始玩Linux粉们,都是极为期盼Linux的桌面化发展,我在当时也是Linuxsir的常客,还是个版主 ,还有Linuxfans,Linuxedeu,Linuxaid,不知道是否曾经热爱这片天空的Linux极客们能否看到!

言归正传吧!对于Linux桌面的发展是否因为类似鹅厂不积极开发Linux版上的QQ,阻碍了Linux发展,讲真,有影响,但是夸大了!

当年的清华Luma QQ作者的封版告别信,就能判断出当时的商业化公司是多么与开源社区格格不入。但是Linux的桌面端发展到现在不是好好的吗,没有从历史的长河消失啊,而且桌面越来越成熟。另一面的服务器端发展基本上已经一统天下了!

想要理解Linux的发展要从他的原始初衷看,而不能去怪罪一个做应用的厂商。 首先Linux只是一个内核,正好当时GNU开源组织缺乏一个好的内核,就与Linux联手了,拥有GUN庞大的操作系统软件库支持,Linux发行版很快就火了起来,可惜当年Freebsd正和Unix大厂因为版权打官司改代码,耽搁了几年,否则还不知道如今花落谁家!

其次Linux既然联手GNU,就必须遵循GPL协议,GPL协议具备极强源代码开放传染性,首先被传染的一定是驱动厂商,驱动是必须开源的,这是很多年阻碍Linux发展最大的罪魁祸首,其实驱动厂商,它们不是不愿意研发Linux官方驱动,而是因为这会开放厂商的驱动设计,影响到市场竞争,因此导致大量的PC机无法正常使用Linux。

所以说Android的Google就干了一件对于开源社区是不光彩的事情,但对于世界是伟大的事情,那就是Android基于Linux系统,但绕过了GPL协议,驱动厂商就能放心支持Android。

最后就是商业模式问题了,这个其实是比较阻碍Linux桌面的发展。服务端的开源软件已经开始走上非常成熟的阶段,像Redhat百亿身价卖给IBM,而做桌面Linux发行商却还有很长的路要走。桌面端不如服务端,因为服务器端的运营可以控制发行版及版本的碎片化,也不需要过多的外部生态依赖,就能安安生生的干事情。

但桌面端不行,一个KDE、Gnome根本不够,只要用了Linux桌面,一定就是先找Linux下的类似Win应用软件都有什么,这就不只是找QQ一个软件那么简单了,关键即便是找到了Linux版能用的应用软件,还要出现一堆应用问题,例如:字体发不发虚,界面是不是有乱码,内容格式是不是匹配等等,这其实才是最熬人的事情。

其实这些问题都是Linux发行版太多,而且各个库版本迭代频率太快导致的,这就很容易出现底层库更新了版本,上层桌面应用匹配不上,就安装不上用不了的问题。那么这种状态下,Linux用户量一定是上不去的,那么Linux桌面的商业化就很难做。越难做就越吸引不了高热度的应用入驻,反之又成为一种用户数量的制约。

即便在如此境地,Linux桌面依然在前进着,而且还好好的,其实这才是最应该讨论的问题,因为这不符合正常逻辑,看看黑莓、诺基亚、微软,在没有了应用生态支持,移动OS都一个个消亡了,但Linux桌面没有,还依然走着自己的路,这就是Linux的强大和伟大之处,就好像它是一座山,一直就在你面前,只是你有时候没有看见它而已,而怀着各种想法的人们需不需要来上山,那也是人们自己的一厢情愿而已。

Linux的桌面怎么走,这个我真不清楚,但是我看到的是微软,曾经开源社区的敌人,都已经开始拥抱Linux了,不仅仅是服务端,整套.net桌面开发环境都开始支持Linux了,甚至自己的操作系统都想换成Linux,那么来自基础平台商的如此坚定支持,我觉得大概率其他商业厂商的支持是迟早的事情。操作系统的Unix家族体系归一化,这个真的不是通过什么策略,而是趋势。

我们是“读字节”技术专家团队,感谢您的关注! 读字节官网

什么原因才是阻碍Linux桌面发展的罪魁祸首的更多相关文章

  1. Linux 桌面玩家指南:13. 使用 Git 及其和 Eclipse 的集成

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  2. Linux 桌面玩家指南:04. Linux 桌面系统字体配置要略

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  3. Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  4. 计算机与linux操作系统的发展

    一.计算机 (一)计算机的概念 1.概念:计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速 ...

  5. Linux 桌面美化那点事儿

    各个 Linux 桌面发行版刚拿到手的时候,或多或少都有点儿不满意,对它们进行一些改造是必须的.网上不乏各种 Linux 桌面美化的教程和经验贴,对我们这些 Linux 爱好者来说都是很好的参考资料. ...

  6. Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  7. Linux 桌面玩家指南:15. 深度学习可以这样玩

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  8. Linux 桌面玩家指南:14. 数值计算和符号计算

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  9. Linux 桌面玩家指南:09. X Window 的奥秘

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

随机推荐

  1. Codeforces Round #649 (Div. 2)

    Codeforces Round #649 (Div. 2) -- WKL \(\mathcal{A}\)题: \(\mathrm{XXXXX}\) Greedy implementation *12 ...

  2. 用了很多年Dubbo,连Dubbo线程池监控都不知道,觉得自己很厉害?

    前言 micrometer中自带了很多其他框架的指标信息,可以很方便的通过prometheus进行采集和监控,常用的有JVM的信息,Http请求的信息,Tomcat线程的信息等. 对于一些比较活跃的框 ...

  3. 无所不能的Embedding6 - 跨入Transformer时代~模型详解&代码实现

    上一章我们聊了聊quick-thought通过干掉decoder加快训练, CNN-LSTM用CNN作为Encoder并行计算来提速等方法,这一章看看抛开CNN和RNN,transformer是如何只 ...

  4. HTTP笔记4--HTTP 状态码

    状态码作用.组成 HTTP 状态码负责表示客户端 HTTP 请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作.状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果. 状态码如 ...

  5. 1.配置gitblit

    作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-21 14:38:43 星期五 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...

  6. 操作系统 part2

    一.程序的内存结构 references: newcoder 运行时,程序分为:text段.data段.BSS段(2个合称数据段).堆.栈. text段:代码段,静态分配内存,只读. data段:初始 ...

  7. spring-cloud-netflix-eureka-server

    一.构建springcloud父pom工程,管理版本 pom.xml <?xml version="1.0" encoding="UTF-8"?> ...

  8. 关于st表的推导

    #include <bits/stdc++.h> using namespace std; const int maxn=1e6+7; int st[maxn][32]; int a[ma ...

  9. Lenet车牌号字符识别+保存模型

    # 部分函数请参考前一篇或后一篇文章 import tensorflow as tf import tfrecords2array import numpy as np import matplotl ...

  10. SQL All In One

    SQL All In One Structured Query Language SQL is an ANSI (American National Standards Institute) stan ...