嵌入式課件之——第6章_Linux操作系統(tǒng)基礎(chǔ).ppt_第1頁
嵌入式課件之——第6章_Linux操作系統(tǒng)基礎(chǔ).ppt_第2頁
嵌入式課件之——第6章_Linux操作系統(tǒng)基礎(chǔ).ppt_第3頁
嵌入式課件之——第6章_Linux操作系統(tǒng)基礎(chǔ).ppt_第4頁
嵌入式課件之——第6章_Linux操作系統(tǒng)基礎(chǔ).ppt_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第 6 章 Linux操作系統(tǒng)基礎(chǔ),主要內(nèi)容,1,3,2,4,Linux操作系統(tǒng)概述,Linux內(nèi)核的結(jié)構(gòu),Linux設(shè)備管理,Linux的使用,6.1.1 Linux操作系統(tǒng)的產(chǎn)生及發(fā)展,1990年,LinusTorvalds首次接觸Minix; 1991年,LinusTorvalds開始在Minix上編寫各種驅(qū)動程序等操作系統(tǒng)內(nèi)核組件; 1991年,LinusTorvalds公開了Linux內(nèi)核; 1993年,Linux1.0版發(fā)行,Linux轉(zhuǎn)向GPL版權(quán)協(xié)議; 1994年,Linux的第一個商業(yè)發(fā)行版Slackware問世; 1996年,美國國家標準技術(shù)局的計算機系統(tǒng)實驗室確認Linu

2、x版本1.2.13符合POSIX標準; 1999年,Linux的簡體中文發(fā)行版相繼問世; 2001年,Linux2.4版內(nèi)核發(fā)布; 2003年,Linux2.6版內(nèi)核發(fā)布。,6.1.2 Linux操作系統(tǒng)的特點,自由開放軟件 真正的多任務(wù)多用戶 UNIX的完整實現(xiàn) 完全符合POSIX標準 良好的用戶界面 強大的網(wǎng)絡(luò)功能 良好的可移植性 設(shè)備獨立性,主要內(nèi)容,1,3,2,4,Linux操作系統(tǒng)概述,Linux內(nèi)核的結(jié)構(gòu),Linux設(shè)備管理,Linux的使用,操作系統(tǒng)內(nèi)核的結(jié)構(gòu)模式可分為兩種: 整體式的單內(nèi)核模式 單內(nèi)核也叫集中式操作系統(tǒng)。以提高系統(tǒng)執(zhí)行效率為設(shè)計理念, 缺點是系統(tǒng)升級比較困難。

