统一国产操作系统应用商店的实质就是统一各种库的版本
Tofloor
poster avatar
hummerstudio
deepin
2015-08-21 00:04
Author
Linux系统最大的问题就是软件兼容性/依赖问题。
国产操作系统要想发展,必须形成合力,而不是各自圈地,互相对立。

对不同的Linux发行版,做不到一次编码,各OS都能正常安装、运行。

根本原因在于:所谓的Linux系统=Linux内核+外围各种软件+各种库。(大概意思)
各大发行版的相同之处只在于都共同使用了Linux内核,但在外围软件的选择上,却是各种各样,千差万别。
所谓库,就是一些封装了现有方法、功能,可被第三方开发者直接调用的模块,开发者调用这些库,可以更快速的开发软件。
但因为各个发行版默认预置的库版本不同,会造成软件的不兼容,开发者如果一一适配,无疑工作量非常大。选择太多,最终大多数人会选择放弃选择。
比如Deepin有些软件是基于Python2开发的,但若是有些发行版中安装的是Python3,便出现依赖冲突,无法正常运行。

所以:
1.统一国产操作系统应用商店的实质就是统一系统预置的各种库的版本
2.目的是为了减轻开发者适配工作量,实现一次编码,各OS都能正常安装、运行

如此才能真正吸引到开发者来开发Linux桌面软件,形成国产操作系统的生态
Windows的成功有各种各样的原因,但不可否认的一点,是它对开发者的友好程度。微软称第二,没人敢称第二。
开发文档齐全,从入门到精通,并且文档完全中文化,代码里的注释都是中文,一步一步手把手教学。如此才成就了最庞大的开发者数量,才有了这么多的软件。

市场占有率高无疑能吸引开发者,但同时也要为开发者提供方便,易于开发其上的软件,可以让开发者更容易留在这个平台上,更快的复制开发者团队。
如此才能促进鸡生蛋、蛋生鸡的速度。

Reply Favorite View the author
All Replies
2 / 4
To page
ArthurDeepin
deepin
2015-08-21 03:59
#21
我也想过“标准依赖树”,其实和楼主都是一个意思
Reply View the author
ArthurDeepin
deepin
2015-08-21 04:02
#22
不成规模的应用,标准很难形成,不一致的利益,标准都很不愿意形成。
Reply View the author
MattD
deepin
2015-08-21 04:41
#23
https://bbs.deepin.org/post/32058
我也想过“标准依赖树”,其实和楼主都是一个意思

标准依赖本来就是个伪命题,不会有。无论是底层还是上层软件,都具有必要依赖和可选依赖两部分,而其中甚至存在着不少二选一的冲突。
就以vlc为例,我需要在libav和ffmpeg之间作出选择。它们都是vlc的必要依赖,且只能二选一,这时候怎么办?答案很简单,由打包人员帮用户做决定。同时这也意味着,打包人员作出的决定势必会让另一部分作出不同决定的用户不满。折衷方案也有,要么做一个虚包,假装已经安装了另一个冲突依赖,要么拆包。前者适用范围有限,后者容易导致维护精力加大。
另外一个例子就是openssl和gnutls,只是它俩没有冲突而已,但是都可作为某些上层软件的可选加密库。
说真的,连不遵循LSB,不遵循FHS的发行版都多得是,更不用说建立所谓的“标准依赖”了。开源带来了自由,但也带来了碎片化,不可避免。
在我个人来说,我就是不想让打包人员自行帮我作出违背我意愿的决定,所以我才那么钟爱基于源代码的发行版。
Reply View the author
ArthurDeepin
deepin
2015-08-21 05:00
#24
https://bbs.deepin.org/post/32058
标准依赖本来就是个伪命题,不会有。无论是底层还是上层软件,都具有必要依赖和可选依赖两部分,而其中甚 ...

学习了,赞一个~

