天天财汇 购物 网址 万年历 小说 | 三峰软件 小游戏 视频
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
首页 淘股吧 股票涨跌实时统计 涨停板选股 股票入门 股票书籍 股票问答 分时图选股 跌停板选股 K线图选股 成交量选股 [平安银行]
股市论谈 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
商业财经 科技知识 汽车百科 工程技术 自然科学 家居生活 设计艺术 财经视频 游戏--
  天天财汇 -> 科技知识 -> 如何评价“操作系统不难做,难在生态建设”这一观点? -> 正文阅读

[科技知识]如何评价“操作系统不难做,难在生态建设”这一观点?

[收藏本文] 【下载本文】
如何评价“操作系统不难做,难在生态建设”这一观点?
关注问题?写回答
[img_log]
操作系统
国产操作系统
鸿蒙 (HarmonyOS)
如何评价“操作系统不难做,难在生态建设”这一观点?
圆桌收录
未来云的终极模式
其实这句话应该说成:“操作系统很难写出来,但更难的是以超前的眼光,写出受到广泛认可的引领时代的系统”。写出操作系统可以是一个人、一个团体、一个公司靠主观意愿去完成的事,但是构筑一个新的系统生态则是一个大范围的综合博弈,不由任何人的主观意志决定。
具体来说,为什么“生态建设”难,因为吸引大量的厂商和开发者的认同很难。厂商会为了什么支持一个系统,当然是因为跟着这个系统的发展可以给厂商带来巨大的商业利益。比如GNU/Linux,比如安卓,为什么厂商愿意支持它们,因为支持它们可以极大的满足自身向更高一层发展的需求。你们以为厂商是为了崇高的开源理想而支持吗?当然不是。
GNU/Linux可以帮助这些厂商打破商业windows和unix的壁垒,可以让它们乘坐开源的浪潮获得更多的收益,这些厂商只需要把以往自己购买或自己制作维护系统的成本的少部分钱投给开源社区,然后一个又成熟又稳定的系统就到手了,何乐不为。当然这对开源社区也有促进作用,属于双赢。关于GNU/Linux是如何搭上历史的车轮一步步成为现在主流系统之一的,可以参考我下面这个回答:
而安卓出现的年代,厂商们看到了安卓可以帮助它们与塞班、苹果一拼高下,分享手机市场这块大蛋糕的前景。而且伴随着智能手机的崛起,这块蛋糕越来越大,没有自己系统(现做来不及)但又有能力制作手机的厂商,在看到当时的安卓时立刻就团结在它的下面,抱团和苹果等对抗。
Windows和苹果虽然属于商用不开源系统,但是他们也是在第一时间看准了桌面系统和智能终端系统的浪潮,一举拿下市场的。微软还因为进军智能终端晚了一点点,即使他有成熟的系统,也还是错过了机会,被远远的甩在了后面,没有成功进入。
开发者其实和厂商也是差不多的,开发者们为什么会选择在一个操作系统生态下贡献代码。当然是因为在这个生态下贡献可以给他们带来好处。比如带来保障生活的收入,比如带来业内的名声,比如满足他们的兴趣等等……而且一个被全世界大范围专业认可的系统可以带来大量的工作机会,将大量的开发者引入这个生态圈内,并且影响后续更多开发者的加入。
一个通用操作系统生态的构建绝对不是靠情怀、靠舆论、靠宏观调控、靠一堆光会动嘴的键盘侠和为了流量毫无底线的媒体就能构建的。一个通用操作系统的生态圈至少需要:
新系统本身需要在合适的时机展示出具备引领一个新时代新潮流的特质,这不是主观说有就有的,这必须是客观存在的事实才可以。新系统的特质可以给广大厂商带来新的大商机,得到广大厂商的专业认可,愿意加入这个新的生态大家共赢。新系统的开发接口需要受到广大开发者的认可,否则也没人喜欢为其开发和贡献。新系统生态必须区别于以往所有系统生态,否则不叫构建新生态,那叫属于已有生态内。
所以,写出一个有进程调度、内存管理、设备管理、文件系统、网络功能、交互界面、开发库等一系列基础要素的系统不算最难的(其实也是非常困难的),而让这个新系统具备上述条件是需要除了自身技术绝对过硬以外,还要看天时地利人和。即使是很多设计很好的系统也都埋葬在了历史的长河里,留下了技术的积累为后人在更合适的时候推出更合适的系统做准备,我们现在叫的出名字的系统只是漫漫系统长河中的一小部分,所以不要小看一个系统从诞生到能够形成一个公认的生态的过程。第一个看到螃蟹并敢吃的人,和后面知道能吃才效仿的人完全不是一个概念。
如果顺着说的话:生态建设也不难做,难在做人。
逆着说也对:最难就是做操作系统。因为你得给它做到最好、还得会做人,这才能引来软件公司帮你做生态。
您要做人做到那谁那份上,坑开发者,拿开发者当猴耍,说好的特色不兑现,政策一天三变、变完开发者投入多少都打了水漂……那您这生态……
乱砍滥伐瞎搞污染、把开发者全部得罪了的,还有个狗屁生态。
不仅如此。想要操作系统接口稳定,你得有个极高水平的架构;想要有个极高水平的架构,你得有一个极高水平的内核……
而极高水平的内核和架构,都是业界顶尖程序员做的。
你得拿开发者当人,别拿你的员工当996的苦力,别拿他们当猴耍、想尽办法白嫖他们的生产力。
否则,不会有顶尖开发者愿意帮你建设这个生态的基础——基础架构都搞不好,就别扯淡什么生态了。操作系统做的稀烂,盐碱地一样,哪可能有生态。
但反过来呢,当年苹果一家濒临倒闭的五流公司,一旦回到乔布斯手上、哪怕他偏执的和业界一切定律作对(当年多少人把iPhone看作一个笑话、嘲笑它的续航等等缺陷)——但崛起,真的需要费多大人力物力吗?
类似的,拿Java当系统基础的、先天不足的Android,后来甚至不得不放弃原本最大的特色(借助jvm兼容一切)、开放了ndk,不照样占据了半壁江山?
生态多容易啊。甚至哪怕基础存在重大缺陷,都有大量傻子一样的开发者蜂拥而来。
很简单。我们相信乔布斯,当年的MAC品质有目共睹,后来的iOS/MAC OS品质也是顶级水平——哪怕乔布斯选择了object c这个大坑货:没关系!我们从头学!
同样的。我们相信Google。因为它实实在在的开源了Android,让我们知道这个系统会稳定下去——哪怕google变卦了、把这个开源项目卖掉了,我们也能在当前分支上继续我们的工作、也会有人自发的维护和升级既有的开源代码。就好像open office到libreoffice、MySQL到mariaDB一样。
内行都知道,开源本身就意味着稳定。
在这个信任的基础上,它们还努力把自己变得更可信。良性循环下来,自然就崛起了。
类似的,wp/Symbian我们本来也挺信的。前者有过Windows这个成功先例了、后者是手机界的龙头老大,人家说的话就是标准。
但怎么放弃了?
因为它们对不起我们的信任。
不管你砸多少钱做宣传、不管你能拉来多少用户,逼得全体开发者做空你,你就死路一条。
哪怕微软那样,在绝大多数用户那里就是操作系统的代名词,它的wp也是死路一条。
相反,Linux用户不友好——或者是,Linux的确用户友好,但它认为你不配当它的用户——却发展的如火如荼、成为事实上的业界标准,恰恰是因为它尽最大可能的讨好了开发者。
在这个极端的案例里,讨好开发者是为了自己的生态环境,而讨好用户是开发者的事,和生态环境无关。因此,哪怕Linux瞧不起非专业用户,但网上绝大多数的服务器仍然在跑Linux——讨好用户是网站运营者的事,和操作系统无关。
买手机买电脑都是为了其上的应用,只有开发者才会摆弄操作系统本身。想要伺候好你的用户,就要伺候好这些伺候用户的人。
你看,归根结底,做人最重要。
做人两面三刀,那么开发一个好的操作系统就是痴人说梦;开发了好的操作系统,却不会好好运营、不懂得维护开发者的利益、在开发者中间树立自己的形象,那么没人愿意为你白打工,那自然就没有生态。
小胜在智,大胜在德。
德行有亏、立不起说不起的家伙,是不可能搞起什么生态的。
是的,生态建设是最难的,或者应该说是建设一个良性的生态很难。
就拿
@立党
老师提到的例子,Symbian、黑莓、Win CE/Windows Mobile(此处应有Palm OS,WM之前我用了三四台Palm设备),这些曾经在消费市场有一定影响力的操作系统都消失了。
如果算上商用市场,NetWare,IBM OS/2,一众商业的Unix如Solaris、HP-UX、IRIX、OpenUnix、True64 Unix等等,还有更古老的一众和硬件绑定的专用系统……有兴趣而且会上网的可以去看看维基的这个页面,看看有多少操作系统你认识的:
https://en.wikipedia.org/wiki/List_of_operating_systems?en.wikipedia.org/wiki/List_of_operating_systems
不会上网又想看一眼的,我上传了一个PDF附件,一共32页。不过点击链接就没法进入具体词条详细看了。


