1 引言
近一个月是个多事之秋(2012年9月),IT 和互联网领域也不平静。阿里云操作系统受到谷歌的打压,华为任正非提出要开发自己的操作系统,中兴也宣布今年第四季度将发布自己的操作系统。一时间,微博上有关自主知识产权操作系统的讨论如火如荼。这样的讨论,就如同“水木清华”某些板面上的“月经贴”一样,每隔一段时间就要火一次。但大部分讨论其实讨论不到点子上,就如同“瞎子摸象”一般,大家基本上只是站在自己的立场,基于自己的经验在判断孰是孰非。这样的讨论效率低下,本人认为有必要写一篇科普性的文章,从政治、技术、工程、法律等几个方面给“自主”操作系统来一个比较清晰的定义,并尝试给出一些技术、工程等方面的建议。
1.1 作者的资格
为了说明本人有足够的资格来写这篇文章,给大家介绍一下本人的经历。本人码农出身,1993到1998年期间主要在微软平台上做程序开发,曾编写过 DOS、Win32、MFC 程序,期间涉及 C/C++ 语言,SQL 数据库、网站后台等。从 1998 年底开始专注于 Linux 和嵌入式系统。主要作品为大名鼎鼎的 MiniGUI。在创办飞漫软件的近十年时间里,作为企业创始人和研发负责人,组织研发团队持续开发 MiniGUI,开发了多个版本的嵌入式浏览器产品,也曾和美国公司合作,开发过类似 Android 这样的移动操作系统,还将 Android 运行在了 MeeGO 上(也就是国际上有点名气的 ACL,飞漫是主要开发者)。除了极其丰富的软件开发、管理经验之外,本人还编写过几本操作系统相关的书籍,不过比较老了,比较出名的是本人主持翻译的《Linux 设备驱动程序》第二版、第三版。有这些经历和相关经验做基础,我相信本文所述将是比较客观和完备的。希望本文对政策制定者、大型企业的决策者、自主操作系统的开发管理者,以及一般的码农们或多或少有一些帮助。
1.2 限制和定义
操作系统的类型很多,粗粗算起来,从小到大,有针对嵌入式系统的实时操作系统,比如 VxWorks、Nucleus 等;有现在大家熟知的针对移动终端的 Android、iOS、Windows Phone 等;有 Windows、Ubuntu Linux 等针对 PC 的操作系统;还有针对服务器的操作系统,比如 Windows NT 等。
从技术上讲,操作系统的概念可大可小。小的话,一个内核就可以称为一个操作系统,比如 Linux 内核、BSD 内核、Minix 内核等;大的话,则通常指的是整个软件平台,比如 Android、iOS、Windows Phone,有时还会将软件商店、开发社区等包含在内,从而外延到整个生态系统。
本文所指“操作系统”,以及大家近期讨论的操作系统,其实基本上被限制在移动终端领域当中,就是指能够和 Android、iOS、Windows Phone 等相提并论的操作系统,主要用于智能手机、平板电脑,而不是实时操作系统、操作系统内核或者服务器操作系统——准确讲,应该是指一个针对智能手机和/或平板电脑的软件平台以及对应的生态系统。不过,我们当前还是把它称为“操作系统(OS)”吧。
2 到底要不要“自主”操作系统
对此问题,不同的人有不同看法,但其实都很偏颇。码农,尤其是喜欢 Google 的码农,通常会说,Android 是完全开源的,没有必要重复造轮子;企业决策者或者政策制定者,则往往会认为必须有自主的操作系统。其实两者都有道理,但两者都没有看到事物的本质。
2.1 “自主”操作系统的不必要性
在谈“自主”操作系统的必要性之前,笔者先谈谈“自主”操作系统的不必要性。
在开源软件大行其道的今天,操作系统不再那么神秘,任何有足够财力的企业,依赖现有的开源软件,都可以比较容易地推出一个能够运行的操作系统。出于此观点,很多人认为有 Android 这样的开源操作系统,就没有必要再开发一个自己的操作系统了,到底谁拥有开源操作系统的知识产权,是无所谓的事情。
这个说法是有一定道理的。
从法律(指开源软件许可证)和技术上讲,就算 Google 不打算开源新的 Android 版本,不允许某些厂商使用 Android,我们一样可以在已经开源的 Android 之上继续发展自己的 Android 系统——只要遵循已经开源的 Android 的许可证约束即可,而 Android 系统主要使用的开源软件许可证有 GPL(Linux 内核)、LGPL(各种运行时函数库)、Apache(Dalvik 虚拟机及 Java 类库),其实是非常宽松的。
这个说法的不足之处在于,未考虑到可能的专利(软件相关的专利通常和实现无关,就是说,你重写一段代码,并不表示你可以规避对应的专利),以及是否有能力自行发展 Android 的问题。
前者非常要害。谷歌在开发 Android,尤其是 Dalvik 虚拟机以及 Java 类库的过程中,肯定积累了大量专利,而这些专利是凌驾于软件的著作权和许可证之上的。也就是说,如果你基于现有的 Android 派生了一个分支,要想将运行有这个 Android 派生版本的软件放到自己的手机里边销售,谷歌马上可以拿出专利大棒来限制你。当前,谷歌尚未拿出专利大棒来限制各种派生于 Android 的系统。拿阿里云 OS 和谷歌最近的争论当中来看,谷歌也只是说阿里云 OS 导致 Android 不兼容。但一旦有厂商真的使用了阿里云 OS,谷歌马上就会拿出专利大棒,这将毫无疑问。
至于有没有能力来自行发展 Android 的问题,在中国有大量码农基数的基础上,只要有源代码,就可以在短时间内组织团队自行发展 Android。
2.2 “自主”操作系统的必要性
强调需要“自主”操作系统的主要有两类人:政府中的政策制定者以及大型企业的决策者。
对政策制定者来讲,面向未来由中美两国主导的国际环境,作为两极世界中的中国,有没有自主的芯片、有没有自主的操作系统,关系到两个层面的东西,一个是国家安全,一个是面子。在这样的认识下,“核高基”的出现自然而然,其目的是支持国内企业发展核心电子器件、高端通用芯片及基础软件产品。我们暂且不谈核高基项目在实施过程中存在的制度性问题,它表明的国家是在战略上的一种布局,是一种国家意志,涉及到政治领域。
作为企业决策者,没有自主的操作系统,他将在很多方面受制于人。就拿阿里云和谷歌的争议事件来看,宏碁受到了来自谷歌的压力,然后就乖乖投降了。这里边有两个值得思考的地方:(1) 既然 Android 这么好,为什么宏碁还要和阿里 OS 合作?后者肯定没有 Android 成熟啊。(2) 为什么谷歌一施压,宏碁就放弃了和阿里 OS 的合作呢?显然,宏碁有动机选择另一个 OS 给自己的智能手机,可能的原因无外乎两种:阿里给钱了或者宏碁不希望被谷歌控制;另外,宏碁又那么容易地被谷歌搞定,说明谷歌能带给宏碁的利益远远大于阿里。
另外联想到微软向 Android 厂商收取专利许可费的事情,像宏碁这样的厂商,肯定也会被微软勒索,也包括中兴、华为等国际化的 Android 手机厂商,无一例外。对企业决策者来讲,这很难受——给别人做嫁衣啊,有时候还两头受气!所以,小的厂商需要投靠大树来庇护自己(大多数乖乖就范于谷歌或微软),大的厂商就要考虑是不是开发一个“自主”的操作系统来抗衡了。
这样的思路下,华为、中兴等大的智能手机厂商,开发“自主”操作系统的动机非常强。
像阿里这样的公司,开发OS,其目的是要复制 Google 的商业模式,加上阿里 OS 又没有撇清和 Android 的关系,受到 Google 的打压就在情理之中了。
2.3 “自主”应强调在“有效知识产权保护下的自己主导”
根据上面的分析,看来我们还真的需要有“自主”的操作系统。但是,“自主”到底是自主什么呢?
在功能手机和实时嵌入式系统领域,我们不是没有“自主”的操作系统,比如 MTK 或者展讯的操作系统,以及诸如早期的 Hopen、道系统等。在通用操作系统领域,国家也长期支持了诸如麒麟操作系统、红旗 Linux、中标 Linux、新华 Linux 等多家本土操作系统厂商。但市场表明,国家支持的这些操作系统都将消亡或者正在消亡。
本人认为,国家支持下进行“自主”操作系统的开发有合理之处,毕竟开发操作系统是一件比较困难的事情。但是,这里边有一个重要的误区和制度设计上的错误,就是只强调了“自有知识产权”,而没有强调“自己主导”。
在强调“自由知识产权”的情况下,政府对受资助企业的“自主”操作系统进行考核时,大部分情况下考核的是企业有没有获得对应的知识产权,就是软件的著作权和/或对应的专利,而并没有考核能否主导一个产业链。就如同 Google 那样可以控制这个产业链一样,受资助的企业,能不能做到让别人用了你的操作系统,就没法不继续用?在这样的思路下,政府需要在更长的周期内,考核受资助企业的市场份额是否有扩大,是否建立了良好的生态系统,让使用者、开发者欲罢不能,而不是简单的著作权证书和专利数量,或者是否达到了一个给定的出货量(因为出货量是可以作假的)。
也就是说,我们应该重新定义“自主”这两个字,从“自有知识产权”向“有效知识产权保护下的自己主导”转移。
为什么这里强调“有效知识产权”呢?这是因为,在开源软件成为趋势的情况下,构建一个自己的操作系统,可以使用很多已有的开源软件,我们没有必要所有代码都自己编写,而且越底层的代码就越没有必要自己重写一遍。这如同一只桃子,好吃的是果肉,而不是果核。像内核、基础库、常用运行时函数库等等,都不必自己重新开发。而且这么做几乎没有任何潜在的法律问题,当然,前提是你要告诉大家你用了哪些开源软件,而且你也尊重了这些开源软件的许可证。这样下来,一个操作系统的软件著作权已经不再重要,重要的是相关的专利、自己独有的创新以及围绕操作系统建立起来的生态系统。
3 “自主”操作系统应该具备的特征
那么,“自主”操作系统应该张什么样?要回答这个问题,我们先看看假的“自主”操作系统张什么样。所谓假的“自主”操作系统,就是那些号称“自主”操作系统,但其实:
只是在已有的开源操作系统之上加了一层皮。比如各种基于 Android 的第三方 ROM,比如 MIUI、Flemy 等。这种操作系统仅仅在 UI/UE 上做了一些工作,就如同一个人换了一身衣服那样,实质上这个人不会因为换了一身衣服而从张三改叫成李四。
修改了已有开源操作系统的内部代码,做了一些优化或者去掉了别人的一些东西,添加了一些自己的内容。比如阿里 OS 就属于这种,或者哪些号称深度定制的 Android 系统也属此类。这种做法如同整容,的确动了些刀子,甚至改变了性别,但人还是那人,改了名字或性别也还是那人。
这么类比下来,读者应该就知道了,真的“自主”操作系统,必须要有自己的灵魂,只有这样,不管换什么衣服、是不是经过了整容,那人还是那人;通俗一点讲,只有换了脑袋的才能是一个全新的个体。
那么在操作系统当中,什么东西是灵魂?这个问题回答起来蛮难的。我们先看看哪些东西肯定不属于灵魂:
无法形成有效知识产权的软件组件,或者说,满世界有很多(开源的)实现的软件组件。比如内核、基础函数库、网络协议、图形库、浏览器引擎等等。这些东西可以看成是形成一个智能动物(比如“人”)的骨架或者躯体、甚至心脏,但远远算不上脑袋或者灵魂。这也是为什么笔者主张在“自主”操作系统中要尽量使用现有的成熟开源软件、而且不建议再行发明此类轮子的原因。
要知道哪些东西是灵魂,我们分析下 Google 在和阿里 OS 争论的过程中主要维护的是什么东西:
Google 的说法:阿里 OS 采用了 Android 的虚拟机和 Framework,但又不兼容 Android,破坏了 Android 的生态系统。这个说法可能还不是 Google 打压阿里 OS 的最关键原因,但起码说出了他们的担忧:阿里 OS 是想借 Android 打造自己的一个生态系统!另外,Google 对那些只换衣服的 Android 系统采取听之任之的态度,和他们一贯以来标榜的“只要兼容,我们欢迎”的态度一致——也就是说,这些系统没有从根本上动摇 Google 的生态系统。
所以,真正的“自主”操作系统的灵魂,就是那个背后的、无形的生态系统,一个看似开放但其实封闭的生态系统。一旦加入这个生态系统,你就很难下来——正所谓“上了贼船下不来”。
这就是我的回答:一个真正“自主”的操作系统,必须建立自己的生态系统,一个开放的,但在某种程度上又封闭的生态系统。
操作系统生态系统?这名词大家说了很多年了,一个生态系统具体应该是什么样子?笔者从如下几个方面解释一下:
技术层面。操作系统必须通过某种技术将自己和其他的操作系统区隔开来。比如 Android 采用 Java 语言,但使用了不同于 Sun(现在是 Oracle) JDK 的 API;iOS 采用了 Object C 语言,为应用程序提供的接口和框架甚至有别于苹果自己的 Mac OS X;Windows Phone 采用了 C# 语言,在 .Net 框架下进行开发。为什么这些操作系统不使用 C/C++ 这类语言呢,C/C++ 尤其是 C 可是这些操作系统内核的编程语言啊!?这里有如下几个原因:
操作系统开发者不希望普通的应用程序通过使用比较低级的编程语言来控制系统或设备,毕竟操作系统是给智能手机、平板电脑这种消费类的电子设备使用的。
通过采用更加高级的语言来简化编程和开发人员的学习难度。
通过对看起来非常复杂的框架的持续演进,达到牵着开发者和厂商鼻子走的效果。
便于形成依附于某个操作系统的独有的开发者社区和文化。
法律层面。操作系统必须通过创建自己的有效知识产权体系来保护自己。前面已经说过,越底层的软件组件越没有市场价值(码农们可能不喜欢听这话,但现实就是这样的)。通过建立全新的、包裹在底层操作系统之上的框架、编程接口、编程语言等基础设施,操作系统开发商才有可能建立起有别于他人的有效的知识产权保护体系。也就是说,如果连框架、编程语言、编程接口等都抄袭他人(就算是开源的、许可证允许的),那永远也无法形成一个可以有效保护自己的知识产权体系。
市场层面。通过和上下游企业的合作,建立某种联盟或者许可、授权机制,让操作系统的用户(芯片厂商、手机厂商、平板厂商)能够从中获益。比如 Android 开放联盟,做的就是这个事情。
开发者社区。一个好的操作系统之生态系统,要充分照顾开发者的利益,具体有如下几点:
要有好的开发工具,便于开发者学习、开发和调试软件。
要有好的文档或者教程,帮助开发者迅速掌握相关开发技巧。
最重要的,要能够让开发者赚到钱。
看到这里,相信大家都会意识到:这也太难了吧!的确,这非常难,这也是为什么 Moblin、MeeGo、Bada、WebOS 等操作系统相继失败,而到目前,只有 iOS、Android、Windows Phone 这三种操作系统的原因。
但是,世上无难事只怕有心人。接下来我告诉你如何搭建一个真正的“自主”操作系统。
4 如何开发“自主”操作系统
(待续)
5 给相关人员的建议
(待续)
近一个月是个多事之秋(2012年9月),IT 和互联网领域也不平静。阿里云操作系统受到谷歌的打压,华为任正非提出要开发自己的操作系统,中兴也宣布今年第四季度将发布自己的操作系统。一时间,微博上有关自主知识产权操作系统的讨论如火如荼。这样的讨论,就如同“水木清华”某些板面上的“月经贴”一样,每隔一段时间就要火一次。但大部分讨论其实讨论不到点子上,就如同“瞎子摸象”一般,大家基本上只是站在自己的立场,基于自己的经验在判断孰是孰非。这样的讨论效率低下,本人认为有必要写一篇科普性的文章,从政治、技术、工程、法律等几个方面给“自主”操作系统来一个比较清晰的定义,并尝试给出一些技术、工程等方面的建议。
1.1 作者的资格
为了说明本人有足够的资格来写这篇文章,给大家介绍一下本人的经历。本人码农出身,1993到1998年期间主要在微软平台上做程序开发,曾编写过 DOS、Win32、MFC 程序,期间涉及 C/C++ 语言,SQL 数据库、网站后台等。从 1998 年底开始专注于 Linux 和嵌入式系统。主要作品为大名鼎鼎的 MiniGUI。在创办飞漫软件的近十年时间里,作为企业创始人和研发负责人,组织研发团队持续开发 MiniGUI,开发了多个版本的嵌入式浏览器产品,也曾和美国公司合作,开发过类似 Android 这样的移动操作系统,还将 Android 运行在了 MeeGO 上(也就是国际上有点名气的 ACL,飞漫是主要开发者)。除了极其丰富的软件开发、管理经验之外,本人还编写过几本操作系统相关的书籍,不过比较老了,比较出名的是本人主持翻译的《Linux 设备驱动程序》第二版、第三版。有这些经历和相关经验做基础,我相信本文所述将是比较客观和完备的。希望本文对政策制定者、大型企业的决策者、自主操作系统的开发管理者,以及一般的码农们或多或少有一些帮助。
1.2 限制和定义
操作系统的类型很多,粗粗算起来,从小到大,有针对嵌入式系统的实时操作系统,比如 VxWorks、Nucleus 等;有现在大家熟知的针对移动终端的 Android、iOS、Windows Phone 等;有 Windows、Ubuntu Linux 等针对 PC 的操作系统;还有针对服务器的操作系统,比如 Windows NT 等。
从技术上讲,操作系统的概念可大可小。小的话,一个内核就可以称为一个操作系统,比如 Linux 内核、BSD 内核、Minix 内核等;大的话,则通常指的是整个软件平台,比如 Android、iOS、Windows Phone,有时还会将软件商店、开发社区等包含在内,从而外延到整个生态系统。
本文所指“操作系统”,以及大家近期讨论的操作系统,其实基本上被限制在移动终端领域当中,就是指能够和 Android、iOS、Windows Phone 等相提并论的操作系统,主要用于智能手机、平板电脑,而不是实时操作系统、操作系统内核或者服务器操作系统——准确讲,应该是指一个针对智能手机和/或平板电脑的软件平台以及对应的生态系统。不过,我们当前还是把它称为“操作系统(OS)”吧。
2 到底要不要“自主”操作系统
对此问题,不同的人有不同看法,但其实都很偏颇。码农,尤其是喜欢 Google 的码农,通常会说,Android 是完全开源的,没有必要重复造轮子;企业决策者或者政策制定者,则往往会认为必须有自主的操作系统。其实两者都有道理,但两者都没有看到事物的本质。
2.1 “自主”操作系统的不必要性
在谈“自主”操作系统的必要性之前,笔者先谈谈“自主”操作系统的不必要性。
在开源软件大行其道的今天,操作系统不再那么神秘,任何有足够财力的企业,依赖现有的开源软件,都可以比较容易地推出一个能够运行的操作系统。出于此观点,很多人认为有 Android 这样的开源操作系统,就没有必要再开发一个自己的操作系统了,到底谁拥有开源操作系统的知识产权,是无所谓的事情。
这个说法是有一定道理的。
从法律(指开源软件许可证)和技术上讲,就算 Google 不打算开源新的 Android 版本,不允许某些厂商使用 Android,我们一样可以在已经开源的 Android 之上继续发展自己的 Android 系统——只要遵循已经开源的 Android 的许可证约束即可,而 Android 系统主要使用的开源软件许可证有 GPL(Linux 内核)、LGPL(各种运行时函数库)、Apache(Dalvik 虚拟机及 Java 类库),其实是非常宽松的。
这个说法的不足之处在于,未考虑到可能的专利(软件相关的专利通常和实现无关,就是说,你重写一段代码,并不表示你可以规避对应的专利),以及是否有能力自行发展 Android 的问题。
前者非常要害。谷歌在开发 Android,尤其是 Dalvik 虚拟机以及 Java 类库的过程中,肯定积累了大量专利,而这些专利是凌驾于软件的著作权和许可证之上的。也就是说,如果你基于现有的 Android 派生了一个分支,要想将运行有这个 Android 派生版本的软件放到自己的手机里边销售,谷歌马上可以拿出专利大棒来限制你。当前,谷歌尚未拿出专利大棒来限制各种派生于 Android 的系统。拿阿里云 OS 和谷歌最近的争论当中来看,谷歌也只是说阿里云 OS 导致 Android 不兼容。但一旦有厂商真的使用了阿里云 OS,谷歌马上就会拿出专利大棒,这将毫无疑问。
至于有没有能力来自行发展 Android 的问题,在中国有大量码农基数的基础上,只要有源代码,就可以在短时间内组织团队自行发展 Android。
2.2 “自主”操作系统的必要性
强调需要“自主”操作系统的主要有两类人:政府中的政策制定者以及大型企业的决策者。
对政策制定者来讲,面向未来由中美两国主导的国际环境,作为两极世界中的中国,有没有自主的芯片、有没有自主的操作系统,关系到两个层面的东西,一个是国家安全,一个是面子。在这样的认识下,“核高基”的出现自然而然,其目的是支持国内企业发展核心电子器件、高端通用芯片及基础软件产品。我们暂且不谈核高基项目在实施过程中存在的制度性问题,它表明的国家是在战略上的一种布局,是一种国家意志,涉及到政治领域。
作为企业决策者,没有自主的操作系统,他将在很多方面受制于人。就拿阿里云和谷歌的争议事件来看,宏碁受到了来自谷歌的压力,然后就乖乖投降了。这里边有两个值得思考的地方:(1) 既然 Android 这么好,为什么宏碁还要和阿里 OS 合作?后者肯定没有 Android 成熟啊。(2) 为什么谷歌一施压,宏碁就放弃了和阿里 OS 的合作呢?显然,宏碁有动机选择另一个 OS 给自己的智能手机,可能的原因无外乎两种:阿里给钱了或者宏碁不希望被谷歌控制;另外,宏碁又那么容易地被谷歌搞定,说明谷歌能带给宏碁的利益远远大于阿里。
另外联想到微软向 Android 厂商收取专利许可费的事情,像宏碁这样的厂商,肯定也会被微软勒索,也包括中兴、华为等国际化的 Android 手机厂商,无一例外。对企业决策者来讲,这很难受——给别人做嫁衣啊,有时候还两头受气!所以,小的厂商需要投靠大树来庇护自己(大多数乖乖就范于谷歌或微软),大的厂商就要考虑是不是开发一个“自主”的操作系统来抗衡了。
这样的思路下,华为、中兴等大的智能手机厂商,开发“自主”操作系统的动机非常强。
像阿里这样的公司,开发OS,其目的是要复制 Google 的商业模式,加上阿里 OS 又没有撇清和 Android 的关系,受到 Google 的打压就在情理之中了。
2.3 “自主”应强调在“有效知识产权保护下的自己主导”
根据上面的分析,看来我们还真的需要有“自主”的操作系统。但是,“自主”到底是自主什么呢?
在功能手机和实时嵌入式系统领域,我们不是没有“自主”的操作系统,比如 MTK 或者展讯的操作系统,以及诸如早期的 Hopen、道系统等。在通用操作系统领域,国家也长期支持了诸如麒麟操作系统、红旗 Linux、中标 Linux、新华 Linux 等多家本土操作系统厂商。但市场表明,国家支持的这些操作系统都将消亡或者正在消亡。
本人认为,国家支持下进行“自主”操作系统的开发有合理之处,毕竟开发操作系统是一件比较困难的事情。但是,这里边有一个重要的误区和制度设计上的错误,就是只强调了“自有知识产权”,而没有强调“自己主导”。
在强调“自由知识产权”的情况下,政府对受资助企业的“自主”操作系统进行考核时,大部分情况下考核的是企业有没有获得对应的知识产权,就是软件的著作权和/或对应的专利,而并没有考核能否主导一个产业链。就如同 Google 那样可以控制这个产业链一样,受资助的企业,能不能做到让别人用了你的操作系统,就没法不继续用?在这样的思路下,政府需要在更长的周期内,考核受资助企业的市场份额是否有扩大,是否建立了良好的生态系统,让使用者、开发者欲罢不能,而不是简单的著作权证书和专利数量,或者是否达到了一个给定的出货量(因为出货量是可以作假的)。
也就是说,我们应该重新定义“自主”这两个字,从“自有知识产权”向“有效知识产权保护下的自己主导”转移。
为什么这里强调“有效知识产权”呢?这是因为,在开源软件成为趋势的情况下,构建一个自己的操作系统,可以使用很多已有的开源软件,我们没有必要所有代码都自己编写,而且越底层的代码就越没有必要自己重写一遍。这如同一只桃子,好吃的是果肉,而不是果核。像内核、基础库、常用运行时函数库等等,都不必自己重新开发。而且这么做几乎没有任何潜在的法律问题,当然,前提是你要告诉大家你用了哪些开源软件,而且你也尊重了这些开源软件的许可证。这样下来,一个操作系统的软件著作权已经不再重要,重要的是相关的专利、自己独有的创新以及围绕操作系统建立起来的生态系统。
3 “自主”操作系统应该具备的特征
那么,“自主”操作系统应该张什么样?要回答这个问题,我们先看看假的“自主”操作系统张什么样。所谓假的“自主”操作系统,就是那些号称“自主”操作系统,但其实:
只是在已有的开源操作系统之上加了一层皮。比如各种基于 Android 的第三方 ROM,比如 MIUI、Flemy 等。这种操作系统仅仅在 UI/UE 上做了一些工作,就如同一个人换了一身衣服那样,实质上这个人不会因为换了一身衣服而从张三改叫成李四。
修改了已有开源操作系统的内部代码,做了一些优化或者去掉了别人的一些东西,添加了一些自己的内容。比如阿里 OS 就属于这种,或者哪些号称深度定制的 Android 系统也属此类。这种做法如同整容,的确动了些刀子,甚至改变了性别,但人还是那人,改了名字或性别也还是那人。
这么类比下来,读者应该就知道了,真的“自主”操作系统,必须要有自己的灵魂,只有这样,不管换什么衣服、是不是经过了整容,那人还是那人;通俗一点讲,只有换了脑袋的才能是一个全新的个体。
那么在操作系统当中,什么东西是灵魂?这个问题回答起来蛮难的。我们先看看哪些东西肯定不属于灵魂:
无法形成有效知识产权的软件组件,或者说,满世界有很多(开源的)实现的软件组件。比如内核、基础函数库、网络协议、图形库、浏览器引擎等等。这些东西可以看成是形成一个智能动物(比如“人”)的骨架或者躯体、甚至心脏,但远远算不上脑袋或者灵魂。这也是为什么笔者主张在“自主”操作系统中要尽量使用现有的成熟开源软件、而且不建议再行发明此类轮子的原因。
要知道哪些东西是灵魂,我们分析下 Google 在和阿里 OS 争论的过程中主要维护的是什么东西:
Google 的说法:阿里 OS 采用了 Android 的虚拟机和 Framework,但又不兼容 Android,破坏了 Android 的生态系统。这个说法可能还不是 Google 打压阿里 OS 的最关键原因,但起码说出了他们的担忧:阿里 OS 是想借 Android 打造自己的一个生态系统!另外,Google 对那些只换衣服的 Android 系统采取听之任之的态度,和他们一贯以来标榜的“只要兼容,我们欢迎”的态度一致——也就是说,这些系统没有从根本上动摇 Google 的生态系统。
所以,真正的“自主”操作系统的灵魂,就是那个背后的、无形的生态系统,一个看似开放但其实封闭的生态系统。一旦加入这个生态系统,你就很难下来——正所谓“上了贼船下不来”。
这就是我的回答:一个真正“自主”的操作系统,必须建立自己的生态系统,一个开放的,但在某种程度上又封闭的生态系统。
操作系统生态系统?这名词大家说了很多年了,一个生态系统具体应该是什么样子?笔者从如下几个方面解释一下:
技术层面。操作系统必须通过某种技术将自己和其他的操作系统区隔开来。比如 Android 采用 Java 语言,但使用了不同于 Sun(现在是 Oracle) JDK 的 API;iOS 采用了 Object C 语言,为应用程序提供的接口和框架甚至有别于苹果自己的 Mac OS X;Windows Phone 采用了 C# 语言,在 .Net 框架下进行开发。为什么这些操作系统不使用 C/C++ 这类语言呢,C/C++ 尤其是 C 可是这些操作系统内核的编程语言啊!?这里有如下几个原因:
操作系统开发者不希望普通的应用程序通过使用比较低级的编程语言来控制系统或设备,毕竟操作系统是给智能手机、平板电脑这种消费类的电子设备使用的。
通过采用更加高级的语言来简化编程和开发人员的学习难度。
通过对看起来非常复杂的框架的持续演进,达到牵着开发者和厂商鼻子走的效果。
便于形成依附于某个操作系统的独有的开发者社区和文化。
法律层面。操作系统必须通过创建自己的有效知识产权体系来保护自己。前面已经说过,越底层的软件组件越没有市场价值(码农们可能不喜欢听这话,但现实就是这样的)。通过建立全新的、包裹在底层操作系统之上的框架、编程接口、编程语言等基础设施,操作系统开发商才有可能建立起有别于他人的有效的知识产权保护体系。也就是说,如果连框架、编程语言、编程接口等都抄袭他人(就算是开源的、许可证允许的),那永远也无法形成一个可以有效保护自己的知识产权体系。
市场层面。通过和上下游企业的合作,建立某种联盟或者许可、授权机制,让操作系统的用户(芯片厂商、手机厂商、平板厂商)能够从中获益。比如 Android 开放联盟,做的就是这个事情。
开发者社区。一个好的操作系统之生态系统,要充分照顾开发者的利益,具体有如下几点:
要有好的开发工具,便于开发者学习、开发和调试软件。
要有好的文档或者教程,帮助开发者迅速掌握相关开发技巧。
最重要的,要能够让开发者赚到钱。
看到这里,相信大家都会意识到:这也太难了吧!的确,这非常难,这也是为什么 Moblin、MeeGo、Bada、WebOS 等操作系统相继失败,而到目前,只有 iOS、Android、Windows Phone 这三种操作系统的原因。
但是,世上无难事只怕有心人。接下来我告诉你如何搭建一个真正的“自主”操作系统。
4 如何开发“自主”操作系统
(待续)
5 给相关人员的建议
(待续)
上一篇:谷歌较劲阿里云:重新发明的轮子惹麻烦
下一篇:苹果iOS 6上线:Siri支持中文内置苹果地图
推荐阅读最新更新时间:2024-05-03 12:20
解析高性价比 中移动自主品牌值得推敲
2G用户向3G网络加速转移 来自各运营商发布的数据显示,2013上半年2G存量用户再现整体下降,其中尤以中国移动表现为甚,今年仅1月2G用户就剧减267.3万户,之后每个月都呈上百万户级减少。根据互联网消费调研中心(ZDC)最近报告分析,在中国,超六成2G用户半年内打算更换手机。 据赛诺数据显示,在今年第一季度,我国手机销量大幅上升,达到9190万,其中3G手机的比例已经达到84.9%。其中,移动TD-SCDMA 3G手机终端市场份额大幅提升,上涨至36.8%。截至今年6月,我国3G用户总数超过3.2亿户,可见,3G用户已成为我国移动通信用户增长的主要支撑,而2G存量已经成为了运营业3G新增的中坚。 2G用户加快向3
[手机便携]
如何在嵌入式实时操作系统uC/0SII上移植实现LwIP
1 引言 随着嵌入式系统与网络的日益结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。uC/0S II是近年来发展迅速的一个开放源码实时操作系统,但它只是一个实时的任务调度及通信内核,缺少对外围设备和接口的支持,如没有文件系统、网络协议、图形界面。笔者在多个嵌入式项目的开发过程中,以开源TCP/IP协议栈LwIP为基础,给uC/0S II加上了网络支持。下面就以uC/0S II +LwIP分别在8位MCU ez80和32位MCU ARM7TDMI上的实现为例进行说明。 需要说明的是,笔者使用的ez80系统是Zilog公司的ez80190开发板,自带网络芯片。
[单片机]
嵌入式操作系统Windows CE.NET在S3C2410平台上的移植
目前,嵌入式微处理器种类很多,嵌入式操作系统要支持尽可能多的处理器,这就要完成操作系统针对不同处理器的定制。 本文分析了嵌入式操作系统Windows CE。NET的特点,并利用工具Platform Builder 4。2完成了其在以ARM920T为核心的S3C2410处理器上的定制。 1 Windows CE系统和Platform Builder 4.2 Windows CE是微软推出的一个32位、多线程、多任务的嵌入式操作系统,是微软专门为信息设备、移动应用、嵌入式应用等设计的嵌入式模块型操作系统。用户可选择、组合和配置Windows CE。NET的模块和组件来创建用户版的操作系统。 W
[单片机]
自主研发!紫光打造中国第一款DDR4内存条
虽然我国在各个科学技术领域都突飞猛进,达到或者超过了国际顶尖水平,但是半导体领域一直是个很大的短板,当然我们也在努力追赶,CPU处理器无论超算还是消费领域都有了突破,内存存储也在大踏步追赶。 尤其是这两年,内存持续价格持续飙升,三星、SK海力士、美光几家寡头牢牢掌握着话语权,更凸显了自主的必要。 现在,紫光终于打造出了中国第一款自主的PC DDR4内存条,DRAM颗粒完全自己研发。 从网上曝光的图片看,这条内存上有明显的紫光国芯(UnilC)标识,是个朴素的裸条设计,单条容量为4GB,更具体的规格参数看不太清楚。 西安紫光国芯半导体有限公司,是在原德国奇梦达科技(西安)有限公司2009年5月改制重建的基础上发展起来的,200
[嵌入式]
六核国产CPU,米尔自主可控、安全可信的高性能显控核心板开发板
前段时间,米尔上市了芯驰D9系列的国产核心板和开发板。这款核心板既能跑安卓、Linux、RTOS系统,还有单核、双核、5核、6核可选,吸引了很多客户来咨询。这次米尔上市了这款基于芯驰D9-Pro的MYC-YD9360核心板及开发板,采用邮票孔连接方式,专为高端显控一体机的应用设计。 D9-Pro的特点 芯驰D9-Pro(D9360)高性能处理器集成了6个ARM Cortex-A55@1.6GHz 高性能CPU和1个ARM Cortex-R5@800MHz。它包含100GFLOPS 3D GPU以及H.264和H.265/VP8/VP9视频编/解码器。此外,D9-Pro(D9360)处理器还集成 PCIe3.0,USB3.0
[嵌入式]
简析单片机与嵌入式系统异同
什么是单片机呢?一般我们将单片微型计算机简称为单片机,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。是一种典型的嵌入式微控制器。那么,什么是嵌入式系统?嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。对于单片机与嵌入式系统这两者又有什么区别与联系呢(嵌入式操作系统功能)?下面就让我们不一起来探讨学习一下吧。 单片机与嵌入式系统组成结构对比 (1)单片机基本结构 单片机由运算器、控制器、存储器、输入输出设备构成。 (2)嵌入式系统成部
[单片机]
芯旺微电子:自主处理器架构实现最大的竞争差异化
如果用简单一句话来介绍芯旺微电子的差异化,那就是:“自主IP KungFu内核处理器架构,打造高端芯片从内核设计、工具开发到开发环境全新生态圈。” 2021年3月,芯旺微宣布完成B轮融资。资金将主要用于车规芯片的研发,包括满足ASIL-D等级应用于汽车发动机和域控制器的多核MCU产品,以及射频、以太网和总线类车规产品,芯旺微电子致力成为汽车领域多方位的数字和模拟芯片供应商,同时布局汽车软件生态的建设。 日前,在慕尼黑上海电子展商,芯旺微FAE经理卢恒洋介绍了芯旺微的车规级MCU发展历程,以及自主KungFu内核处理器的优势,据悉目前芯旺微车规级MCU已覆盖智能座舱、车身控制、汽车电源与电机和汽车照明领域。 芯旺微FA
[单片机]
武汉市数字经济“新政”发布,打造自主创新集成电路产业基地
近日,武汉市人民政府印发《武汉市数字经济发展规划(2022—2026年)》(以下简称《规划》)。 《规划》提出,到2035年,建成国内重要的数字经济技术策源地、数字产业集聚地、创新人才培养高地、数据要素流通枢纽、治理模式荟集地、应用场景富集地,全面建成数字经济一线城市,成为全球数字经济产业链、创新链、价值链上的重要节点。 《规划》明确了五大重点任务,包括完善数字信息基础设施、强化数字产业发展长板、深入推进产业数字化、不断优化社会治理数字化、探索数据价值化实现路径。 完善数字信息基础设施 加快高质量5G网络建设。深化“双千兆城市”建设,全面建成高质量、高速率、广覆盖、大连接的5G网络。推动5G独立组网规模商用,优化产业园区、港口等
[手机便携]
小广播
热门活动
换一批
更多
最新手机便携文章
- 苹果遭4000万英国iCloud用户集体诉讼,面临276亿元索赔
- 消息称苹果、三星超薄高密度电池均开发失败,iPhone 17 Air、Galaxy S25 Slim手机“变厚”
- 美光亮相2024年进博会,持续深耕中国市场,引领可持续发展
- Qorvo:创新技术引领下一代移动产业
- BOE独供努比亚和红魔旗舰新品 全新一代屏下显示技术引领行业迈入真全面屏时代
- OPPO与香港理工大学续约合作 升级创新研究中心,拓展AI影像新边界
- 古尔曼:Vision Pro 将升级芯片,苹果还考虑推出与 iPhone 连接的眼镜
- 汇顶助力,一加13新十年首款旗舰全方位实现“样样超Pro”
- 汇顶科技助力iQOO 13打造电竞性能旗舰新体验
更多精选电路图
更多热门文章
更多每日新闻
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
更多往期活动
11月16日历史上的今天
厂商技术中心