linux系统碎片化制约了其生态发展(原创)
Tofloor
poster avatar
pho
deepin
2019-06-01 23:34
Author
本帖最后由 phoenifox 于 2019-6-1 21:50 编辑

国内操作系统为什么这么难做?linux桌面版为什么打不过win和mac,很重要的一点是碎片化。
一个国家铁路轨距标准如果不统一,比如轨距600mm,762mm,1000mm,1067mm,1435mm,1676mm、1524mm、1520mm等,可能一条线路只能跑一种火车,一个国家多几条线路就多几种不同的火车,不同线路上的火车不能交换轨道运行,维护困难很大,中俄铁路规矩不同,每次都要重新装箱。

linux目前的情况就非常像轨距不同的状态,所谓的个性化适配,相当于火车上道后发现与轨距不一样,专门为某辆火车改变轨距宽度,另一辆不同轨距的火车再上来时,重新再为其专门改变轨距。这样一来,即使是免费的系统,维护成本也是非常高了。

在这样轨距繁杂的情况下,零配件厂商的市场就局限在细分的不同轨距的火车上,因为离开这种轨距的火车,在别的轨距的火车上也用不了,客观上也限制了零配件厂商的市场和开发成本。

我国统一了火车轨距后,无论是哪家厂商生产的火车,按照统一标准生产后,搬上轨道就能跑,不需要再去调整轨距,不同线路上的火车都可以在任意线路上跑了。

回到操作系统上来,win或mac 的优势是,全球只有一个版本,任何地方开发的软件,只要遵从这个统一的标准开发,装上去任何一台对应的操作系统就能用,而不需要重新为某个版本的系统重新调试。出现问题,也容易找出问题所在,不会出现不同机器出的问题各不相同的现象。这降低了开发和维护成本,也降低了使用成本。

据我所知,https://distrowatch.com/dwres.php?resource=popularity上有名在列的有292个发行版,国内有deepin,中标麒麟,普华基础软件,银河麒麟,优麒麟,一铭,凝思磐石,中兴新支点,中科红旗,中科方德等等,最新的数据显示国内有15个发行版,基于不同的linux发行版,有的还说不基于任何linux发行版。可见碎片化非常严重。这种状态,让应用软件开发商怎样开发应用软件呢?支持debian,rpm,还是其他?

为win或mac开发应用软件只需要开发32bit或64bit的即可,但是Linux则需要除了32或64bit外,还要deb,rpm以及其他。国外的一些大的企业可能有实力的会开发不同发行版的软件,但是更多的则不会那么多版本。
以下是以zoom和modeller为例,看看比较下linux下的应用软件是不是要多工作量比win或mac多一些。

几大弊端:
1、各家操作系统都需要生态,各家分别与不同或相同应用软件生产商适配,比如光360浏览器,可能人家就要开发debian和rpm等不同的格式,各个应用软件生产商都累啊,哪有那么多人力分出来各搞一套?
2、各个采购的部门也困难,不同部门采购的不同发行版操作系统,应用软件却不能兼容,安装后不断要厂商来维护
3、同一品牌操作系统不同单位采购,出现问题,解决办法却不同,该硬件厂商解决还是软件厂商解决可能会扯皮

国内如果linux发行版继续碎片化持续,国产linux发行版不大可能得到大规模使用,生态也不会建立起来。国内最终广泛使用的桌面版Linux应该只有1-2种。

建议:
deepin推动建立统一的标准,制定了标准才会有良好的生态建立
可能作为小白提的这点看法比较浅显,会被专业大牛嘲笑,无所谓了。