List_of_operating_systems.pdf
873.1K
·
百度网盘
所以,你看到了,做操作系统这事,很多企业都做出来过,而且做出来的操作系统起码足以让维基的编辑者记住并为之建立词条。但是能把生态做起来,并且是足够良性健康可持续的,Windows、GNU/Linux、Android/ChromeOS、iPhone OS/iPad OS、MacOS,还有么?
操作系统在维基百科的定义是:
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
翻译成中文就是:
操作系统是管理计算机硬件、软件资源,并且为计算机程序提供通用服务的系统软件。
事实上,对于大部分用户来说,真正需要的不是操作系统,而是运行在操作系统之上的各种解决某些问题应用软件。所以,如果一个操作系统上没有一个以上这样的应用:
解决数量足够多的用户群体的某种需求;其它操作系统上没有类似的软件,或者虽然有类似软件但体验很差;用户愿意为了这个/这些应用去购买、学习使用新的平台——包括操作系统和更底层的硬件。
如果一个操作系统即使做出来了,也许一段时间内会有很多开发者愿意投入人力物力,在这个操作系统上开发一些软件,或者把其它平台的软件移植过来。但大家都要吃饭,不能用爱发电,如果这个系统一直没有做起来,或者某种原因虽然系统还在,硬件也能卖出去不少,就是大部分软件的活跃用户都很少,那么这些开发商也只能止损终止相关项目,哪怕财大气粗如BAT——最近的例子就有两个:Windows的UWP,安卓的平板。不能说这两个平台的生态没建设起来,而且平台也都还在,但很多软件在这两个平台上都四五年没有更新过了。


原来操作系统也有这样的认知啊。
在数据库界,这都快成共识了。
前些时日有网友发我的:


“数据库其实就是生态,技术门槛并并没有想象的那么高不可攀”。
这和题主的问题是不是挺类似的。
到底操作系统难不难呢?数据库门槛高不高呢?
这要看你是干啥的,十来年前,大概2006、07年前后,我就在书店里见到过一本《30天自制操作系统》,好像是这本吧:


(我怎么记得是名中国人写的啊,可能还是记错书名了)
书也不太厚,比CSAPP薄多了。
30天就能教会你写操作系统,操作系统又能难到什么程度。
数据库就更简单了,不说“几十天自制数据库“这种不靠谱的了,卡内基梅隆大学经典数据库课程:CMU-15445,一共也就20几个课时吧。
当然,据说实验部分还是要花不少时间的。
怎么看,无论OS,还是DB,都不太难。
现在的学习资料异常丰富,有心之人学习这些基础软件开发,也不是什么难事。
如果以百分制衡量难度系数,写个链表、二叉树、快速排序什么的,难度系数为10分、20分左右的话。
写个《30天自制操作系统》这样的雏形。不能商用的,只是玩玩。难度系数最多也就60分左右的难度,及格线附近。
一些著名美帝大学CS专业合格的标准,就是写些玩一玩的OS、DB,或编译器等基础软件。
写一个能商用的,比如DB(OS我不太确定,毕竟我在DB方面更有经验),难度系数七、八十分的样子。但这样的DB没有竞争力。
如果更进一步,想要写的和MySQL、PG一样好,难度系数就上90了。
国内公司,在DB这块,没有一家能玩的转难度系数上90的DB。是的,没有一家。
为什么我如此肯定、如此绝对的说:没有一家能玩的转难度系数上90的DB。
这个我们放到后面,我会证明给你看。
先以DB领域的情况,回答题主的问题:“操作系统不难做,难在生态建设”。
为什么有人觉得基础软件不难。以DB为例,开发一个难度系数80分的DB(比MySQL/PG差一些),的确不是太难啊。只要出高薪,招一些国内外名校的硕博Coding,再请个杰青、长江学者、外籍院士开开光,OK了。
这有什么难的。的确不难。
但这样搞出来的DB,80分水准,没有竞争力。即使在如今政策大力支持下,仍然发展缓慢。于是,这些DB厂商就开始鼓吹:“DB不难,我们的DB就遥遥领先。领先了还遥遥,为啥市场不买帐?两个字:生态。”
有些头部大厂,甚至利用信创这波浪潮,同时搞了操作系统、DB、编译器、ERP,当然,这些玩意全都因为“生态”不好,只能吃些政策红利。
“走到哪儿,哪儿的生态都不好,你是破坏生态的人啊。”


把本山大叔这“大环境”三字,换成生态,就是题主问题的答案。
好,问题回答结束。
再说一个我前面提到的问题:为什么我如此肯定、如此绝对的说:没有一家能玩的转难度系数上90的DB。
前面把MySQL/PG的标准,定为90分难度。
有一个头部大厂,基于PG/MySQL,弄了个搞死DB。据说有高死100、搞死200、搞死300三个系列。都是干啥的不知道,挺神秘的。每一个单拿出来,都是遥遥领先,吊打全世界。跟侠客岛似的,随便出去一个张三、李四,随手发个赏善罚恶令,搞死武林各大门派。
后来信创浪潮开始,“搞死”认为是时候了,统一武林、更待何时。于是将搞死系列100、200、300中的某一个,开源了。
据说开源的搞死是基于PG修改而来。但是“侠客岛”已经改了N多年,比原版PG一定是强上不少的。
江湖上流传侠客岛的传说已经有年头了,现在终于见着真身了,那赶快下载测试一下吧。
这一测试,TPS/QPS比原版PG差着一大截。
这感觉就像侠客岛终于派出了张三、李四,正要祭出赏善罚恶令,结果刚一出手,张三、李四就被反杀。
不过,压测这玩意吧,可操作性比较强。
我测的我遥遥领先,你测的我不如PG,那是你的测试有问题,你的服务器有问题,或者你的DBA有问题。我这么高级的DB,你不会用而已。
我堂堂侠客岛,难道还会骗你不成。
就好像几十年前我们跟旁边南亚一哥间的那场战争,明明是我们赢了,但三哥也说自己赢了。三哥毕竟是五常外最具影响力国家、摩托车最佳表演艺术家,咬死优势在我,还真搞的好多不明真象的吃瓜国家不知道谁赢了。
这搞死DB成功把我的兴趣钩了出来,DB层面的压测的确容易操控,我就从系统角度对比分析下吧。
分析过程十分简单,perf有个选项可以统计进/线程使用的CPU指令数:
。。。。。。
分别在搞死、PG中建张一模一样的表,执行一条一模一样的SQL,统计SQL使用的CPU指令数。
侠客岛这种级别的大厂,一定有更高级的算法,精心的优化。执行一模一样的SQL,完成同样的功能,使用的指令数一定要大大少于别人。


这是搞死DB使用的CPU指令数。1百万多点指令数。
再看看PG、MySQL,甚至Oracle的吧:


Oracle最少,做同样的事情,只要几万条指令就能完成。
MySQL、PG都在10万条指令上下。
就像开车一样,同样的距离,油耗比MySQL/PG多了9倍,比Oracle多了十几倍。
这搞死DB,基于PG搞了这么多年,离PG是越来越远了。
这就是为什么我如此肯定、如此绝对的说:没有一家能玩的转难度系数上90的DB。
也就80水平,差不多能搞个商用的DB,比玩具是要强一些的。大环境下,碰瓷下MySQL、PG也是可以的,还谈什么遥遥领先。
为啥我不用TPS、QPS、TPCC、压测工具来压测,硬要搞个指令数。因为他们的话术体系中,没有这一项。
如果我真用压测工具来测,被搞死DB搞糊途的各种不明真象的朋友,会冲上来用各种话术教育我的。
上次我在另一个问题中有一个例子,另一个和搞死DB齐名的知名DB,我安装完成后插入300万行几个小时没完成……,好多不明真象的朋友教育我。
插入,这谁都会,这已经在他们的话术体系内的。我这个300万行插入半天没完成,别说不明真象的朋友们了,找个chatGPT训练几天,都能完美教育我。
CPU指令数,这玩意突破了他们的话术体系。我看他们还有什么可说的。
应该说“操作系统难做,更难的是生态建设”。
说不难做的,就因为已经有那么多的开源基础,要搭一个骗骗经费或者在闭环境下使用并不难。
我们看看Google的Fuchsia,完全推倒重写,2016年8月15日第一个版本,可是到现在还没有正式版本推广到市场,以这个标准评价,操作系统的开发难度极大。
基础软件设计核心在于概念建模,需要体现创新性。OS发展这么多年,很多概念和架构都已定型,例如进程,文件系统,分层架构,Posix接口等等,大家也认为其理所当然。即使很多人去开发一个OS,也基本是按照成熟的概念模型重新实现一遍。如何做一个创新的OS是非常困难的。
OS概念逐步走向多元化,在某些人眼里内核是OS,框架也是OS,改改界面也是OS,所以引起了非常多的混乱。因为大家讨论时候根本不在一个概念上。
1,如果你把kernel作为OS,那咱们就看开发kernel的难度。kernel是硬件和应用软件的桥梁,对上提供有限的编程接口,对下管理硬件。主要代表包括开源的Linux 内核,还有很多开源微内核等。如果你照着Linux概念重新实现开发一个内核,难度在于工程师编程水平,因为不涉及什么概念创新,基本把别人看懂,重新实现一遍也就行了。你说是否有价值,我觉得价值主要在于个人能力提升,但是对于外界没有啥价值。如果去看一下OSDI关于新的OS架构创新,一种是基于新语言做的新架构例如Rust,其他就是围绕硬件发展做的一些创新(例如nvram),这种新架构探索,我个人感觉才是内核方向真正要做的事情,而不是把原来概念重新抄袭一遍。为什么很多kernel要开源,因为kernel本身不直接带来商业价值,但是所有人都要用,最好办法是所有使用公司都贡献,互惠互利。
2,如果你把框架作为OS,那就需要比较内核之上的中间件软件。内核提供有限的编程接口,如果直接开发应用软件,基本不现实。无论Android还是Ubuntu都有一层复杂中间件。Android其实就是一个中间件。Android在创新非常多,art虚拟机,组件化架构等等。这个中间件是非常复杂的,Android都快一亿行代码了,据说Google开发了3000万行代码。你说难不难,目前能开发这个东西公司都屈指可数。
3,如果你把在现有OS上扩展了一些独有功能算是一个OS的话,那就是另外一套说法。无论是EMUI,还是MIUI,ColorOS都是基于Android做的扩展和增强。你说是不是新的OS呢?牛逼的厂家扩展了几百万代码,弱一些几十万行。说难度吧,也不那么难,因为长在别人架构上,受制于别人约束,你想动脑子创新都改不动。说复杂吧也不容易,那需要持续搞业务和场景创新,例如扩展分布式功能。
借这个帖子,也说一下国内OS沸沸扬扬,大家争论颇多,因为大家每个人对OS认识完全不一样,你说你的,我说我的。与其争论,还是多关注一下具体做了哪些创新的技术,哪些会影响未来技术发展。与其谈生态,先把有无问题解决了,否则鸡生蛋,蛋生机。也没啥技术创新,也没有引领技术发展,再牛逼的商业模式,也需要有有一个平台承载。
如果手机操作系统排个序: ios > android > 国内各种xxUI。当然ios独创性最强,从硬件,内核,中间件,编程语言和框架都是自己搞得,Android是借用了大量现有技术 Linux kernel和Java等;国内各种UI基本属于业务创新。IOT领域应用场景相对简单也不需要太构建生态,基本都是完全自己开发,大家半斤八两,创新新最强我个人觉得还是fushia,使用了大量新的技术,不过未来发展如何,不知道。
表面上看操作系统决定性是在生态,实际上操作系统决定在于厂家的软件实力。
操作系统是不难做,如果没有一个统一标准的话。要知道DOS也是一套操作系统,类DOS的操作系统也有不少。
除了开源系统以外,所有闭源操作系统的开发商全都是这个操作系统最大的应用软件开发商。
为什么中国开发不出来自己的操作系统?38 赞同 · 31 评论回答
你以为他们只有操作系统,实际上人家有全家桶
苹果有Keynote,Numbers以及 Pages办公软件
微软有word、excel、powerpoint办公软件
苹果有自有的邮箱程序、浏览器程序Safari;微软有outlook、Internet Explorer/Edge
苹果有多媒体制作编辑工具全套:Final Cut Pro X、Motion、Shake、娱乐级的GarageBand和专业级的Logic Pro X,都是好莱坞级别的;微软也有自带的媒体编辑工具
苹果有开发工具Xcode,微软有开发工具VisualStudio
苹果有图形编辑工具,但相对一般;微软的设计工具有Visio,以前还有PageMaker(跟CorelDRAW差不多的矢量排版工具)现在是Publisher
苹果有影音工具iTunes,微软有影音工具Windows Media Player/Center
微软有游戏软件如帝国时代、光环、模拟火车、模拟飞行
微软还有工程类软件Project,数据库SQL Server、WEB服务器IIS、虚拟化工具Virtual Server等等等等。另外微软以前还有社交工具MSN,现在不运营了。
可以说两家企业仅依赖自己开发的软件,基本上就能满足用户绝大部分工作和生活的需求。这样的操作系统根基才足够牢固,要不然Linux为什么到现在都不能成为桌面操作系统主流?
三大游戏主机XBOX,PS和Switch,最大游戏软件供应商都是厂家自己
你只做操作系统,不开发应用软件,怎么知道自己操作系统的BUG?
你只做操作系统,不开发应用软件,怎么知道自己操作系统的性能?
你只做操作系统,不开发应用软件,怎么知道自己操作系统API的易用性?
你只做操作系统,不开发应用软件,怎么知道自己操作系统有哪些可以优化的地方?
比如微软的DirectX,当年有3Dlab的OPENGL和3DFX的Gilde与之竞争,DirectX根本就没知名度。后来微软开发Windows上的大型游戏,DirectX大幅度优化升级,加上英伟达的加盟才让DirectX一统天下。如果不是微软大幅度升级了DirectX,也许就不会有今天英伟达的辉煌,很可能是3DFX的。
苹果不开发Mac上的大型游戏,所以就没有类似微软的强大的DirectX应用程序接口。所以Mac上开发高性能游戏就比Windows难度大很多。
如果苹果自己没有开发IOS上强大的视频应用,怎么会有AVFoudation强大的性能?
所以操作系统厂家必须要有非常强的软件开发实力,才能提供软件生态优秀的环境。
以前我信,因为我经历过wp,没有生态,没有app,再死忠粉都会有一部安卓或者苹果,因为不能和学习,工作和生活开玩笑,但是我们愿意为这个系统做出自己一点贡献,因为喜欢和热爱,没有贴吧,我们自己开发,我没微博,我们自己开发,没有自己的社区app,我们自己开发,wp初期,大部分app都是第三方开发的,高质量app并不少,后来官方介入,也出了能用的官方版本,除了支付婊。
现在我不信,如今天时地利人和,鸿蒙却是这个样子,能被人天天扒出安卓痕迹,这已经很失败,不说别的,同样是基于linux,meego都能破釜沉舟开发出另外一套软件架构,你华为处境再差能有当年诺记环境差?人家都敢,你鸿蒙为什么不敢?都是两步走,wp+meego,你华为大大方方安卓+鸿蒙不行吗?哪怕鸿蒙最后不行了,实在走不通了,只能在物联网设备用了,只能在电视机顶盒车载上用了,那又怎么了?我们能记住你死的壮烈,敢于挑战ios和安卓,而不是现在这样,到处被人扒皮。
对于现代操作系统来说,功能其实基本都差不多。不同的操作系统间,最大的差异其实是API的细节差异。
但魔鬼就在细节当中。
你看web开发者多恨要适配不同的浏览器啊。操作系统上应用程序的开发者也一样。
现在新冒出来一个操作系统,如果为之移植或开发应用程序带不来什么大的好处,应用程序的开发者宁可只要“不必适配两个操作系统”这一点好处。
在什么情况下为一个新系统移植或开发程序才能给开发者带来大的好处呢?
那就是相比旧系统,新系统能提供原来旧系统下不可能事物的可能性,而这种可能性又是用户非常想要的。
自然界的生态圈的重建,往往与大灭绝事件有关。大灭绝摧毁旧的生态圈,为新的生态圈的建立开辟空间。
在应用程序的生态圈,一个颠覆性操作系统的出现就相当于这种大灭绝事件。
也就是,你要重塑生态圈,你必须要有足够的颠覆性。
弄个跟别人一模一样只是细节上有些许差异的操作系统还想取而代之,只能遭到抵制。没哪个应用开发者吃饱撑得再给自己背个包袱。
操作系统可以套壳,生态建设不能套壳。
这算什么,国内还有一个观点更直白:产品不难做,难的是找到能把产品卖出去的销售。。。简单说来就是不尊重技术,只看中营运。更本质的是市场部门权力太大。分蛋糕的人管做蛋糕的。。。他们当然要鼓吹做蛋糕没难度,分蛋糕才是最难的
大错特错。
复刻一个现有的东西是没有价值的,因为评价“复刻”好坏的标准是“像”,而“像”的极致是“原版”。所以就算你真的完美复刻了windows,兼容了它的所有应用,并且能够长期保持更新和兼容,你的工作的价值最多也就是“一个廉价的windows”罢了。
那么复刻一个新的linux发行版呢?这件事本身毫无价值。有价值的是与其他发行版不同的包管理思路和不同的包。
“真正的新东西”才有价值。
那么什么样的新东西才算“真正的新”呢?在操作系统领域,大的创新是比如新的范式,新的思想,新的模式,比如保护模式,分页,子系统,命名空间,容器编排,还有比如9p协议(它的一个应用是wsl2的文件共享),这些才是有大价值的。
要么,比如vulkan,它不会带来范式性转变,但它也是有价值的。
真正有价值的新东西一定不会是“生态良好”的,因为它“新”。但是它带来的新的可能性,会吸引并不属于它的生态加入它,这才是“好的生态”的秘密。如果一个新东西吸引不到“皈依者”,那么这意味着它并不具有足够的价值。
所以这句话错在倒果为因。实际上并不是难在“生态”,而是难在吸引“皈依者”,然而无法吸引“皈依者”的原因,反而是它“不够新”,“不够好”。
(这个回答,笔者试着将操作系统看成是生产工具,将生态看成是生产关系。如此一来,貌似很多概念和关系都变清晰了。)
(6月12日更新。本次更新,就网友提到的 Windows Phone 做一些补充。)
持这个观点人,通常在评价国产操作系统时说这句话。比如说到桌面操作系统,国产基于 Linux 的操作系统对阵 Windows,说到手机操作系统,国产的鸿蒙对阵 Android。他们摆出这个观点,潜台词无外乎如下两条:
我们有能力开发出自主的国产操作系统。友商不配合,国人不支持,生态难建立。
你看,如果将来他们失败了,不是他们自己的问题,而是友商的问题,国人的问题!为了防止将来被甩锅,我们应该坚决反对这个观点。当然,反对这个观点的根本原因,是因为这个观点站不住脚。
从历史唯物主义的角度看,操作系统作为工具性的产品,属于生产工具,好的操作系统代表生产力的提高,而我们常说的围绕操作系统的生态,其实就是指围绕操作系统的上下游配合关系,也就是生产关系。
我们知道,新型生产工具的出现,会导致生产关系发生巨大的改变,在原有生产关系里边的富人,可能会成新的生产关系里边的穷人,反之亦然。这种改变,有时候会自然而然发生,但更多的时候,旧的生产关系(往往代表既得利益者)会阻碍新型生产工具的普及。这种情况下,需要打破旧的生产关系,才能让好的生产工具得到普及,整个社会或者某个领域的生产力才能得以提高。也就是说,我们可以利用主观能动性来构建一个新的生产关系,也就是建设一个新的生态(打土豪、分田地也算)。但前提是,新型的生产工具必须足够好,必须足够支撑一个全新的生产关系,也就是说,拿着一个不代表先进生产力的生产工具,想通过外力来改变已有的生产关系是很难的,几乎不可能的。
芯片以及操作系统,就是信息社会中非常重要的两项生产工具。操作系统的重要性在于,在一个恰当的节点,利用一个好的操作系统作为工具,可以相对容易地新建或重构一个生产关系。
本文不谈芯片,单谈操作系统。我们从操作系统的发展历史,可以清晰地看到围绕操作系统的生产关系(也就是所谓生态)的演变过程:
桌面电脑时代,微软等公司以 DOS/Windows/Office 等产品为依托,成功建立了围绕软件副本许可的商业模式,从而促进了桌面电脑软硬件的大发展。处理器公司、整机公司、操作系统公司、数据库公司、办公软件公司和消费者共同造就了这一前所未有的生产关系。互联网时代,Linux 为代表的开源软件基础软件,创造了一个新的围绕开源软件的生产关系,这个生产关系促进了云服务等新型生产工具的发展,全社会的生产力得到进一步提升。移动互联网时代,iOS/Android 为代表的移动操作系统,创造了一个围绕 App Store 和内容分发为主的新型生产关系,这个生产关系促进了人工智能、大数据处理等新型生产工具的发展,全社会的生产力得到进一步提升。
显然,你首先需要一个代表先进生产力的全新操作系统,才能让这个操作系统成为构建全新生产关系(生态)的基础。
需要指出的是,所有尝试复制已有操作系统的努力,大都失败了。典型的如 OS/2、Meego,前者复制的是 Windows,后者复制的是 Android。
另外一种失败的复制方式,以微软的 Windows Mobile/Phone 操作系统为代表。这次失败,是微软在谷歌及其合作伙伴围绕开源的 Android 构建新的生产关系之时,试图将其在个人电脑操作系统上建立的生产关系(生态),复制到移动互联网时代的一个尝试。结果大家都看到了,微软在移动互联网操作系统的竞争中惨败。Windows Mobile/Phone 的失败,在于微软未意识到移动互联网时代需要一个新的生产关系。利用旧的生产工具(闭源且收取高昂许可费)来服务新的生产关系,结果自然是惨败。
从这些历史中,我们大致可以总结出一些操作系统发展的规律出来:
在信息社会,操作系统是构建一个全新生产关系的最重要、最基础的生产工具。但没有成功案例证明一个新的操作系统可以重构一个已有的生产关系。新的操作系统往往和重大的产业重构时机一并出现,如 Windows 之于个人电脑,Linux 之于互联网,Android/iOS 之于移动互联网。大家都说下一个新的产业重构机会是物联网,但看起来又不像,我们只能拭目以待。成功的操作系统具有赢家通吃的属性。世界上市值最高的几个高科技公司,苹果、谷歌、微软,都有自己的操作系统,而且还在不停地演进。发展操作系统需要长期、大量的技术积累。举个例子,前个阶段华为发布了鸿蒙 2.0,大批国人正在为多屏共享这个功能欢呼之时,没过几天苹果就发布了 iOS 15,其中展示了苹果各种设备之间迁移应用的效果。时间如此之短,这说明苹果早就有了相关技术,只是没有拿出来展示而已。
现在看看我们的国产操作系统,是否代表了最先进的生产力?国产桌面系统,内核是 Linux、GUI 是 Qt,浏览器核心是 Chromium,没几个核心技术是我们自己发展出来的。大家呼声最高的鸿蒙,以开源的 OpenHarmony 2.0 为例,总代码行数据说达到了 200 万行。要知道,200 万行代码真不算什么,笔者维护的开源窗口系统 MiniGUI 及其组件,总代码行数都已超过 200 万行了,而一个成熟的浏览器引擎,代码行数都要上千万行的。
就这样的国产操作系统,有能力作为构建全新生产关系的基石?我是不信的。
回到“操作系统不难做,难在生态建设”这个观点上。持这个观点的人,要么是缺乏深度思考,要么只是在为自己将来的失败找说辞找退路。不要说不过别人就开始道德绑架,说什么“友商不配合,国人不支持”的话了。
拓展阅读:
为什么那么多国人认为开发个操作系统不是难事?
这句话其实是有歧义的,正确的是,确定写操作系统的需求就很难。
到目前为止,开源的操作系统很多,从红帽到debian,这些不够你用吗?Ubuntu22也出来了,优化的不够好吗?国产的deepin20也出到20.5了,你有什么需求,非要自己写一个操作系统呢?
好,哪怕你真的想写,那么问题来了,你的定位是什么?如果替代上面提到的,我劝你放弃,deepin能够发展起来都很不容易了,我从deepin15用到目前最新的20.5版本,以前deepin社区里面,被喷到惨不忍睹,就差把全家带上了。这么多年过去了,deepin的稳定性,你去社区问问,尤其是驱动的支持,也是一言难尽。那你还想再来一次吗?
好,然后你说做一个专业的操作系统,例如做个商业版的或者专业版的,那你打算优化什么东西呢?我是搞存储的,就拿文件系统来说吧,zfs算是最后一代单机文件系统了,你敢说写一个来替代它吗?好,我就当你画饼初生牛犊不怕虎,zfs中遇到的问题,你知道解决方案吗?
就拿zfs的缓存l2Arc来说,因为内核的缘故,page cache是无法关闭的,因此出现了double cache问题,你说解决这个?好,那就得说服linus他们了,你有能耐可以试试?
还有zfs中的defragmentation技术,重复数据删除技术,因为对内存要求过高饱受争议,你想解决这个,很好,请问架构有吗?该如何去解决?单机想解决这个问题已经没几条路可走了。
还有啊,你知道请个研发,能写内核的,或者能写单机文件系统的,研发成本多少吗?这种级别的,除了运气好能够捡到我这种菜鸟,还便宜一点,其他的想招人?国内就没多少真正懂的啊。这不是花点白菜价,拉几个新人写crud那么简单了。
所以,国内目前做这些的,别说操作系统生态了,连存储,敢说做生态的,也没几家啊。
我以前相信过这种鬼话,现在觉得有点像给自己的十秒钟找借口的男人。
你要开饭店,但是转念一想啊呀没有熟客就没有流量,就没有收益所以不开了,还给自己找借口“开饭店不难,难在没有熟客”。
你倒是先把饭店开起来啊…屁股都不带挪一下的,每天在大脑里构思十万甚至九万种场景,然后和得出个结论“做就一定失败,不做就一定没有损失”。
那你还是做梦吧。
数据库存储引擎、编译器,我都玩过,从0开写,写出来一丢丢能跑不保证没BUG的玩意。
操作系统上大学的时候玩过一次,没成功,从头开始写的,loading后x86进入保护模式就黑了,然后我也没法调试,也不知道哪里出了问题,又要考试没法老摸鱼,就扔了,那会儿还是用软盘,软盘很容易损坏,最后连点源代码的渣渣都没了。那个load程序就挺啰嗦的,要额外写个程序把load程序写到软盘的固定位置上.....,因为从0开始么。怎么调试load程序呢?那会儿没想过......。还要动用一点点的汇编,很罗嗦的。
写操作系统的难度要远高于数据库和编译器,因为数据库和编译器都建立在操作系统之上运行,易于调试。操作系统要处理的硬件设备的复杂度也不是其他系统能比的,不光要处理还要建立起结构规范,还要让其他厂商易于开发调试,这里面的道道多的很。
我其实很不相信华为能从0做出鸿蒙的,做个嵌入式的自己用用的操作系统或许可以,但要做个消费级的操作系统,还能兼容其它系统的应用程序和设备驱动,这要登天了。
有人说打江山易,守江山难。
难道意思是打江山很容易?
我就是这种观点。
操作系统不怕简陋,只要开发者够多,生态就会更好,更好的生态就又可以驱动这个操作系统继续更新,而不是停止更新。这基本上是属于正反馈的。
但是如果说没啥开发者,全靠官方自己app,生态基本等同于无,久而久之用的人越来越少,系统也就停止更新。
前者说的是安卓,后者说的是wp8。
安卓靠着免授权费,拉拢了一众交着授权费,用着塞班的手机厂商。用户多了,就吸引了更多的开发者,也就早就了当今的安卓地位。
wp8呢?在wp7的时候,微软靠着钞能力拉拢了一众开发者造生态。结果升级wp8的时候让开发者傻了眼,wp8属于新架构的系统,不兼容wp7的软件。还搞个锤子。本身wm转wp7的时候就是推到重来,现在wp7升wp8又来一次,没人跟你这么完了。没得生态wp8自然也就无了。
至于神一般的meego,好系统,也有人帮忙移植应用。奈何手机还没出就诺基亚宣告不做了,转投微软。原班人马转身做了个jolla则变成小众系统,靠着兼容安卓app苟活着。
说真的,系统流行与否真的与系统无关,生态好,自然有人帮忙开发应用提升用户体验。这就是众人拾柴火焰高。
即使不谈生态,做出一个只在大公司内部用的OS 也是十分困难的。 因为CPU 变复杂,同时性能要求也高了。
Linus 发布他的Linux kernel 之前几年,前公司的也基于386开发了一款实时OS, 据说就是两三个人开发的, 生态就是tool chain 的问题,需要定制,还有库问题,如free 内存特别慢。 这些都能忍,但CPU 一直在升级,它跟不上呀,Pentium 只能当频率更高的386用, 到多核时代只能利用一个核。
差不多就是这样。
我举个大家都熟悉的手机操作系统的例子:
小众的FireFOX OS,听说过么? 我在日本看到一款全透明壳的手机LG FX0,那叫一个惊艳,它就用的这个操作系统。买了之后一看,在国内环境整个就是一个彩屏老头机,QQ都没有。2G网+GPRS、只能打电话。3G还要刷基带。(能网页QQ,后来腾讯停掉了就没的用了)
再说一个,黑莓,你看看那些应用国内能用几个?也就是比火狐OS强点儿有限。
没应用,那这两款手机基本就是边缘化中的边缘,只有手机玩家才知道。不是经常关注这个的,基本都没听说过。
“操作系统不难做”这句话本来就是完全错误的。
做操作系统的难度极其高,可以说是人类历史上数学、计算机科学、管理学、统筹学等最顶尖技术的集大成者。
如果没有一个开源的例子,你甚至都不知道如何下手。如果你不认可这句话,你写一个比LUNIX,iOS、WINODWS等水平更高的操作系统给我看。
国内为啥有这么多所谓的操作系统出来,原因就是有一个有现成的开源的例子来参考,有心人摸清了它的原理,甚至说没有吃透只是改头换面能正常运行来换取商业利益,就认为自己也能开发出来一个操作系统,这就给了大家一个错觉。
大家看了源代码后觉得,这不难呀。这就好象某一个数学家证明了一个定理,然后大家一看证明的过程,感觉换成我我也能证明,但问题是之前你咋不证明一个出来看呢?
国内很多微系统从其本质上说是换汤不换药,就算是绝对的纯自研的,在技术水平上也并没有说做到世界领先,也只能说是支撑了自己的业务系统和商业战略。
如果大家还不相信,你就再看显卡就得了,除了设计和制造的难关以外,能够写出高水平的驱动程序才是最难的,现在中国吹能自研的操作系统的有很多,但有几个敢吹我能完全搞定GPU驱动程序的,而操作系统比这个的体系的数量和复杂度都要高多少倍。
全中国软件开发最有钱,技术人才最多,水平最高的的有华为、阿里、百度、腾讯,你告诉我他们开发的操作系统比现在世界主流OS相比,在技术上真正的说超过?没有,真没有,甚至说是完全没有自己的特色,令人极其失望。
以人工智能的大模型为例,中国可以说是百模大战,如果你真的具有ChatGPT的技术水平,全世界会不跟你?好不好是比较出来的,外国人在政治上可以装疯卖傻,在技术上可是一点都不含糊的。
所以说操作系统真的很难做,说生态建设的就好比说成为世界霸主不难,难的是如何维持世界霸主。你先别说大话,你当上了再说后面的事情。
还有一种愚蠢的观点是:WINDOWS的水平其实很低,里面的代码象屎山一样。但是在它横空出世的那个时代,它真的就是最先进的呀,你有更好的,你拿出来卖啊。如果你真有好的,你不需要开发太多的生态软件,只需要开发几款比如办公、图像、音视频方面的软件,大家一用效率要高好几倍,你就算是没有完全的生态,人家做为一个专用机世界都有人买。就象曾经的苹果系统一样,主要的软件都是自己开发,不管系统好,曾经在图像、音频、视频方面成为行业的标准和离不开的工具。
还是那句话:菜是原罪,其它的都是商业借口。
当下社会的网络环境中,最难做到的是:严以律己,宽以待人
当你在谈论鸿蒙为什么要用安卓代码时,就要说“操作系统不难做,难在生态建设”。
当你在谈论自研系统的时候,你就不能说“操作系统不难做,难在生态建设”。
当你在谈论应该由国家出面推广鸿蒙的时候,就要说“操作系统不难做,难在生态建设”。
当你在谈论鸿蒙营销导致了程序员的对立时,你就不能说“操作系统不难做,难在生态建设”。
总而言之,当你看到这句“操作系统不难做,难在生态建设”的时候,不要轻易表态,先看说话人的派别,否则容易祸从口出。
这个观点毋庸置疑,是正确的。
确实是难在生态建设上。
举个简单例子:现在国内某大厂,开发了一套自己的操作系统,开发出来之后,没有硬件厂商要搭在该系统,为什么呢?
硬件厂商,假如是电脑厂商吧,说:我搭建了你们系统,用户就不会买我们电脑了?因为这个操作系统里没有啥可用的软件,我们用户说他们办公需要安装 office 办公软件,可是你们操作系统不支持,微软还没针对你们操作系统开发对应的办公软件。
A 用户说:哼,我也不会买搭在这个操作系统的电脑,因为很多游戏都没办法玩,游戏厂商没有针对这个操作系统开发对应的游戏软件安装包。
B 用户说:是啊,我喜欢听音乐,搭在这个新系统的电脑,还没有音乐厂商开发对应的客户端呢!
C 用户说:就是啊,我喜欢用谷歌浏览器,这个新系统不支持,谷歌没有发布这个系统版本的浏览器。没办法用。
D 用户说:我是程序员,我用的 IDE,各种开发工具都没有办法安转到这个系统上,软件厂商还没有开发对应系统版本的软件,咋用啊?没办法工作啊!
你说开发新系统的公司找这些软件厂商合作不行吗?让他们开发对应系统版本的软件,开发 office 办公套件,开发音乐客户端,开发游戏软件,开发浏览器,开发 IDE 开发工具。
可是,这些厂商会说,等等吧,得不偿失,等你们系统的用户量上来再说吧,我们现在投入开发,成本太高了,因为开发出来也没人用,你们新系统的用户量太少了,几乎没人用。
开发新系统的公司多头疼啊!用户说你们新系统老多软件都不支持,我们不买,不用!而各个软件厂商说:你们用户量太少,我们暂时不针对你们系统开发软件,成本太高了,所以,就陷入了死循环。
就这样,新系统公司就倒闭了,新系统也就这么挂了。
这时候,聪明的用户或者质疑者说:做新系统的公司,死脑筋,他们可以在新系统中兼容别的系统的软件啊,这样无缝迁移多好,等用户量起来,生态慢慢起来,厂商开发了适配版软件,再移除那些兼容的。
华为说:我们就是这么干的,可是鸿蒙系统被人骂的是套壳,是抄袭啊!
看完,不知道大家理解了吗?其实做系统容易,做生态太难了。
看到「不难」已经开始报错了,后面的逻辑无所谓了。
[收藏本文] 【下载本文】
   科技知识 最新文章
《消失的问界里》为什么网传华为选择大面积
特斯拉万人大裁员涉及中国市场,销售部门是
媒体报道「特斯拉一天内失去 2 个高管和 10
去年是「大模型元年」,今年会是「AI应用落
2024 年人工智能方向的就业前景怎么样?
如何评价小米汽车SU7全球首例无故抛锚?
如何评价比亚迪与大疆合作发布的车载无人机
如何看待波音「吹哨人」遗言曝光:如果我出
电动汽车为什么一下爆发了?
怎么看待华为太空宽带计划?
上一篇文章           查看所有文章
加:2024-04-01 13:24:31  更:2024-04-01 14:10:00 
 
 
股票涨跌实时统计 涨停板选股 分时图选股 跌停板选股 K线图选股 成交量选股 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
网站联系: qq:121756557 email:121756557@qq.com  天天财汇