网友的相关建议:
虚拟机”在做“运行环境”讲的时候,指的是操作系统被安装一个支持其他软件包运行的软件。最明显的例子就是“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系统。
结论:
阿里云OS是一个兼容Android系统,或者说是“类Android”、“山寨Android”系统。
这种兼容系统不是没有先例的。Linux就是一个著名的兼容Unix操作系统。当年Unix操作系统由于版权关系是不开源的,而且卖的很贵。一个叫Linus的芬兰小伙子开发了一个叫Linux的操作系统,这个操作系统能够运行为Unix编写的程序(即兼容Unix),同时又没有使用Unix有版权的任何一行代码(完全自己开发,绕过版权问题)。Linus把Linux开源化,使得Linux得以迅速普及。
由此看来,因为Android的核心--Google的Davilk虚拟机被替换成了阿里云自己的虚拟机,同时这个虚拟机能够运行为Davilk编写的程序。这应该是为什么阿里云宣传里不说是“Android二次开发”的原因。说的在直白一点,阿里云其实是山寨了一个Android系统。这也解释了为什么我们刷上Android 2.2能够流畅运行。