下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、linux與嵌入式通信系統(tǒng)復(fù)習(xí)大綱1. 簡述嵌入式系統(tǒng)的概念、組成、特點(diǎn)及發(fā)展趨勢。概念:嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置”以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是以嵌入式應(yīng)用為目的的計(jì)算機(jī)系統(tǒng)。可分為系統(tǒng)級、板級、片級組成:硬件:存儲器、處理器、外圍電路 軟件:操作系統(tǒng)各應(yīng)用程序特點(diǎn):系統(tǒng)內(nèi)核?。ǎS眯詮?qiáng)()系統(tǒng)精簡()高實(shí)時(shí)性os(5)嵌入式軟件開發(fā)走向標(biāo)準(zhǔn)化(6)嵌入式系統(tǒng)需要開發(fā)工具和環(huán)境發(fā)展趨勢:軟件設(shè)計(jì)比重日益突出(軟件開發(fā)特點(diǎn):實(shí)時(shí)性、模塊化、組件化、可重用)、組件設(shè)計(jì)技術(shù)、s
2、oc、硬件軟件化;宏觀方面經(jīng)濟(jì)性、小型化、可靠性、高速度、智能性益突出 組件設(shè)計(jì)技術(shù) soc 硬件軟件化2. 簡述嵌入式處理器的分類和各自特點(diǎn)。嵌入式微控制器(mcu):微控制器的片上外設(shè)資源一般比較豐富,適合于控制,是目前嵌入式系統(tǒng)工業(yè)的主流;最大特點(diǎn)是單片化,體積大大減小,從而使功耗和成本下降,可靠性提高;嵌入式dsp處理器微(dsp):專門用于信號處理方面的處理器,其在系統(tǒng)結(jié)構(gòu)和指令算法方面進(jìn)行了特殊的設(shè)計(jì),在數(shù)字濾波、fft頻譜分析等各種儀器上獲得了大規(guī)模的應(yīng)用。嵌入式微處理器(mpu):具有體積小、重量輕、成本低、可靠性高的優(yōu)點(diǎn)嵌入式片上系統(tǒng)(system on chip):是一種電
3、路系統(tǒng)、結(jié)合了許多功能區(qū)塊,將多種功能做在一個芯片上;利用改變內(nèi)部工作電壓,降低芯片功耗;減少芯片對外管腳數(shù),簡化制造過程;養(yǎng)活外圍驅(qū)動接口單元及電路板之間的信號傳遞,可以加快微處理器數(shù)據(jù)處理的速度;內(nèi)嵌的線路可以避免外部電路板在信號傳遞時(shí)所造成的系統(tǒng)雜訊。的片上外設(shè)資源一般比較豐富,適合于控制,是目前嵌入式系統(tǒng)工業(yè)的主流。微控制器的片上外設(shè)資源一般比較豐富3. 舉例說明常見的嵌入式操作系統(tǒng)及特點(diǎn)。vxworks:可靠性、實(shí)時(shí)性、可裁減性;支持多種處理器;有良好的持續(xù)發(fā)展能力,高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境。windows embedded:針對掌上設(shè)備、無線設(shè)備的動態(tài)應(yīng)用程序和服務(wù)提供了
4、一種功能豐富的操作系統(tǒng)平臺。但windowsce嵌入不夠?qū)崟r(shí),屬于軟實(shí)時(shí)操作系統(tǒng)。界面比較統(tǒng)一palm os:專用于pda上的一種32位嵌入式操作系統(tǒng)、操作界面采用觸控式,本身所占的內(nèi)存極小,不具有錄音、mp3播放功能嵌入式linux:開放源碼,不存在黑箱技術(shù);內(nèi)核少、功能強(qiáng)大、運(yùn)行穩(wěn)定、系統(tǒng)健壯、效率高、易于定制剪裁4. 簡述嵌入式系統(tǒng)的開發(fā)流程。一、嵌入式系統(tǒng)的開發(fā)流程:需求分析和概要設(shè)計(jì);硬件系統(tǒng)選型和設(shè)計(jì);軟件系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn);開發(fā)調(diào)試及測試;嵌入式系統(tǒng)量產(chǎn)。建立開發(fā)環(huán)境;配置開發(fā)主機(jī);建立引導(dǎo)裝載程序bootloader;下載已經(jīng)移植好的linux操作系統(tǒng);建立根文件系統(tǒng);建立應(yīng)用程序
5、的flash磁盤分區(qū);開發(fā)應(yīng)用程序;燒寫內(nèi)核。二、因此開發(fā)流程如下: 1、開發(fā)target硬件系統(tǒng)。 2、需要一套交叉編譯工具,能夠產(chǎn)生target目標(biāo)代碼 3、開發(fā)一個bootloader到target上去,用來引導(dǎo)內(nèi)核 4、開發(fā)linux內(nèi)核到target上去 5、開發(fā)一個rootfs 6、開發(fā)特定硬件的驅(qū)動程序 7、或許還需要一個實(shí)時(shí)的linux 8、開發(fā)上層的應(yīng)用程序。5.什么是eia,它有什么特點(diǎn)?eia(embedded intel architecture)嵌入式英特爾架構(gòu))eia處理器,芯片組,軟件項(xiàng)目,和其他積木幫助提供的組合性能,可擴(kuò)展性,和軟件的一基于升級,以滿足未來一代
6、網(wǎng)絡(luò)不斷增長的需求,在osi應(yīng)用服務(wù)層的多層次需要的。eia處理器提供電源處理計(jì)算密集型的控制操作,包括服務(wù)和應(yīng)用服務(wù)層,如路由和信令協(xié)議,策略控制,服務(wù)質(zhì)量qos和安全所需的功能。6. 南北橋片的功能是什么,選擇芯片組的主要原則有哪些?北橋芯片:負(fù)責(zé)與cpu的聯(lián)系并控制內(nèi)存, agp、pci數(shù)據(jù)在北橋內(nèi)部傳輸,提供對cpu的類型和主頻,系統(tǒng)的前端總線頻率,內(nèi)存的類型和最大容量、isa/pci/agp插槽、ecc糾錯等支持,還集成了顯示核心。南橋芯片:負(fù)責(zé)i/o總線之間的通信,如pci總線、usb、lan、ata、sata、音頻控制器、鍵盤控制器,實(shí)時(shí)時(shí)鐘控制器,高級電源管理等選擇芯片組的主要
7、原則有哪些:芯片組性能的優(yōu)劣,決定了主板性能的好壞與級別的高低。目前cpu的型號與種類繁多、功能特點(diǎn)不一,如果芯片組不能與cpu良好地協(xié)同工作,將嚴(yán)重地影響計(jì)算機(jī)的整體性能甚至不能正常工作。 其中cpu的類型、主板的系統(tǒng)總線頻率,內(nèi)存類型、容量和性能,顯卡插槽規(guī)格是由芯片組中的北橋芯片決定的;擴(kuò)展槽的種類與數(shù)量、擴(kuò)展接口的類型和數(shù)量(如usb2.0/1.1,ieee1394,串口,并口,筆記本的vga輸出接口)等,是由芯片組的南橋決定的;還有些芯片組由于納入了3d加速顯示(集成顯示芯片)、ac97聲音解碼等功能,還決定著計(jì)算機(jī)系統(tǒng)的顯示性能和音頻播放性能等。 7. 操作系統(tǒng)的作用、功能、結(jié)構(gòu)及
8、特性。作用: 隱藏硬件特性,提供等價(jià)的虛擬機(jī),便于用戶開發(fā)的使用功能: 資源管理器,負(fù)責(zé)計(jì)算機(jī)系統(tǒng)的全部資源的分配、控制、調(diào)度和回收。結(jié)構(gòu):特性:并發(fā)性(兩個或者兩個以上的時(shí)間或活動在同一時(shí)間間隔內(nèi)發(fā)生) 共享性 (資源可以被多個并發(fā)的進(jìn)程使用,分為互斥訪問和同時(shí)訪問) 異步性(命令作業(yè)隨機(jī),錯誤隨機(jī)、中斷隨機(jī)) 虛擬性(把物理上一個實(shí)體變成邏輯上的多個對應(yīng)物或把物理上多個尸實(shí)體變成邏輯上的一個對應(yīng)物)8. 簡述linux的主要特點(diǎn),它與其它操作系統(tǒng)的區(qū)別是什么?主要特點(diǎn):開放性、多用戶、多任務(wù)、良好的用戶界面、設(shè)備獨(dú)立性、提供了豐富的網(wǎng)絡(luò)功能、可靠的系統(tǒng)安全、良好的可移植性、相對比較不耗系統(tǒng)
9、資源與其它系統(tǒng)的區(qū)別:(1)linux 與msdos:ms-dos沒有完全實(shí)現(xiàn)x86處理器的功能,而linux完全全在處理器保模式下運(yùn)行,并且開發(fā)了處理器的所有特性; linux可以直接訪問計(jì)算機(jī)內(nèi)的所有可用內(nèi)存,提供完整的unix接口,而ms-dos只支持部分unix接口;ms-dos是單任務(wù)操作系統(tǒng)。(2)linux 與os/2 、windows 、windows nt:linux是從一個比較成熟的操作系統(tǒng)發(fā)展而來的,而其它操作系統(tǒng),都是自成體系,無對應(yīng)的相依托的操作系統(tǒng);linux是一種開放、免費(fèi)的操作系統(tǒng),而其它操作系統(tǒng)都是封閉的系統(tǒng),需要有償使用9. 簡述linux的體系結(jié)構(gòu)及各部分
10、的功能。linux體系結(jié)構(gòu):l i n u x操作系統(tǒng)由4個主要的子系統(tǒng)所組成:用戶應(yīng)用程序在某個特定的l i n u x系統(tǒng)上運(yùn)行的應(yīng)用程序集合,它將隨著該計(jì)算機(jī)系統(tǒng)的用途不同而有所變化,但一般會包括文字處理應(yīng)用程序和web瀏覽器。o / s服務(wù)這些服務(wù)一般認(rèn)為是操作系統(tǒng)的一 部分 (x window系統(tǒng),命令外殼程序shell等等);此外,內(nèi)核的編程接口(編譯工具和庫)也屬于這個子系統(tǒng)。l i n u x內(nèi)核包括內(nèi)核抽象和對硬件資源(如c p u)的間接訪問。硬件控制器這個子系統(tǒng)包含在l i n u x實(shí)現(xiàn)中所有可能的物理設(shè)備,例如,c p u、內(nèi)存硬件、硬盤以及網(wǎng)絡(luò)硬件等都是這個系統(tǒng)的成
11、員。各部分的功能:內(nèi)核:在硬件方面,kernel負(fù)責(zé)控制電腦的硬件裝置、內(nèi)存管理以及提供完整的硬件接口與應(yīng)用程序溝通(系統(tǒng)啟動和初始化,硬件的驅(qū)動程序);在軟件方面,kernel負(fù)責(zé)管理文件系統(tǒng)、對正在運(yùn)行的程序作內(nèi)存管理與調(diào)整,并進(jìn)行進(jìn)程管理(內(nèi)存管理,進(jìn)程管理,中斷處理,文件系統(tǒng)等)shell:shell提供了一個內(nèi)核與用戶之間的界面,是一種作為用戶和操作系統(tǒng)之間的接口的命令解釋程序。硬件平臺:它是整個系統(tǒng)的實(shí)體工作者,是其他部分的基礎(chǔ)。應(yīng)用程序和系統(tǒng)程序:運(yùn)用文字或者圖形界面供用戶使用操作系統(tǒng)完成具體的應(yīng)用。10. 簡述linux內(nèi)核的構(gòu)成,各部分的功能及相互關(guān)系。l i n u x內(nèi)核
12、由5個主要的子系統(tǒng)構(gòu)成(1)進(jìn)程調(diào)度程序( sched)負(fù)責(zé)控制進(jìn)程訪問cpu。調(diào)度程序所使用的策略可以保證進(jìn)程能夠公平地訪問cpu,同時(shí)保證內(nèi)核可以準(zhǔn)時(shí)執(zhí)行一些必需的硬件操作。(2)內(nèi)存管理程序( mm)使多個進(jìn)程可以安全地共享機(jī)器的主存系統(tǒng)。此外,內(nèi)核管理程序支持虛擬內(nèi)存。虛擬內(nèi)存使得linux可以支持進(jìn)程使用超過系統(tǒng)中的內(nèi)存數(shù)量的內(nèi)存。暫時(shí)用不著的存儲信息可以交換出內(nèi)存,存放到使用文件系統(tǒng)的永久性存儲器上,然后在需要它們的時(shí)候再交換回來。(3) 虛擬文件系統(tǒng)( vfs)。通過提供一個所有設(shè)備的公共文件接口, vfs抽象了不同硬件設(shè)備的細(xì)節(jié)。此外, vfs支持與其他操作系統(tǒng)兼容的不同的文件
13、系統(tǒng)格式。(4)網(wǎng)絡(luò)接口( net)提供了對許多建網(wǎng)標(biāo)準(zhǔn)和網(wǎng)絡(luò)硬件的訪問。(5) 進(jìn)程間通信( ipc)子系統(tǒng)為單個linux系統(tǒng)上進(jìn)程與進(jìn)程之間的通信提供了一些機(jī)制。子系統(tǒng)間的依賴關(guān)系:11. 進(jìn)程的定義、pcb的作用與信息,進(jìn)程切換、進(jìn)程控制。定義:進(jìn)程是操作系統(tǒng)機(jī)構(gòu)的基礎(chǔ),是系統(tǒng)中程序執(zhí)行的資源分配的基本單位,是一個具有獨(dú)立功能的程序的一次運(yùn)行活動,一個程序可以啟動多個進(jìn)程。(四要素:進(jìn)程程序塊、進(jìn)程數(shù)據(jù)塊、系統(tǒng)堆棧用戶堆棧)pcb:定義:是操作系統(tǒng)用于記錄和刻畫進(jìn)程狀態(tài)及有關(guān)信息的數(shù)據(jù)結(jié)構(gòu),也是操作系統(tǒng)掌握進(jìn)程的唯一資料結(jié)構(gòu)。 (包括 標(biāo)識信息、現(xiàn)場信息、控制信息)進(jìn)程切換:讓處于運(yùn)行
14、態(tài)的進(jìn)程中斷運(yùn)行,讓出處理器,這是要做一次進(jìn)程上下文的切換,及保存老進(jìn)程狀態(tài)而裝入被保護(hù)的新進(jìn)程的狀態(tài),以便新進(jìn)程運(yùn)行。(步驟: 保存被中斷進(jìn)程的處理器現(xiàn)場信息。 修改被中斷進(jìn)程的進(jìn)程控制塊的有關(guān)信息,如進(jìn)程狀態(tài)等。 把被中斷進(jìn)程的進(jìn)程控制塊加入有關(guān)隊(duì)列。 選擇下一個占有處理器運(yùn)行的進(jìn)程。修改被選中進(jìn)程的進(jìn)程控制塊的有關(guān)信息。 根據(jù)被選中進(jìn)程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護(hù)信息。 根據(jù)被選中進(jìn)程恢復(fù)處理器現(xiàn)場。)進(jìn)程控制:進(jìn)程是有生命周期的,包括產(chǎn)生、運(yùn)行、暫停、終止。對進(jìn)程的這些操作叫進(jìn)程控制。 進(jìn)程控制包括:進(jìn)程創(chuàng)建、進(jìn)程阻塞、進(jìn)程喚醒、進(jìn)程掛起、進(jìn)程激活、進(jìn)程終止和進(jìn)程撤銷等。進(jìn)程間
15、的通信:管道、消息隊(duì)列、信號、共享內(nèi)存、信號量、套接口12. linux的啟動過程,boot loader的主要任務(wù)和典型框架結(jié)構(gòu)是什么?系統(tǒng)加電bootloader 或bios加電自檢讀硬盤主引導(dǎo)扇區(qū)分析分區(qū)表執(zhí)行mbr中的引導(dǎo)程序讀入活動分區(qū)的引導(dǎo)扇區(qū)讀入操作系統(tǒng)內(nèi)核進(jìn)行初始化執(zhí)行init,如果lilo裝在mbr,則啟動過程如上,如果lilo裝在boot扇區(qū),則省去加粗字體那步。boot loader主要任務(wù):整個系統(tǒng)加載啟動。bootloader可以分為兩個步驟來完成: stage1 :(1)硬件設(shè)備初始化(如i/o口,存儲器和時(shí)鐘).(2)為加載bootloader的stage2準(zhǔn)備好
16、ram空間.(3)復(fù)制bootloader的到ram空間中.(4)設(shè)置好堆棧.(5)跳轉(zhuǎn)到stage2的c入口點(diǎn).stage2:(1)初始化本階段要使用的硬件設(shè)備.(2)檢測系統(tǒng)的內(nèi)存映射.(3)將kernel映像和根文件系統(tǒng)映像從flash上讀到ram空間中.(4)從內(nèi)核設(shè)置啟動參數(shù).(5)調(diào)用內(nèi)核.13. 簡述toolchain的基本功能和配置步驟。toolchaingnu開發(fā)工具鏈?zhǔn)侵?gnu compiler collection、gnu libc以及用來編譯、測試和分析軟件的 gnu binutils。是linux默認(rèn)開發(fā)工具鏈。它的基本功能是:編譯,鏈接。配置步驟:先進(jìn)行命令配置,
17、再進(jìn)行關(guān)聯(lián)檢測:gnu compiler collection:即gcc是用于 c、c+、objective-c、fortran 等編程語言的一個編譯器集。需要配置輸入、輸出、平臺選擇、調(diào)試、優(yōu)化等選項(xiàng)。gnu binutils 包括一套用來構(gòu)造和使用二進(jìn)制文件所需要的工具。其中兩個最為關(guān)鍵的 binutils 是 gnu 鏈接器 ld 和 gnu 匯編程序 as。更多的 binutils: 除了鏈接器和匯編程序之外,有些開發(fā)人員還會發(fā)現(xiàn)其他 binutils其實(shí)就是gnu tools中最基本的工具: ld(鏈接器),as(匯編器), gcc(c語言編譯器),glibc(包含各種基本函數(shù)實(shí)現(xiàn)的
18、軟件庫)。14. 簡述linux文件系統(tǒng)的功能、結(jié)構(gòu)和類型。文件系統(tǒng)的功能:(1)滿足用戶管理數(shù)據(jù)的需要,這其中包括數(shù)據(jù)存儲和對數(shù)據(jù)的操作。 (2)盡可能保證文件中數(shù)據(jù)的有效性。 (3)性能優(yōu)化,以提高系統(tǒng)的吞吐量和響應(yīng)速度。 (4)提供不同類型的存儲設(shè)備的i/o支持。 (5)消除或降低數(shù)據(jù)丟失或遭破壞的可能性。 (6)提供一個標(biāo)準(zhǔn)的i/o界面。(7)在多用戶系統(tǒng)中,向多個用戶提供i/o支持等等。結(jié)構(gòu):見右圖。linux文件分類:1.普通文件2.目錄文件3.設(shè)備文件linux文件系統(tǒng)分類:ext2:標(biāo)準(zhǔn) linux 文件系統(tǒng); ext3:帶日志的標(biāo)準(zhǔn) linux 文件系統(tǒng) ;nfs :sun
19、的 文件系統(tǒng) ;jfs:ibm 的日志文件系統(tǒng) ;reiserfs:另一個流行的日志文件系統(tǒng) 15. 什么是配置文件,舉例說明2-3種重要配置文件的功能和結(jié)構(gòu)特點(diǎn)。一、每個 linux 程序都是一個可執(zhí)行文件,它含有操作碼列表,cpu 將執(zhí)行這些操作碼來完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,該文件含有機(jī)器指令的列表,在屏幕上顯示當(dāng)前目錄中文件的列表時(shí)需要使用這些機(jī)器指令。幾乎每個程序的行為都可以通過修改其配置文件來按照您的偏好或需要去定制。內(nèi)核本身也可以看成是一個“程序”。內(nèi)核需要了解系統(tǒng)中用戶和組的列表,進(jìn)而管理文件權(quán)限,內(nèi)核也需要系統(tǒng)配置文件。配置文件都在/et
20、c的目錄中,可以分為幾類:訪問文件 、引導(dǎo)和登錄注銷 、文件系統(tǒng)、系統(tǒng)管理、網(wǎng)絡(luò)配置文件、系統(tǒng)命令、守護(hù)進(jìn)程。舉例:/etc/host.conf 告訴網(wǎng)絡(luò)域名服務(wù)器如何查找主機(jī)名。(通常是 /etc/hosts,然后就是名稱服務(wù)器;可通過 netconf 對其進(jìn)行更改) /etc/hosts 包含(本地網(wǎng)絡(luò)中)已知主機(jī)的一個列表。如果系統(tǒng)的 ip 不是動態(tài)生成,就可以使用它。對于簡單的主機(jī)名解析(點(diǎn)分表示法),在請求 dns 或 nis 網(wǎng)絡(luò)名稱服務(wù)器之前,/etc/hosts.conf 通常會告訴解析程序先查看這里。/etc/issue & /etc/ 這些文件由 ming
21、etty(和類似的程序)讀取,用來向從終端(issue)或通過 telnet 會話()連接的用戶顯示一個“welcome”字符串。它們包括幾行聲明 red hat 版本號、名稱和內(nèi)核 id 的信息。它們由 rc.local 使用。 二、linux 系統(tǒng)中大多數(shù)配置文件都在 /etc 目錄中。配置文件可以大致分為下面幾類:訪問文件,文件系統(tǒng),系統(tǒng)管理,聯(lián)網(wǎng),系統(tǒng)命令,守護(hù)進(jìn)程等。/etc/host.conf 告訴網(wǎng)絡(luò)域名服務(wù)器如何查找主機(jī)名。/etc/fstab 列舉計(jì)算機(jī)當(dāng)前“可以安裝”的文件系統(tǒng)。etc/passwd包含一些用戶帳號信息,包括密碼(如果未被 shadow 程
22、序加密過)。/etc/httpd.conf web 服務(wù)器 apache 的配置文件。16. 簡述linux內(nèi)核編譯、裁減以及l(fā)inux移植的基本步驟。linux內(nèi)核的裁減與編譯首先在宿主機(jī)端進(jìn)入到內(nèi)核所在的目錄/usr/src/linux-2.4下,修改makefile文件中extraversion 變量的值,用來標(biāo)識新內(nèi)核,本例改為hebut。然后完成內(nèi)核的裁減與編譯:make mrproper: 用于清除所有的臨時(shí)文件、中間件、配置文件。make xconfig: 進(jìn)行核心配置,在其中每個選項(xiàng)都有兩種選擇,分別表示支持和不支持相應(yīng)的特性或驅(qū)動程序,個別選項(xiàng)有m選擇,表示把相應(yīng)的特性或驅(qū)動
23、程序編譯成可加載模塊的方式。根據(jù)不同的應(yīng)用對內(nèi)核進(jìn)行裁減。系統(tǒng)將新的配置保存成.config文件。make dep: 用于生成依賴性。make bzimage: 產(chǎn)生壓縮的核心映像。內(nèi)核壓縮映像被系統(tǒng)保留在/usr/src/linux-2.4/arch/i386/boot目錄中,將其復(fù)制到/boot目錄下,并重命名為vmlinuz-2.4.20hebut。末尾為extraversion變量的值。make modules: 組織各個/usr/src/linux-2.4.20子目錄已經(jīng)配置的模塊。make modules_install: 在/lib/modules/2.4.20目錄中組織模塊。經(jīng)
24、過以上的裁減與編譯,可以使一個包含網(wǎng)絡(luò)服務(wù)的內(nèi)核減小到1m以內(nèi)。 移植: 將嵌入式linux操作系統(tǒng)安裝到cf卡上要在宿主機(jī)上將已定制好的內(nèi)核裝入cf卡中并在其上構(gòu)建操作系統(tǒng)首先需要把cf掛載成宿主機(jī)的一個設(shè)備。掛載成不同的設(shè)備需要不同的連接器?,F(xiàn)以把cf卡掛載成usb設(shè)備為例,對在其上構(gòu)建嵌入式linux操作系統(tǒng)的過程進(jìn)行介紹。 首先將cf卡進(jìn)行分區(qū)。使用fdisk命令,在cf卡上建立分區(qū)。# fdisk /dev/sda1,然后創(chuàng)建ext2文件系統(tǒng),# mke2fs -c /dev/sda1,該命令在/dev/sda1上創(chuàng)建ext2文件系統(tǒng)。將cf掛載到宿主機(jī)上, # mount /dev
25、/sda1 /mnt/sda1,將cf卡掛載到宿主機(jī)上后,掛載的目錄是/mnt/sda1。用下面命令創(chuàng)建文件系統(tǒng):# mkdir /bin 類似地創(chuàng)建/boot、/etc、/lib、/mnt、/root、/sbin、/tmp、/usr、/var。用下面的命令創(chuàng)建/dev:# cp -a /dev /mnt/sda1這樣可以把設(shè)備文件創(chuàng)建在cf卡中的/dev目錄下。將生成的壓縮內(nèi)核文件vmlinuz-2.4.20hebut文件放入/mnt/sda1/boot目錄下保存。進(jìn)行以上操作后,需要給cf安裝boot loader程序使其運(yùn)行時(shí)可以加載內(nèi)核。17. 為什么要進(jìn)行內(nèi)核配置,簡述其基本過程和方
26、法內(nèi)核是所有l(wèi)inux系統(tǒng)的中心軟件組件,整個系統(tǒng)的能力完全受內(nèi)核本身能力的限制。(2) 為什么要進(jìn)行內(nèi)核配置?首先,我們可以了解系統(tǒng)是如何工作的。通過通讀源代碼,我們就可以了解系統(tǒng)的工作原理,這在windows下簡直是天方夜譚。其次,我們可以針對自己的情況,量體裁衣,定制適合自己的系統(tǒng),這樣就需要重新編譯內(nèi)核。再次,我們可以對內(nèi)核進(jìn)行修改,以符合自己的需要。(3)基本過程和方法:內(nèi)核配置有兩種方法,一種是直接置入內(nèi)核;另一種是編成模塊;兩種方法各有優(yōu)點(diǎn);直接編入內(nèi)核的,比如設(shè)備的啟動,不再需要加載模塊的這一過程了;而編譯成模塊,則需要加載設(shè)備的內(nèi)核支持的模塊;但直接把所有的東西都編入內(nèi)核也不
27、是可行的,內(nèi)核體積會變大,系統(tǒng)負(fù)載也會過重。我們編內(nèi)核時(shí)最好把極為重要的編入內(nèi)核;其它的如果您不明白的,最好用默認(rèn)。#make xconfig(基于圖形窗口模式的配置界面,xwindow下推薦使用)make xconfig,使用鼠標(biāo)就可以選擇對應(yīng)的選項(xiàng)。實(shí)際上在配置時(shí),大部分選項(xiàng)可以使用其缺省值,只有小部分需要根據(jù)用戶不同的需要選擇。選擇的原則是將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內(nèi)核的長度,減小內(nèi)核消耗的內(nèi)存,簡化該功能相應(yīng)的環(huán)境改變時(shí)對內(nèi)核的影響;不需要的功能就不要選;與內(nèi)核關(guān)心緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。(4)配置完成后,進(jìn)
28、行編譯和更新。18. 什么是交叉編譯?編譯程序的基本構(gòu)成是什么?由于目標(biāo)機(jī)指令系統(tǒng)與宿主機(jī)的指令系統(tǒng)不同,編譯時(shí)將應(yīng)用程序的源程序在宿主機(jī)上生成目標(biāo)機(jī)代碼,稱為交叉編譯。編譯程序結(jié)構(gòu)(components)和功能:詞法分析程序:從左至右讀字符流的源程序識別(拼)單語法分析程序:層次分析.依據(jù)源程序的語法規(guī)則把源程序的單詞序列組成語法短語(表示成語法樹).、語義分析程序:語義審查(靜態(tài)語義)上下文相關(guān)性、類型匹配、類型轉(zhuǎn)換中間代碼生成程序:源程序的內(nèi)部(中間)表示三元式、四元式、p-code、c-code、ucode、bytecode代碼優(yōu)化程序:目標(biāo)代碼生成程序:符號表管理程序:記錄源程序中使
29、用的名字、收集每個名字的各種屬性信息(類型、作用域、分配存儲信息)出錯處理程序:檢查錯誤、報(bào)告出錯信息、排錯、恢復(fù)編譯工作19. 舉例說明makefile功能、構(gòu)成和工作原理?make和makefile:自動編譯,自動確定軟件包的哪部分需要重新編譯并用特定的命令去編譯。準(zhǔn)確使用make可以大大減少編譯程序所花費(fèi)的時(shí)間,因?yàn)樗梢韵槐匾闹鼐幾g。makefile文件中包含著一些目標(biāo),對于每一個目標(biāo),都提供了與這個目標(biāo)具有相關(guān)性的其他目標(biāo)或文件的名字,以及實(shí)現(xiàn)這個目標(biāo)的一組命令。makefile的書寫規(guī)則:目標(biāo)屬性分隔符號依賴文件;命令列 命令列#一個簡單的makefile的例子exeprog
30、:main.osubfunc.ogcc -oexeprogmain.osubfunc.omain.o:main.cmain.hgcc -c -i.-omain.omain.csubfunc.o:subfunc.cgcc -c -o subfunc.o:subfunc.cclean:rm -f *.o在這里假設(shè)修改了文件subfunc.c,可用一下命令更新目標(biāo)exeprog,即重新編譯可執(zhí)行文件exeprog。%make exeprog由于exeprog依賴于目標(biāo)main.o和subfunc.o,所以必須檢查main.o和subfunc.o是否過時(shí)。目標(biāo)main.o依賴文件main.cmain.
31、h,比較目標(biāo)文件main.o和源文件main.c、main.h的更新日期,如發(fā)現(xiàn)main.o比它所依賴的文件的日期更新,即不過時(shí)。在檢查目標(biāo)subfunc.o,subfunc.o,它依賴文件subfunc.c,由于已經(jīng)修改了subfunc.c,它比subfunc.o更新,即subfunc.o過時(shí)了,從而依賴subfunc.o的所有目標(biāo)都過時(shí)了。應(yīng)該用在makefile文件中定義好的如下shell命令更新它:gcc -c -o subfunc.o:subfunc.c由于目標(biāo)subfunc.o過時(shí)并更新,導(dǎo)致目標(biāo)exeprog已經(jīng)過時(shí),要完成“make exeprog”的任務(wù),必須用定義exepr
32、og的一組shell命令來更新它:gcc -o exeprog main.osubfunc.o如果是第一次編譯上面這個軟件,則因?yàn)閑xeprog、main.o和subfunc.o等目標(biāo)文件都不存在,按照規(guī)定,這是所有目標(biāo)都是過時(shí)的,必須全部更新,而且必須從底部而上執(zhí)行定義這些目標(biāo)的shell命令。輸入make clean命令將執(zhí)行:rm -f *.o20. 什么是設(shè)備驅(qū)動程序,其功能和結(jié)構(gòu)如何?linux設(shè)備驅(qū)動程序是處理或操作硬件控制器的軟件,被集成在內(nèi)核中,是常駐內(nèi)存的低級硬件處理程序的共享庫,設(shè)備驅(qū)動程序就是對設(shè)備的抽象處理。設(shè)備驅(qū)動程序的功能(1)對設(shè)備進(jìn)行初始化(2)使設(shè)備投入和退出
33、服務(wù)(3)檢測和處理設(shè)備出現(xiàn)的錯誤(4)設(shè)備和系統(tǒng)之間交換數(shù)據(jù)的界面(5)“黑盒子”,內(nèi)含設(shè)備的固有特性功能結(jié)構(gòu):21. 比較字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備的區(qū)別。字符設(shè)備:(1)能夠象字節(jié)流(比如鍵盤,顯示器)一樣被訪問的設(shè)備,由字符設(shè)備驅(qū)動程序來實(shí)現(xiàn)這種特性,字符設(shè)備驅(qū)動程序通常至少需要實(shí)現(xiàn)open close read 和write系統(tǒng)調(diào)用。open, close, read(2)字符設(shè)備以字節(jié)為單位進(jìn)行數(shù)據(jù)處理,通常只允許按順序訪問塊設(shè)備:(1)與字符設(shè)備的區(qū)別僅僅在于內(nèi)核內(nèi)部管理數(shù)據(jù)的方式,也就是內(nèi)核和驅(qū)動程序的接口不同。(2)塊設(shè)備驅(qū)動程序除了給內(nèi)核提供和字符驅(qū)動程序一樣的接口以外,還
34、提供了專門面向塊設(shè)備的接口。(3)塊設(shè)備將數(shù)據(jù)按可尋址的塊為單位進(jìn)行處理可以隨機(jī)訪問,利用緩沖技術(shù)可以一次傳遞任意字節(jié)的數(shù)據(jù)(4)塊設(shè)備通過/dev目錄下的文件系統(tǒng)接點(diǎn)被訪問的。塊設(shè)備(例如磁盤)上能夠容納文件系統(tǒng)。網(wǎng)絡(luò)設(shè)備:(1) 和其它主機(jī)交換數(shù)據(jù)的設(shè)備(2)內(nèi)核和驅(qū)動程序之間的通信完全不同于內(nèi)核和字符設(shè)備以及塊設(shè)備驅(qū)動程序之間的通信,內(nèi)核調(diào)用一套和數(shù)據(jù)包傳輸相關(guān)的函數(shù),而不是read, write.(3)linux分配給網(wǎng)絡(luò)接口一個唯一的名字(比如eth0),網(wǎng)絡(luò)設(shè)備是一類特殊的設(shè)備,每塊網(wǎng)卡有名字但沒有設(shè)備文件與之對應(yīng)查看系統(tǒng)中的設(shè)備:/proc/devices(4)由內(nèi)核中的網(wǎng)絡(luò)子系
35、統(tǒng)驅(qū)動,負(fù)責(zé)發(fā)送和接收數(shù)據(jù)包,它無須了解每項(xiàng)事務(wù)是如何映射到實(shí)際傳送的數(shù)據(jù)包的,例如盡管telent和ftp連接都是面向流的,它們都使用了同一個設(shè)備,但這個設(shè)備看到只是數(shù)據(jù)包,而不是獨(dú)立的流。22. 什么是套接字,有什么特性,分為哪些類型?套接字是網(wǎng)絡(luò)通信中應(yīng)用進(jìn)程和網(wǎng)絡(luò)協(xié)議之間的接口,為tcp/ip協(xié)議開發(fā)的應(yīng)用程序接口。特性:網(wǎng)絡(luò)的socket數(shù)據(jù)傳輸是一種特殊的i/o,socket也是一種文件描述符,也具有一個類似于打開文件的函數(shù)調(diào)用socket(),該函數(shù)返回一個整型的socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該socket實(shí)現(xiàn)的。常用的socket類型有兩種:流式so
36、cket (sock_stream)和數(shù)據(jù)報(bào)式socket(sock_dgram)。23. 畫出socket編程中tcp、udp通信中server與client端的通信流程并比較兩者的區(qū)別。一、udp與tcp的區(qū)別:a 基于連接與無連接;b 流模式與數(shù)據(jù)報(bào)模式(tcp保證數(shù)據(jù)正確性,udp可能丟包; tcp保證數(shù)據(jù)順序,udp不保證),c 對系統(tǒng)資源的要求(tcp較多,udp少。socket編程中:1 socket()的參數(shù)不同; 2 udp server不需要調(diào)用listen和accept; 3 udp收發(fā)數(shù)據(jù)用sendto/recvfrom函數(shù); 4 tcp:地址信息在connect/accept時(shí)確定udp:在sendto/recvfrom函數(shù)中每次均需指定地址信息;5 udp:shutdown函數(shù)無效;二、tcp(左圖) server的通信流程:1 取得socket描述符;2 填寫自身地址信息的sckadd_in結(jié)構(gòu);3 綁定端口;4 監(jiān)聽端口;5 接收連接請求; 6 產(chǎn)生新進(jìn)程處理讀寫socket; 7 轉(zhuǎn)程序流程5,繼續(xù)等待其它c(diǎn)lient的連接并處理。tcp client的通信流程:1取得socket描述符;2 填寫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職中西面點(diǎn)(糕點(diǎn)烘焙技術(shù))試題及答案
- 2026年導(dǎo)游服務(wù)(景點(diǎn)講解)試題及答案
- 2025年中職汽車電子技術(shù)(汽車電子控制系統(tǒng))試題及答案
- 2025年中職設(shè)施農(nóng)業(yè)技術(shù)(大棚蔬菜種植)試題及答案
- 中學(xué)女生安全教育課件
- 運(yùn)輸專業(yè)制度匯編模板
- 養(yǎng)老院老人生活照顧人員社會保險(xiǎn)制度
- 養(yǎng)老院老人健康飲食制度
- 養(yǎng)老院入住老人交通安全保障制度
- 央視介紹教學(xué)課件
- 日語假名的羅馬字打字法及其發(fā)音一覽
- 《如何給未來的自己寫一封信》小學(xué)四五年級語文習(xí)作
- NB-T 20619-2021 壓水堆核電廠放射性廢液處理系統(tǒng)設(shè)計(jì)準(zhǔn)則
- 2023年數(shù)學(xué)競賽AMC8試卷(含答案)
- 空調(diào)銅管規(guī)格尺寸及重量計(jì)算
- 移動電源規(guī)格書
- 七年級下冊數(shù)學(xué)期末考試試卷共十套
- 餐飲部物品清單
- 康柏西普或雷珠單抗治療近視性脈絡(luò)膜新生血管療效及注射次數(shù)比較
- 碧桂園展示區(qū)品質(zhì)驗(yàn)收評分表(2017版)
- GB/T 36195-2018畜禽糞便無害化處理技術(shù)規(guī)范
評論
0/150
提交評論