Reply Favorite View the author
All Replies
1 / 2
To page
avatar
hnzhangqiwen
deepin
2019-06-02 00:04
#1
道理是这样,他们当时也是竞争胜出后才那样,现在混战格局,只有出现一两个垄断地位的才会书同文车同轨吧,除非国家下手,但是谁敢肯定指定的那个就是最好的呢?所以这个问题还是要让他们自由竞争,让市场去选择。
Reply View the author
avatar
jianguo922
deepin
2019-06-02 00:25
#2
只能让市场去选择
Reply View the author
Comments
berners
2019-06-03 06:43
市场已经选择了几十年了,已经落后了几十年了,还要继续下去这样子吗?
avatar
funtoo
deepin
2019-06-02 01:31
#3
不如先列举一下,有哪些不统一的标准?
底层都是Linux内核+libc,文件系统层面有FHS这样的标准,软件开发层面有LSB、POSIX标准,图形层有Freedesktop这样的标准,所谓的标准不统一到底在哪里?
Reply View the author
avatar
pho
deepin
2019-06-02 01:40
#4
funtoo 发表于 2019-6-1 17:31
不如先列举一下,有哪些不统一的标准?
底层都是Linux内核+libc,文件系统层面有FHS这样的标准,软件开发层 ...

请看附图中软件zoom,如果标准统一,为何一个软件需要10个版本安装在10中发行版上?
Reply View the author
avatar
funtoo
deepin
2019-06-02 01:49
#5
https://bbs.deepin.org/post/178686
请看附图中软件zoom,如果标准统一,为何一个软件需要10个版本安装在10中发行版上? ...

如果你要这么说,那nvidia闭源驱动只发布一个run文件,firefox官方只发布一个tar.bz2文件,解压即可运行,是不是又能说明所有发行版是统一的?
大概你没做过发行版打包工作,不知道打包的本质。别看安装包格式那么多,我换个发行版照样能用,什么deb、rpm、pkg.tar.xz,本质都只是不同的压缩格式,解压出来以后,里面的二进制文件和so库都是符合Linux规范的。
Reply View the author
avatar
le******ly@163.com
deepin
2019-06-02 03:01
#6
手机充电头,电压都没统一呢,还强制?    只能让市场去选择。如果不是基于市场的选择而是强制性的话,这又是另一个问题了。同是deb阵形都有debian ,ubuntu,deepin,mint几家在竞争。
Reply View the author
avatar
pho
deepin
2019-06-02 03:04
#7
https://bbs.deepin.org/post/178686
如果你要这么说,那nvidia闭源驱动只发布一个run文件,firefox官方只发布一个tar.bz2文件,解压即可运行, ...

nvidia是同一个run文件,不同发行版,以fedora和UBUTUN为例,安装这个文件的命令和步骤都完全一致能在这两个发行版上安装成功吗?我是小白,只是求教,我自己查的步骤貌似不同
Reply View the author
avatar
Feng Yu
deepin
2019-06-02 03:06
#8
萝卜白菜各有所爱。Linux一个开源软件,基本纯粹靠社区驱动,随便化是必然的,底层开放,自然有各路英雄好汉自立为王。

但是在服务器和嵌入式领域,基本上已经一枝独秀了
Reply View the author
avatar
arlly
deepin
2019-06-02 03:25
#9
碎片化也是它的有点啊。
Reply View the author
avatar
liwenquan
deepin
2019-06-02 03:41
#10
的确 这样很难建立生态 希望中国出一个标准 软件通用就行
Reply View the author
avatar
funtoo
deepin
2019-06-02 04:44
#11
https://bbs.deepin.org/post/178686
nvidia是同一个run文件,不同发行版,以fedora和UBUTUN为例,安装这个文件的命令和步骤都完全一致能在这 ...

完全一致,都是关闭X server以后运行run文件,里面的脚本会自动根据内核版本来编译适配的内核模块。
所以你说Linux碎片化没错,但如果说碎片化导致没有统一标准,或者说没有统一标准导致碎片化,那我是不同意的。
Linux发行版虽然多,但底层高度统一,遵循同样的规范和标准,各发行版之间的应用程序也通用。否则你看,WPS Linux版只提供了deb和rpm两种格式,它本身又不开源,为什么我在gentoo,在arch也能用?
Reply View the author
avatar
justforlxz
deepin
2019-06-02 23:52
#12
你可能不知道freedesktop。  https://www.freedesktop.org/wiki/
Reply View the author
avatar
158******08
deepin
2019-06-03 03:42
#13
https://bbs.deepin.org/post/178686
nvidia是同一个run文件,不同发行版,以fedora和UBUTUN为例,安装这个文件的命令和步骤都完全一致能在这 ...

