Linux操作系統(tǒng)及程序設(shè)計(jì)課件_第1頁
Linux操作系統(tǒng)及程序設(shè)計(jì)課件_第2頁
Linux操作系統(tǒng)及程序設(shè)計(jì)課件_第3頁
Linux操作系統(tǒng)及程序設(shè)計(jì)課件_第4頁
Linux操作系統(tǒng)及程序設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、教學(xué)目標(biāo):掌握Linux系統(tǒng)組成特點(diǎn)、常用命令和使用方法;深入了解和掌握Linux系統(tǒng)的內(nèi)部結(jié)構(gòu)、編譯、調(diào)試和運(yùn)行系統(tǒng)程序的方法;對Linux操作系統(tǒng)建立一個(gè)全面、系統(tǒng)的認(rèn)識(shí),進(jìn)而對現(xiàn)代操作系統(tǒng)的設(shè)計(jì)方法和有較全面的認(rèn)識(shí),為進(jìn)一步學(xué)習(xí)和應(yīng)用打下基礎(chǔ)。教學(xué)主要內(nèi)容:Linux系統(tǒng)基本使用,shell及其編程,Linux文件系統(tǒng),多進(jìn)程與多線程程序設(shè)計(jì),進(jìn)程間通信教學(xué)時(shí)數(shù):講解輔助下的實(shí)驗(yàn)30學(xué)時(shí)第1頁,共70頁。第一講Linux 簡介 初步掌握Linux系統(tǒng)安裝、實(shí)驗(yàn)環(huán)境構(gòu)建和基本特點(diǎn)。第2頁,共70頁。 Linux概述Linux網(wǎng)絡(luò)操作系統(tǒng) 1990年,Linus Torvalds在一臺(tái)386

2、 AT計(jì)算機(jī)上,根據(jù)Andrew S. Tanenbaum教授的MINIX開發(fā)的一個(gè)OS內(nèi)核。兩個(gè)進(jìn)程交替運(yùn)行,分別打印A和B增加驅(qū)動(dòng)程序、文件系統(tǒng)第3頁,共70頁。Linux發(fā)展迅速世界500強(qiáng)超級(jí)計(jì)算機(jī)系統(tǒng)統(tǒng)計(jì)表(按操作系統(tǒng)分類統(tǒng)計(jì) 2007.6)OS FamilyCountShare %Rmax Sum (GF)Rpeak Sum (GF)Processor SumLinux38977.80%31180604809959615612Unix6012.00%532647728573120394Mixed428.40%11944731496163469052BSD Based40.80%52

3、899591865952Mac OS30.60%32989530086296Windows20.40%15518363573808Totals500100%4946586.057183245.391221114第4頁,共70頁。Linux的應(yīng)用發(fā)展方向超級(jí)計(jì)算機(jī)系統(tǒng)通用計(jì)算機(jī)系統(tǒng)嵌入式計(jì)算機(jī)系統(tǒng)Linux與Unix的關(guān)系POSIX標(biāo)準(zhǔn)(1990/1996)Portable Operating System Interface of UNIX UNIX標(biāo)準(zhǔn)之爭的產(chǎn)物,描述了系統(tǒng)調(diào)用、編程接口API、Shell機(jī)制和基本命令集、實(shí)時(shí)性、信號(hào)量機(jī)制等設(shè)計(jì)操作系統(tǒng)許多方面的規(guī)范。第5頁,共70頁。自由

4、軟件自由軟件基金會(huì)(FSF Free Software Foundation)Richard M. Stallman FSF創(chuàng)始人自由軟件是指其使用者對該軟件有使用、復(fù)制、分發(fā)、研究、改寫、再利用的自由。自由是關(guān)乎權(quán)利,而非價(jià)格Free指“自由”,而不是“免費(fèi)”Linux與自由軟件和開源軟件第6頁,共70頁。自由權(quán)利自由之一:不論目的為何,都有使用該軟件的自由。自由之二:有研究該軟件如何工作的自由,并且可以改寫軟件,以符合使用者的需求。前提:可以獲得該軟件的源代碼。自由之三:有重新散布該軟件的自由,所以每個(gè)人都可以通過分發(fā)自由軟件來幫助他人。 自由之四:有改進(jìn)該軟件的自由,并且公開發(fā)布軟件的改

