• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Linux程序向Android平臺(tái)移植的研究

    2018-05-23 00:45:49,,
    關(guān)鍵詞:內(nèi)核程序動(dòng)態(tài)

    ,,

    (西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,西安 710061)

    0 引言

    Android是Google公司在2007年發(fā)布的一款基于Linux內(nèi)核的開源操作系統(tǒng)。經(jīng)過不斷地發(fā)展,該操作系統(tǒng)不僅在移動(dòng)設(shè)備上迅速普及[1],在其它領(lǐng)域的使用率也逐漸增多,延伸到電視盒、桌面設(shè)備甚至工控機(jī)器。但在這些拓展領(lǐng)域上,Android操作系統(tǒng)的應(yīng)用生態(tài)極為貧乏。如果能夠移植現(xiàn)有的Linux程序到Android平臺(tái),則能夠加速Android平臺(tái)在各個(gè)領(lǐng)域的應(yīng)用。Linux系統(tǒng)一般情況下指的是GNU/Linux操作系統(tǒng),它是由GNU工程創(chuàng)建的一系列軟件工具包,與Linux內(nèi)核組合在一起形成的操作系統(tǒng)[2],可安裝在各種硬件設(shè)備中。Linux系統(tǒng)經(jīng)過長(zhǎng)時(shí)間的發(fā)展,擁有豐富的軟件資源[3],可滿足各種領(lǐng)域的需求。

    目前Linux程序向Android平臺(tái)移植主要采用基于交叉編譯的方法?;诮徊婢幾g的移植方法為嵌入式系統(tǒng)制作程序的常用方法,就是在一個(gè)平臺(tái)上通過編譯器編譯另一個(gè)平臺(tái)上的可執(zhí)行程序的方法[4]。對(duì)于Android平臺(tái),最常用的交叉編譯工具是Google開發(fā)的Android NDK或GCC交叉編譯器。論文“移植Tcpdump到Android手機(jī)捕獲無(wú)線數(shù)據(jù)包的方法研究”[5]中就使用Android NDK進(jìn)行移植。由于Android中的C運(yùn)行庫(kù)是Bionic,而Linux程序均使用Glibc庫(kù)進(jìn)行編程,Bionic庫(kù)與Glibc庫(kù)具有較大不同,所以該方法需要對(duì)編譯選項(xiàng)和目標(biāo)程序代碼進(jìn)行適當(dāng)?shù)男薷膩?lái)適配Android的Bionic庫(kù)。因此該方法只適合依賴程序庫(kù)少且代碼量較小的程序,對(duì)于依賴很多程序庫(kù)或者代碼量太大的程序使用Android NDK移植并不現(xiàn)實(shí)。GCC交叉編譯器雖然可以使用Glibc庫(kù),從而不用大量修改程序的代碼,但是它需要程序提供靜態(tài)編譯選項(xiàng)且移植過程繁雜。以Linux系統(tǒng)中的CUPS程序?yàn)槔蕾嚨某绦驇?kù)數(shù)量非常多,并且很多依賴程序甚至沒有靜態(tài)編譯選項(xiàng),以至于無(wú)法利用GCC交叉編譯器進(jìn)行靜態(tài)編譯。所以已有的移植方法不能滿足移植Linux程序到Android平臺(tái)的要求,需要一個(gè)更可行的移植方法。

    針對(duì)Linux程序向Android平臺(tái)移植的問題,本文從應(yīng)用程序二進(jìn)制接口(Application Binary Interface,ABI)層面分析了Linux和Android平臺(tái)的差異,提出一種基于ABI兼容技術(shù)的移植方法。

    1 平臺(tái)的ABI差異分析

    應(yīng)用程序二進(jìn)制接口描述了應(yīng)用程序和操作系統(tǒng)之間,或一個(gè)應(yīng)用和它的依賴庫(kù)之間,或應(yīng)用的組成部分之間的低層接口[6]。ABI包含各種細(xì)節(jié):如系統(tǒng)調(diào)用約定、可執(zhí)行程序的格式、程序依賴庫(kù)、數(shù)據(jù)類型的規(guī)定以及系統(tǒng)目錄結(jié)構(gòu)等內(nèi)容。在ABI兼容的系統(tǒng)中,編譯好的程序可以直接運(yùn)行,無(wú)需改動(dòng)目標(biāo)程序代碼且無(wú)需重新編譯。比較ABI兼容性的前提是操作系統(tǒng)可以運(yùn)行在相同處理器架構(gòu)的硬件兼容環(huán)境中,否則無(wú)法比較。比如ARM 架構(gòu)下的 Linux 系統(tǒng)可以與 ARM 架構(gòu)下的 Android系統(tǒng)比較ABI兼容性。由于 Linux 系統(tǒng)與 Android 系統(tǒng)都能在主流處理器架構(gòu)下運(yùn)行,所以不存在某個(gè)處理器架構(gòu)下的Android系統(tǒng)沒有對(duì)應(yīng)Linux 系統(tǒng)的情況。因此本文的討論不限于某個(gè)處理器架構(gòu),并且只需要在操作系統(tǒng)層面討論Linux和Android操作系統(tǒng)的ABI差異。

    1.1 系統(tǒng)調(diào)用

    Linux和Android可分為用戶態(tài)和內(nèi)核態(tài)兩個(gè)部分,從該角度看Linux和Android的系統(tǒng)架構(gòu),如圖1所示。應(yīng)用程序運(yùn)行在用戶態(tài),系統(tǒng)調(diào)用是內(nèi)核態(tài)與用戶態(tài)交互的接口。在內(nèi)核態(tài)中,兩種系統(tǒng)使用的都是Linux內(nèi)核。但Android中的Linux內(nèi)核與標(biāo)準(zhǔn)Linux內(nèi)核不完全相同,其保留原有信號(hào)等機(jī)制的同時(shí)添加了Binder IPC、Ashmem等機(jī)制[7]。對(duì)比Android的Linux內(nèi)核分支源碼和標(biāo)準(zhǔn)Linux內(nèi)核源碼,發(fā)現(xiàn)X86、ARM等構(gòu)架對(duì)應(yīng)的系統(tǒng)調(diào)用均完全相同,則說(shuō)明Android的Linux內(nèi)核與標(biāo)準(zhǔn)Linux內(nèi)核的系統(tǒng)調(diào)用保持一致。因此在相同處理器架構(gòu)設(shè)備上的Linux系統(tǒng)或者Android系統(tǒng),其系統(tǒng)調(diào)用的約定是一致的。比如:X86上的Linux程序想在X86上的Android系統(tǒng)中運(yùn)行,系統(tǒng)調(diào)用部分是兼容的。

    圖1 Linux和Android系統(tǒng)架構(gòu)

    1.2 系統(tǒng)目錄結(jié)構(gòu)

    由于Linux系統(tǒng)和Android系統(tǒng)都使用了Linux內(nèi)核,所以內(nèi)核態(tài)中的ABI基本相同。在用戶態(tài),有一個(gè)重要ABI差異就是系統(tǒng)目錄結(jié)構(gòu)。

    Linux中的系統(tǒng)目錄結(jié)構(gòu)遵循文件系統(tǒng)層次化標(biāo)準(zhǔn)(Filesystem Hierarchy Standard,F(xiàn)HS)[8]。FHS標(biāo)準(zhǔn)規(guī)定了系統(tǒng)不同目錄里存放的內(nèi)容,如:/var目錄存放系統(tǒng)運(yùn)行時(shí)要改變的數(shù)據(jù)、/etc目錄用來(lái)存放程序配置文件。但是Android沒有遵循FHS標(biāo)準(zhǔn),Android中沒有/var目錄、應(yīng)用程序沒有/etc目錄的讀寫權(quán)限。因此系統(tǒng)目錄結(jié)構(gòu)不一致會(huì)導(dǎo)致程序運(yùn)行時(shí)出現(xiàn)無(wú)法創(chuàng)建或打開文件的錯(cuò)誤。

    1.3 可執(zhí)行程序的格式

    Linux系統(tǒng)中的可執(zhí)行程序可以分為腳本程序和ELF(Executable and Linking Format)程序兩種[9]。

    1)腳本程序即用Shell等腳本語(yǔ)言編寫的程序。腳本程序通常被其它程序調(diào)用,來(lái)輔助完成其它程序的功能。Linux上的腳本程序遵循POSIX標(biāo)準(zhǔn)。POSIX表示可移植操作系統(tǒng)接口,是UNIX系統(tǒng)的一個(gè)設(shè)計(jì)標(biāo)準(zhǔn),其中包括對(duì)Shell腳本的規(guī)定。對(duì)于這類程序,需要使用腳本解釋器執(zhí)行,比如:Bash解釋器可以用來(lái)解釋執(zhí)行Shell腳本。腳本解釋器文件本身則屬于第二種ELF程序類別。因此Linux程序在Android平臺(tái)運(yùn)行需要解決的是ELF程序的執(zhí)行。

    2)Linux系統(tǒng)里的ELF程序主要是指利用C/C++等語(yǔ)言編寫的程序,這類程序需要經(jīng)過編譯鏈接,生成ELF格式文件才能執(zhí)行。ELF文件有三類:可執(zhí)行文件、共享庫(kù)文件和重定位文件[9]。其中的可執(zhí)行文件和共享庫(kù)文件是程序運(yùn)行時(shí)需要的文件,ABI兼容需要解決這兩種文件的執(zhí)行問題。ELF可執(zhí)行程序在編譯鏈接時(shí)有動(dòng)態(tài)鏈接和靜態(tài)鏈接兩種方式。靜態(tài)鏈接的程序?qū)⒁蕾嚭瘮?shù)與程序本身打包在一起,而動(dòng)態(tài)鏈接的程序需要在啟動(dòng)的時(shí)候讀取指定路徑的共享庫(kù)文件才可以運(yùn)行。

    在Android應(yīng)用層,采用的是Android應(yīng)用程序包(Android application package,APK)格式,它在安裝到系統(tǒng)后由ART虛擬機(jī)解釋執(zhí)行,而Android底層仍然使用ELF可執(zhí)行文件,且ELF文件格式和Linux系統(tǒng)中的相同。由于Android中的動(dòng)態(tài)鏈接庫(kù)解釋器與Linux系統(tǒng)中的解釋器不同,并且缺少對(duì)應(yīng)的動(dòng)態(tài)鏈接庫(kù),實(shí)際上Linux中的大部分ELF程序并不能在Android系統(tǒng)直接執(zhí)行。

    1.4 程序依賴庫(kù)

    程序依賴庫(kù)指的是一系列為了簡(jiǎn)化編程復(fù)雜度、提高開發(fā)效率,對(duì)系統(tǒng)調(diào)用進(jìn)行包裝的函數(shù)集合。程序依賴庫(kù)在Linux中編譯后就是后綴為so的ELF共享庫(kù)文件。ELF共享庫(kù)文件也被稱為動(dòng)態(tài)鏈接庫(kù),因?yàn)閯?dòng)態(tài)鏈接的ELF可執(zhí)行文件在啟動(dòng)的時(shí)候需要加載鏈接其依賴的共享庫(kù)文件。例如:圖1中的Glibc和Bionic庫(kù)。Linux中程序的C運(yùn)行庫(kù)是Glibc,而Android中的C運(yùn)行庫(kù)則是Bionic。基于Glibc庫(kù)開發(fā)的動(dòng)態(tài)鏈接程序要想在Android平臺(tái)上運(yùn)行,如果不修改源代碼適配Bionic庫(kù),就必須把Glibc共享庫(kù)文件也移植過去。

    ELF動(dòng)態(tài)鏈接程序的文件結(jié)構(gòu)如圖2所示,包含ELF頭(ELF header)、程序頭表(Program header table)、中間若干段section和節(jié)區(qū)頭表(Section header table)。其中.dynamic段記錄了該ELF程序動(dòng)態(tài)鏈接信息。該段里的DT_NEED類型的項(xiàng)記錄了其依賴的共享庫(kù)文件的位置,動(dòng)態(tài)鏈接庫(kù)解釋器通過該項(xiàng)字段便能找到其依賴的全部動(dòng)態(tài)鏈接庫(kù)。

    圖2 ELF動(dòng)態(tài)鏈接程序文件結(jié)構(gòu)

    2 ABI兼容的關(guān)鍵技術(shù)分析

    通過前面的分析可知,Linux和Android平臺(tái)程序的ABI兼容問題主要是系統(tǒng)目錄結(jié)構(gòu)一致性問題和可執(zhí)行程序的加載和鏈接問題。這兩個(gè)問題分別可以通過目錄結(jié)構(gòu)重定向技術(shù)和程序依賴關(guān)系分析技術(shù)解決。

    2.1 目錄結(jié)構(gòu)重定向

    為了解決系統(tǒng)目錄結(jié)構(gòu)的差異,可使用目錄結(jié)構(gòu)重定向技術(shù)在Android上構(gòu)造Linux中的系統(tǒng)目錄結(jié)構(gòu)。目錄結(jié)構(gòu)重定向指改變程序執(zhí)行時(shí)包括根目錄在內(nèi)的目錄文件位置,或使得程序只看見指定的目錄文件。在Linux系統(tǒng)里有兩個(gè)機(jī)制能夠重定向目錄結(jié)構(gòu),Namespace機(jī)制和Change Root機(jī)制。

    Namespace是Linux內(nèi)核里的一種機(jī)制,提供一種包括目錄在內(nèi)的資源隔離功能,但是由于很多Android設(shè)備廠商在編譯內(nèi)核時(shí)沒有開啟namespace機(jī)制,所以使用Namespace機(jī)制不能保證對(duì)所有Android設(shè)備可用。

    Change Root機(jī)制指改變程序執(zhí)行根目錄的機(jī)制。Change Root機(jī)制最常見的實(shí)現(xiàn)是Chroot,它是Unix類系統(tǒng)中的一個(gè)操作命令。在Linux系統(tǒng)中,它的功能由Linux內(nèi)核實(shí)現(xiàn),通過系統(tǒng)調(diào)用的形式提供,并且使用者需要擁有Root權(quán)限。Chroot工具通常用來(lái)限制程序的可讀寫文件,保護(hù)系統(tǒng)安全。如“在Solaris環(huán)境下通過實(shí)現(xiàn)Chroot增進(jìn)系統(tǒng)安全性”論文中的應(yīng)用[10],正是利用Chroot的特性創(chuàng)建一個(gè)封閉的環(huán)境,在里面提供程序所需的所有文件。

    但是Chroot有個(gè)限制,它需要Root權(quán)限才能夠使用。相比之下,可以使用一個(gè)名為Proot的工具[11],能夠在用戶態(tài)實(shí)現(xiàn)Chroot的功能。它的原理與Chroot不同,它通過Ptrace系統(tǒng)調(diào)用,實(shí)現(xiàn)父進(jìn)程控制子進(jìn)程的執(zhí)行過程,從而改變運(yùn)行時(shí)的根目錄。Proot的出現(xiàn)拓寬了Change Root機(jī)制的應(yīng)用場(chǎng)景。尤其在Android系統(tǒng)中,應(yīng)用程序通常無(wú)法獲取Root權(quán)限,這時(shí)可以使用Proot工具代替Chroot完成目錄結(jié)構(gòu)重定向的功能。

    2.2 程序依賴關(guān)系分析

    為了使Linux動(dòng)態(tài)編譯的程序能夠在Android平臺(tái)上運(yùn)行,首先需要移植Linux中的動(dòng)態(tài)鏈接庫(kù)解釋器“l(fā)d-linux.so”,Linux動(dòng)態(tài)編譯的程序便能通過它在Android平臺(tái)上加載進(jìn)入內(nèi)存。其次,動(dòng)態(tài)鏈接庫(kù)解釋器會(huì)鏈接其依賴的全部動(dòng)態(tài)鏈接庫(kù)文件。本文使用程序依賴關(guān)系分析技術(shù)來(lái)解決程序的依賴文件問題。

    這里給出依賴關(guān)系的數(shù)學(xué)描述:設(shè)有關(guān)系模式R(U),其中U{A1,A2,...,An}是關(guān)系的屬性全集,X、Y是U的屬性子集,設(shè)t和u是關(guān)系R上的任意兩個(gè)元組,如果t和u在X的投影t[X]=u[X]推出t[Y]=u[Y],即:t[X]=u[X]=>t[Y]=u[Y],則稱X決定Y,或Y依賴于X。記為X->Y。

    在Linux中,ELF動(dòng)態(tài)鏈接程序之間的依賴關(guān)系表現(xiàn)為,關(guān)系模式R(U),其中U{A1,A2,...,An}是系統(tǒng)全部的ELF動(dòng)態(tài)鏈接程序,X、Y是U中任意兩個(gè)ELF動(dòng)態(tài)鏈接程序子集,如果在某個(gè)條件t下總能從t[X]=u[X]推出t[Y]=u[Y],則說(shuō)明兩個(gè)動(dòng)態(tài)鏈接程序具有依賴關(guān)系。這樣的依賴關(guān)系在ELF程序間普遍存在,依賴關(guān)系的實(shí)現(xiàn)依靠ELF動(dòng)態(tài)鏈接程序文件里的動(dòng)態(tài)鏈接信息和軟鏈接文件。

    從圖2中已經(jīng)了解到ELF動(dòng)態(tài)鏈接文件和共享庫(kù)的依賴信息記錄在.dynamic段里。在Linux系統(tǒng)中有一個(gè)ldd命令,它能夠調(diào)用程序動(dòng)態(tài)鏈接庫(kù)解釋器查看該文件.dynamic段里的動(dòng)態(tài)鏈接信息。借助ldd命令便能分析出程序的依賴關(guān)系。但存在ELF文件里的動(dòng)態(tài)鏈接信息所指向的目標(biāo)是一個(gè)軟鏈接,軟鏈接經(jīng)過若干次鏈接,指向最終的動(dòng)態(tài)鏈接文件。因此程序依賴關(guān)系分析的流程如圖3所示。

    圖3 程序依賴關(guān)系分析流程圖

    圖3中的步驟描述如下:

    1)以目標(biāo)程序編譯后的輸出文件夾為起點(diǎn),掃描里面所有的ELF動(dòng)態(tài)鏈接文件;

    2)讀取.dynamic段里的動(dòng)態(tài)鏈接信息,依次查找里面記錄的依賴文件。

    3)將查找到的文件復(fù)制到指定位置,如果該文件是ELF文件,則讀取該文件里的動(dòng)態(tài)鏈接信息,進(jìn)入遞歸;如果是軟鏈接文件,則找到最終指向的ELF文件,然后遞歸讀取。

    3 基于ABI兼容技術(shù)的移植方法

    3.1 移植方法的實(shí)現(xiàn)

    基于ABI兼容的移植方法框架如圖4所示。整體結(jié)構(gòu)分為左右兩個(gè)部分,左邊是Linux目標(biāo)程序部分,即需要移植的程序,右邊是Android控制程序部分,Android控制程序用于操作目標(biāo)程序。

    最底層是Android系統(tǒng)的Linux內(nèi)核,移植的程序需要與Android系統(tǒng)共享一個(gè)內(nèi)核。Linux目標(biāo)程序通過ABI兼容層越過Android Framework層直接與Linux內(nèi)核進(jìn)行系統(tǒng)調(diào)用操作。

    中間的ABI兼容層由三個(gè)子模塊組成,分別是Change Root模塊 、Bash環(huán)境模塊和程序依賴模塊。Change Root模塊通過Proot工具重定向目錄結(jié)構(gòu),在一個(gè)封閉的環(huán)境里提供與Linux系統(tǒng)一致的目錄結(jié)構(gòu);Bash環(huán)境模塊使用Busybox工具集[12]提供滿足POSIX標(biāo)準(zhǔn)的Shell環(huán)境,提供程序所需的Shell命令;程序依賴模塊通過程序依賴關(guān)系分析技術(shù)提供Linux目標(biāo)程序所需的全部動(dòng)態(tài)依賴庫(kù)。三個(gè)模塊共同組成的ABI兼容層提供了Linux目標(biāo)程序完整的執(zhí)行環(huán)境,使得Linux目標(biāo)程序能夠在Android平臺(tái)正常運(yùn)行。

    圖4 移植方法的框架

    在Linux系統(tǒng)中程序原有的控制方式是命令行,但是在Android系統(tǒng)中以這種用戶不友好的方式運(yùn)行程序不合適,所以本文提出的方法通過編寫一個(gè)Android應(yīng)用程序,實(shí)現(xiàn)圖形界面控制到目標(biāo)程序命令控制轉(zhuǎn)換的功能,使用者就能夠通過Android控制程序這個(gè)中間層實(shí)現(xiàn)對(duì)目標(biāo)程序的控制操作。

    圖5是目標(biāo)程序的運(yùn)行流程。使用者操作Android控制程序,由Android控制程序通過命令行方式直接向內(nèi)核發(fā)送fork系統(tǒng)調(diào)用,從而啟動(dòng)Linux目標(biāo)程序。然后Linux目標(biāo)程序運(yùn)行在Change Root模塊所創(chuàng)建的進(jìn)程中,并且能夠從程序依賴模塊獲取所依賴的共享庫(kù)文件。以及在需要的時(shí)候通過Bash環(huán)境模塊運(yùn)行Shell命令,從而完成目標(biāo)程序的全部功能。

    圖5 目標(biāo)程序的運(yùn)行流程

    3.2 CUPS程序移植測(cè)試

    CUPS是Unix/Linux下的開源打印系統(tǒng),提供一整套完善的打印方案,擁有USB打印、網(wǎng)絡(luò)打印等功能。本文以移植Linux中的CUPS程序到OPENTHOS系統(tǒng)為例,驗(yàn)證本文提出的移植方法。OPENTHOS系統(tǒng)是清華大學(xué)、同方股份有限公司、一銘軟件股份有限公司聯(lián)合開發(fā)以Android-x86為基礎(chǔ)的開源桌面操作系統(tǒng)。移植CUPS程序到OPENTHOS系統(tǒng)是整個(gè)OPENTHOS項(xiàng)目的一個(gè)重要部分,為該系統(tǒng)提供打印功能。

    在OPENTHOS中運(yùn)行移植的CUPS程序,并通過ps命令查詢系統(tǒng)中的進(jìn)程。部分查詢結(jié)果如圖6所示,其中名為cupsd的條目代表CUPS程序的進(jìn)程,說(shuō)明CUPS程序正在系統(tǒng)中運(yùn)行。用USB接口連接上HP P1108打印機(jī),并運(yùn)行安裝在OPENTHOS系統(tǒng)上的文本處理程序WPS,使用其中的打印功能。移植的程序能夠正常識(shí)別HP P1108打印機(jī),并且成功打印出WPS里的文本,打印結(jié)果與預(yù)覽中的效果一致,說(shuō)明CUPS打印程序在OPENTHOS系統(tǒng)上運(yùn)行正常。

    圖6 進(jìn)程列表截圖

    3.3 移植方法對(duì)比

    通過整理實(shí)驗(yàn)數(shù)據(jù)得到本文方法與基于交叉編譯的移植方法的對(duì)比表格1。從中可以看到,本文提出的基于ABI兼容的移植方法,相比基于交叉編譯的方法,由于需要移植程序依賴的動(dòng)態(tài)庫(kù),所以占用空間稍微大了一些,但是本文提出的方法不需要修改目標(biāo)程序的代碼,因此支持更多的程序、降低了移植的復(fù)雜度。由于ABI兼容不需要重新編譯程序,所以在相同處理器構(gòu)架下的設(shè)備中能夠使用閉源程序。但是,本文提出的方法還有一些不足,比如:若目標(biāo)程序沒有提供命令行操作接口,那么這個(gè)程序很難使用本文的方法移植,但是這樣的程序在Linux系統(tǒng)中很少見。另外在不同的處理器構(gòu)架下閉源驅(qū)動(dòng)不能使用,這個(gè)問題以后可以考慮加入X86等處理器架構(gòu)的模擬器來(lái)運(yùn)行閉源部分的程序,比如名為Bochs的開源X86平臺(tái)模擬器可以在ARM上運(yùn)行X86程序。

    表1 移植方法的對(duì)比

    4 結(jié)論

    本文首先分析了Linux和Android系統(tǒng)在ABI兼容上的主要差異,然后分析了消除ABI差異的技術(shù):目錄結(jié)構(gòu)重定向和程序依賴關(guān)系分析技術(shù)。在此基礎(chǔ)上,本文提出基于ABI兼容技術(shù)的移植方法,并將Linux系統(tǒng)中的CUPS程序成功移植到基于Android的OPENTHOS系統(tǒng)。本方法適用于一般的Linux平臺(tái)的程序,并優(yōu)于基于交叉編譯的移植方法。希望本文提出的改進(jìn)方法能夠?qū)π枰袻iunx程序向Android平臺(tái)移植的工作者提供一點(diǎn)幫助和啟示。

    參考文獻(xiàn):

    [1] 貢知洲, 路昭亮. Android發(fā)展的分析與研究[J]. 價(jià)值工程, 2013, 32(2):185-186.

    [2] Mackinnon J G. The Linux operating system: Debian GNU/Linux[J]. Journal of Applied Econometrics, 1999, 14(4):443-52.

    [3] 李其鋒, 李 兵. 開源軟件開發(fā)者的演化研究[J]. 計(jì)算機(jī)科學(xué), 2015, 42(12):43-46.

    [4] 張歡慶, 高 麗, 宋承祥. 基于ARM的嵌入式Linux交叉編譯環(huán)境的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)與數(shù)字工程, 2012, 40(2):151-153.

    [5] 胡錦暉, 胡大斌. 移植Tcpdump到Android手機(jī)捕獲無(wú)線數(shù)據(jù)包的方法研究[J]. 無(wú)線通信技術(shù), 2015, 24(1):6-10.

    [6] 黃聰會(huì), 陳 靖, 羅 樵,等. 面向二進(jìn)制移植的虛擬化技術(shù)[J]. 計(jì)算機(jī)應(yīng)用研究, 2012, 29(11):4185-4188.

    [7] 梁 超. Android內(nèi)核與標(biāo)準(zhǔn)Linux內(nèi)核對(duì)比分析[J]. 工業(yè)設(shè)計(jì), 2012(2):74-74.

    [8] Hierarchy F S. Linux Standard Base[Z]. 2015.

    [9] 黃 進(jìn). Linux應(yīng)用二進(jìn)制兼容技術(shù)的研究與實(shí)現(xiàn)[D]. 哈爾濱:國(guó)防科學(xué)技術(shù)大學(xué), 2003.

    [10] 蘇 雅, 王 鋼, 巴特爾. 在Solaris環(huán)境下通過實(shí)現(xiàn)chroot增進(jìn)系統(tǒng)安全性[J]. 內(nèi)蒙古工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版, 2003, 22(4):289-292.

    [11] cedric-vincent,Proot項(xiàng)目主頁(yè)[EB/OL].http://proot.me,2017.

    [12] 邵長(zhǎng)彬, 李洪亮. 用Busybox制作嵌入式Linux根文件系統(tǒng)[J]. 微計(jì)算機(jī)信息, 2007, 23(29):48-50.

    猜你喜歡
    內(nèi)核程序動(dòng)態(tài)
    國(guó)內(nèi)動(dòng)態(tài)
    萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    國(guó)內(nèi)動(dòng)態(tài)
    國(guó)內(nèi)動(dòng)態(tài)
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    動(dòng)態(tài)
    試論我國(guó)未決羈押程序的立法完善
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    “程序猿”的生活什么樣
    免费高清视频大片| 一本久久中文字幕| 性少妇av在线| 啦啦啦韩国在线观看视频| 九色亚洲精品在线播放| 亚洲成人精品中文字幕电影| 成在线人永久免费视频| av网站免费在线观看视频| 99精品久久久久人妻精品| 国产精品精品国产色婷婷| 国产亚洲精品第一综合不卡| 国产欧美日韩一区二区三| 亚洲人成77777在线视频| 久久久久国内视频| 很黄的视频免费| 黄片播放在线免费| 欧美日本视频| 国产熟女xx| 亚洲欧美精品综合一区二区三区| 又紧又爽又黄一区二区| 国产亚洲精品久久久久久毛片| 国产一区二区三区视频了| 国产一区二区三区视频了| 欧美+亚洲+日韩+国产| 亚洲自拍偷在线| 黄色女人牲交| 国产一区二区三区综合在线观看| 亚洲狠狠婷婷综合久久图片| 亚洲av第一区精品v没综合| 色精品久久人妻99蜜桃| 可以在线观看的亚洲视频| 叶爱在线成人免费视频播放| 精品一区二区三区四区五区乱码| 99精品在免费线老司机午夜| 每晚都被弄得嗷嗷叫到高潮| 国产精品一区二区三区四区久久 | 国产精品一区二区三区四区久久 | 久久这里只有精品19| 脱女人内裤的视频| 一区二区三区高清视频在线| 亚洲无线在线观看| 老司机午夜十八禁免费视频| 老司机深夜福利视频在线观看| 女人高潮潮喷娇喘18禁视频| 最近最新中文字幕大全免费视频| 国产精品久久电影中文字幕| 久久香蕉精品热| 一区二区日韩欧美中文字幕| 啪啪无遮挡十八禁网站| 日韩欧美国产在线观看| 亚洲一区二区三区色噜噜| 精品乱码久久久久久99久播| 一级作爱视频免费观看| 国产日韩一区二区三区精品不卡| 亚洲国产精品合色在线| 国产成人系列免费观看| 男女下面插进去视频免费观看| 精品欧美一区二区三区在线| 欧美日韩精品网址| av在线播放免费不卡| 亚洲一码二码三码区别大吗| 欧美另类亚洲清纯唯美| 精品一区二区三区视频在线观看免费| 在线天堂中文资源库| 欧美人与性动交α欧美精品济南到| 欧美久久黑人一区二区| 午夜精品国产一区二区电影| 国产精品爽爽va在线观看网站 | 国产亚洲欧美精品永久| 9热在线视频观看99| 亚洲国产精品sss在线观看| 精品久久久久久久毛片微露脸| 欧美日韩乱码在线| 久久亚洲真实| 青草久久国产| 麻豆国产av国片精品| 免费在线观看亚洲国产| 欧美一级毛片孕妇| av天堂久久9| 美国免费a级毛片| 一级黄色大片毛片| 久久欧美精品欧美久久欧美| 人人妻,人人澡人人爽秒播| 日本欧美视频一区| 19禁男女啪啪无遮挡网站| av网站免费在线观看视频| 级片在线观看| 激情视频va一区二区三区| 国产欧美日韩一区二区三| 国产精品 国内视频| 国内久久婷婷六月综合欲色啪| 成年版毛片免费区| 午夜福利,免费看| 在线观看免费日韩欧美大片| 色综合婷婷激情| 婷婷精品国产亚洲av在线| 久久久久久国产a免费观看| 99久久国产精品久久久| 欧美乱色亚洲激情| 国产欧美日韩一区二区三| 禁无遮挡网站| 亚洲av片天天在线观看| 亚洲伊人色综图| 久久中文字幕一级| 丰满人妻熟妇乱又伦精品不卡| 欧美成人午夜精品| 国产一区二区在线av高清观看| 黄色片一级片一级黄色片| 欧美日本视频| 国产亚洲精品第一综合不卡| 亚洲精品久久国产高清桃花| 中文字幕高清在线视频| 国产野战对白在线观看| 亚洲国产精品成人综合色| 多毛熟女@视频| 精品不卡国产一区二区三区| 十八禁网站免费在线| 无人区码免费观看不卡| 欧美激情久久久久久爽电影 | 亚洲 欧美一区二区三区| 男人舔女人的私密视频| 成在线人永久免费视频| 色av中文字幕| 99国产精品一区二区三区| 乱人伦中国视频| АⅤ资源中文在线天堂| 禁无遮挡网站| 级片在线观看| 亚洲一区二区三区不卡视频| 亚洲精品在线观看二区| 亚洲av美国av| cao死你这个sao货| 久久精品国产99精品国产亚洲性色 | 国产单亲对白刺激| 两性午夜刺激爽爽歪歪视频在线观看 | 国产成人av教育| 丁香六月欧美| 又黄又爽又免费观看的视频| 亚洲精品在线美女| 亚洲第一av免费看| 亚洲无线在线观看| 大香蕉久久成人网| 亚洲av电影不卡..在线观看| 黄色毛片三级朝国网站| 国产视频一区二区在线看| 夜夜看夜夜爽夜夜摸| 女同久久另类99精品国产91| 日韩成人在线观看一区二区三区| 长腿黑丝高跟| 日韩高清综合在线| 日韩欧美三级三区| 高清黄色对白视频在线免费看| 久久精品亚洲熟妇少妇任你| 不卡一级毛片| 色综合亚洲欧美另类图片| 淫秽高清视频在线观看| 精品日产1卡2卡| 亚洲欧美日韩另类电影网站| 十八禁网站免费在线| 18禁黄网站禁片午夜丰满| 人人澡人人妻人| 午夜日韩欧美国产| 身体一侧抽搐| 国产男靠女视频免费网站| 欧美黑人欧美精品刺激| 电影成人av| 成人国语在线视频| 久久久久久久久中文| 亚洲avbb在线观看| 一边摸一边抽搐一进一出视频| 一本综合久久免费| 韩国精品一区二区三区| 欧美在线黄色| or卡值多少钱| 免费在线观看黄色视频的| 久久久久久亚洲精品国产蜜桃av| 国产高清videossex| 亚洲午夜精品一区,二区,三区| 久久欧美精品欧美久久欧美| 久久精品人人爽人人爽视色| 午夜精品久久久久久毛片777| 日韩视频一区二区在线观看| 亚洲性夜色夜夜综合| av福利片在线| 校园春色视频在线观看| 国产精品国产高清国产av| 亚洲三区欧美一区| 成人国产一区最新在线观看| 亚洲av电影在线进入| 亚洲免费av在线视频| 国产精品亚洲美女久久久| 美女免费视频网站| 亚洲av熟女| 精品久久久久久成人av| 国语自产精品视频在线第100页| 黑人巨大精品欧美一区二区蜜桃| 久久国产精品影院| 国产成人系列免费观看| 高清黄色对白视频在线免费看| 精品午夜福利视频在线观看一区| 看片在线看免费视频| 丁香六月欧美| 亚洲在线自拍视频| 岛国在线观看网站| 99国产极品粉嫩在线观看| 18禁国产床啪视频网站| www.999成人在线观看| 精品免费久久久久久久清纯| 精品一区二区三区四区五区乱码| 午夜免费鲁丝| 成人国产综合亚洲| 国产野战对白在线观看| 亚洲精品粉嫩美女一区| 久久精品成人免费网站| 大码成人一级视频| 在线观看舔阴道视频| 国产精品综合久久久久久久免费 | 亚洲第一青青草原| 久久久久久久久久久久大奶| 亚洲天堂国产精品一区在线| 9热在线视频观看99| 中文字幕人成人乱码亚洲影| 精品久久久久久久毛片微露脸| 桃红色精品国产亚洲av| 精品日产1卡2卡| 欧美乱码精品一区二区三区| 精品电影一区二区在线| 免费av毛片视频| 亚洲av第一区精品v没综合| 人人妻人人澡人人看| 50天的宝宝边吃奶边哭怎么回事| 国产乱人伦免费视频| 美女免费视频网站| 精品国产乱码久久久久久男人| 精品国产一区二区久久| 我的亚洲天堂| 国产一级毛片七仙女欲春2 | 欧美精品亚洲一区二区| 性欧美人与动物交配| 黄色丝袜av网址大全| 男男h啪啪无遮挡| 麻豆成人av在线观看| 搡老岳熟女国产| 国内毛片毛片毛片毛片毛片| 精品熟女少妇八av免费久了| 精品日产1卡2卡| 国产亚洲精品av在线| 一区二区三区高清视频在线| 在线视频色国产色| 久久久久久久午夜电影| 国产精华一区二区三区| 精品日产1卡2卡| 久久精品亚洲熟妇少妇任你| 一a级毛片在线观看| 中文字幕人妻熟女乱码| 免费看美女性在线毛片视频| 1024视频免费在线观看| 久久久久久久久中文| 日本欧美视频一区| 欧美乱妇无乱码| 韩国av一区二区三区四区| 99国产精品99久久久久| 国产精品影院久久| av超薄肉色丝袜交足视频| 国产精品一区二区在线不卡| 丝袜在线中文字幕| 欧美激情高清一区二区三区| 国产日韩一区二区三区精品不卡| 999久久久国产精品视频| 亚洲欧美一区二区三区黑人| 中文字幕最新亚洲高清| 国产欧美日韩一区二区三区在线| 久久中文字幕人妻熟女| 欧美国产日韩亚洲一区| 不卡一级毛片| 亚洲av电影在线进入| 亚洲国产中文字幕在线视频| 999精品在线视频| 国产亚洲精品久久久久5区| 久久人妻av系列| 黑人巨大精品欧美一区二区蜜桃| 日本免费a在线| 精品午夜福利视频在线观看一区| 午夜两性在线视频| 国产成人精品在线电影| 日本在线视频免费播放| 女人高潮潮喷娇喘18禁视频| 一级,二级,三级黄色视频| 精品卡一卡二卡四卡免费| 久久婷婷人人爽人人干人人爱 | 欧美乱色亚洲激情| 亚洲第一青青草原| 操美女的视频在线观看| 丝袜美足系列| 国产精品香港三级国产av潘金莲| 国产麻豆成人av免费视频| 不卡av一区二区三区| 国产午夜精品久久久久久| 亚洲av电影不卡..在线观看| 老汉色∧v一级毛片| 天天添夜夜摸| 日本三级黄在线观看| 成人av一区二区三区在线看| 日韩欧美免费精品| 夜夜躁狠狠躁天天躁| 亚洲国产毛片av蜜桃av| 一本久久中文字幕| 久久精品亚洲精品国产色婷小说| 精品国产美女av久久久久小说| 国产国语露脸激情在线看| 欧美激情久久久久久爽电影 | 高潮久久久久久久久久久不卡| 成人av一区二区三区在线看| videosex国产| 久99久视频精品免费| 欧美绝顶高潮抽搐喷水| 国产精品久久久人人做人人爽| 男人操女人黄网站| 成人精品一区二区免费| 最好的美女福利视频网| 麻豆av在线久日| 50天的宝宝边吃奶边哭怎么回事| 涩涩av久久男人的天堂| 欧美成人一区二区免费高清观看 | 黄色 视频免费看| 男女之事视频高清在线观看| 美女扒开内裤让男人捅视频| 亚洲五月色婷婷综合| 欧美日本中文国产一区发布| 非洲黑人性xxxx精品又粗又长| 久久精品亚洲熟妇少妇任你| 国产91精品成人一区二区三区| 午夜免费激情av| 久久人人爽av亚洲精品天堂| 老汉色∧v一级毛片| 久久久久久久午夜电影| 亚洲一区高清亚洲精品| 亚洲精品中文字幕在线视频| 美女高潮到喷水免费观看| 精品日产1卡2卡| 久久精品91蜜桃| 国产亚洲精品久久久久5区| 久久青草综合色| 久久狼人影院| 好男人在线观看高清免费视频 | 人妻丰满熟妇av一区二区三区| 伊人久久大香线蕉亚洲五| 久久久精品欧美日韩精品| 中文字幕色久视频| 亚洲欧美精品综合一区二区三区| 国产91精品成人一区二区三区| 99精品久久久久人妻精品| 午夜日韩欧美国产| 日韩成人在线观看一区二区三区| 亚洲国产精品成人综合色| 日日夜夜操网爽| 日韩精品免费视频一区二区三区| 人人妻人人澡人人看| 亚洲专区国产一区二区| 成人免费观看视频高清| 少妇的丰满在线观看| 国产视频一区二区在线看| 久久久精品欧美日韩精品| 午夜久久久久精精品| 国产xxxxx性猛交| 19禁男女啪啪无遮挡网站| 精品日产1卡2卡| 日本免费一区二区三区高清不卡 | 久久精品国产99精品国产亚洲性色 | 两个人看的免费小视频| 亚洲电影在线观看av| 亚洲精品粉嫩美女一区| 欧美黄色淫秽网站| 精品国产亚洲在线| 成人亚洲精品一区在线观看| 国产麻豆成人av免费视频| 淫妇啪啪啪对白视频| 不卡一级毛片| 久久亚洲精品不卡| 欧美色欧美亚洲另类二区 | 精品国产乱码久久久久久男人| 国产成人影院久久av| 夜夜夜夜夜久久久久| 动漫黄色视频在线观看| 色综合站精品国产| 久久久久久亚洲精品国产蜜桃av| 一区二区三区国产精品乱码| 少妇被粗大的猛进出69影院| 久久性视频一级片| av天堂久久9| av中文乱码字幕在线| 亚洲视频免费观看视频| bbb黄色大片| 亚洲欧美激情在线| 久久亚洲精品不卡| 非洲黑人性xxxx精品又粗又长| 免费无遮挡裸体视频| 婷婷丁香在线五月| 女性被躁到高潮视频| 婷婷六月久久综合丁香| 国产成人一区二区三区免费视频网站| 国产精品99久久99久久久不卡| 99国产综合亚洲精品| 黄色a级毛片大全视频| av在线播放免费不卡| 国产成人一区二区三区免费视频网站| 欧美成人午夜精品| 日韩欧美免费精品| 午夜免费鲁丝| 日韩欧美一区二区三区在线观看| 亚洲成a人片在线一区二区| 国产精品综合久久久久久久免费 | 久久热在线av| 国产主播在线观看一区二区| 夜夜夜夜夜久久久久| 天天躁夜夜躁狠狠躁躁| 一区二区三区精品91| 无限看片的www在线观看| 亚洲视频免费观看视频| 热99re8久久精品国产| 可以在线观看的亚洲视频| 国产精品亚洲美女久久久| 日韩三级视频一区二区三区| 午夜久久久在线观看| 大型黄色视频在线免费观看| 如日韩欧美国产精品一区二区三区| 国产亚洲精品av在线| 国产精品二区激情视频| 欧美日韩亚洲国产一区二区在线观看| 国产欧美日韩一区二区三区在线| 18禁裸乳无遮挡免费网站照片 | 很黄的视频免费| 国产高清视频在线播放一区| 1024视频免费在线观看| 91在线观看av| 国产精品九九99| 91老司机精品| 国产主播在线观看一区二区| 最新在线观看一区二区三区| 日本免费一区二区三区高清不卡 | 亚洲 欧美 日韩 在线 免费| 老司机在亚洲福利影院| 久久久久国内视频| 久久久久久人人人人人| e午夜精品久久久久久久| 欧美在线黄色| 欧美久久黑人一区二区| or卡值多少钱| 欧美不卡视频在线免费观看 | av网站免费在线观看视频| 亚洲成人免费电影在线观看| 无人区码免费观看不卡| 日韩 欧美 亚洲 中文字幕| 天堂影院成人在线观看| 女性生殖器流出的白浆| 欧美国产精品va在线观看不卡| a级毛片在线看网站| 成人特级黄色片久久久久久久| 欧美日韩一级在线毛片| 搡老岳熟女国产| 中文字幕最新亚洲高清| 色综合站精品国产| 亚洲国产精品合色在线| 两性夫妻黄色片| 男人舔女人的私密视频| 狂野欧美激情性xxxx| 久久精品aⅴ一区二区三区四区| 久久久久久久久免费视频了| 国产精品自产拍在线观看55亚洲| 久久久久国产精品人妻aⅴ院| 亚洲人成电影观看| 男人舔女人的私密视频| 色av中文字幕| 一二三四社区在线视频社区8| 91在线观看av| 中国美女看黄片| 久久久久久人人人人人| 婷婷丁香在线五月| 日本精品一区二区三区蜜桃| 好看av亚洲va欧美ⅴa在| 精品国产乱码久久久久久男人| 成人永久免费在线观看视频| 欧美日韩亚洲综合一区二区三区_| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美日韩高清在线视频| 亚洲国产毛片av蜜桃av| 夜夜夜夜夜久久久久| 亚洲伊人色综图| 后天国语完整版免费观看| 亚洲av五月六月丁香网| 免费观看人在逋| 91九色精品人成在线观看| av有码第一页| 欧美一级a爱片免费观看看 | 久久人人爽av亚洲精品天堂| 国产精品免费一区二区三区在线| 夜夜躁狠狠躁天天躁| 免费在线观看完整版高清| 久久人妻av系列| 国产精品,欧美在线| 欧洲精品卡2卡3卡4卡5卡区| 日本欧美视频一区| 精品欧美一区二区三区在线| 成人三级黄色视频| 大码成人一级视频| 亚洲国产精品sss在线观看| 狂野欧美激情性xxxx| 成人三级黄色视频| 大码成人一级视频| 亚洲国产精品999在线| 十分钟在线观看高清视频www| 色在线成人网| www国产在线视频色| 亚洲第一av免费看| 国产片内射在线| 亚洲,欧美精品.| 天堂影院成人在线观看| 亚洲av日韩精品久久久久久密| 激情在线观看视频在线高清| 在线观看免费午夜福利视频| 欧美在线黄色| 亚洲 欧美一区二区三区| 大陆偷拍与自拍| 一级a爱视频在线免费观看| 国产欧美日韩综合在线一区二区| 精品一品国产午夜福利视频| 看片在线看免费视频| 久久久久久久久久久久大奶| www.自偷自拍.com| 亚洲精品国产色婷婷电影| 免费高清在线观看日韩| 亚洲人成网站在线播放欧美日韩| 免费在线观看亚洲国产| 国产私拍福利视频在线观看| 一本综合久久免费| 亚洲色图 男人天堂 中文字幕| 国产野战对白在线观看| 亚洲在线自拍视频| 少妇裸体淫交视频免费看高清 | 亚洲精品国产一区二区精华液| 黄色视频不卡| av免费在线观看网站| 国产精品秋霞免费鲁丝片| 在线永久观看黄色视频| 亚洲国产欧美网| 日韩大码丰满熟妇| 日韩成人在线观看一区二区三区| 黄色a级毛片大全视频| 亚洲七黄色美女视频| 一区二区三区高清视频在线| 午夜成年电影在线免费观看| 亚洲精品美女久久av网站| 色老头精品视频在线观看| 亚洲人成电影免费在线| 久久婷婷人人爽人人干人人爱 | 1024视频免费在线观看| 亚洲少妇的诱惑av| 淫妇啪啪啪对白视频| av视频在线观看入口| ponron亚洲| 国产精品永久免费网站| 亚洲九九香蕉| 国产午夜福利久久久久久| 久久久国产成人精品二区| 深夜精品福利| 欧美国产精品va在线观看不卡| 99精品久久久久人妻精品| 久热这里只有精品99| 欧美日本视频| 制服诱惑二区| 国产又色又爽无遮挡免费看| 看黄色毛片网站| 一边摸一边抽搐一进一小说| 国产亚洲精品第一综合不卡| 国内精品久久久久精免费| 色播亚洲综合网| 亚洲成人久久性| 国产成人啪精品午夜网站| 免费高清在线观看日韩| 妹子高潮喷水视频| 欧美另类亚洲清纯唯美| 露出奶头的视频| 精品国产一区二区三区四区第35| 亚洲 欧美一区二区三区| 亚洲精华国产精华精| 国产亚洲精品第一综合不卡| 看免费av毛片| 一级片免费观看大全| 欧美日本亚洲视频在线播放| 看免费av毛片| 1024视频免费在线观看| 欧美av亚洲av综合av国产av| 脱女人内裤的视频| 午夜福利在线观看吧| 亚洲国产精品sss在线观看| 国产精品野战在线观看| 十八禁人妻一区二区| 欧美av亚洲av综合av国产av| 丁香六月欧美| 久久久久九九精品影院| 99re在线观看精品视频| 9191精品国产免费久久| 欧美乱妇无乱码| 久热这里只有精品99| 在线观看舔阴道视频| 69精品国产乱码久久久| 久久狼人影院| 国产熟女xx| 亚洲人成电影免费在线| 亚洲成人国产一区在线观看| 色老头精品视频在线观看| 欧美色欧美亚洲另类二区 | 超碰成人久久| 美女 人体艺术 gogo| 99热只有精品国产|