假如都用的是systemd就完全一致,/etc/modprobe.d/blacklist.conf里写入blacklist nouveau这一句,启动的时候在grub启动项里内核参数添一句systemd.unit=multi-user.target,之后安装进行,run这个后缀不代表任何特殊意义
Reply View the author
avatar
158******08
deepin
2019-06-03 03:54
#14
参考网易云官方下载的deb,所有依赖自带的。
不同平台打包也没多难,半个小时就能学明白,而且你更可以只打包一个deb然后放出一个tar.gz,让爱好者自己打包,比如archlinuxcn和AUR。
图形库更是没问题,Eletron,Qt随便选。
更可以使用flatpak,snap进行完全平台无关的打包。
也可以使用appimage,把应用打包成protable app。
说白了就是没用户,不想做,没那么多理由。
Reply View the author
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2019-06-03 06:53
#15
https://bbs.deepin.org/post/178686
参考网易云官方下载的deb,所有依赖自带的。
不同平台打包也没多难,半个小时就能学明白,而且你更可以只打 ...

依赖冲突怎么办?
Reply View the author
avatar
158******08
deepin
2019-06-05 17:40
#16
https://bbs.deepin.org/post/178686
依赖冲突怎么办?

所有依赖自带还有什么冲突啊,你可以去网易云的官网下载一个ubuntu版本的deb,解包看看结构,除了libc,zlib等这种基本不可能发生依赖冲突的包之外的依赖剩下都是自带的,其实每个程序都可以这么整,不过因为程序员思维喜欢可复用的方法所以才会让自己的包保持整洁,其余依赖通过下载让这个依赖可以被其他软件复用,剩下的appimage,flatpak和snap大体都是这个思维。
再说了所谓的依赖冲突在类似滚动发行版上基本不存在。
Reply View the author
avatar
wallestar
deepin
2019-06-05 19:52
#17
https://bbs.deepin.org/post/178686
如果你要这么说,那nvidia闭源驱动只发布一个run文件,firefox官方只发布一个tar.bz2文件,解压即可运行, ...

您说的没错,总体上是有规范,但是细节上还是有些问题。比如打包时依赖是个问题。记得有些包在centos下与ubuntu下包名称是不太一样的,而同样是debian系,debian软件源与ubuntu软件源依赖包版本号也会不一样。如果依赖了特定桌面环境的包,而用户没装这个桌面环境,安装时可能会下载大量包,会被用户吐槽。这些碎片化都增加了打包适配的难度,需要在打完包后对各个系统安装做下测试,相当麻烦。
Reply View the author
avatar
funtoo
deepin
2019-06-05 21:07
#18
https://bbs.deepin.org/post/178686
您说的没错,总体上是有规范,但是细节上还是有些问题。比如打包时依赖是个问题。记得有些包在centos下与 ...

首先,包名称的不同是问题么?难道因为包名称不同,所以库名称不同,才要对每个发行版都做一次适配?你还是没理解本质啊,ELF二进制程序链接的是动态库,而不用管你打包时候是怎么命名包的,这也是我说不同发行版二进制程序其实是通用的原因。
而且,除了DE绑定的内置组件和程序工具以外,通用程序有哪些是有特定桌面环境依赖的?我WM用了这么多年,印象里好像没遇到过,除非是遇上打包时候写死了依赖某桌面环境。但这也是打包质量的问题。
另外,我反驳的是“缺乏统一标准”这个伪命题以及它与碎片化之间的因果关系,我不否认发行版碎片化本身这个既定事实。
Reply View the author
avatar
186******53
deepin
2019-06-05 23:32
#19
你说的我们都知道,关键是在自己的能力范围内践行这个国产的deepin。
Reply View the author
avatar
181******34
deepin
2019-06-06 01:03
#20
https://bbs.deepin.org/post/178686
完全一致,都是关闭X server以后运行run文件,里面的脚本会自动根据内核版本来编译适配的内核模块。
所以 ...

arch 上不能登录  超级蛋疼
Reply View the author
1 / 2
To page