5、進(jìn)版本,使整個(gè)社群都可以受益。前提:獲得該軟件的源代碼。一般在軟件許可(License)中說明。第7頁,共70頁。GNU項(xiàng)目GNUs Not Unix (有點(diǎn)奇怪? 是什么意思呢?)GNU GPL GNU General Public LicenseGNU讀作g-nooGNU是一個(gè)類Unix操作系統(tǒng)采用Linux作為內(nèi)核Richard Stallman專門寫了一篇文章講述來試圖澄清Linux與GNU項(xiàng)目的關(guān)系:Linux and the GNU Project典型的桌面環(huán)境:GNOME,KDE第8頁,共70頁。第9頁,共70頁。開源軟件Open Source是一種軟件開發(fā)方法旨在保證更好的質(zhì)量

6、、更高的可靠性、更大的靈活性、更低的費(fèi)用,結(jié)束軟件開發(fā)公司對使用者所進(jìn)行的“掠奪” 。開源也有自己的許可,其中重要的一條就是開源軟件要公開源代碼,這個(gè)許可尚處于討論之中。第10頁,共70頁。第11頁,共70頁。Linux特點(diǎn)類Unix(Unix-like)操作系統(tǒng)其他類UNIX系統(tǒng)包括Solaris、Mac OS等基于GPL(GNU Public License)的自由操作系統(tǒng)第一個(gè)版本發(fā)行于1991年主要用C語言編寫,部分代碼用匯編語言編寫“Linux”在不同語境下的內(nèi)涵不同Linux內(nèi)核、Linux系統(tǒng)、Linux開發(fā)套件等嚴(yán)格來說,Linux指由Linux Torvalds維護(hù)(及通過主

7、要鏡像網(wǎng)站發(fā)布)的內(nèi)核第12頁,共70頁。13Linux發(fā)展史1991年11月,芬蘭赫爾辛基大學(xué)的 Linus Torvalds編寫了一個(gè)小程序(取名為Linux),發(fā)布在互聯(lián)網(wǎng)上希望借此實(shí)現(xiàn)一個(gè)操作系統(tǒng)“內(nèi)核”1993年一批高水平網(wǎng)絡(luò)黑客參與,誕生Linux 1.0 版 1994年Linux 的第一個(gè)商業(yè)版 Slackware 問世1996年美國國家標(biāo)準(zhǔn)技術(shù)局計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)室確認(rèn) Linux 版本1.2.13符合 POSIX 標(biāo)準(zhǔn)2001年Linux2.4版內(nèi)核發(fā)布 2003年Linux2.6版內(nèi)核發(fā)布Linux簡介第13頁,共70頁。14Linux操作系統(tǒng)特征符合POSIX標(biāo)準(zhǔn)規(guī)范的操作系

8、統(tǒng) Portable Operation System Interface of Unix:可移植的操作系統(tǒng)接口由IEEE開發(fā),ANSI和ISO標(biāo)準(zhǔn)化具備現(xiàn)代操作系統(tǒng)的基本功能搶占式多任務(wù)處理,支持多用戶圖形用戶接口異構(gòu)硬件支持支持SMP支持TCP/IP多體系結(jié)構(gòu)支持,支持32/64位CPU擁有其他操作系統(tǒng)沒有的特色NFS、VFS、高效的EXT系列文件系統(tǒng)等Linux簡介第14頁,共70頁。代表一種開源文化免費(fèi)軟件,開放源代碼自由軟件,可在原有程序基礎(chǔ)上開發(fā)自己的程序GNU/LinuxLinux僅指Linux內(nèi)核Linux系統(tǒng)的大部分應(yīng)用都建立在GNU軟件之上核心結(jié)構(gòu)Linux內(nèi)核Linux

9、ShellLinux文件系統(tǒng)Linux應(yīng)用系統(tǒng)GNU Tools15Linux精髓Linux簡介第15頁,共70頁。16Linux的系統(tǒng)結(jié)構(gòu)用戶應(yīng)用程序系統(tǒng)調(diào)用硬件資源管理接口Shell,庫函數(shù)內(nèi)核實(shí)現(xiàn)Linux簡介用戶態(tài)核心態(tài)第16頁,共70頁。不區(qū)分的缺陷用戶直接修改操作系統(tǒng)的數(shù)據(jù)用戶直接調(diào)用操作系統(tǒng)的內(nèi)部函數(shù)用戶直接操作外設(shè)用戶任意讀/寫物理內(nèi)存區(qū)分的意義禁止用戶程序和底層硬件直接打交道如果用戶程序往硬件控制寄存器寫入不恰當(dāng)?shù)闹?,可能?dǎo)致硬件無法正常工作禁止用戶程序訪問任意物理內(nèi)存,否則可能會(huì)破壞其他程序的正常執(zhí)行如果對核心內(nèi)核所在的地址空間寫入數(shù)據(jù),會(huì)導(dǎo)致系統(tǒng)崩潰17劃分用戶態(tài)/內(nèi)核態(tài)

