希望我发的帖没有违规,我之前老是搞混它们之间的关系,认为阿里云只是安卓的修改罢了,不过看了这帖子就明了,在这里共享给大家,学习学习!!!!
论坛里针对阿里云OS是否是Android二次开发有很多争论。大部分机友不是IT从业人员,对于技术上的一些细节不了解。我做过Android开发,也图便宜买了w700。综合阿里云和其他媒体的信息,结合我做Android开发的经验,我对阿里云OS的技术架构有了一个清晰的判断。那么我就给大家做一个解释,到底阿里云OS和android是什么关系?
网上有个帖子谈到阿里云OS兼容Android应用是虚拟机技术,在阿里云OS里有一个Android虚拟机在运行,apk应用就是跑在这个虚拟机上。这是错误的。
这里我给大家先普及一下虚拟机的概念。在论坛里很多机友不清楚虚拟机是什么。
“虚拟机”这个概念在实际应用中有两种语境。第一种是“虚拟主机”的概念,第二种是“运行环境”的概念。这两种概念是不同的。
我们知道Android的架构是第二种“虚拟机”。Android最底层是Linux操作系统,在这个操作系统上安装了一个叫Davilk的Java虚拟机。用Java编写的各种Android应用在Davilk的支持下运行。Java语言最早是有Sun公司开发,现在Sun公司被Oracle公司收购。Java程序的虚拟性需要Java虚拟机的支持。Sun公司开发了自己的Java虚拟机,有知识产权。但是由于Java是开放的,其他公司也可以开发Java虚拟机,兼容java语言。开源界有一个OpenJDK的项目,就是开发一个完全开源开放Java虚拟机。而Davilk由Google开发,这个虚拟机也兼容Java语言(如今Oracle和Google还在为Android是否侵犯了Oracle的java专利而打着官司)。Google制定了Android应用的标准(APK应用格式),这个标准是开放的。
那么只要另一个公司开发一个新的兼容Android应用的标准Java虚拟机,替换掉Google的Davilk,那么这个系统也是没有问题的。而综合各种信息来看,阿里云很可能是用自己开发的Java虚拟机替换了Google 的Java虚拟机。所以,这个系统不是在Google Android基础上的二次开发,而是一个新的兼容Android系统。
结论2: 阿里云OS是一个兼容Android系统,或者说是“类Android”、“山寨Android”系统。
这种兼容系统不是没有先例的。Linux就是一个著名的兼容Unix操作系统。当年Unix操作系统由于版权关系是不开源的,而且卖的很贵。一个叫Linus的芬兰小伙子开发了一个叫Linux的操作系统,这个操作系统能够运行为Unix编写的程序(即兼容Unix),同时又没有使用Unix有版权的任何一行代码(完全自己开发,绕过版权问题)。Linus把Linux开源化,使得Linux得以迅速普及。
有此看来,阿里云OS是一个兼容Android系统,因为Android的核心--Google的Davilk虚拟机被替换成了阿里云自己的虚拟机,同时这个虚拟机能够运行为Davilk编写的程序。这应该是为什么阿里云宣传里不说是“Android二次开发”的原因。说的在直白一点,阿里云其实是山寨了一个Android系统。这也解释了为什么我们刷上Android 2.2能够流畅运行。
其实只要兼容了Android应用,就能有大量已有的Android应用可以为自己所用。在IT界,开源软件和开放标准已经成为主流。通过已有的开源软件再加上自己的开发,可以很容易开发出新的软件。遵循开放标准是降低软件开发成本,迅速融入用户的最好的途径。加上阿里云自己开发的云应用框架,阿里云宣称自主操作系统也无可厚非。
论坛里针对阿里云OS是否是Android二次开发有很多争论。大部分机友不是IT从业人员,对于技术上的一些细节不了解。我做过Android开发,也图便宜买了w700。综合阿里云和其他媒体的信息,结合我做Android开发的经验,我对阿里云OS的技术架构有了一个清晰的判断。那么我就给大家做一个解释,到底阿里云OS和android是什么关系?
网上有个帖子谈到阿里云OS兼容Android应用是虚拟机技术,在阿里云OS里有一个Android虚拟机在运行,apk应用就是跑在这个虚拟机上。这是错误的。
这里我给大家先普及一下虚拟机的概念。在论坛里很多机友不清楚虚拟机是什么。
“虚拟机”这个概念在实际应用中有两种语境。第一种是“虚拟主机”的概念,第二种是“运行环境”的概念。这两种概念是不同的。
- “虚拟机”在作“虚拟主机”讲的时候,指的是操作系统内安装另一个操作系统。你如在Windows里,你可以装一个VMWare,然后在VMWare里安装一个Ubuntu Linux。这就是虚拟主机。Windows是一个操作系统,是装在硬件上的。VMWare是个软件,它模拟了一个和硬件相似的环境,让另一个操作系统可以安装运行在这个环境上。我们看Windows和Ubuntu Linux的关系,它们都是操作系统,是一个级别的。这种关系就像妈妈肚子里怀的宝宝,宝宝生活在妈妈的肚子里,妈妈和宝宝都是人,是一种寄生关系。
- “虚拟机”在做“运行环境”讲的时候,指的是操作系统被安装一个支持其他软件包运行的软件。最明显的例子就是“Java虚拟机”。所谓“Java虚拟机”是一个安装在操作系统上的软件,用于支持用Java编程语言编写的软件包的运行。它负责给java程序分配资源,帮助java程序做一些底层的工作,让java程序在它搭建的环境里运行。这时Java虚拟机也是操作系统上的一个软件,其他java如阿健要依赖它才能运行。它是一个底层的支持环境。微软有个仿照java架构的开发环境,即.NET Framework。这里就没有使用“Virtual Machine(虚拟机)”这个术语,而是用了“Framework(框架)”。这两个词实际的意义是一样的,都是Runtime Environment(RE,运行时环境),但是可能Framework更容易理解。它就是一个框架,其他程序可以在这个框架的支持下运行。现在除了技术界,Java官方对公众也尽量使用JRE(Java Runtime Environment),而不是JVM(Java Virtual Machine)的概念了。
我们知道Android的架构是第二种“虚拟机”。Android最底层是Linux操作系统,在这个操作系统上安装了一个叫Davilk的Java虚拟机。用Java编写的各种Android应用在Davilk的支持下运行。Java语言最早是有Sun公司开发,现在Sun公司被Oracle公司收购。Java程序的虚拟性需要Java虚拟机的支持。Sun公司开发了自己的Java虚拟机,有知识产权。但是由于Java是开放的,其他公司也可以开发Java虚拟机,兼容java语言。开源界有一个OpenJDK的项目,就是开发一个完全开源开放Java虚拟机。而Davilk由Google开发,这个虚拟机也兼容Java语言(如今Oracle和Google还在为Android是否侵犯了Oracle的java专利而打着官司)。Google制定了Android应用的标准(APK应用格式),这个标准是开放的。
那么只要另一个公司开发一个新的兼容Android应用的标准Java虚拟机,替换掉Google的Davilk,那么这个系统也是没有问题的。而综合各种信息来看,阿里云很可能是用自己开发的Java虚拟机替换了Google 的Java虚拟机。所以,这个系统不是在Google Android基础上的二次开发,而是一个新的兼容Android系统。
结论2: 阿里云OS是一个兼容Android系统,或者说是“类Android”、“山寨Android”系统。
这种兼容系统不是没有先例的。Linux就是一个著名的兼容Unix操作系统。当年Unix操作系统由于版权关系是不开源的,而且卖的很贵。一个叫Linus的芬兰小伙子开发了一个叫Linux的操作系统,这个操作系统能够运行为Unix编写的程序(即兼容Unix),同时又没有使用Unix有版权的任何一行代码(完全自己开发,绕过版权问题)。Linus把Linux开源化,使得Linux得以迅速普及。
有此看来,阿里云OS是一个兼容Android系统,因为Android的核心--Google的Davilk虚拟机被替换成了阿里云自己的虚拟机,同时这个虚拟机能够运行为Davilk编写的程序。这应该是为什么阿里云宣传里不说是“Android二次开发”的原因。说的在直白一点,阿里云其实是山寨了一个Android系统。这也解释了为什么我们刷上Android 2.2能够流畅运行。
其实只要兼容了Android应用,就能有大量已有的Android应用可以为自己所用。在IT界,开源软件和开放标准已经成为主流。通过已有的开源软件再加上自己的开发,可以很容易开发出新的软件。遵循开放标准是降低软件开发成本,迅速融入用户的最好的途径。加上阿里云自己开发的云应用框架,阿里云宣称自主操作系统也无可厚非。
经过以上的分析,阿里云OS不是在自己开发的操作系统上运行了一个Android操作系统的虚拟机来兼容Android应用,而是将Google的java虚拟机替换成了自己开发的java虚拟机。因此阿里云OS不是基于Android系统的二次开发,而是基于Android开放标准的深度定制。这种深度定制有没有法律风险还不得而知,只是从Oracle和Google的专利官司来看,如果阿里云不能绕过专利的雷池,法律风险是很大的。