2013-11-24 248 views
3

我只是在学习Android考试,我无法理解的一件事是Android Dalvik VM/Linux内核化妆。我的理解是,一个典型的机器上的操作系统坐在内核LIS此之上:Android是否有“主机”操作系统?

hardware > kernel > OS > applications 

但在Android上,它看起来像这样:

hardware > kernel > Dalvik VM > app 
        > Dalvik VM > app 

如果这是正确的,这是否意味着有是内核和应用程序之间唯一的事情是Dalvik VM,基本上没有像Windows那样的“Android操作系统”,例如?

回答

2

操作系统的定义有些模糊,但内核绝对是操作系统的一部分。我认为这将是普遍接受的操作系统不只是运行在内核的顶部

定义的模糊性在于多少非内核软件被认为是操作系统的一部分,而不是另一个库/服务/服务器。台式机和我的Android手机都运行Linux,但他们通常会被认为运行不同的操作系统。

是桌面操作系统的libc部分?可能是的,因为它提供了针对操作系统的应用程序所期望的API,并且libc内部是系统调用进入内核的地方。 Dalvik VM是Android操作系统的一部分吗?可能是的,因为所有的Android应用程序都包含只能由Dalvik虚拟机执行的代码。

删除libc并且没有可运行的应用程序,因为没有实用的软件直接针对Linux内核接口。删除Dalvik虚拟机并且不会运行Android应用程序。所以也许这些关键部分应该被命名为操作系统的一部分。

对于某些程序集可能没有的重要组成部分而言,不甚完美的部分呢?它变得模糊。如果你考虑一个操作系统的东西,它可以提供并仲裁对多个程序之间的硬件等公共资源的访问,那么你应该考虑用户空间程序和库,这些程序和库执行相同的操作,或者是访问内核接口的标准方式,就像OS的大部分一样。

+0

非常好的答案。 – joe

3

Dalvik是一款Android操作系统的组成部分,它几乎可以运行所有Android应用程序。

Android OS Architecture

Android Architecture

+0

您可能想要提供该图的归属链接。 –

0

您可以在.NET平台。它直接把它比Java虚拟机或公共语言运行时优化考虑资源如何削弱移动设备。它运行在android os上运行你的应用程序。

相关问题