10、的必要性Linux簡介第17頁,共70頁?,F(xiàn)代CPU都有幾種不同指令執(zhí)行級(jí)別在高執(zhí)行級(jí)別下,代碼可以執(zhí)行特權(quán)指令,訪問任意的物理地址,這種CPU執(zhí)行級(jí)別就對應(yīng)著內(nèi)核態(tài)在相應(yīng)低級(jí)別執(zhí)行狀態(tài)下,代碼的掌控范圍會(huì)受到限制,只能在對應(yīng)級(jí)別允許的范圍內(nèi)活動(dòng)舉例intel x86 CPU有四種不同的執(zhí)行級(jí)別0-3Linux只使用0級(jí)和3級(jí)分別表示內(nèi)核態(tài)和用戶態(tài)18CPU對用戶態(tài)/和心態(tài)劃分的支持Linux簡介第18頁,共70頁。cs寄存器最低兩位表明當(dāng)前代碼的特權(quán)級(jí)CPU每條指令的讀取都是通過cs:eip這兩個(gè)寄存器cs:代碼段選擇寄存器eip:偏移量寄存器上述判斷由硬件完成在Linux中,地址空間是一個(gè)

11、顯著的標(biāo)志0 xc0000000以上地址空間:只能在內(nèi)核態(tài)下訪問0 x00000000 0 xbfffffff的地址空間:兩種狀態(tài)下都可訪問注意,這里的地址空間是邏輯地址而不是物理地址19用戶態(tài)/和心態(tài)的區(qū)分方法Linux簡介第19頁,共70頁。Linux是單內(nèi)核、多模塊系統(tǒng)Linux內(nèi)核運(yùn)行在單獨(dú)的內(nèi)核地址空間所有操作系統(tǒng)功能作為一個(gè)模塊實(shí)現(xiàn)在其內(nèi)核中模塊均運(yùn)行在內(nèi)核態(tài),直接調(diào)用函數(shù),無需消息傳遞具備模塊化設(shè)計(jì)、搶占式內(nèi)核(Linux 2.6支持,Linux 2.4用戶級(jí)搶占)、支持內(nèi)核線程及動(dòng)態(tài)裝載內(nèi)核模塊的能力與Unix主要區(qū)別Linux汲取了微內(nèi)核設(shè)計(jì)思想(基于模塊定制內(nèi)核)Unix也

12、是單內(nèi)核系統(tǒng)Windows NT和Mach是微內(nèi)核系統(tǒng)20Linux的內(nèi)核特點(diǎn)Linux簡介第20頁,共70頁。21Linux單內(nèi)核結(jié)構(gòu)用戶態(tài)標(biāo)準(zhǔn)函數(shù)庫系統(tǒng)調(diào)用(POSIX標(biāo)準(zhǔn))接口模塊內(nèi)核(進(jìn)程管理、存儲(chǔ)管理、文件管理、設(shè)備管理、網(wǎng)絡(luò)管理)設(shè)備驅(qū)動(dòng)計(jì)算機(jī)硬件核心態(tài)單內(nèi)核模塊接口驅(qū)動(dòng)接口應(yīng)用程序Linux簡介第21頁,共70頁。22Linux的內(nèi)核版本Linux內(nèi)核版本指由Linux開發(fā)小組(Linus Torvalds總協(xié)調(diào))開發(fā)出系統(tǒng)內(nèi)核的版本號(hào) Linux內(nèi)核采用雙樹系統(tǒng)一棵是穩(wěn)定樹,主要用于發(fā)行另一棵是非穩(wěn)定樹(開發(fā)樹),用于產(chǎn)品開發(fā)和改進(jìn) Linux內(nèi)核版本號(hào)由3位數(shù)字組成 r.x.

13、y第1位數(shù)字r為主版本號(hào) 第2位數(shù)字x為說明版本類型的次版本號(hào): 偶數(shù)表示產(chǎn)品化版本 奇數(shù)表示實(shí)驗(yàn)版本 第3位數(shù)字y為修改號(hào),表示錯(cuò)誤修補(bǔ)的次數(shù) Linux簡介第22頁,共70頁。23主流的Linux發(fā)行版本Linux簡介第23頁,共70頁。24Linux與Windows的區(qū)別文件系統(tǒng)Linux需要一個(gè)掛載根目錄/的ext分區(qū)和一個(gè)作為虛擬內(nèi)存的swap分區(qū)Linux沒有盤符,可通過設(shè)備名掛載,掛在信息在/dev/fstab,如mount -t ntfs /dev/sda1 /mnt/win_cLinux將所有設(shè)備都映射成/dev目錄下的一個(gè)文件用戶管理系統(tǒng)管理員是root,使用su命令切換L

