什么原因才是阻碍Linux桌面发展的罪魁祸首
我大概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桌面发展的罪魁祸首的更多相关文章
- Linux 桌面玩家指南:13. 使用 Git 及其和 Eclipse 的集成
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:04. Linux 桌面系统字体配置要略
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 计算机与linux操作系统的发展
一.计算机 (一)计算机的概念 1.概念:计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速 ...
- Linux 桌面美化那点事儿
各个 Linux 桌面发行版刚拿到手的时候,或多或少都有点儿不满意,对它们进行一些改造是必须的.网上不乏各种 Linux 桌面美化的教程和经验贴,对我们这些 Linux 爱好者来说都是很好的参考资料. ...
- Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:15. 深度学习可以这样玩
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:14. 数值计算和符号计算
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux 桌面玩家指南:09. X Window 的奥秘
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
随机推荐
- IntelliJ IDEA 运行java程序时出现“程序发生找不到或无法加载主类 cn.test1.test1”错误
在你程序不出现错误,而且你的编译器已经成功导入后 成功导入的样子 你可以重新打开一个项目 这就可以了^_^
- CodeForces - 1250J The Parade 二分
题目 题意: 一共n种身高,每一个士兵有一个身高.你需要把他们安排成k行(士兵不需要全部安排),每一行士兵身高差距小于等于1.你要找出来最多能安排多少士兵 题解: 这道题很容易就能看出来就是一道二分, ...
- 一篇文章图文并茂地带你轻松学完 JavaScript 闭包
JavaScript 闭包 为了更好地理解 JavaScript 闭包,笔者将先从 JavaScript 执行上下文以及 JavaScript 作用域开始写起,如果读者对这方面已经了解了,可以直接跳过 ...
- Python 分析热卖年货,今年春节大家都在送啥?
今年不知道有多少小伙伴留在原地过年,虽然今年过年不能回老家,但这个年也得过,也得买年货,给家人长辈送礼.于是我出于好奇心的想法利用爬虫获取某宝数据,并结合 Python 数据分析和第三方可视化平台来分 ...
- MiniSMB 网络性能测试 免费版本安装指南
1) 烧录Image至USB 在Linux环境下可以运行以下命令(假设usb设备符号为/dev/sdb): root# tar -Jxf minismb-free-edition.img.tar.xz ...
- 在kubernetes集群里集成Apollo配置中心(1)之交付Apollo-adminservice至Kubernetes集群
1.部署apollo-adminservice软件包 apollo-adminservice软件包链接地址:https://github.com/ctripcorp/apollo/releases/d ...
- python之字符串replace的方法
1.描述 replace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果有指定第三个参数max,则替换的不超过max次 2.语法 str.replace(old,new[,max] ...
- 接口测试框架Requests
目录 Requests Requests安装 Requests常见接口请求方法构造 请求目标构造 header构造 cookie 构造请求体 Get Query请求 Form请求参数 JSON请求体构 ...
- JavaScript预编译过程理解
1-JavaScript运行三部曲 语法分析 预编译 解释执行 语法分析很简单,就是引擎检查你的代码有没有什么低级的语法错误: 解释执行顾名思义便是执行代码了: 预编译简单理解就是在内存中开辟一些空间 ...
- 图解 git workflow
图解 git workflow 图解 git 工作流 git-flow https://www.git-tower.com/learn/git/ebook/cn/command-line/advanc ...