3、層次式的微內(nèi)核模式 微內(nèi)核是指把操作系統(tǒng)結(jié)構(gòu)中的內(nèi)存管理、設(shè)備管理、文件系統(tǒng)等高級服務(wù)功能盡可能地從內(nèi)核中分離出來,變成幾個獨立的非內(nèi)核模塊,而在內(nèi)核中只保留少量最基本的功能,使內(nèi)核變得簡潔可靠。,6.2 Linux內(nèi)核的結(jié)構(gòu),Linux采用的是單內(nèi)核模式,Linux內(nèi)核主要由五個子系統(tǒng)組成:進程調(diào)度,內(nèi)存管理,虛擬文件系統(tǒng),網(wǎng)絡(luò)接口,進程間通信。,6.2.1 進程調(diào)度,進程調(diào)度控制進程對CPU的訪問。采用適當(dāng)?shù)恼{(diào)度策略使各進程能夠合理的使用CPU。,進程的定義,一個進程是一個程序的一次執(zhí)行過程。,Linux進程的狀態(tài),可運行狀態(tài) 、等待狀態(tài) 、暫停狀態(tài) 、僵死狀態(tài),Linux下進程的結(jié)構(gòu),數(shù)

4、據(jù)段、堆棧段和代碼段,Linux進程的種類,交互進程、批處理進程、守護進程,Linux進程的創(chuàng)建,fork()函數(shù),進程所有操作都要依賴進程控制塊 task_struct結(jié)構(gòu),task_struct結(jié)構(gòu)是進程實體的核心,是進程存在的唯一標志。,6.2.2 內(nèi)存管理,內(nèi)存管理(MM)允許多個進程安全的共享主內(nèi)存區(qū)域。Linux的內(nèi)存管理支持虛擬內(nèi)存。Linux虛擬內(nèi)存的實現(xiàn)需要6種機制的支持:地址映射機制、內(nèi)存分配回收機制、緩存和刷新機制、請求頁機制、交換機制和內(nèi)存共享機制。,6.2.3 虛擬文件系統(tǒng),Linux的文件系統(tǒng)由兩層結(jié)構(gòu)組成。第一層是虛擬文件系統(tǒng)(VFS),第二層是各種不同的具體文件

5、系統(tǒng)。,6.2.4 進程間通信,信號機制,管道,消息隊列,命名管道,信號是在軟件層次上對中斷機制的一種模擬 ,是進程間通信機制中唯一的異步通信機制 。 用于發(fā)送信號的主要系統(tǒng)函數(shù)有:kill()、raise()、sigqueue()、alarm()、setitimer()以及abort()。,管道是利用有公共祖先的進程之間的共享文件描述符進行的一種通訊方式 。,命名管道不同于管道之處在于它提供一個路徑名與之關(guān)聯(lián),以FIFO的文件形式存在于文件系統(tǒng)中。,消息隊列實際上就是一個消息的鏈表。每個消息隊列都有一個隊列頭,用結(jié)構(gòu)struct msg_queue來描述。 目前主要有兩種類型的消息隊列:PO

6、SIX消息隊列和系統(tǒng)V消息隊列。,6.2.5 網(wǎng)絡(luò)接口,Linux的網(wǎng)絡(luò)接口分為四部分:網(wǎng)絡(luò)設(shè)備接口、網(wǎng)絡(luò)接口核心、網(wǎng)絡(luò)協(xié)議族以及網(wǎng)絡(luò)接口socket層。,TCP/IP協(xié)議棧四層模型,Socket套接字,TCP/IP協(xié)議遵守一個四層的模型概念:網(wǎng)絡(luò)接口層、互聯(lián)層、傳輸層和應(yīng)用層。,Socket接口是TCP/IP網(wǎng)絡(luò)的API,定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。套接字基本上有三種類型,分別是數(shù)據(jù)流套接字、數(shù)據(jù)報套接字和原始套接字。,6.2.6 各個子系統(tǒng)之間的依賴關(guān)系,進程調(diào)度與內(nèi)存管理之間的關(guān)系:這兩個子系統(tǒng)互相依賴。在多道程序環(huán)境下,程序要運行必須為之創(chuàng)

7、建進程,而創(chuàng)建進程的第一件事情,就是將程序和數(shù)據(jù)裝入內(nèi)存。 進程間通信與內(nèi)存管理的關(guān)系:進程間通信子系統(tǒng)要依賴內(nèi)存管理支持共享內(nèi)存通信機制,這種機制允許兩個進程除了擁有自己的私有空間,還可以存取共同的內(nèi)存區(qū)域。 虛擬文件系統(tǒng)與網(wǎng)絡(luò)接口之間的關(guān)系:虛擬文件系統(tǒng)利用網(wǎng)絡(luò)接口支持網(wǎng)絡(luò)文件系統(tǒng)(NFS),也利用內(nèi)存管理支持RAMDISK設(shè)備。 內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系:內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進程定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進程調(diào)度的唯一原因。當(dāng)一個進程存取的內(nèi)存映射被換出時,內(nèi)存管理向文件系統(tǒng)發(fā)出請求,同時,掛起當(dāng)前正在運行的進程。,主要內(nèi)容,1,3,2,4,Lin

8、ux操作系統(tǒng)概述,Linux內(nèi)核的結(jié)構(gòu),Linux設(shè)備管理,Linux的使用,6.3 Linux設(shè)備管理,Linux設(shè)備管理的主要任務(wù)是控制設(shè)備完成輸入輸出操作,所以又稱輸入輸出(I/O)子系統(tǒng)。設(shè)備管理把各種設(shè)備硬件物理特性的細節(jié)屏蔽起來,提供一個對各種不同設(shè)備進行統(tǒng)一操作的接口。,在linux操作系統(tǒng)中有三種類型的設(shè)備:,字符設(shè)備 塊設(shè)備 網(wǎng)絡(luò)設(shè)備,6.3.1 設(shè)備文件,Linux將所有外部設(shè)備看成是一類特殊文件,稱之為“設(shè)備文件”。,對設(shè)備文件的識別使用設(shè)備類型、主設(shè)備號和次設(shè)備號:,設(shè)備類型:字符設(shè)備或者塊設(shè)備。 主設(shè)備號:按照設(shè)備使用的驅(qū)動程序不同而賦予設(shè)備不同的主設(shè)備號。主設(shè)備號與

9、驅(qū)動程序一一對應(yīng)。 次設(shè)備號:用來區(qū)分使用同一個驅(qū)動程序的不同設(shè)備。,6.3.2 設(shè)備驅(qū)動,設(shè)備驅(qū)動程序是Linux內(nèi)核與設(shè)備之間的接口。設(shè)備驅(qū)動程序?qū)?yīng)用程序屏蔽了硬件在實現(xiàn)上的細節(jié),使得應(yīng)用程序可以像操作普通文件一樣來操作設(shè)備。,Linux為所有的設(shè)備文件提供了統(tǒng)一的操作函數(shù)接口來管理這些設(shè)備,方法是使用數(shù)據(jù)結(jié)構(gòu)struct file_operations。這個數(shù)據(jù)結(jié)構(gòu)中包括許多操作函數(shù)的指針,如open()、close()、read()、write()和ioctl()等。,6.3.3 控制方式,輪詢方式,中斷方式,輪詢方式又稱查詢等待方式。對于不支持中斷方式的機器只能采用這種方式來控制I