14、inux簡介第24頁,共70頁。25主要內(nèi)容Linux簡介Linux內(nèi)核環(huán)境Linux編程環(huán)境Linux的系統(tǒng)初始化Linux的程序執(zhí)行機(jī)制第25頁,共70頁。26Linux內(nèi)核核心組成進(jìn)程調(diào)度程序:負(fù)責(zé)控制進(jìn)程訪問CPU內(nèi)核管理程序:支持虛擬內(nèi)存及多進(jìn)程安全共享主存系統(tǒng)虛擬文件系統(tǒng):抽象異構(gòu)硬件設(shè)備細(xì)節(jié),提供公共文件接口網(wǎng)絡(luò)接口:提供對多種組網(wǎng)標(biāo)準(zhǔn)和網(wǎng)絡(luò)硬件的訪問進(jìn)程間通信:為進(jìn)程之間的通信提供實(shí)現(xiàn)機(jī)制Linux內(nèi)核環(huán)境第26頁,共70頁。27Linux內(nèi)核源碼的獲取下載位置以GNU zip和bzip2形式發(fā)布安裝位置一般安裝在/usr/src/linux,不要將該源碼樹用于開發(fā)在編譯自己編

15、寫的C庫所用的內(nèi)核版本要鏈接到該樹不要以root身份對內(nèi)核進(jìn)行修改,應(yīng)先建立自己的主目錄,僅以root身份安裝新內(nèi)核安裝新內(nèi)核應(yīng)該保持/usr/src/linux原封不動(dòng)Linux內(nèi)核環(huán)境第27頁,共70頁。28Linux核心源碼結(jié)構(gòu)Linux內(nèi)核環(huán)境第28頁,共70頁。29Linux核心源碼的組織arch 目錄包含與體系結(jié)構(gòu)相關(guān)的核心代碼,相關(guān).h文件則放在include/asm下支持的每種CPU均有相應(yīng)子目錄,包含boot、kernel、lib和mm等子目錄/kernel目錄存放大多數(shù)內(nèi)核函數(shù)主要文件包括sched.c、time.c、sys.c、itimer.c、fork.c、signal

16、.c、softirq.c、resource.c、dma.c、printk.c等/mm子目錄獨(dú)立于體系結(jié)構(gòu)的主存管理文件包括實(shí)現(xiàn)虛擬主存管理的源代碼Linux內(nèi)核環(huán)境第29頁,共70頁。/fs目錄存放VFS和系統(tǒng)支持的各種文件系統(tǒng)源代碼每個(gè)子目錄對應(yīng)一個(gè)特定文件系統(tǒng)/include目錄存放重要的內(nèi)核.h頭文件為各種CPU專設(shè)一個(gè)子目錄通用子目錄include/linux、include/net/ipc目錄存放處理進(jìn)程間通信所需源代碼30Linux核心源碼的組織(續(xù))Linux內(nèi)核環(huán)境第30頁,共70頁。/drivers目錄 存放所有設(shè)備驅(qū)動(dòng)程序源代碼/net子目錄存放網(wǎng)絡(luò)子系統(tǒng),如各種網(wǎng)卡和網(wǎng)絡(luò)

17、規(guī)程驅(qū)動(dòng)程序/security目錄存放安全子系統(tǒng)代碼/sound目錄存放語音子系統(tǒng)代碼31Linux核心源碼的組織(續(xù))Linux內(nèi)核環(huán)境第31頁,共70頁。/init目錄存放內(nèi)核引導(dǎo)和初始化代碼許多重要文件,如main.c、version.c就位于該目錄下/lib目錄存放內(nèi)核需要的通用工具性內(nèi)核函數(shù)(如對出錯(cuò)信息的處理),它能夠在引導(dǎo)時(shí)解壓內(nèi)核并裝入主存/scripts目錄存放編譯內(nèi)核所用腳本和用于系統(tǒng)配置的命令文件/documentation目錄存放內(nèi)核源代碼文檔32Linux核心源碼的組織(續(xù))Linux內(nèi)核環(huán)境第32頁,共70頁。采用模塊化的內(nèi)核配置系統(tǒng)內(nèi)核模塊(Loadable Ke

18、rnel Module)的概念模塊實(shí)際上是一種目標(biāo)對象文件,沒有鏈接,不能獨(dú)立運(yùn)行但是其代碼可以在系統(tǒng)運(yùn)行時(shí)鏈接到系統(tǒng)中作為內(nèi)核的一部分運(yùn)行,或從內(nèi)核中取下,從而可以動(dòng)態(tài)擴(kuò)充內(nèi)核的功能(不需要重新編譯內(nèi)核)這種目標(biāo)代碼通常由一組函數(shù)和數(shù)據(jù)結(jié)構(gòu)組成33Linux內(nèi)核的配置組成Linux內(nèi)核環(huán)境第33頁,共70頁。使得內(nèi)核更加緊湊和靈活,可擴(kuò)展 修改模塊時(shí),不必全部重新編譯整個(gè)內(nèi)核系統(tǒng)如果需要使用新模塊,只要編譯相應(yīng)的模塊,然后將模塊插入即可模塊可以不依賴于某個(gè)固定的硬件平臺(tái)模塊的目標(biāo)代碼一旦被鏈接到內(nèi)核,它的作用域和靜態(tài)鏈接的內(nèi)核目標(biāo)代碼完全等價(jià)34內(nèi)核模塊的優(yōu)點(diǎn)Linux內(nèi)核環(huán)境第34頁,共7

