




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第一章1什么是嵌入式系統(tǒng)?它由哪幾部分組成? 嵌入式系統(tǒng)是一應用為中心,以計算機技術(shù)為基礎,切軟硬件可裁減,對功能、可靠性、成本、體積、功 耗有嚴格要求的專用計算機系統(tǒng)。3個主要的組成部分:硬件、實時操作系統(tǒng)以及應用軟件。硬件:包括處理器、存儲器(ROM RAM、輸入輸出設備、其他部分輔助系統(tǒng)等。 實時操作系統(tǒng):用于管理應用軟件,并提供一種機制,使得處理器分時地執(zhí)行各個任務并完成一定的時限 要求 。應用軟件:實現(xiàn)具體業(yè)務邏輯功能2嵌入式系統(tǒng)的三要素是什么? 嵌入式系統(tǒng)的三要素是嵌入、專用、計算機。其中嵌入性指的是嵌入到對象體系中,有對象環(huán)境要求;專 用性是指軟、硬件按對象要求裁減;計算機指實現(xiàn)
2、對象的智能化功能。3列出 5中以上的嵌入式實時操作系統(tǒng)。 嵌入式實時操作系統(tǒng)是指操作系統(tǒng)本身要能在一個固定時限內(nèi)對程序調(diào)用(或外部事件)做出正確的反應 亦即對時序與穩(wěn)定性的要求十分嚴格4嵌入式系統(tǒng)一般由幾層組成?簡單介紹其作用。 嵌入式系統(tǒng)一般由硬件層、中間層、軟件層和功能層組成。:( 1 )硬件層 :由嵌入式微處理器、外圍電路和外設組成。(2)中間層 :硬件層與軟件層之間為中間層 . 作用:將系統(tǒng)軟件與底層硬件部分隔離,使得系統(tǒng)的底層設 備驅(qū)動程序與硬件無關(guān)。( 3)軟件層 :主要是操作系統(tǒng),有的還包括文件系統(tǒng)、圖形用戶接口和網(wǎng)絡系統(tǒng)等。作用:操作系統(tǒng)是 一個標準的內(nèi)核 將中斷、 I/O 、
3、定時器等資源都封裝起來,以方便用戶使用。( 4)功能層 :由基于操作系統(tǒng)開發(fā)的應用程序組成,用來完成對被控對象的控制功能。作用:功能層是 面向被控對象和用戶的,為了方便用戶操作,往往需要具有友好的人機界面。 5簡述嵌入式系統(tǒng)中非占先式與占先式調(diào)度法的區(qū)別。非占先式調(diào)度法也稱作合作型多任務,各個任務彼此合作共享一個 CPU中斷服務可以使一個高優(yōu)先級的任務由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務以后控制權(quán)還是回到原來被中斷了的那個任務,直到該任務主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務才能獲得CPU的使用權(quán)。當系統(tǒng)響應時間很重要時,要使用占先式( preemptive )內(nèi)核。最高優(yōu)先級的任務一旦就
4、緒總能得到 CPU 的控制權(quán)。當一個運行著的任務使一個比它優(yōu)先級高的任務進入了就緒態(tài),當前任務的 CPU 使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu) 先級的任務立刻得到了 CPU 的控制權(quán)。6簡述什么是硬實時操作系統(tǒng)、軟實時操作系統(tǒng)以及兩者的區(qū)別。 在實時系統(tǒng)中,如果系統(tǒng)在指定的時間內(nèi)未能實現(xiàn)某個確定的任務,會導致系統(tǒng)的全面失敗,這樣的系統(tǒng) 被稱為強實時系統(tǒng)或硬實時系統(tǒng)。強實時系統(tǒng)響應時間一般在毫秒或微秒級。在弱實時系統(tǒng)中,雖然響應 時間同樣重要,但是超時卻不會發(fā)生致命的錯誤。其系統(tǒng)響應時間在毫秒至秒的數(shù)量級上,其實時性的要 求比強實時系統(tǒng)要差一些。7嵌入式系統(tǒng)的設計步驟有哪些?各部分主要工作
5、是什么? 嵌入式系統(tǒng)的設計步驟及各部分的主要工作如下。(1)需求分析階段,羅列出用戶的需求。( 2)體系結(jié)構(gòu)設計階段,描述系統(tǒng)的功能如何實現(xiàn)。3)詳細設計階段,進行硬件系統(tǒng)與軟件系統(tǒng)的分類劃分,以決定哪些功能用硬件實現(xiàn),哪些用軟件實現(xiàn)。(4)系統(tǒng)集成 把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進行調(diào)試,發(fā)現(xiàn)并改進在設計過程中的錯誤。5)系統(tǒng)測試 對設計好的系統(tǒng)進行測試 看其是否滿足給定的要求。8.Linux 作為嵌入式操作系統(tǒng)的優(yōu)勢有哪些?(1)可應用于多種硬件平臺。 Linux 已經(jīng)被移植到多種硬件平臺,這對于經(jīng)費、時間受限制的研究與開發(fā) 項目是很有吸引力的。原型可以在標準平臺上開發(fā)后移植到
6、具體的硬件。( 2) Linux 的高度模塊化使添 加部件非常容易。本身內(nèi)置網(wǎng)絡支持,而目前嵌入式系統(tǒng)對網(wǎng)絡支持要求越來越高。( 3)Linux 是一個和Unix 相似、以內(nèi)核為基礎的、具有完全的內(nèi)存訪問控制,支持大量硬件等特性的一種通用操作系統(tǒng)。(4)Linux 可以隨意地配置,不需要任何的許可證或商家的合作關(guān)系。其程序源碼全部公開,這樣開發(fā)人員可 以對操作系統(tǒng)進行定制,適應其特殊需要。(5) Linux 帶有 Unix 用戶熟悉的完善的開發(fā)工具不但成熟完善,9簡述 Linux 需要進行進程調(diào)度的時機。Linux 執(zhí)行進程調(diào)度一般是在以下情況發(fā)生的:(1)正在執(zhí)行的進程運行完畢。(2)正在執(zhí)
7、行的進程調(diào)用阻塞原語將自己阻塞起來進入等待狀態(tài)。(3)正在執(zhí)行的進程調(diào)用了 P 原語操作 從而因資源不足而被阻塞, 或調(diào)用了 V 原語操作激活了等待資源 的進程隊列。( 4 )執(zhí)行中的進程提出 I/O 請求后被阻塞。(5) 系統(tǒng)分配的時間片已經(jīng)用完。以上都是CPU為不可剝奪方式下的引起進程調(diào)度的原因。在CPU方式是可剝奪時 還有下面的原因:(6)就緒隊列中的某個進程的優(yōu)先級變得高于當前運行進程的優(yōu)先級,從而也將引起進程調(diào)度。 第三章二、綜合應用題1、 已知C語言程序有主要程序模塊 prog.c、proc.h,其中調(diào)用了另一模塊subr.c、subr.h中的功能。試寫 出一個可將這兩個模塊編譯成
8、可執(zhí)行文件pr1的Makefile。pr1:prog.o subr.ogcc - o pr1 prog.o subr.oprog.o:prog.c prog.hgcc - c - o prog.o prog.csubr.o:subr.c subr.hgcc - c - o subr.o subr.c2、假定目錄/home/arm下有一個C語言程序,它由幾個單獨的文件組成,而這幾個文件又分別包含了其他文 件,如下表所示。完成下列任務(1 ) 編寫 Makefile 文件,最終的目標文件為 hello ,交叉編譯器為 arm-linux-gcc 。hello:main.o list.o symbo
9、l.o table.oarm-linux-gcc - o hello main.o list.o symbol.o table.omain.o:main.c stdio.h table.h symbol.h list.harm-linux-gcc -c - o main.o main.clist.o:list.c list.h arm-linux-gcc - c - o list.o list.c symbol.o:symbol.c symbol.h arm-linux-gcc - c - o symbol.o symbol.c table.o:table.c table.h symbol.h
10、 list.h arm-linux-gcc - c - o table.o table.c clear: rm - f hello *.o( 2 )在目標機上通過網(wǎng)絡文件系統(tǒng)掛載 /mnt 到宿主機上的 /home/arm 目錄。mount - t nfs - o nolock IP 地址:/home/arm /mnt3. 在Linux操作系統(tǒng)下,編程實現(xiàn)以下功能。(1) 主程序 hello.c( 打印“ hello world! ”)。(2) 主程序通過頭文件hello.h調(diào)用message函數(shù)。(3) message函數(shù)有 message.c 定義(打印“ This is a messag
11、e! ”)。/hello.h#ifndef HELLO_H#define HELLO_Hvoid message();#endif/message.c#include#include ” hello.h ”void message()printf( “this is a message! ” );/hello.c#include#include#include#include ” hello.h ”void main(int argc,char *argv)printf( “hello world!n” );message(); return 0; 第六章一簡答題1、何為虛擬內(nèi)存?虛擬內(nèi)存的管
12、理有何作用?使用虛擬地址尋址整個系統(tǒng)的主存和輔存的方式在現(xiàn)代操作系統(tǒng)中被稱為虛擬內(nèi)存。MMU便是實現(xiàn)虛擬內(nèi)存的必要條件。嵌入式處理器如果存在MMU,由于在MMUM備內(nèi)存地址映射和尋址功能,操作系統(tǒng)會使用它完成從虛擬地址到物理地址的轉(zhuǎn)換, 所有的應用程序只需要使用虛擬地址尋址數(shù)據(jù)。 虛擬內(nèi)存的管理 方法使系統(tǒng)既可以運行體積比物理內(nèi)存還要大的應用程序,也可以實現(xiàn)“按需調(diào)頁”策略,既滿足了程序 的運行速度,又節(jié)約了物理內(nèi)存空間。2、進程內(nèi)存區(qū)域涉及哪幾種數(shù)據(jù)段? 進程內(nèi)存區(qū)域涉及到 5 種數(shù)據(jù)段,即: 碼段:代碼段是用來存放可執(zhí)行文件的操作指令,也就是說是它是可執(zhí)行程序在內(nèi)存中的鏡像。數(shù) 據(jù)段:數(shù)據(jù)
13、段用來存放可執(zhí)行文件中已初始化全局變量,換句話說就是存放程序靜態(tài)分配的變量和全局變量。BSS段:BSS段包含了程序中未初始化的全局變量,在內(nèi)存中BSS段全部置零。堆:堆是用于存放進程運行中被動態(tài)分配的內(nèi)存段,它的大小并不固定,可動態(tài)擴張或縮減。棧:棧是用戶存放程序臨 時創(chuàng)建的局部變量,也就是說函數(shù)括弧“ ”中定義的變量除此以外,在函數(shù)被調(diào)用時,其參數(shù)也會被壓 入發(fā)起調(diào)用的進程棧中,并且待到調(diào)用結(jié)束后,函數(shù)的返回值也會被存放回棧中。3、簡述內(nèi)核空間和用戶空間的區(qū)別。在Linux系統(tǒng)中,內(nèi)核在最高級執(zhí)行,也稱為“系統(tǒng)態(tài),在這一級任何操作都可以執(zhí)行。而應用程序則 執(zhí)行在最低級,即所謂的“用戶態(tài)”。在
14、這一級處理器禁止對硬件的直接訪問和對內(nèi)存的未授權(quán)訪問。模 塊是在所謂的“內(nèi)核空間”中運行的,而應用程序則是在“用戶空間”中運行的。它們分別引用不同的內(nèi) 存映射,也就是程序代碼使用不同的“地址空間”。4、簡述共享內(nèi)存的作用? 共享內(nèi)存區(qū)域是被多個進程共享的一部分物理內(nèi)存。如果多個進程都把該內(nèi)存區(qū)域映射到自己的虛擬地址 空間,則這些進程就都可以直接訪問該共享內(nèi)存區(qū)域,從而可以通過該區(qū)域進行通信。共享內(nèi)存是進程間 共享數(shù)據(jù)的一種最快的方法,一個進程向共享內(nèi)存區(qū)域?qū)懭肓藬?shù)據(jù),共享這個內(nèi)存區(qū)域的所有進程就可以 立刻看到其中的內(nèi)容。這塊共享虛擬內(nèi)存的頁面,出現(xiàn)在每一個共享該頁面的進程的頁表中。但是它不需
15、要在所有進程的虛擬內(nèi)存中都有相同的虛擬地址。5、簡述內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系。內(nèi)存管理利用虛擬文件系統(tǒng)支持交換, 交換進程 (swapd) 定期由調(diào)度程序調(diào)度, 這也是內(nèi)存管理依賴 于進程調(diào)度的唯一原因。當一個進程存取的內(nèi)存映射被換出時,內(nèi)存管理向文件系統(tǒng)發(fā)出請求,同時掛起 當前正在運行的進程。第七章二、編程題1、用C語言編寫一個源程序 main.c,實現(xiàn)以下功能。(1 )打開當前目錄下的文件“ test.txt ”,如果沒有則創(chuàng)建該文件,并使其具體讀寫屬性。Void main(void)int fid;fid = open( “./test.txt”,O_RDWR|O_CREAT);
16、if(fid=-1) Printf( “open or create errorn”);exit(0); Close(fid); (2)編寫一個 makefile 實現(xiàn)自動編譯,生成可執(zhí)行文件 main 。objects = main.oexec = mainall:$(objects)gcc - o $(exec) $(objects)main.o:main.cgcc - c main.cclean:rm - r $(exec) $(objects)2、編寫一個程序?qū)崿F(xiàn)把一個文件內(nèi)容復制到另一個文件中。2. 參考程序 :#include #include #include #include
17、#include #include #define BUFFER_SIZE 1024int main(int argc,char *argv)int from_fd,to_fd;int bytes_read,bytes_write;char bufferBUFFER_SIZE;char *ptr;if(argc!=3) fprintf(stderr,Usage:%s fromfile tofilena,argv0);exit(1);/* 打開源文件 */ if(from_fd=open(argv1,O_RDONLY)=-1) fprintf(stderr,Open %s Error:%sn,a
18、rgv1,strerror(errno); exit(1); /* 創(chuàng)建目的文件 */ if(to_fd=open(argv2,O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR)=-1) fprintf(stderr,Open %s Error:%sn,argv2,strerror(errno);exit(1);/* 以下代碼是一個經(jīng)典的拷貝文件的代碼 */ while(bytes_read=read(from_fd,buffer,BUFFER_SIZE)發(fā)生讀錯誤 ,退出循環(huán) */若寫錯誤 ,退出循環(huán) */讀寫字節(jié)不等退出循環(huán) */if(bytes_read=-1)&(err
19、no!=EINTR) break; /* else if(bytes_read0) ptr=buffer;while(bytes_write=write(to_fd,ptr,bytes_read) if(bytes_write=-1)&(errno!=EINTR)break; /* /* 寫完了所有讀的字節(jié) */ else if(bytes_write=bytes_read) break;/* else if(bytes_write0) /* 只寫了一部分 , 繼續(xù)寫 */ ptr+=bytes_write;bytes_read-=bytes_write; if(bytes_write=-1)
20、break; /*寫的時候發(fā)生的致命錯誤 */ close(from_fd); close(to_fd); exit(0);4、從鍵盤上輸入兩個學生的基本信息,然后寫入一個到文件中,最后讀出這兩個學生的數(shù)據(jù),并顯示在 屏幕上#include struct student char name10;int age; ;int main() FILE *fp;int i;struct student boya2, boyb2, *pp, *qq;if(fp = fopen(7-6.txt,w+)= NULL) /打開文件printf(Can not open file, exit .n);retur
21、n -1; pp = boya;qq = boyb;printf(please input data:n); /輸入學生信息 for (i = 0; i name, &pp-age);pp = boya;fwrite(pp, sizeof(struct student), 2, fp); /把學生信息寫入文件rewind(fp); / 重定位文件fread(qq, sizeof(struct student), 2, fp); /從文件中讀取學生信息printf(namettagen);for(i = 0; i name, qq-age);fclose(fp);return 0;4、編寫一個對
22、文件加寫入鎖的程序。寫入鎖是互斥鎖,一個時刻只能有一個寫入鎖存在。并在兩個終端分 別運行,驗證先運行的那個終端能成功上鎖,后運行的那個無效。/*fcntl_write.c 測試文件寫入鎖主函數(shù)部分 */#i nclude unistd.h#i nclude sys/file.h#i nclude sys/types.h#i nclude sys/stat.h#i nclude stdio.h#i nclude stdlib.h/*lock_set 函數(shù) */void lock_set(int fd, int type)struct flock lock;lock.l_whence = SEEK
23、_SET;/ 賦值 lock 結(jié)構(gòu)體 lock.l_start = 0;lock.l_len =0;while(1) lock.l_type = type;/* 根據(jù)不同的 type 值給文件上鎖或解鎖 */ if(fcntl(fd, F_SETLK, &lock) = 0)if( lock.l_type = F_RDLCK ) printf(read lock set by %d/n,getpid();else if( lock.l_type = F_WRLCK ) printf(write lock set by %d/n,getpid();else if( lock.l_type = F
24、_UNLCK ) printf(release lock by %d/n,getpid(); return;/* 判斷文件是否可以上鎖 */ fcntl(fd, F_GETLK,&lock);/* 判斷文件不能上鎖的原因 */ if(lock.l_type != F_UNLCK) /*/ 該文件已有寫入鎖 */if( lock.l_type = F_RDLCK )printf(read lock already set by %d/n,lock.l_pid); /* 該文件已有讀取鎖 */else if( lock.l_type = F_WRLCK )printf(write lock alr
25、eady set by %d/n,lock.l_pid); getchar(); int main(void) int fd;/* 首先打開文件 */ fd=open(hello,O_RDWR | O_CREAT, 0666); if(fd 0)perror(open);exit(1);/* 給文件上寫入鎖 */ lock_set(fd, F_WRLCK); getchar();/* 給文件接鎖 */ lock_set(fd, F_UNLCK); getchar(); close(fd);exit(0); 第八章三、編程題1、編程創(chuàng)建一個特定的IPC結(jié)構(gòu)的關(guān)鍵字和一個信號量,建立此信號量的索引
26、,修改索引指向的信號量的 值,最后清除信號量(注:利用函數(shù) frok生成上文所說的唯一 IPC關(guān)鍵字。)void main() key_t unique_key; /* 定義一個 IPC 關(guān)鍵字 */int id;struct sembuf lock_it;union semun options;int i;unique_key = ftok(., a); /*生成關(guān)鍵字 字符 a 是一個隨機種子 */* 創(chuàng)建一個新的信號量集合 */id = semget(unique_key, 1, IPC_CREAT | IPC_EXCL | 0666);printf(semaphore id=%dn,
27、id);options.val = 1; /* 設置變量值 */semctl(id, 0, SETVAL, options); /*設置索引 0 的信號量 */* 打印出信號量的值 */i = semctl(id, 0, GETVAL, 0);printf(value of semaphore at index 0 is %dn, i);/* 下面重新設置信號量 */lock_it.sem_num = 0; /* 設置哪個信號量 */lock_it.sem_op = -1; /* 定義操作 */lock_it.sem_flg = IPC_NOWAIT; /*操作方式 */if (semop(i
28、d, &lock_it, 1) = -1) printf(can not lock semaphore.n);exit(1);i = semctl(id, 0, GETVAL, 0); printf(value of semaphore at index 0 is %dn, i); /* 清除信號量 */ semctl(id, 0, IPC_RMID, 0);/temp2、守護進程編程。 守護進程實例包括兩部分: 主程序 test.c 和初始化程序 init.c 。主程序每隔一分鐘向 目錄的日志 test.log 報告運行狀態(tài);初始化程序中的 init_daemon 函數(shù)負責生成守護進程??梢?/p>
29、利用 init_daemon 函數(shù)生成自己的守護進程。void init_daemon( void )int pid; int i;if (pid=fork()exit(0); / 是父進程,結(jié)束父進程else if (pid 0)exit(1); /fork 失敗,退出setsid();if (pid=fork()exit(0); / 是第一子進程,結(jié)束第一子進程else if (pid 0)exit(1); /fork 失敗,退出for (i= 0;i NOFILE;+i) / 關(guān)閉打開的文件描述符 close(i);chdir( /tmp ); / 改變工作目錄到 /tmp umask(
30、 0); / 重設文件創(chuàng)建掩模return ; 2 test.c 清單#include #include void init_daemon( void ); / 守護進程初始化函數(shù) main() FILE *fp;time_t t;init_daemon(); / 初始化為 Daemonwhile ( 1)/ 每隔一分鐘向 test.log 報告運行狀態(tài) sleep( 60); / 睡眠一分鐘 if (fp=fopen( test.log , a ) = 0) t=time(0);fprintf(fp,Im here at %sn ,asctime(localtime(&t) );fclose
31、(fp); 3、編程實現(xiàn)父進程和子進程間的通信。程序包括:創(chuàng)建無名管道、子進程向父進程寫數(shù)據(jù)及關(guān)閉管道的讀 端、父進程從管道讀取子進程寫的數(shù)據(jù)及關(guān)閉管道的寫端、讀有名管道和寫有名管道。void main() int file_descriptors2;/* 定義子進程號 */pid_t pid;char buf256; int returned_count;/* 創(chuàng)建無名管道 */ pipe(file_descriptors);/* 創(chuàng)建子進程 */ if(pid = fork() = -1) printf(Error in forkn);exit(1);/* 執(zhí)行子進程 */if(pid =
32、 0) printf(in the spawned (child) process.n);/* 子進程向父進程寫數(shù)據(jù) 關(guān)閉管道的讀端 */ close(file_descriptorsINPUT);write(file_descriptorsOUTPUT, test data, strlen(test data);exit(0); else /* 執(zhí)行父進程 */printf(in the spawning (parent) process.n);/* 父進程從管道讀取子進程寫的數(shù)據(jù) 關(guān)閉管道的寫端 */ close(file_descriptorsOUTPUT);returned_count
33、 = read(file_descriptorsINPUT, buf, sizeof(buf); printf(%d bytes of data received from spawned process: %sn, returned_count, buf);在 Linux 系統(tǒng)下,有名管道可由兩種方式創(chuàng)建,命令行方式 mknod 系統(tǒng)調(diào)用和函數(shù) mkfifo 。 下面的兩種途徑都在當前目錄下生成了一個名為 myfifo 的有名管道, 方式一, mkfifo(myfifo,rw);方式二, mknod myfifo p生成了有名管道后,就可以使用一般的文件 I/O 函數(shù)如 open、close
34、 、 read 、write 等來對它 進行操作。下面即是一個簡單的例子,假設我們已經(jīng)創(chuàng)建了一個名為 myfifo 的有名管道。/* 進程一,讀有名管道 */#define INPUT 0#define OUTPUT void main() FILE * in_file; int count = 1;char buf80; in_file = fopen(mypipe, r); if (in_file = NULL) printf(Error in fdopen.n); exit(1);while (count = fread(buf, 1, 80, in_file) 0) printf(re
35、ceived from pipe: %sn, buf); fclose(in_file);/* 進程二,寫有名管道 */#include#include void main() FILE * out_file; int count = 1; char buf80;out_file = fopen(mypipe, w); if (out_file = NULL) printf(Error opening pipe.); exit(1);sprintf(buf,this is test data for the named pipe examplen); fwrite(buf, 1, 80, ou
36、t_file);fclose(out_file); 第十章3預處理、編譯、匯編和連接4. step next1、下列提法中,屬于 ifconfig 命令作用范圍的是( B)B、配置網(wǎng)卡的IP地址2、在FTP協(xié)議中,控制連接是由(B)主動建立的。B、客戶端3、當與某遠程網(wǎng)絡連接不上時,需要跟蹤路由查看,以便了解在網(wǎng)絡的什么位 置出現(xiàn)了問題,滿足該目的命令是( traceroute )。5、局域網(wǎng)的網(wǎng)絡地址 /24 ,局域網(wǎng)絡連接其它網(wǎng)絡的網(wǎng)關(guān)地址是 。主機0 訪問/24 網(wǎng)絡時,其路由設置正確的是( B )。B
37、) route add - net gw netmask 55 metric 1 5、如果想配置一臺匿名FTP服務器,應修改(/etc/ftpusers )。& 要配置NFS艮務器,在服務器端主要配置(/etc/exports )文件。7、在TCP/IP模型中,應用層包含了所有的高層協(xié)議,在下列的一些應用協(xié)議中, (B)能夠?qū)崿F(xiàn)本地與遠程主機之間的文件傳輸工作。B 、 Ftp 8、DNS域名系統(tǒng)主要負責主機名和(IP地址)之間的解析。10、請選擇正確的命令( B) ,完成加載 NFS Server svr.server.n
38、et 的 /home/nfs 到 /home2。B.、 mount -t -s nfs /home/nfs /home2三、選擇題1、一般可以用(make實現(xiàn)自動編譯。2假使當前目錄下有文件 Makefile, 其內(nèi)容如下?,F(xiàn)在執(zhí)行命令 make clear, 實際 執(zhí)行的命令是(rm - f pr1 *.o)。3、嵌入式系統(tǒng)應用軟件一般在宿主機上開發(fā),在目標機上運行,因此需要的一 個(交叉編譯)環(huán)境。4、假設用 vi 編輯器編寫了一個腳本文件 shell.sh, 現(xiàn)想將該文件名稱修改為 shell2.sh ,( mv shell.sh shell2.sh )命令
39、可以實現(xiàn)。5、在使用GC編輯器的過程中,(-o)選項可用來指定生成的目標文件名。6、假設當前目錄下有文件 Makefile, 其內(nèi)容如下。現(xiàn)在執(zhí)行命令 make subr.o , 實際執(zhí)行的命令是(gcc - c - o subr.o subr.c )。7、 為了使生成的目標文件能夠用于 GD調(diào)試,在編譯時GC應使用(-g)選項。8、存盤并退出 vi 的指令是( wq)。9、在Linux下使用GC編譯器時,有命令gcc - g test.c - o test,其中參數(shù)-g 的作用是(生成文件包含調(diào)試信息)。10、fstab 文件存放在( /ect )目錄中。11、init 啟動進程需要讀取(
40、/etc/inittab )配置文件。 第四章1. LINUX 支持網(wǎng)絡文件系統(tǒng) NFS, (mount -t nfs 192.168.14/opt/sirnfs/mnt/sirnfs )命令實現(xiàn)了將位于 機器上的 /opt/sirnfs 目錄掛載 到本機 /mnt/sirnfs 下。2. 以下敘述中正確的是( C)C、在嵌入式系統(tǒng)開發(fā)中,通常采用的是交叉編譯器。3. 以下做法不利于嵌入式應用軟件的移植的是D 。D)在數(shù)據(jù)類型上,盡量直接使用C語言的數(shù)據(jù)類型4. 如果Boot Loader、內(nèi)核、啟動參數(shù)以及其他的系統(tǒng)映像四部分在固態(tài)存儲設 備上分別獨立存放,則其存儲結(jié)
41、構(gòu)的分配順序應當是( Bootloader 、啟動參數(shù)、 內(nèi)核、文件系統(tǒng))。5. Boot Loader的stage2通常使用C語言實現(xiàn),以完成復雜的功能,并增加可讀 性和可移植性,以下哪一步驟屬于stage2的內(nèi)容:(D)D . 將 kernel 映像和根文件系統(tǒng)映像從 flash 上讀到 RAM 空間中&在Linux 2.4或者2.6內(nèi)核中,和AR體系結(jié)構(gòu)相關(guān)的中斷處理程序的 C代碼在 源碼樹的 (arch/arm/kernel/irq.c) 文件中7、 下面對于BootLoader的描述不正確的是(C)C、BootLoader的兩種模式對開發(fā)人員沒有意義8、( make menuconfig)命令以文本菜單方式界面配置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國嵌入標志燈數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國不銹鋼立式氧氣瓶推車數(shù)據(jù)監(jiān)測研究報告
- 河北省衡水市阜城實驗中學2024-2025學年高一下學期3月月考物理試題(含答案)
- 2019-2025年軍隊文職人員招聘之軍隊文職法學通關(guān)題庫(附答案)
- 遵守紀律合同范本(2篇)
- 健康產(chǎn)業(yè)智能化醫(yī)療設備研發(fā)方案設計
- 《化學元素周期表制作技巧分享》
- 小學生動物故事集征文
- 設計迭代流程圖表
- 基于物聯(lián)網(wǎng)技術(shù)的農(nóng)產(chǎn)品供應鏈管理優(yōu)化方案
- 英語-山東省日照市2022級(2025屆)高三校際聯(lián)合考試(日照一模)試題和答案
- 《莫奈《睡蓮》主題課件》
- 課件:2025春季開學第一課:哪吒精神點燃斗志
- 2025年02月麗江師范學院(麗江師范高等??茖W校)第一批人員20人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- DBJ41T 189-2017 地下連續(xù)墻檢測技術(shù)規(guī)程
- 中央2025年中國作家協(xié)會所屬單位招聘11人筆試歷年參考題庫附帶答案詳解
- 2025年1月浙江省高考生物試卷(含答案)
- 2024年上半年教師資格證《高中數(shù)學》真題及答案
- 人教版八年級數(shù)學下冊全冊教案(完整版)教學設計
- 電機零部件中英文對照表
- GB_T 12736-2021 輸送帶 機械接頭強度的測定 靜態(tài)試驗方法(高清-現(xiàn)行)
評論
0/150
提交評論