10、/O過程,所以Linux中也配備了輪詢方式。輪詢方式意味著需要經(jīng)常讀取設(shè)備的狀態(tài),一直到設(shè)備狀態(tài)表明請求已經(jīng)完成為止。,在硬件支持中斷的情況下,驅(qū)動程序可以使用中斷方式控制I/O過程。當(dāng)某個設(shè)備需要服務(wù)時就向CPU發(fā)出一個中斷信號,CPU接收到信號后根據(jù)中斷請求號啟動中斷服務(wù)例程。Linux內(nèi)核需要將來自硬件設(shè)備的中斷傳遞到相應(yīng)的設(shè)備驅(qū)動,這個過程由設(shè)備驅(qū)動向內(nèi)核注冊其使用的中斷來協(xié)助完成。,主要內(nèi)容,1,3,2,4,Linux操作系統(tǒng)概述,Linux內(nèi)核的結(jié)構(gòu),Linux設(shè)備管理,Linux的使用,6.4.1 Linux常用命令,在線幫助命令:man 文件管理命令 文件拷貝: cp 文件移動

11、:mv 文件刪除:rm 目錄管理命令 創(chuàng)建目錄:mkdir 刪除空目錄:rmdir 改變工作目錄:cd 顯示當(dāng)前完整路徑:pwd 列出當(dāng)前目錄內(nèi)容:ls 文本處理命令 按行排序:sort 刪除重復(fù)行 :uniq,備份與壓縮命令 創(chuàng)建備份:tar 壓縮和解壓縮:gzip 解壓縮:unzip 改變文件或目錄的訪問權(quán)限命令 改變訪問權(quán)限:chmod 改變所屬的組 :chgrp 更改擁有者和所屬組: chown 與用戶有關(guān)的命令 設(shè)置和修改用戶口令: passwd 用戶之間切換: su 系統(tǒng)管理命令 向所有登錄用戶發(fā)送信息: wall 向某一個用戶發(fā)送信: write,系統(tǒng)管理命令 設(shè)定是否允許其他用

12、戶用write命令給自己發(fā)送信息: mesg 強制把內(nèi)存中的數(shù)據(jù)寫回硬盤: sync 關(guān)閉或重啟Linux系統(tǒng): shutdown 查看當(dāng)前系統(tǒng)內(nèi)存的使用情況: free Linux磁盤管理命令 檢查文件系統(tǒng)的磁盤空間占用情況:df 統(tǒng)計目錄(或文件)所占磁盤空間的大小: du 掛接設(shè)備: mount 卸載已經(jīng)掛接的設(shè)備: umount Linux其它命令 顯示一段文字 :echo 顯示某年某月的日歷 : cal 清除屏幕上的信息 : clear,6.4.1 Linux常用命令,6.4.2 vi編輯器的使用,vi編輯器是一個命令行編輯器,有三種基本的工作模式: (1)命令模式 vi的默認模式,

13、在命令模式下,可以鍵入命令來刪除、更改、移動文本、定位光標、搜索文本字符串或退出vi編輯器。 (2)編輯模式 在編輯模式下,可以向文件中輸入文本。 (3)最后行模式 當(dāng)處于命令模式時,通過鍵入“:”,將使光標處于屏幕的最后一行,這就稱為最后行模式,這時可以執(zhí)行更先進的編輯命令。注意:所有的命令都是由命令模式發(fā)起的,所以最后行模式也屬于命令模式。,vi編輯器中三種工作模式的切換,通過鍵入i、o、a命令,vi編輯器將離開默認的命令模式,進入編輯模式。在編輯模式下,鍵入的所有文本都不會被翻譯成命令,這時,所有鍵入的文本都會被保存到文件中。 當(dāng)完成了文本的輸入后,按Esc鍵vi將回到命令模式下。 當(dāng)處

14、于命令模式下時,通過鍵入“:”,將使光標處于屏幕的最后一行,進入最后行模式。,6.4.3 make工具和gcc編譯器,gcc,gcc是可以在多種平臺上編譯出可執(zhí)行程序的超級編譯器。,舉例:gcc c hello.c gcc -o hello.exe hello.c,make命令,makefile,make命令用于根據(jù)文件之間的依賴關(guān)系(在makefile文件中定義)來自動維護目標文件,與手工編譯和鏈接相比,make命令的優(yōu)點在于它只更新修改過的文件 。,makefile定義了一系列的規(guī)則來指定哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進行更復(fù)雜的功能操作。 makef

15、ile帶來的好處就是“自動化編譯”,一旦寫好makefile,只需要一個make命令,整個工程即可實現(xiàn)完全自動編譯,從而極大地提高了軟件開發(fā)的效率。,舉例:工程包含3個C文件(main.c, mytool1.c, mytool2.c)和2個頭文件(mytool1.h, mytool2.h) ,需要寫一個Makefile來告訴make命令如何編譯和鏈接這幾個文件。,Makefile的編寫格式,main:main.o mytool1.o mytool2.o gcc -o main main.o mytool1.o mytool2.o main.o:main.c mytool1.h mytool2.h gcc c main.c mytool1.o:mytool1.c mytool1.h gcc c mytool1.

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論