19、0頁。并不是所有地方都使用內(nèi)核模塊設(shè)備驅(qū)動(dòng)程序文件系統(tǒng)驅(qū)動(dòng)程序系統(tǒng)調(diào)用大部分系統(tǒng)調(diào)用屬于基礎(chǔ)內(nèi)核(Basic kernel),也可以以內(nèi)核模塊方式增加新的系統(tǒng)調(diào)用或者覆蓋現(xiàn)有基于內(nèi)核模塊方式實(shí)現(xiàn)的系統(tǒng)調(diào)用35內(nèi)核模塊的使用Linux內(nèi)核環(huán)境第35頁,共70頁。程序代碼:helloworld.c編譯、安裝方法root# gcc -c helloworld.croot# insmod helloworld.oroot# lsmodroot# rmmod helloworld36模塊示例#define MODULE#include int init_module(void) printk(“Hell

20、o World!n”);return 0;void cleanup_module(void) printk(“ Goodbye!n”);Linux內(nèi)核環(huán)境第36頁,共70頁。37內(nèi)核模塊與應(yīng)用程序的差別C語言程序 模塊運(yùn)行 用戶空間 內(nèi)核空間入口 main() init_module()出口 無 cleanup_module()編譯 gcc -c gcc -c -D_KERNEL_-DMODULE連接 gcc insmod運(yùn)行 直接運(yùn)行 insmod調(diào)試 gdb kdbug, kdb, kgdb等 Linux內(nèi)核環(huán)境第37頁,共70頁??刂菩枰幾g到內(nèi)核的二進(jìn)制映象(啟動(dòng)時(shí)載入)和在需要時(shí)才裝

21、入的內(nèi)核模塊配置選項(xiàng)命名形式:CONFIG_FEATURE如CONFIG_SMP表示支持對稱多處理器配置項(xiàng)選擇模式二選一:yes或no三選一:yes、no或moduleYes選項(xiàng)表示把代碼編譯進(jìn)主內(nèi)核映象,而不作為模塊Module意味該配置項(xiàng)被選定,但編譯時(shí)該功能的實(shí)現(xiàn)代碼是以模塊形式生成驅(qū)動(dòng)程序一般都用三選一形式字符串或整數(shù)不控制編譯過程,只是指定內(nèi)核源碼可以訪問的值,如定義靜態(tài)變量一般以預(yù)處理宏的形式表示38Linux內(nèi)核編譯時(shí)的模塊選配參數(shù)Linux內(nèi)核環(huán)境第38頁,共70頁。內(nèi)核編譯主要工具文件內(nèi)核編譯后,會(huì)在/boot目錄生產(chǎn)以下文件vmlinuz文件initrd.img文件Syst

22、em.map文件39Linux內(nèi)核編譯的基本架構(gòu)文件類型作用Makefile頂層Makefile文件.config內(nèi)核配置文件arch/$(ARCH)/Makefile機(jī)器體系Makefile文件scripts/Makefile.*所有內(nèi)核Makefiles共用規(guī)則kbuild Makefiles其它Makefile文件第39頁,共70頁。Makefile定義編譯鏈接規(guī)則、位于linux源代碼各目錄配置文件(config.in或kconfig)提供內(nèi)核的配置選擇和設(shè)置配置工具文本命令行工具:make config基于ncurse的圖形工具:make menuconfig基于X11的圖形工具:m