有冲突的组件能不能分离开来同时存在呢,指定某个时候运行某一部分
Reply View the author
ArthurDeepin
deepin
2015-08-21 05:13
#25
是的,真不是我个人想操心的问题,还是愉快的玩linux好了,这些事情自有那些愿意搞的发行商来搞…ʕ •ᴥ•ʔ
Reply View the author
JamWeight
deepin
2015-08-21 06:07
#26
微软称第二,没人敢称第二。。。。
Reply View the author
n671879
deepin
2015-08-22 17:16
#27
驱动全靠自己开发是不行的 最好的办法是LGPL接口 让硬件开发商自己去开发
10万人的MS都还需要靠别人来开发驱动 所以想Linus或者哪个版本厂商来开发驱动一定是大量硬件不能用的
Reply View the author
n671879
deepin
2015-08-22 17:17
#28
而且靠上Linus开发驱动 一样导致依赖 Linus不开发硬件就不用上了
Reply View the author
n671879
deepin
2015-08-22 17:33
#29
国产化做强以后 就是能用的硬件才能入围采购 就靠采购引导硬件厂家开发驱动
Reply View the author
n671879
deepin
2015-08-22 17:36
#30
MS的成功值得仔细去观察 为什么WIN能这么成功 为什么LINUX桌面至今是现在这个样子 所做出的决策直接影响成功与否
Reply View the author
n671879
deepin
2015-08-22 18:11
#31
而且可以这样 厂商交源码过来 自己编译的 就是官方认证驱动 如果没交过来 就是厂家提供驱动 至于驱动 软件中心相信是有个单独的版块的
Reply View the author
n671879
deepin
2015-08-22 18:13
#32
MS认证的驱动 相信能打上数字签名一定是MS可以信赖的
Reply View the author
hummerstudio
deepin
2015-08-22 18:15
#33
https://bbs.deepin.org/post/32058
AOSP应用在版本号不搭配的系统上都运行不了,CM开发的应用在非CM的ROM上也会出现问题,谷歌私有的应用那 ...

但是android有明确的API分级,并且能向后兼容,其实就是做了系统版本和库版本的绑定,固定的版本对应的库版本是一致不变的。并且有兼容包,让库能向后兼容。相对来说还是很稳定的,至少有标准可依。现在的Linux桌面完全无标准可言!
Reply View the author
n671879
deepin
2015-08-22 18:15
#34
事实证明MS基本的硬件都能用 LINUX大量硬件不能用 这就是差别
Reply View the author
hummerstudio
deepin
2015-08-22 18:21
#35
https://bbs.deepin.org/post/32058
楼主看的很明白,想法很对但是不全面。

linux兼容性还有一方面就是依赖复杂,比方说我安装一个软件,经常 ...

这些问题就是因为系统预置的软件包不一致,所谓统一各种库版本,就是统一预置相同的软件包。让后续开发者都基于这些包来开发。就是你说的1、2的意思。不在基础依赖库里的,自己用静态库。
国内自己能达成标准就好了,毕竟我们是为了达成能用、实用的可替代Windows的系统,不应该在技术上追求标新立异。
Reply View the author
hummerstudio
deepin
2015-08-22 18:25
#36
https://bbs.deepin.org/post/32058
不成规模的应用,标准很难形成,不一致的利益,标准都很不愿意形成。

所以这个应该由是第三方来做,对于厂家,肯定都是为了自己的利益,希望自己的成为标准。国家,或者像倪光南要做的应用商店实体公司。国家要求每个招标的厂商都必须内置这个应用商店,应用商店公司来根据各个厂商情况综合制定库标准,否则不给投标权,这样各厂商为了自己的利益,就会去拥抱标准了!
Reply View the author
hummerstudio
deepin
2015-08-22 18:27
#37
https://bbs.deepin.org/post/32058
标准依赖本来就是个伪命题,不会有。无论是底层还是上层软件,都具有必要依赖和可选依赖两部分,而其中甚 ...

标准依赖重点就是要定死这些二选一的依赖。
Reply View the author
hahahahahuo
deepin
2015-08-22 18:29
#38
https://bbs.deepin.org/post/32058
但是android有明确的API分级,并且能向后兼容,其实就是做了系统版本和库版本的绑定,固定的版本对应的库 ...

说的很是
谷歌商店还能检测,这点很重要
Reply View the author
hummerstudio
deepin
2015-08-22 18:29
#39
https://bbs.deepin.org/post/32058
驱动全靠自己开发是不行的 最好的办法是LGPL接口 让硬件开发商自己去开发
10万人的MS都还需要靠别人来开发 ...

我在说的是桌面软件的开发。
Linux的驱动本来就是各个硬件厂家自己开发的(当然也包括一些社区开发者,但绝不是Linus一个人开发的……)。Linux内核包含这些驱动,只是打包进来而已。
Reply View the author
kaile
deepin
2015-08-22 18:35
#40
https://bbs.deepin.org/post/32058
这些问题就是因为系统预置的软件包不一致,所谓统一各种库版本,就是统一预置相同的软件包。让后续开发者 ...

你说的是同一个软件包的不同版本统一,我说的的是依赖的软件包的统一,两个方面都很重要,有些软件依赖特别奇葩,因为各个软件作者不同,开发初期不同,条件不同,所以不可能全部使用相同库版本重新开发。

我说的"基础依赖库"解决的是依赖的软件包的统一,我说的V1版本v2版本解决的是同一个软件包的不同版本统一。

而且这个东西只要deepin自成体系,还是能推广的。
Reply View the author
2 / 4
To page
New Thread

Popular Events

More
国际排名
WHLUG