單項(xiàng)選擇題

以下是在Linux系統(tǒng)中啟動(dòng)并加載可執(zhí)行目標(biāo)文件過程中shell命令行解釋程序所做的部分操作:
①構(gòu)造構(gòu)造argv和envp
②調(diào)用fork()系統(tǒng)調(diào)用函數(shù)
③調(diào)用execve()系統(tǒng)調(diào)用函數(shù)
④讀入命令(可執(zhí)行文件名)及參數(shù)
啟動(dòng)并加載可執(zhí)行目標(biāo)文件的正確步驟是()。

A.①→②→③→④
B.④→①→②→③
C.④→①→③→②
D.②→④→①→③


您可能感興趣的試卷

你可能感興趣的試題

1.單項(xiàng)選擇題以下是有關(guān)在Linux系統(tǒng)中加載可執(zhí)行目標(biāo)文件的敘述,其中錯(cuò)誤的是()。

A.加載器通過可執(zhí)行目標(biāo)文件中的程序頭表對(duì)可裝入段進(jìn)行加載
B.任何可執(zhí)行目標(biāo)文件中的可裝入段被映射到一個(gè)統(tǒng)一的虛擬地址空間
C.可執(zhí)行目標(biāo)文件的加載通過execve()函數(shù)調(diào)用的加載器來完成
D.在可執(zhí)行目標(biāo)文件的加載過程中,其中的指令和數(shù)據(jù)被讀入主存

2.單項(xiàng)選擇題以下是有關(guān)在Linux系統(tǒng)中啟動(dòng)可執(zhí)行目標(biāo)文件執(zhí)行的敘述,其中錯(cuò)誤的是()。

A.不管是哪種啟動(dòng)執(zhí)行方式,最終都是通過調(diào)用execve()系統(tǒng)調(diào)用函數(shù)實(shí)現(xiàn)的
B.可以通過在一個(gè)程序中調(diào)用execve()系統(tǒng)調(diào)用函數(shù)來啟動(dòng)可執(zhí)行文件執(zhí)行
C.可在CUI(命令行用戶界面)中的命令行提示符后輸入對(duì)應(yīng)的命令來啟動(dòng)其執(zhí)行
D.可在CUI(命令行用戶界面)中雙擊可執(zhí)行目標(biāo)文件對(duì)應(yīng)的圖標(biāo)來啟動(dòng)其執(zhí)行

3.單項(xiàng)選擇題假定“int buf[2]={10,50};”所定義的buf被分配在靜態(tài)數(shù)據(jù)區(qū),其首地址為0x8048930,bufp1為全局變量,也被分配在靜態(tài)數(shù)據(jù)區(qū)。以下關(guān)于“bufp1=&buf[1];”的重定位的描述中,錯(cuò)誤的是()。

A.在可重定位目標(biāo)文件的.rel.text節(jié)中,有一個(gè)與buf相關(guān)的重定位條目
B.可用一條mov指令實(shí)現(xiàn)該賦值語(yǔ)句,該mov指令中有兩處需要重定位
C.在可重定位目標(biāo)文件的.rel.data節(jié)中,有一個(gè)與bufp1相關(guān)的重定位條目
D.在相應(yīng)的重定位條目中,對(duì)bufp1和buf的引用均采用絕對(duì)地址方式

4.單項(xiàng)選擇題假定“int buf[2]={10,50};”所定義的buf被分配在靜態(tài)數(shù)據(jù)區(qū),其首地址為0x8048930,bufp1為全局變量,被分配在buf隨后的存儲(chǔ)空間。以下關(guān)于“int *bufp1=&buf[1];”的重定位的描述中,錯(cuò)誤的是()。

A.在可執(zhí)行目標(biāo)文件中,地址0x8048938開始的4個(gè)字節(jié)為34H、89H、04H、08H
B.bufp1的地址為0x8048938,重定位前的內(nèi)容為04H、00H、00H、00H
C.在可重定位目標(biāo)文件的.rel.data節(jié)中,有一個(gè)引用buf的重定位條目
D.在相應(yīng)的重定位條目中,對(duì)bufp1和buf的引用均采用絕對(duì)地址方式

5.單項(xiàng)選擇題以下有關(guān)重定位信息的敘述中,錯(cuò)誤的是()。

A.重定位信息包含需重定位的位置、綁定的符號(hào)和重定位類型
B.數(shù)據(jù)中的重定位信息在可重定位目標(biāo)文件的.rel.data節(jié)中
C.重定位信息是由編譯器在生成匯編指令時(shí)產(chǎn)生的
D.指令中的重定位信息在可重定位目標(biāo)文件的.rel.text節(jié)中