23、ake xconfig基于gtk+的圖形工具:make gconfig創(chuàng)建默認(rèn)配置:make defconfig配置工具輸出文件.config文件:用#include包括到主Makefile中include/linux/autoconf.h:用#include包括到各個(gè).c文件每個(gè).c文件都有代碼項(xiàng)40Linux內(nèi)核配置系統(tǒng)組成Linux內(nèi)核環(huán)境第40頁,共70頁。采用GNU編譯工具對.config中的源文件列表編譯完成內(nèi)核文件的配置、依賴關(guān)系及模塊的生成,隨后調(diào)用Rules.make編譯文件Rules.make定義所有Makefile共用的編譯規(guī)則Makefile支持的make命令make

24、mrproper:檢查.o文件及文件依賴關(guān)系的正確性make config:配置內(nèi)核并生成配置文件make dep:根據(jù)配置文件創(chuàng)建相應(yīng)的依賴關(guān)系樹make clean:清除舊版本的目標(biāo)文件make zImage:編譯并用gzip壓縮成1MB以下的內(nèi)核未壓縮的文件是vmlinuzmake bzImage:編譯并用gzip壓縮成1MB以上的內(nèi)核make modules:編譯模塊make modules_install :安裝模塊depmod a:生成模塊之間的依賴關(guān)系41主Makefile功能Linux內(nèi)核環(huán)境第41頁,共70頁。準(zhǔn)備階段下載源碼:將源碼解壓到/usr/src目錄下tar xvj

25、f linux-x.y.z.tar.bz2tar xvzf linux-x.y.z.tar.gz解壓位置:linux-x.y.z目錄下建立內(nèi)核編譯環(huán)境ln sf linux-x.y.z linux cd /usr/includerm -rf asm linux scsiln -sf /usr/src/linux/include/asm-i386 asmln -sf /usr/src/linux/include/linux linuxln -sf /usr/src/linux/include/scsi scsi42Linux內(nèi)核的編譯、安裝過程Linux內(nèi)核環(huán)境第42頁,共70頁。配置內(nèi)核檢查文

26、件依賴關(guān)系正確性:make mrproper獲取默認(rèn).config文件:cp /boot/config-uname -r .config生成配置文件:make config創(chuàng)建依賴關(guān)系樹:make dep清除舊版本目標(biāo)文件:make clean生成壓縮形式內(nèi)核文件:make bzImage或make zImage編譯后的文件在/usr/src/linux/arch/i386/boot目錄下編譯、安裝內(nèi)核編譯內(nèi)核:make編譯模塊:make modules安裝模塊:make modules_install生成模塊依賴關(guān)系:depmod a安裝內(nèi)核:make install43Linux內(nèi)核環(huán)境第

27、43頁,共70頁。配置啟動(dòng)文件將內(nèi)核映像拷貝到合適位置,并按啟動(dòng)要求啟動(dòng)#cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage-x.y.z#cp /usr/src/linux/System.map /boot/System.map-x.y.zln sf /boot/vmlinuz-x.y.z /boot/vmlinuzln sf /boot/System.map-x.y.z /boot/system.map系統(tǒng)正常啟動(dòng)時(shí)不會(huì)讀這個(gè)符號(hào)表;主要是為了內(nèi)核引導(dǎo)出錯(cuò)時(shí)便于調(diào)試/sbin/mkinitrd /boot/initrd-x.y.z.img

28、 x.y.z如果是LILO啟動(dòng)方式,編輯/etc/lilo.conf44Linux內(nèi)核的編譯、安裝過程(續(xù))Linux內(nèi)核環(huán)境第44頁,共70頁。lilo.conf修改方法image=/boot/vmlinux-2.4.7-10/ 舊內(nèi)核label=linuxread-onlyroot=/dev/hdalimage=/boot/zImage-x.y.z / 新內(nèi)核label=newkernelread-onlyroot=/dev/hdal注意:必須運(yùn)行l(wèi)ilo命令將激活新配置。如果是grub,則不需要。45Linux內(nèi)核的編譯、安裝過程(續(xù))第45頁,共70頁。46Linux系統(tǒng)的文件系統(tǒng)結(jié)構(gòu)

29、/:文件系統(tǒng)結(jié)構(gòu)的起始點(diǎn)/home:用戶主目錄/bin:標(biāo)準(zhǔn)指令和工具程序/usr :系統(tǒng)使用文件和指令/usr/bin:用戶命令和工具程序/usr/sbin:系統(tǒng)管理員命令/usr/lib:編程語言庫/usr/doc:Linux文檔/usr/man:在線聯(lián)機(jī)幫助手冊/usr/spool:假脫機(jī)文件/sbin:管理員開啟系統(tǒng)的命令/var:時(shí)變文件,例如郵箱文件/dev:設(shè)備文件接口/etc:系統(tǒng)配置文件及其它系統(tǒng)文件Linux內(nèi)核環(huán)境第46頁,共70頁。 Linux網(wǎng)絡(luò)操作系統(tǒng)的安裝安裝基本需求 存儲(chǔ)空間=700MB,一般桌面系統(tǒng)需3GB存儲(chǔ)空間處理器:x86和x86_64內(nèi)存:=64MBC

