2016年嵌入式軟件助理工程師認證考試試題題庫
26、 Linux系統(tǒng)中,普通用戶使用的命令通常保存在___/bin___目錄中。
27、 setenv命令的功能是___設(shè)置環(huán)境變量___。
28、 Linux文件的鏈接可分為符號鏈接和___硬鏈接___兩種。
29、 在shell編程時,要把一個用戶的輸入賦值給一個變量,使用__read_______命令。
30、 Qt/Embedded使用___信號___和___插槽___的機制實現(xiàn)函數(shù)的回調(diào)。
31、 加載Linux內(nèi)核模塊使用命令___insmod___。
32、 ARM處理器有多種運行模式,用戶程序運行在其中的___用戶___模式。
33、 Linux系統(tǒng)在啟動init進程時使用的配置文件是_/etc/inittab_____。
34、 VI編輯器有三種工作模式:命令模式、插入模式和___末行模式___。
35、 交叉編譯是指___在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼___。
36、 setenv命令的功能是___設(shè)置環(huán)境變量___。
37、 在linux系統(tǒng)中,以 文件 方式訪問設(shè)備 。
38、 利用gdb進行調(diào)試時,可通過step或 next 命令進行單步執(zhí)行。
39、 Qt/Embedded的底層圖形引擎基于 FrameBuffer 接口技術(shù)。
40、 Linux操作系統(tǒng)的系統(tǒng)管理員(也就是超級用戶)帳號是root 。
41、 編寫的shell程序運行前必須賦予該腳本文件 執(zhí)行 權(quán)限 。
42、 使用gcc編譯c程序生成可執(zhí)行文件有時似乎是一步完成的,但實際要經(jīng)歷如下四步:預處理、編譯、 匯編 和連接。
43、 內(nèi)核分為 進程管理系統(tǒng) 、 內(nèi)存管理系統(tǒng) 、 IO管理系統(tǒng) 和文件管理系統(tǒng) 等四個子系統(tǒng)。
44、 嵌入式系統(tǒng)中按照總線所傳送的信息類型,可以分為數(shù)據(jù)總線、地址總線和 控制總線 等幾種。
45、 嵌入式linux系統(tǒng)中,設(shè)備類型分為字符設(shè)備、塊設(shè)備 和 網(wǎng)絡(luò)設(shè)備 等三種。
46、 Linux中所有用戶的信息保存于__ /etc/passwd _和__/etc/shadow __文件。
47、 鏈接分為__軟連接 __和__硬鏈接 ____鏈接 。
48、
49、 某文件的權(quán)限位:d-rw-_r--_r--,用數(shù)值形式表示該權(quán)限,則該八進制數(shù)為_644 ,該文件屬性是__目錄 _。
50、 嵌入式Linux系統(tǒng)從軟件的角度看通?梢苑譃樗膫層次:引導加載程序、__ Linux內(nèi)核___、__文件系統(tǒng)_、用戶應(yīng)用程序。
51、 進程從產(chǎn)生到終止進程可以具有的基本狀態(tài)為: _運行態(tài)__ 、 _就緒態(tài)__ 和 等待態(tài)(阻塞態(tài))。
四、判斷題
1、 在gdb調(diào)試過程中,不退出gdb也可以執(zhí)行UNIX shell命令。(對)
2、 退出交互模式的shell,應(yīng)鍵入quit。(錯)
3、 Linux文件系統(tǒng)的文件都按其作用分門別類地放在相關(guān)的目錄中,對于外部設(shè)備文件,一般應(yīng)將其放在/etc目錄中。(錯)
4、 命令fdisk /mbr的作用是安裝系統(tǒng)引導程序到主分區(qū)。(錯)
5、 在Linux系統(tǒng)中,測試DNS服務(wù)器是否能夠正確解析域名的的客戶端命令,使用命令 nslookup 。(對)
6、 命令mount /dev/hdc /mnt/cdrom是將光盤CD-ROM(hdc)安裝到文件系統(tǒng)的/mnt/cdrom目錄下。(對)
7、 /home/src目錄存放著Linux的源代碼。( 錯)
8、 uCOS-II操作系統(tǒng)屬于順序執(zhí)行系統(tǒng) 。(錯 )
9、 Linux 文件名的長度不得超256個字符。(對 )
10、 在vi編輯器中的命令模式下,刪除當前光標處的字符使用d命令。( 錯 )
11、 基于ARM架構(gòu)的指令都是32位的。(錯)
12、 激活網(wǎng)卡需要編譯內(nèi)核。( 錯)
13、 可用ctrl+C強行結(jié)束后臺進程。(錯 )
14、 寫回Cache是指CPU在執(zhí)行寫操作時,必須把數(shù)據(jù)同時寫入Cache和主存。(×)
15、
16、 文件系統(tǒng)的主要功能是實現(xiàn)虛擬存儲。(錯)
17、 進程有三種狀態(tài)是準備態(tài)、執(zhí)行態(tài)和退出態(tài)。(錯)
18、 Samba服務(wù)器的進程由smbd和nmbd兩部分組成。(對)
19、 shell命令的第一個按鍵必須是字符、數(shù)字或者空格(錯)
20、 Linux 文件名的長度不得超256個字符。(對)
21、 在gdb調(diào)試過程中,用make命令可以不用退出gdb就可以重新產(chǎn)生可執(zhí)行文件。(對)
22、 若一臺計算機的內(nèi)存為128MB,則交換分區(qū)的大小通常是64M。(錯)
23、 在重新啟動Linux系統(tǒng)的同時把內(nèi)存中的信息寫入硬盤,應(yīng)使用shutdown –r now命令實現(xiàn)。(對)
24、 在vi編輯器中的命令模式下,刪除當前光標處的字符使用d命令。(錯)
25、 Samba服務(wù)器的進程由smbd和nmbd兩部分組成。(對)
26、 從后臺啟動進程,應(yīng)在命令的結(jié)尾加上符號@。(錯)
27、 網(wǎng)絡(luò)管理的重要任務(wù)是: 控制 和 監(jiān)控 。(對)
28、 函數(shù)的標量參數(shù)通過傳值的方式進行傳遞,而數(shù)組名參數(shù)則具有傳址調(diào)用的語義。( √ )
29、 (X)根文件系統(tǒng)是具有操作系統(tǒng)的嵌入式系統(tǒng)必須的組成部分。
30、 (V)一個shell腳本運行時可以看成是一個Linux作業(yè),它可能由多個進程完成。
31、 (V)在2.6內(nèi)核中加入的搶占點提高了Linux的可搶占性,但Linux仍不能看作實時系統(tǒng)。
32、 (X)目前的ARM處理器采用的是哈佛體系結(jié)構(gòu)。
33、 (V)ARM處理器的運行模式可通過中斷或異常處理改變。
34、 (X)C語言中的棧的壓入和彈出是由操作系統(tǒng)管理的。
35、 (X)BootLoader屬于嵌入式操作系統(tǒng)的一部分。
36、 (X)chmod命令可用來修改處理器的運行模式。
37、 (X)CGI程序由Web服務(wù)器解釋運行。
38、 (V)Linux系統(tǒng)中的目錄可以看作是一種特殊的文件。
39、 (X)shell環(huán)境變量主要用于腳本的執(zhí)行過程,不會作用于腳本之外的程序。
40、 (V)Busybox常用于替代桌面系統(tǒng)中的init和shell等程序,為嵌入式用戶提供使用環(huán)境。
41、 (V)LINUX是一個真正的多用戶、多任務(wù)操作系統(tǒng),允許多個用戶在相同的機器上一次運行很多程序,并能保證相互之間的共享和安全。
42、 在嵌入式系統(tǒng)中,整個系統(tǒng)的加載啟動任務(wù)就完全由 Boot Loader 來完成。( √ )
43、 在LINUX系統(tǒng)中,所有的內(nèi)容被表示成文件,組織文件的各種方法便稱為不同的文件系統(tǒng)。( √ )
44、 Linux系統(tǒng)是一個多用戶多任務(wù)的分時操作系統(tǒng),允許多個用戶在相同的機器上一次運行很多程序。( √ )
45、 Linux 中的 ls 命令的功能是變換工作目錄到目標指定目錄。( × )
46、 ARM包含32個通用寄存器。( × )
47、 Qt Embedded的API同Qt/X11和Qt/Windows的相同,但它并不是基于X11庫。( √ )
48、 kmalloc和vmalloc的區(qū)別在于,前者申請到的是物理地址連續(xù)的內(nèi)存空間,而后者則是虛擬地址連續(xù)的內(nèi)存空間,不能用在中斷時間。( √ )
49、 LINUX是一個真正的多任務(wù)和分時操作系統(tǒng),允許多個用戶在相同的機器上一次運行很多程序。( √ )
50、 (X)Linux采用線程調(diào)度程序選擇線程占用CPU運行。
51、 (V)在單機系統(tǒng)中可采用關(guān)中斷的方式保證操作的原子性。
52、 (X)根文件系統(tǒng)是系統(tǒng)啟動時首先加載的文件系統(tǒng),因此需要快速加載的內(nèi)容應(yīng)放置于其中,以加快系統(tǒng)的運行速度。
53、 (X)線程切換成本小于進程,因此Linux系統(tǒng)中的多線程程序的調(diào)度開銷要小于多進程程序。
54、 (X)守護進程的主要任務(wù)是完成與用戶的交互,以保證系統(tǒng)的響應(yīng)性能。
55、 (X)Linux內(nèi)存管理采用了Slab機制,因此,無需硬件支持,Linux能夠很好地支持虛擬存儲。
56、 (X)模塊程序運行于內(nèi)核模式,因此,它們能夠訪問內(nèi)核中的所有函數(shù)。
57、 (X)根文件系統(tǒng)所在的分區(qū)越大約好,因為根分區(qū)越大,Linux啟動速度越快。
58、 (V)一個shell腳本的第一行是:#! /bin/csh它的作用是注釋,表示下面腳本是csh腳本。
59、 (X)目前Linux平臺上的各種線程庫使得Linux能夠在內(nèi)核空間能夠支持多線程。
60、 (V)Linux允許內(nèi)核以NFS的形式連接根文件系統(tǒng)
61、 (V)EXT3文件系統(tǒng)是一種日志型的文件系統(tǒng)。
62、 (V)BootLoader是嵌入式系統(tǒng)運行的第一個程序。
63、 (X)自旋鎖可以用在單機系統(tǒng)中來保證內(nèi)核相關(guān)操作的原子性。
64、 (X)Samba服務(wù)器在Linux平臺上常用作Web服務(wù)器。
65、 在vi編輯器中的命令模式下,重復上一次對編輯的文本進行的操作,可使用下箭頭命令。(錯 )
66、 進程有三種狀態(tài)是準備態(tài)、執(zhí)行態(tài)和退出態(tài)。( 錯 )
67、 觸摸屏是一種輸入設(shè)備。(√)
68、 VHDL是一種硬件描述語言,用于設(shè)計硬件電子系統(tǒng)。(√)
69、 二極管具有單向?qū)ㄐ浴?√)
70、 CISC機器多采用Load/Store結(jié)構(gòu)(×)
71、 GDB是一個用來調(diào)試C和C++程序的調(diào)試器。(√)
72、 DSP是專門用于數(shù)字信號處理方面的處理器。(√)
73、 Nand Flash的特點是應(yīng)用程序可以直接在閃存中運行,不需要把代碼讀到系統(tǒng)RAM中。(×)
74、 LCD是一種輸出設(shè)備。(√)
五、簡答題
1、簡述嵌入式系統(tǒng)中非占先式與占先式調(diào)度法的區(qū)別有哪些。
答:
非占先式調(diào)度法也稱作合作型多任務(wù)(cooperative multitasking),各個任務(wù)彼此合作共享一個CPU。中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。(1分)但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),直到該任務(wù)主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。(2分)
當系統(tǒng)響應(yīng)時間很重要時,要使用占先式(preemptive)內(nèi)核。(1分)最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當一個運行著的任務(wù)使一個比它優(yōu)先級高的任務(wù)進入了就緒態(tài),當前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務(wù)立刻得到了CPU的控制權(quán)。(2分)
2、什么是硬實時操作系統(tǒng)、軟實時操作系統(tǒng)以及二者的區(qū)別?
答:
在實時系統(tǒng)中,如果系統(tǒng)在指定的時間內(nèi)未能實現(xiàn)某個確定的任務(wù),會導致系統(tǒng)的全面失敗,這樣的系統(tǒng)被稱為強實時系統(tǒng)或硬實時系統(tǒng)。(1分)強實時系統(tǒng)響應(yīng)時間一般在毫秒或微秒級。(1分)
在弱實時系統(tǒng)中,雖然響應(yīng)時間同樣重要,但是超時卻不會發(fā)生致命的錯誤。(1分)
其系統(tǒng)響應(yīng)時間在毫秒至秒的數(shù)量級上,(1分)其實時性的要求比強實時系統(tǒng)要差一些。(2分)
3、介紹一下嵌入式系統(tǒng)的設(shè)計步驟有哪些?各部分主要工作是什么?
答:
(1)需求分析階段,羅列出用戶的需求;(1分)
(2)體系結(jié)構(gòu)設(shè)計階段,描述系統(tǒng)的功能如何實現(xiàn);(1分)
(3)詳細設(shè)計階段,進行硬件系統(tǒng)與軟件系統(tǒng)的分類劃分,以決定哪些功能用硬件實現(xiàn),哪些用軟件實現(xiàn);(1分)
(4)系統(tǒng)集成,把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,(1分)進行調(diào)試,發(fā)現(xiàn)并改進在設(shè)計過程中的錯誤;(1分)
(5)系統(tǒng)測試,對設(shè)計好的系統(tǒng)進行測試,看其是否滿足給定的要求。(1分)
4、ARM支持哪兩種數(shù)據(jù)存儲格式,簡單描述各自特點。
答:
分為大端格式和小端格式。(2分)
大端格式:被存放字數(shù)據(jù)的高字節(jié)存儲在存儲系統(tǒng)的低地址中,而被存放的字數(shù)據(jù)的低字節(jié)則存放在存儲系統(tǒng)的高地址中。(2分)
小端格式:與大端存儲格式相反,在小端存儲格式中,存儲系統(tǒng)的低地址中存放的是被放字數(shù)據(jù)中的低字節(jié)內(nèi)容,存儲系統(tǒng)的高地址存放的是被存字數(shù)據(jù)中的高字節(jié)內(nèi)容。(2分)
5、什么是BootLoader?主要有幾種工作模式及主要功能是什么?
答:
簡單說來,Bootloader就是操作系統(tǒng)內(nèi)核運行的一段小程序,完成進行初始化系統(tǒng)硬件設(shè)置的任務(wù),包括CPU、SDRRAM、Flash、串口等初始化,時鐘的設(shè)置、存儲器的映射。(2分)
分為啟動加載模式和下載模式。
(1) 啟動加載模式
啟動加載(Boot laoding)模式又稱為“自主”(Autonomous)模式,是指 Bootloader 從目標機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到 RAM 中運行,整個過程并沒有用戶的介入。(2分)
(2) 下載模式
在下載模式下,目標機上的 Bootloader 將先通過串口連接或網(wǎng)絡(luò)連接等通信手段從宿主機下載文件。(2分)
6、 簡述Bootloader有何作用?
答案要點:(1)首先,bootloader是在特定硬件平臺運行的程序,嚴重依賴于硬件平臺,需要移植;(2)是系統(tǒng)上電之后,第一個運行的程序,系統(tǒng)在上電或復位時通常都從地址 0x0 處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的 Boot Loader 程序;(3)bootloader程序的設(shè)計目標是啟動嵌入式操作系統(tǒng),嵌入式操作系統(tǒng)的啟動需要一定的條件,這些條件由bootloader來滿足;(4)Bootloader一般具有對存儲器和網(wǎng)絡(luò)接口操作的功能;如擦除、讀寫Flash,通過USB、串口下載文件等
7、 程序、進程、線程有何區(qū)別?
答案要點:程序是編譯后形成的可執(zhí)行代碼,是靜止的。進程是程序的一次執(zhí)行,是活動的。線程是進程的可執(zhí)行單元,同一進程的不同線程共享進程的資源和地址空間。
8、 簡述嵌入式系統(tǒng)的幾個重要特征?
答案要點:系統(tǒng)內(nèi)核小 ;專用性強 ;系統(tǒng)精簡 ;高實時性的系統(tǒng)軟件;多任務(wù)的操作系統(tǒng) ;需要專用的開發(fā)工具和環(huán)境。 答出上述4個并適當闡述的即可給滿分。
9、 什么是程序的局部性原理?
答案要點:程序的局部性原理是指程序在執(zhí)行過程中的一個較短時期內(nèi),它所執(zhí)行的指令和訪問的存儲空間分別局限在一定的區(qū)域內(nèi)。具體表現(xiàn)在時間局部性和空間局部性。時間局部性是指一條指令的一次執(zhí)行和下一次執(zhí)行、一個數(shù)據(jù)的一次訪問和下一次訪問,都集中在一個較短的時間內(nèi)?臻g局部性是指程序執(zhí)行了某條指令,則它相鄰的幾條指令也可能馬上執(zhí)行。
10、Linux作為嵌入式操作系統(tǒng)的優(yōu)勢?
答:
Linux作為嵌入式操作系統(tǒng)的優(yōu)勢主要有以下幾點:
1. 可應(yīng)用于多種硬件平臺。Linux已經(jīng)被移植到多種硬件平臺,這對于經(jīng)費,時間受限制的研究與開發(fā)項目是很有吸引力的。原型可以在標準平臺上開發(fā)后移植到具體的硬件上,加快了軟件與硬件的開發(fā)過程。Linux采用一個統(tǒng)一的框架對硬件進行管理,從一個硬件平臺到另一個硬件平臺的改動與上層應(yīng)用無關(guān)。(1分)
2. Linux的高度模塊化使添加部件非常容易。本身內(nèi)置網(wǎng)絡(luò)支持,而目前嵌入式系統(tǒng)對網(wǎng)絡(luò)支持要求越來越高。(1分)
3. Linux是一個和Unix相似、以內(nèi)核為基礎(chǔ)的、具有完全的內(nèi)存訪問控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等現(xiàn)有的大 部分芯片)等特性的一種通用操作系統(tǒng)。(1分)
4. Linux可以隨意地配置,不需要任何的許可證或商家的合作關(guān)系。其程序源碼全部公開,任何人可以修改并在GUN通用公共許可證(GNU General Public License)下發(fā)行。這樣,開發(fā)人員可以對操作系統(tǒng)進行定制,適應(yīng)其特殊需要。(1分)
5. Linux帶有Unix用戶熟悉的完善的開發(fā)工具,幾乎所有的Unix系統(tǒng)的應(yīng)用軟件都已移植到了Linux上。其強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。(分)
11、簡述網(wǎng)絡(luò)文件系統(tǒng)NFS,并說明其作用。
答:
NFS即網(wǎng)絡(luò)文件系統(tǒng),是主機通過網(wǎng)絡(luò)進行文件共享的協(xié)議(2分)。通常用于UNIX或類UNIX系統(tǒng)中。NFS服務(wù)器的共享目錄可以被NFS客戶端作為文件系統(tǒng)掛載到本地中(1分)。它的作用是通常用于局域網(wǎng)中用于文件共享(1分)。它的特點是不想http和ftp要把文件下載到本地才能夠被訪問,NFS不需要下載到本地即可訪問(1分)。
12、簡述Boot Loader 的兩種操作模式 (Operation Mode)?
答:
啟動加載(Boot loading)模式:這種模式也稱為"自主"(Autonomous)模式。也即 Boot Loader 從目標機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到 RAM 中運行,整個過程并沒有用戶的介入。這種模式是 Boot Loader 的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時侯,Boot Loader 顯然必須工作在這種模式下。 (2.5分)
下載(Downloading)模式:在這種模式下,目標機上的 Boot Loader 將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(Host)下載文件,比如:下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機下載的文件通常首先被 Boot Loader 保存到目標機的 RAM 中,然后再被 Boot Loader 寫到目標機上的FLASH 類固態(tài)存儲設(shè)備中。Boot Loader 的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時被使用;此外,以后的系統(tǒng)更新也會使用 Boot Loader 的這種工作模式。工作于這種模式下的 Boot Loader 通常都會向它的終端用戶提供一個簡單的命令行接口。(2.5分)
13、簡述嵌入式系統(tǒng)設(shè)計過程。
答;每條1分
(1)需求分析 (4)設(shè)計硬件構(gòu)件和軟件構(gòu)件
(2)規(guī)格說明 (5)系統(tǒng)集成
(3)體系結(jié)構(gòu)設(shè)計 (6)系統(tǒng)測試
14、ARM啟動代碼是系統(tǒng)加電后運行的第一段軟件代碼,由于這類代碼直接面對處理器內(nèi)核和硬件控制器進行編程,一般都是用匯編語言。一般通用的內(nèi)容主要包括?
答:每條1分
中斷向量表
初始化存儲器系統(tǒng)
初始化堆棧
初始化有特殊要求的斷口,設(shè)備
初始化用戶程序執(zhí)行環(huán)境
改變處理器模式
呼叫主應(yīng)用程序
15、什么是符號鏈接,什么是硬鏈接?符號鏈接與硬鏈接的區(qū)別是什么?
答:
鏈接分硬鏈接和符號鏈接。
符號鏈接可以建立對于文件和目錄的鏈接。符號鏈接可以跨文件系統(tǒng),即可以跨磁盤分區(qū)。符號鏈接的文件類型位是l,鏈接文件具有新的i節(jié)點。
硬鏈接不可以跨文件系統(tǒng)。它只能建立對文件的鏈接,硬鏈接的文件類型位是-,且硬鏈接文件的i節(jié)點同被鏈接文件的i節(jié)點相同。
16、進程的查看和調(diào)度分別使用什么命令?
答:
進程查看的命令是ps和top。
進程調(diào)度的命令有at,crontab,batch,kill。
17、簡述嵌入式系統(tǒng)中非占先式與占先式調(diào)度法的區(qū)別有哪些。
答:
非占先式調(diào)度法也稱作合作型多任務(wù)(cooperative multitasking),各個任務(wù)彼此合作共享一個CPU。中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。(1分)但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),直到該任務(wù)主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。(2分)
當系統(tǒng)響應(yīng)時間很重要時,要使用占先式(preemptive)內(nèi)核。(1分)最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當一個運行著的任務(wù)使一個比它優(yōu)先級高的任務(wù)進入了就緒態(tài),當前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務(wù)立刻得到了CPU的控制權(quán)。(2分)
18、什么是BootLoader,其主要功能是什么?
答:Boot Loader相當于普通pc機的BIOS,是在系統(tǒng)復位后執(zhí)行的第一段代碼。因此,整個系統(tǒng)的加載啟動任務(wù)就完全由Boot Loader來完成。它首先完成系統(tǒng)硬件的初始化,包括時鐘的設(shè)置、存儲器的映射等。并設(shè)置堆棧指針,然后跳轉(zhuǎn)到操作系統(tǒng)內(nèi)核入口,如系統(tǒng)在加電或復位時通常從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的Boot Loader程序。這樣,將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。在此之后,系統(tǒng)的運行在操作系統(tǒng)的控制下了。通常,Boot Loader 是嚴重地依賴于硬件而實現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的 Boot Loader 幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫?Boot Loader 歸納出一些通用的概念來,以指導用戶特定的 Boot Loader 設(shè)計與實現(xiàn)。
不同的嵌入式系統(tǒng)其Boot Loader一般是不同的。從操作系統(tǒng)的角度來看, Boot Loader的總目標就是正確地調(diào)用內(nèi)核來執(zhí)行。
另外,由于大多數(shù)Boot Loader都分為階段1和階段2兩部分。依賴于CPU的體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在階段1中,而且通常用匯編語言來實現(xiàn),以達到短小精悍的目的。而階段2通常用C語言來實現(xiàn),這樣可以實現(xiàn)一些復雜的功能,而且代碼會具有更好的可讀性和移植性。
19、什么是硬實時操作系統(tǒng)、軟實時操作系統(tǒng)以及二者的區(qū)別?
答:
在實時系統(tǒng)中,如果系統(tǒng)在指定的時間內(nèi)未能實現(xiàn)某個確定的任務(wù),會導致系統(tǒng)的全面失敗,這樣的系統(tǒng)被稱為強實時系統(tǒng)或硬實時系統(tǒng)。(1分)強實時系統(tǒng)響應(yīng)時間一般在毫秒或微秒級。(1分)
在弱實時系統(tǒng)中,雖然響應(yīng)時間同樣重要,但是超時卻不會發(fā)生致命的錯誤。(1分)
其系統(tǒng)響應(yīng)時間在毫秒至秒的數(shù)量級上,(1分)其實時性的要求比強實時系統(tǒng)要差一些。(2分)
20、多線程有幾種實現(xiàn)方法,線程間同步有幾種實現(xiàn)方法,都是什么?
答:
兩種實現(xiàn)方法,一種是繼承Thread,另外一種是實現(xiàn)接口Runnable。
同步的實現(xiàn)方法有兩種,分別是synchronized, wait與notify。用synchronized可以對一段代碼、一個對象及一個方法進行加鎖。用wait與notify可以使對象處于等待及喚醒方式導致同步,因為每個對象都直接或間接的繼承了Object類。
21、介紹一下嵌入式系統(tǒng)的設(shè)計步驟有哪些?各部分主要工作是什么?
答:
(1)需求分析階段,羅列出用戶的需求;(1分)
(2)體系結(jié)構(gòu)設(shè)計階段,描述系統(tǒng)的功能如何實現(xiàn);(1分)
(3)詳細設(shè)計階段,進行硬件系統(tǒng)與軟件系統(tǒng)的分類劃分,以決定哪些功能用硬件實現(xiàn),哪些用軟件實現(xiàn);(1分)
(4)系統(tǒng)集成,把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,(1分)進行調(diào)試,發(fā)現(xiàn)并改進在設(shè)計過程中的錯誤;(1分)
(5)系統(tǒng)測試,對設(shè)計好的系統(tǒng)進行測試,看其是否滿足給定的要求。(1分)
22、某/etc/fstab文件中的某行如下:
/dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2
請解釋其含義。
答:
(1)第一列:將被加載的文件系統(tǒng)名;
(2)第二列:該文件系統(tǒng)的安裝點;
(3)第三列:文件系統(tǒng)的類型;
(4)第四列:設(shè)置參數(shù);
(5)第五列:供備份程序確定上次備份距現(xiàn)在的天數(shù);
(6)第六列:在系統(tǒng)引導時檢測文件系統(tǒng)的順序。
23、ARM支持哪兩種數(shù)據(jù)存儲格式,簡單描述各自特點。
答:
分為大端格式和小端格式。(2分)
大端格式:被存放字數(shù)據(jù)的高字節(jié)存儲在存儲系統(tǒng)的低地址中,而被存放的字數(shù)據(jù)的低字節(jié)則存放在存儲系統(tǒng)的高地址中。(2分)
小端格式:與大端存儲格式相反,在小端存儲格式中,存儲系統(tǒng)的低地址中存放的是被放字數(shù)據(jù)中的低字節(jié)內(nèi)容,存儲系統(tǒng)的高地址存放的是被存字數(shù)據(jù)中的高字節(jié)內(nèi)容。(2分)
25、什么是BootLoader?主要有幾種工作模式及主要功能是什么?
答:
簡單說來,Bootloader就是操作系統(tǒng)內(nèi)核運行的一段小程序,完成進行初始化系統(tǒng)硬件設(shè)置的任務(wù),包括CPU、SDRRAM、Flash、串口等初始化,時鐘的設(shè)置、存儲器的映射。(2分)
分為啟動加載模式和下載模式。
(3) 啟動加載模式
啟動加載(Boot laoding)模式又稱為“自主”(Autonomous)模式,是指 Bootloader 從目標機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到 RAM 中運行,整個過程并沒有用戶的介入。(2分)
(4) 下載模式
在下載模式下,目標機上的 Bootloader 將先通過串口連接或網(wǎng)絡(luò)連接等通信手段從宿主機下載文件。(2分)
26、簡述進程的啟動方式。