Kate0463
Kate0463

Reputation: 45

Does Android have a "host" OS?

I'm just studying for an Android exam and one thing I can't get my head around is the Android Dalvik VM / Linux Kernel make-up. My understanding is that on a typical machine the OS sits on top of the kernel lis this:

hardware > kernel > OS > applications

But on Android it looks like this:

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

If this is right does this mean that there is that the only thing between the kernel and an app is is Dalvik VM and that basically there is no "Android Operating System" like there is with Windows for example?

Upvotes: 3

Views: 489

Answers (3)

Bart
Bart

Reputation: 269

Dalvik is an integral part of Android OS that runs almost every Android app.

Android OS Architecture:

Android Architecture

Upvotes: 4

Andreas Bombe
Andreas Bombe

Reputation: 2470

The definition of OS is somewhat fuzzy, however the kernel is definitely part of the OS. I think it would be generally accepted that the OS doesn't just run on top of the kernel.

The fuzziness of the definition is around how much of non-kernel software is considered part of the OS versus just another library/service/server. The desktop machine and my Android phone both run Linux, yet they would generally be considered to run different OSes.

Is the libc part of the desktop OS? Probably yes, since it provides the API expected by applications targeting the OS and inside libc is where the syscalls into the kernel are actually performed. Is the Dalvik VM part of the Android OS? Probably yes, because all Android apps contain code that can only be executed by a Dalvik VM.

Remove the libc and there are no applications left that can run, because no practical software targets the Linux kernel interfaces directly. Remove the Dalvik VM and no Android app will run. So maybe these essential parts should be named part of the OS.

What about not quite as essential parts that some set of programs could do without? There it gets fuzzy. If you consider an OS something that offers and arbitrates access to common resources like hardware between multiple programs then you should consider user space programs and libraries that do the same or are the standard way to access the kernel's interfaces just as much part of the OS.

Upvotes: 3

Niraj Adhikari
Niraj Adhikari

Reputation: 1728

You can compare it directly to Java Virtual Machine or Common Language Runtime in the .NET platform .It is optimised taking into consideration how resource crippled mobile devices are. It runs on top of the android os to run your apps.

Upvotes: 0

Related Questions