30、D/DVD -ROM:執(zhí)行光盤安裝網(wǎng)卡:網(wǎng)絡(luò)安裝需要支持網(wǎng)絡(luò)啟動(dòng)的網(wǎng)卡第47頁,共70頁。分區(qū)與文件系統(tǒng)磁盤與分區(qū)文件與文件系統(tǒng)支持Ext2、Ext3、vFat、NTFS、HPFSLinux的分區(qū)命名a) IDE硬盤命名為hd,SCSI硬盤命名為sd;b) 第一個(gè)磁盤命名為a,第二個(gè)磁盤命名為b,其余依此類推;第48頁,共70頁。c) 磁盤上第一個(gè)主分區(qū)命名為1,第二個(gè)主分區(qū)命名為2,其余依此類推;d) 磁盤上第一個(gè)邏輯分區(qū)命名為5,第二個(gè)邏輯分區(qū)命名為6,其余依此類推;例如:一臺(tái)計(jì)算機(jī)中有一塊IDE硬盤,分了三個(gè)分區(qū),兩個(gè)主分區(qū),一個(gè)邏輯分區(qū),則這三個(gè)分區(qū)的命名分別為什么?答:hda1、hd

31、a2、hda5。第49頁,共70頁。/binhome2home1bootvarwwwhtmlindex.htmldefault.cssLinux文件系統(tǒng)示例圖磁盤2磁盤1第50頁,共70頁。Linux的安裝方式光盤或者USB設(shè)備安裝硬盤安裝網(wǎng)絡(luò)安裝安裝過程略。雙系統(tǒng)安裝方法GRUB引導(dǎo)WindowsWindows引導(dǎo)LinuxGRUB引導(dǎo)多個(gè)Linux第51頁,共70頁。 2 Linux網(wǎng)絡(luò)參數(shù)的配置Linux系統(tǒng)中主要的網(wǎng)絡(luò)參數(shù)有主機(jī)名、IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS服務(wù)器等。網(wǎng)絡(luò)參數(shù)可以通過對相關(guān)配置文件的配置來完成設(shè)置,也可以通過Linux的圖形界面來配置。 實(shí)際上,Linux中幾乎所

32、有的配置都是通過配置文件來完成的,在圖形界面下的配置其實(shí)也是對相關(guān)配置文件的配置。第52頁,共70頁。2.1 用命令行配置 在命令行狀態(tài)下,網(wǎng)絡(luò)參數(shù)的配置命令主要有ifconfig、ifup、ifdown等。下面舉例說明這些命令在配置網(wǎng)絡(luò)參數(shù)中的常見用法。(1)查看網(wǎng)絡(luò)運(yùn)行情況在命令行直接輸入命令:ifconfig 該命令在屏幕上顯示當(dāng)前系統(tǒng)中網(wǎng)絡(luò)參數(shù)的配置情況,如下圖所示。第53頁,共70頁。第54頁,共70頁。主要顯示信息: eth0:網(wǎng)絡(luò)適配器(網(wǎng)卡)的網(wǎng)絡(luò)接口,如果系統(tǒng)中有多個(gè)網(wǎng)卡,則以eth1、eth2遞增編號(hào)。 Hwaddr:網(wǎng)卡的物理地址,是計(jì)算機(jī)中與網(wǎng)絡(luò)硬件相關(guān)的惟一地址。由于

33、地址格式與所用介質(zhì)的訪問控制方法相關(guān),又常稱為MAC地址。 inet:網(wǎng)卡的IP地址。 bcast:網(wǎng)卡的廣播地址。 mask:顯示網(wǎng)卡的子網(wǎng)掩碼。 lo:回環(huán)地址,一般此接口的IP地址都是。第55頁,共70頁。(2)為網(wǎng)絡(luò)接口eth0配置IP地址 假設(shè)為網(wǎng)卡eth0配置IP地址:。 在命令行輸入命令:ifconfig eth0 或ifconfig eth0 /24 注意:各參數(shù)必須用空格隔開。(3)激活網(wǎng)絡(luò)接口eth0 在命令行輸入命令:ifconfig eth0 up或 ifup eth0第56頁,共70頁。(4)關(guān)閉網(wǎng)絡(luò)接口eth0 在命令行輸入命令:ifconfig eth0 down

