2013-11-24 173 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上運行你的應用程序。

相關問題