其实这句话应该说成:“操作系统很难写出来,但更难的是以超前的眼光,写出受到广泛认可的引领时代的系统”。写出操作系统可以是一个人、一个团体、一个公司靠主观意愿去完成的事,但是构筑一个新的系统生态则是一个大范围的综合博弈,不由任何人的主观意志决定。
具体来说,为什么“生态建设”难,因为吸引大量的厂商和开发者的认同很难。厂商会为了什么支持一个系统,当然是因为跟着这个系统的发展可以给厂商带来巨大的商业利益。比如GNU/Linux,比如安卓,为什么厂商愿意支持它们,因为支持它们可以极大的满足自身向更高一层发展的需求。你们以为厂商是为了崇高的开源理想而支持吗?当然不是。
GNU/Linux可以帮助这些厂商打破商业windows和unix的壁垒,可以让它们乘坐开源的浪潮获得更多的收益,这些厂商只需要把以往自己购买或自己制作维护系统的成本的少部分钱投给开源社区,然后一个又成熟又稳定的系统就到手了,何乐不为。当然这对开源社区也有促进作用,属于双赢。关于GNU/Linux是如何搭上历史的车轮一步步成为现在主流系统之一的,可以参考我下面这个回答:
而安卓出现的年代,厂商们看到了安卓可以帮助它们与塞班、苹果一拼高下,分享手机市场这块大蛋糕的前景。而且伴随着智能手机的崛起,这块蛋糕越来越大,没有自己系统(现做来不及)但又有能力制作手机的厂商,在看到当时的安卓时立刻就团结在它的下面,抱团和苹果等对抗。
Windows和苹果虽然属于商用不开源系统,但是他们也是在第一时间看准了桌面系统和智能终端系统的浪潮,一举拿下市场的。微软还因为进军智能终端晚了一点点,即使他有成熟的系统,也还是错过了机会,被远远的甩在了后面,没有成功进入。
开发者其实和厂商也是差不多的,开发者们为什么会选择在一个操作系统生态下贡献代码。当然是因为在这个生态下贡献可以给他们带来好处。比如带来保障生活的收入,比如带来业内的名声,比如满足他们的兴趣等等……而且一个被全世界大范围专业认可的系统可以带来大量的工作机会,将大量的开发者引入这个生态圈内,并且影响后续更多开发者的加入。
一个通用操作系统生态的构建绝对不是靠情怀、靠舆论、靠宏观调控、靠一堆光会动嘴的键盘侠和为了流量毫无底线的媒体就能构建的。一个通用操作系统的生态圈至少需要:
所以,写出一个有进程调度、内存管理、设备管理、文件系统、网络功能、交互界面、开发库等一系列基础要素的系统不算最难的(其实也是非常困难的),而让这个新系统具备上述条件是需要除了自身技术绝对过硬以外,还要看天时地利人和。即使是很多设计很好的系统也都埋葬在了历史的长河里,留下了技术的积累为后人在更合适的时候推出更合适的系统做准备,我们现在叫的出名字的系统只是漫漫系统长河中的一小部分,所以不要小看一个系统从诞生到能够形成一个公认的生态的过程。第一个看到螃蟹并敢吃的人,和后面知道能吃才效仿的人完全不是一个概念。
对于现代操作系统来说,功能其实基本都差不多。不同的操作系统间,最大的差异其实是API的细节差异。
但魔鬼就在细节当中。
你看web开发者多恨要适配不同的浏览器啊。操作系统上应用程序的开发者也一样。
现在新冒出来一个操作系统,如果为之移植或开发应用程序带不来什么大的好处,应用程序的开发者宁可只要“不必适配两个操作系统”这一点好处。
在什么情况下为一个新系统移植或开发程序才能给开发者带来大的好处呢?
那就是相比旧系统,新系统能提供原来旧系统下不可能事物的可能性,而这种可能性又是用户非常想要的。
自然界的生态圈的重建,往往与大灭绝事件有关。大灭绝摧毁旧的生态圈,为新的生态圈的建立开辟空间。
在应用程序的生态圈,一个颠覆性操作系统的出现就相当于这种大灭绝事件。
也就是,你要重塑生态圈,你必须要有足够的颠覆性。
弄个跟别人一模一样只是细节上有些许差异的操作系统还想取而代之,只能遭到抵制。没哪个应用开发者吃饱撑得再给自己背个包袱。
就拿 @立党 老师提到的例子,Symbian、黑莓、Win CE/Windows Mobile(此处应有Palm OS,WM之前我用了三四台Palm设备),这些曾经在消费市场有一定影响力的操作系统都消失了。
如果算上商用市场,NetWare,IBM OS/2,一众商业的Unix如Solaris、HP-UX、IRIX、OpenUnix、True64 Unix等等,还有更古老的一众和硬件绑定的专用系统……有兴趣而且会上网的可以去看看维基的这个页面,看看有多少操作系统你认识的:
不会上网又想看一眼的,我上传了一个PDF附件,一共32页。不过点击链接就没法进入具体词条详细看了。
所以,你看到了,做操作系统这事,很多企业都做出来过,而且做出来的操作系统起码足以让维基的编辑者记住并为之建立词条。但是能把生态做起来,并且是足够良性健康可持续的,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,安卓的平板。不能说这两个平台的生态没建设起来,而且平台也都还在,但很多软件在这两个平台上都四五年没有更新过了。
如果顺着说的话:生态建设也不难做,难在做人。
逆着说也对:最难就是做操作系统。因为你得给它做到最好、还得会做人,这才能引来软件公司帮你做生态。
您要做人做到那谁那份上,坑开发者,拿开发者当猴耍,说好的特色不兑现,政策一天三变、变完开发者投入多少都打了水漂……那您这生态……
乱砍滥伐瞎搞污染、把开发者全部得罪了的,还有个狗屁生态。
不仅如此。想要操作系统接口稳定,你得有个极高水平的架构;想要有个极高水平的架构,你得有一个极高水平的内核……
而极高水平的内核和架构,都是业界顶尖程序员做的。
你得拿开发者当人,别拿你的员工当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——讨好用户是网站运营者的事,和操作系统无关。
买手机买电脑都是为了其上的应用,只有开发者才会摆弄操作系统本身。想要伺候好你的用户,就要伺候好这些伺候用户的人。
你看,归根结底,做人最重要。
做人两面三刀,那么开发一个好的操作系统就是痴人说梦;开发了好的操作系统,却不会好好运营、不懂得维护开发者的利益、在开发者中间树立自己的形象,那么没人愿意为你白打工,那自然就没有生态。
小胜在智,大胜在德。
德行有亏、立不起说不起的家伙,是不可能搞起什么生态的。
你如果一直在做一个“在一个全新领域、定义并解决前所未有的问题”的操作系统,那么开发者永远抢着帮你建设生态,压根不存在“我做不起来”的现状——只要你一做出来,就会有无数人从全世界各地跑来帮你做应用。
Windows——第一个通用x86兼容机操作系统,缺人做生态吗?都被开发者玩儿出花来了;
Symbian——第一个现代智能手机操作系统,缺人做生态吗?当时用C++和Python给Symbian做生态的人多到数不过来;
黑莓——第一个具有生产力级别工具的操作系统,缺人做生态吗?当年浏览器工具游戏一个都不缺;
Windows Mobile 5/6——第一个触屏Windows手机操作系统,当年除了office以外,第三方开发者把Windows常用小工具都在里面做了个遍;
iOS——第一个现代意义上的触屏手机操作系统,地球上一半mobile app developer都在给它做App;
Android——第一个现代意义上的开源触屏手机操作系统,目前地球上另一半的人帮它做App。
如果你的操作系统解决了行业尤其是消费数码的技术革命,那么你根本不可能发愁“没人做生态”,愁的反而是开发者们“我们什么时候能快点学会”、“我们如何比别的竞争对手们更快更好地在你的操作系统上做应用”、“我们如何做出更简单更方便性能更好的开发工具”——整个社区疯狂学习、吸收、跟开发者互动、交流,一起把饼做大,会有人担心上面这几类操作系统的生态吗?
如果你拥有一点点商业前景和技术视角,你也明白“别人有个西瓜,我做个西瓜”这就是自寻死路——“别人开源个西瓜,我直接复制粘贴个西瓜”,然后找出“为了兼容西瓜”、“因为西瓜的生态难做”,不仅给自己不能像别人一样有能力“发现西瓜、定义西瓜、做出西瓜”,反而直接套壳,这就是纯粹意义上的无能又无耻了。
要想搞笑,低俗是最快速的手段。
日本的志村健在三俗的路上走了快40多年了,
现在依然还是依靠这个维持人气的。
可是,一直依靠低俗笑料
迟早会遇到玻璃天花板的。
日本有个叫 快乐亭黑的混血,是说单口相声的,
说的全部都是下三滥的笑料,不是一点,而是全部。
结果就是没人敢找他上电视,广播,或者剧场演出。
翻过来说,保持一点三俗笑料不用,纯靠幽默和擦边球的相声演员,
依然不多。
而且要一直维持这种作品的风格是极其困难的。
侯老,马老就是典范。
(马老后期说的很多小段,其实就是外国笑话,当然是自己加工过的)
反过来说
七口人这个死杠死口 的内容
说了有一百年了吧?
不用解说大家不还是听的懂?