34、或 ifdown eth0 (5)將網(wǎng)絡(luò)接口eth0設(shè)置為動(dòng)態(tài)獲取IP地址 命令:ifconfig eth0 dynamic(6)為系統(tǒng)添加缺省網(wǎng)關(guān)54 命令:route add default gw 54第57頁,共70頁。2.2 直接修改配置文件通過命令可以快捷地進(jìn)行網(wǎng)絡(luò)參數(shù)的配置,但系統(tǒng)重新啟動(dòng)后,所設(shè)置的網(wǎng)絡(luò)參數(shù)將丟失。直接修改配置文件可以解決該問題。所有的配置文件都在/etc目錄下。以下是幾個(gè)主要配置文件。第58頁,共70頁。(1)文件/etc/sysconfig/network內(nèi)容如下:NETWORKING=yesHOSTNAME=localhost.localdomain說明 N

35、ETWORKING:定義在系統(tǒng)啟動(dòng)時(shí)是否啟動(dòng)網(wǎng)絡(luò),如果不希望啟動(dòng)則設(shè)定為no。 HOSTNAME:定義主機(jī)的名稱。第59頁,共70頁。(2)文件/etc/sysconfig/network-scripts/ifcfg-eth0,內(nèi)容如下:DEVICE=eth0BOOTPROTO=noneONBOOT=yesUSERCTL=noPEERDNS=noTYPE=EthernetIPADDR=NETMASK=GATEWAY=54NETWORK=BROADCAST=55第60頁,共70頁。說明 DEVICE:定義本文件所對應(yīng)的網(wǎng)絡(luò)接口。 BOOTPROTO:定義系統(tǒng)啟動(dòng)時(shí)此本網(wǎng)絡(luò)接口是否使用bootp協(xié)

36、議,即是否動(dòng)態(tài)獲得IP地址。如果希望動(dòng)態(tài)獲得IP地址則設(shè)為“BOOTPROTO=dhcp”。 ONBOOT:定義系統(tǒng)啟動(dòng)時(shí)是否啟動(dòng)此網(wǎng)絡(luò)接口。 USERCTL:定義用戶是否可以啟動(dòng)本接口。如果設(shè)為“yes”,則所有用戶都可以啟動(dòng)或禁用此接口,如果設(shè)為“no”則只有root用戶才可以啟動(dòng)或者禁用此接口。 PEERDNS:是否設(shè)置PEERDNS,一般不需要設(shè)置。 TYPE:定義此網(wǎng)絡(luò)接口的格式,這里為以太網(wǎng)格式。(余下的較直觀。)第61頁,共70頁。(3)文件/etc/resolv.conf內(nèi)容如下:search nameserver nameserver 52定義DNS服務(wù)器注意:對配置文件的修

37、改要借助編輯器第62頁,共70頁。2.3 在圖形界面下配置網(wǎng)絡(luò)參數(shù)選擇“主菜單系統(tǒng)設(shè)置網(wǎng)絡(luò)”選項(xiàng),彈出“網(wǎng)絡(luò)配置”對話框進(jìn)行配置。這里配置的參數(shù)實(shí)際上是直接對以上介紹的配置文件進(jìn)行修改。因此,從本質(zhì)上來說,對文件的配置與圖形下的配置相同。注意:無論用哪種方法配置網(wǎng)絡(luò)參數(shù),都應(yīng)重新啟動(dòng)網(wǎng)絡(luò)服務(wù),以使得所做的改動(dòng)生效。在圖形界面中可以選擇“主菜單系統(tǒng)設(shè)置服務(wù)器設(shè)置服務(wù)”選項(xiàng),也可以用命令/etc/rc.d/init.d/network restart第63頁,共70頁。第64頁,共70頁。第65頁,共70頁。VMware中Linux的網(wǎng)絡(luò)配置1. VMware中網(wǎng)絡(luò)的三種工作模式 VMWare中網(wǎng)絡(luò)提供了三種工作模式,分別是: bridged(橋接模式) host-only(主機(jī)模式) NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換模式) 要合理應(yīng)用它們,應(yīng)該先了解一下這三種工作模式。第66頁,共70頁。bridged(橋接模式) 在這種模式下,VMWare虛擬出來的操作系統(tǒng)就像是局域網(wǎng)中的一臺(tái)獨(dú)立的主機(jī),它可以訪問網(wǎng)內(nèi)任何一臺(tái)機(jī)器。 在橋接模式下,需要手工為虛擬系統(tǒng)配置IP地址、子網(wǎng)掩碼,而且還要和宿主機(jī)器處于同一網(wǎng)段,這樣虛擬系統(tǒng)才能和宿主機(jī)器進(jìn)行通信。同時(shí),由于這個(gè)虛擬

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論