偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談Android與Linux系統(tǒng)的差異

系統(tǒng) Linux 服務(wù)器
Android和Linux作為現(xiàn)行主流的操作系統(tǒng),無論在消費(fèi)類產(chǎn)品還是在工控領(lǐng)域,都有廣泛的應(yīng)用。都說Android系統(tǒng)是脫胎于Linux系統(tǒng),那么是不是Android是不是屬于Linux的一種。今天我們就來談?wù)凙ndroid和Linux系統(tǒng)的異同點。

 Android和Linux作為現(xiàn)行主流的操作系統(tǒng),無論在消費(fèi)類產(chǎn)品還是在工控領(lǐng)域,都有廣泛的應(yīng)用。都說Android系統(tǒng)是脫胎于Linux系統(tǒng),那么是不是Android是不是屬于Linux的一種。今天我們就來談?wù)凙ndroid和Linux系統(tǒng)的異同點。

 

1. 兩者的共同點

Android是基于Linux內(nèi)核的系統(tǒng)。Android和Linux系統(tǒng)的核心系統(tǒng)服務(wù)都依賴于Linux內(nèi)核,如安全、內(nèi)核管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動模型等。Linux內(nèi)核也作為兩者的硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層應(yīng)用開發(fā)提供統(tǒng)一的服務(wù)。

 

2. 系統(tǒng)框架的差異

Linux系統(tǒng)與Android表面上為兩個不同的操作系統(tǒng),但是Android本質(zhì)上還是一個Linux系統(tǒng),只不過Google對它進(jìn)行了裁剪和定制。

另外,相較于Linux系統(tǒng),android在其Linux內(nèi)核上面運(yùn)行了一個叫Dalvik(4.4版本后改為ART)的Java虛擬機(jī)(JVM),因而使用JAVA開發(fā)的android的應(yīng)用程序可以通過JAVA虛擬機(jī)運(yùn)行在Android系統(tǒng)上。而Linux的應(yīng)用程序使用的是C/C++開發(fā)的,可以機(jī)器碼的形式運(yùn)行在內(nèi)核系統(tǒng)上,兩者的系統(tǒng)框架差異,如圖。

 

3. Linux與android底層驅(qū)動軟件的差異

Android除了Linux內(nèi)核具備的常用核心驅(qū)動外,還增加了自己專有的內(nèi)核驅(qū)動程序,如顯示驅(qū)動、藍(lán)牙驅(qū)動、相機(jī)驅(qū)動、內(nèi)存卡驅(qū)動、Binder IPC驅(qū)動等。

另外,Android系統(tǒng)為了保護(hù)硬件廠商的知識產(chǎn)權(quán),增加了HAL層,可將驅(qū)動具體的實現(xiàn)部分抽取發(fā)到HAL中去實現(xiàn),從而規(guī)避了硬件驅(qū)動開源的風(fēng)險,所以android的驅(qū)動程序是分為兩部分,一部分寫入內(nèi)核中,一部分寫入HAL層中。

Android除要實現(xiàn)底層驅(qū)動的開發(fā)外,還需要根據(jù)JNI規(guī)則將驅(qū)動程序封裝為JNI層接口,以達(dá)到應(yīng)用程序(JAVA程序) 可通過JNI來調(diào)用內(nèi)核驅(qū)動程序。以顯示驅(qū)動程序Framebuffer為例,如圖。

 

Linux系統(tǒng)的顯示驅(qū)動模型

 

Android系統(tǒng)的顯示驅(qū)動模型

(1)Linux系統(tǒng):Framebuffer驅(qū)動只需要編譯到Linux內(nèi)核中,并留出相應(yīng)的read、write、ioctl等接口,便可供上位機(jī)應(yīng)用程序調(diào)用。

(2)Android系統(tǒng):Framebuffer驅(qū)動先將簡單的硬件寄存器讀寫操作的驅(qū)動編譯進(jìn)入內(nèi)核中,再將具體的硬件實現(xiàn)方式的驅(qū)動寫入HAL層中,并根據(jù)JNI規(guī)格封裝為JNI接口,才可供上位機(jī)應(yīng)用程序調(diào)用。

4. Linux與android應(yīng)用層軟件的差異

但是Android應(yīng)用程序是使用java語言寫的,不能直接調(diào)用C語言實現(xiàn)的系統(tǒng)接口,而Linux系統(tǒng)中可以用C語言調(diào)用系統(tǒng)接口來與內(nèi)核進(jìn)行通信,于是Android系統(tǒng)中就有了一個叫做JNI的概念,用實現(xiàn)java與C/C++程序之間的信息交互。

(1)Android應(yīng)用程序訪問Android內(nèi)核驅(qū)動程序的方式:

1:APP—>JNI—>Android內(nèi)核驅(qū)動程序

2:APP—>硬件訪問服務(wù)—>Android內(nèi)核驅(qū)動程序

(2)Linux應(yīng)用程序訪問linux驅(qū)動程序的方式

1. APP—> Linux內(nèi)核驅(qū)動程序

2. APP—>C庫—>Linux內(nèi)核驅(qū)動程序

責(zé)任編輯:武曉燕 來源: 電子應(yīng)用學(xué)習(xí)館
相關(guān)推薦

2009-05-31 16:19:51

LinuxWin結(jié)構(gòu)

2009-03-18 08:50:59

LinuxWindows系統(tǒng)目錄

2024-01-26 08:33:14

JDK17JDK11版本

2009-04-27 16:23:15

LinuxUnix操作系統(tǒng)

2012-04-09 11:23:20

ibmdw

2016-11-18 15:39:31

Liunx

2018-02-08 10:57:35

LinuxUnix操作系統(tǒng)

2014-05-29 17:03:05

UnixLinux管理員

2014-05-14 09:12:40

數(shù)據(jù)恢復(fù)

2015-09-22 11:23:57

網(wǎng)絡(luò)研發(fā)網(wǎng)絡(luò)技術(shù)研究SDN

2009-06-17 12:09:41

2009-06-16 09:29:59

2018-04-26 09:33:16

2016-07-22 10:50:56

Linux內(nèi)核無線子系統(tǒng)

2012-08-29 13:39:29

2018-02-05 10:07:33

操作系統(tǒng)LinuxUnix

2021-08-26 10:24:52

Linux 系統(tǒng)分析高負(fù)載

2017-09-12 14:14:05

2009-08-21 10:28:21

C#異步方法C#同步方法

2023-06-12 15:43:44

鴻蒙智能家居開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號