我正在学习Android考试,而我无法理解的一件事是Android Dalvik VM / Linux Kernel make up。我的理解是,在典型的机器上,操作系统位于内核之上,这就是:
hardware > kernel > OS > applications
但在Android上看起来像这样:
hardware > kernel > Dalvik VM > app
> Dalvik VM > app
如果这是正确的,这是否意味着内核和应用程序之间唯一的东西是Dalvik VM,而且基本上没有像Windows那样的“Android操作系统”?例如?
答案 0 :(得分:3)
答案 1 :(得分:2)
操作系统的定义有些模糊,但内核肯定是操作系统的一部分。我认为通常会认为操作系统不只是在内核的上运行。
定义的模糊性是关于有多少非内核软件被认为是操作系统的一部分而不仅仅是另一个库/服务/服务器。台式机和我的Android手机都运行Linux,但通常认为它们运行不同的操作系统。
libc是桌面操作系统的一部分吗?可能是的,因为它提供了针对操作系统的应用程序所期望的API,而libc内部实际上是执行内核的系统调用。 Dalvik VM是Android OS的一部分吗?可能是的,因为所有Android应用程序都包含只能由Dalvik VM执行的代码。
删除libc并且没有可以运行的应用程序,因为没有实用的软件直接针对Linux内核接口。删除Dalvik VM并且不会运行任何Android应用程序。因此,这些重要部分可能应该被命名为操作系统的一部分。
如果没有一些程序可以做到的基本部分呢?它变得模糊。如果您考虑操作系统提供并仲裁对多个程序之间的硬件等公共资源的访问,那么您应该考虑用户空间程序和执行相同操作的库,或者是访问内核接口的标准方法,就像操作系统的一部分一样。
答案 2 :(得分:0)
您可以将它直接与.NET平台中的Java虚拟机或公共语言运行时进行比较。它是在考虑资源瘫痪的移动设备的情况下进行优化的。 它运行在Android操作系统的顶部以运行您的应用程序。