不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>操作系統(tǒng)基礎(chǔ)知識>

linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明

時間: 佳洲1085 分享

  linux的操作系統(tǒng)的結(jié)構(gòu)你了解多少呢?下面由學(xué)習(xí)啦小編為大家整理了linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明的相關(guān)知識,希望對大家有幫助!

  linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明:一、 linux內(nèi)核

  內(nèi)核是操作系統(tǒng)的核心,具有很多最基本功能,它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。

  Linux 內(nèi)核由如下幾部分組成:內(nèi)存管理、進(jìn)程管理、設(shè)備驅(qū)動程序、文件系統(tǒng)和網(wǎng)絡(luò)管理等。

  系統(tǒng)調(diào)用接口:SCI 層提供了某些機(jī)制執(zhí)行從用戶空間到內(nèi)核的函數(shù)調(diào)用。這個接口依賴于體系結(jié)構(gòu),甚至在相同的處理器家族內(nèi)也是如此。SCI 實(shí)際上是一個非常有用的函數(shù)調(diào)用多路復(fù)用和多路分解服務(wù)。在 ./linux/kernel 中您可以找到 SCI 的實(shí)現(xiàn),并在 ./linux/arch 中找到依賴于體系結(jié)構(gòu)的部分。

  1. 內(nèi)存管理

  對任何一臺計(jì)算機(jī)而言,其內(nèi)存以及其它資源都是有限的。為了讓有限的物理內(nèi)存滿足應(yīng)用程序?qū)?nèi)存的大需求量,Linux 采用了稱為“虛擬內(nèi)存”的內(nèi)存管理方式。Linux 將內(nèi)存劃分為容易處理的“內(nèi)存頁”(對于大部分體系結(jié)構(gòu)來說都是 4KB)。Linux 包括了管理可用內(nèi)存的方式,以及物理和虛擬映射所使用的硬件機(jī)制。

  不過內(nèi)存管理要管理的可不止 4KB 緩沖區(qū)。Linux 提供了對 4KB 緩沖區(qū)的抽象,例如 slab 分配器。這種內(nèi)存管理模式使用 4KB 緩沖區(qū)為基數(shù),然后從中分配結(jié)構(gòu),并跟蹤內(nèi)存頁使用情況,比如哪些內(nèi)存頁是滿的,哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據(jù)系統(tǒng)需要來動態(tài)調(diào)整內(nèi)存使用。

  為了支持多個用戶使用內(nèi)存,有時會出現(xiàn)可用內(nèi)存被消耗光的情況。由于這個原因,頁面可以移出內(nèi)存并放入磁盤中。這個過程稱為交換,因?yàn)轫撁鏁粡膬?nèi)存交換到硬盤上。內(nèi)存管理的源代碼可以在 ./linux/mm 中找到。

  2 .進(jìn)程管理

  進(jìn)程實(shí)際是某特定應(yīng)用程序的一個運(yùn)行實(shí)體。在 Linux 系統(tǒng)中,能夠同時運(yùn)行多個進(jìn)程,Linux 通過在短的時間間隔內(nèi)輪流運(yùn)行這些進(jìn)程而實(shí)現(xiàn)“多任務(wù)”。這一短的時間間隔稱為“時間片”,讓進(jìn)程輪流運(yùn)行的方法稱為“進(jìn)程調(diào)度” ,完成調(diào)度的程序稱為調(diào)度程序。

  進(jìn)程調(diào)度控制進(jìn)程對CPU的訪問。當(dāng)需要選擇下一個進(jìn)程運(yùn)行時,由調(diào)度程序選擇最值得運(yùn)行的進(jìn)程。可運(yùn)行進(jìn)程實(shí)際上是僅等待CPU資源的進(jìn)程,如果某個進(jìn)程在等待其它資源,則該進(jìn)程是不可運(yùn)行進(jìn)程。Linux使用了比較簡單的基于優(yōu)先級的進(jìn)程調(diào)度算法選擇新的進(jìn)程。

  通過多任務(wù)機(jī)制,每個進(jìn)程可認(rèn)為只有自己獨(dú)占計(jì)算機(jī),從而簡化程序的編寫。每個進(jìn)程有自己單獨(dú)的地址空間,并且只能由這一進(jìn)程訪問,這樣,操作系統(tǒng)避免了進(jìn)程之間的互相干擾以及“壞”程序?qū)ο到y(tǒng)可能造成的危害。 為了完成某特定任務(wù),有時需要綜合兩個程序的功能,例如一個程序輸出文本,而另一個程序?qū)ξ谋具M(jìn)行排序。為此,操作系統(tǒng)還提供進(jìn)程間的通訊機(jī)制來幫助完成這樣的任務(wù)。Linux 中常見的進(jìn)程間通訊機(jī)制有信號、管道、共享內(nèi)存、信號量和套接字等。

  內(nèi)核通過 SCI 提供了一個應(yīng)用程序編程接口(API)來創(chuàng)建一個新進(jìn)程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函數(shù)),停止進(jìn)程(kill、exit),并在它們之間進(jìn)行通信和同步(signal 或者 POSⅨ 機(jī)制)。

  3. 文件系統(tǒng)

  和 DOS 等操作系統(tǒng)不同,Linux 操作系統(tǒng)中單獨(dú)的文件系統(tǒng)并不是由驅(qū)動器號或驅(qū)動器名稱(如 A: 或 C: 等)來標(biāo)識的。相反,和 UNIX 操作系統(tǒng)一樣,Linux 操作系統(tǒng)將獨(dú)立的文件系統(tǒng)組合成了一個層次化的樹形結(jié)構(gòu),并且由一個單獨(dú)的實(shí)體代表這一文件系統(tǒng)。Linux 將新的文件系統(tǒng)通過一個稱為“掛裝”或“掛上”的操作將其掛裝到某個目錄上,從而讓不同的文件系統(tǒng)結(jié)合成為一個整體。Linux 操作系統(tǒng)的一個重要特點(diǎn)是它支持許多不同類型的文件系統(tǒng)。Linux 中最普遍使用的文件系統(tǒng)是 Ext2,它也是 Linux 土生土長的文件系統(tǒng)。但 Linux 也能夠支持 FAT、VFAT、FAT32、MINIX 等不同類型的文件系統(tǒng),從而可以方便地和其它操作系統(tǒng)交換數(shù)據(jù)。由于 Linux 支持許多不同的文件系統(tǒng),并且將它們組織成了一個統(tǒng)一的虛擬文件系統(tǒng).

  虛擬文件系統(tǒng)(VirtualFileSystem,VFS):隱藏了各種硬件的具體細(xì)節(jié),把文件系統(tǒng)操作和不同文件系統(tǒng)的具體實(shí)現(xiàn)細(xì)節(jié)分離了開來,為所有的設(shè)備提供了統(tǒng)一的接口,VFS提供了多達(dá)數(shù)十種不同的文件系統(tǒng)。虛擬文件系統(tǒng)可以分為邏輯文件系統(tǒng)和設(shè)備驅(qū)動程序。邏輯文件系統(tǒng)指Linux所支持的文件系統(tǒng),如ext2,fat等,設(shè)備驅(qū)動程序指為每一種硬件控制器所編寫的設(shè)備驅(qū)動程序模塊。

  虛擬文件系統(tǒng)(VFS)是 Linux 內(nèi)核中非常有用的一個方面,因?yàn)樗鼮槲募到y(tǒng)提供了一個通用的接口抽象。VFS 在 SCI 和內(nèi)核所支持的文件系統(tǒng)之間提供了一個交換層。即VFS 在用戶和文件系統(tǒng)之間提供了一個交換層。

  在 VFS 上面,是對諸如 open、close、read 和 write 之類的函數(shù)的一個通用 API 抽象。在 VFS 下面是文件系統(tǒng)抽象,它定義了上層函數(shù)的實(shí)現(xiàn)方式。它們是給定文件系統(tǒng)(超過 50 個)的插件。文件系統(tǒng)的源代碼可以在 ./linux/fs 中找到。

  文件系統(tǒng)層之下是緩沖區(qū)緩存,它為文件系統(tǒng)層提供了一個通用函數(shù)集(與具體文件系統(tǒng)無關(guān))。這個緩存層通過將數(shù)據(jù)保留一段時間(或者隨即預(yù)先讀取數(shù)據(jù)以便在需要是就可用)優(yōu)化了對物理設(shè)備的訪問。緩沖區(qū)緩存之下是設(shè)備驅(qū)動程序,它實(shí)現(xiàn)了特定物理設(shè)備的接口。

  因此,用戶和進(jìn)程不需要知道文件所在的文件系統(tǒng)類型,而只需要象使用 Ext2 文件系統(tǒng)中的文件一樣使用它們。

  4. 設(shè)備驅(qū)動程序

  設(shè)備驅(qū)動程序是 Linux 內(nèi)核的主要部分。和操作系統(tǒng)的其它部分類似,設(shè)備驅(qū)動程序運(yùn)行在高特權(quán)級的處理器環(huán)境中,從而可以直接對硬件進(jìn)行操作,但正因?yàn)槿绱?,任何一個設(shè)備驅(qū)動程序的錯誤都可能導(dǎo)致操作系統(tǒng)的崩潰。設(shè)備驅(qū)動程序?qū)嶋H控制操作系統(tǒng)和硬件設(shè)備之間的交互。設(shè)備驅(qū)動程序提供一組操作系統(tǒng)可理解的抽象接口完成和操作系統(tǒng)之間的交互,而與硬件相關(guān)的具體操作細(xì)節(jié)由設(shè)備驅(qū)動程序完成。一般而言,設(shè)備驅(qū)動程序和設(shè)備

  的控制芯片有關(guān),例如,如果計(jì)算機(jī)硬盤是 SCSI 硬盤,則需要使用 SCSI 驅(qū)動程序,而不是 IDE 驅(qū)動程序。

  5.網(wǎng)絡(luò)接口(NET)

  提供了對各種網(wǎng)絡(luò)標(biāo)準(zhǔn)的存取和各種網(wǎng)絡(luò)硬件的支持。網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動程序。網(wǎng)絡(luò)協(xié)議部分負(fù)責(zé)實(shí)現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議。眾所周知,TCP/IP 協(xié)議是 Internet 的標(biāo)準(zhǔn)協(xié)議,同時也是事實(shí)上的工業(yè)標(biāo)準(zhǔn)。Linux 的網(wǎng)絡(luò)實(shí)現(xiàn)支持 BSD 套接字,支持全部的TCP/IP協(xié)議。Linux內(nèi)核的網(wǎng)絡(luò)部分由BSD套接字、網(wǎng)絡(luò)協(xié)議層和網(wǎng)絡(luò)設(shè)備驅(qū)動程序組成。

  網(wǎng)絡(luò)設(shè)備驅(qū)動程序負(fù)責(zé)與硬件設(shè)備通訊,每一種可能的硬件設(shè)備都有相應(yīng)的設(shè)備驅(qū)動程序。

  linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明:二、 linux shell

  shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行,是一個命令解釋器。另外,shell編程語言具有普通編程語言的很多特點(diǎn),用這種編程語言編寫的shell程序與其他應(yīng)用程序具有同樣的效果。

  目前主要有下列版本的shell。

  1.Bourne Shell:是貝爾實(shí)驗(yàn)室開發(fā)的。

  2.BASH:是GNU的Bourne Again Shell,是GNU操作系統(tǒng)上默認(rèn)的shell,大部分linux的發(fā)行套件使用的都是這種shell。

  3.Korn Shell:是對Bourne SHell的發(fā)展,在大部分內(nèi)容上與Bourne Shell兼容。

  4.C Shell:是SUN公司Shell的BSD版本。

  linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明:三、linux文件系統(tǒng)

  3.1 文件類型

  Linux下面的文件類型主要有:

  1) 普通文件:C語言元代碼、SHELL腳本、二進(jìn)制的可執(zhí)行文件等。分為純文本和二進(jìn)制。

  2) 目錄文件:目錄,存儲文件的唯一地方。

  3) 鏈接文件:指向同一個文件或目錄的的文件。

  4) 設(shè)備文件:與系統(tǒng)外設(shè)相關(guān)的,通常在/dev下面。分為塊設(shè)備和字符設(shè)備。

  5)管道(FIFO)文件 : 提供進(jìn)程建通信的一種方式

  6)套接字(socket) 文件: 該文件類型與網(wǎng)絡(luò)通信有關(guān)

  可以通過ls –l, file, stat幾個命令來查看文件的類型等相關(guān)信息。

  3.2 Linux目錄

  文件結(jié)構(gòu)是文件存放在磁盤等存貯設(shè)備上的組織方法。主要體現(xiàn)在對文件和目錄的組織上。

  目錄提供了管理文件的一個方便而有效的途徑。

  Linux使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu),在安裝的時候,安裝程序就已經(jīng)為用戶創(chuàng)建了文件系統(tǒng)和完整而固定的目錄組成形式,并指定了每個目錄的作用和其中的文件類型。

  完整的目錄樹可劃分為小的部分,這些小部分又可以單獨(dú)存放在自己的磁盤或分區(qū)上。這樣,相對穩(wěn)定的部分和經(jīng)常變化的部分可單獨(dú)存放在不同的分區(qū)中,從而方便備份或系統(tǒng)管理。目錄樹的主要部分有 root、/usr、/var、/home 等 。這樣的布局可方便在 Linux 計(jì)算機(jī)之間共享文件系統(tǒng)的某些部分。

  Linux采用的是樹型結(jié)構(gòu)。最上層是根目錄,其他的所有目錄都是從根目錄出發(fā)而生成的。

  微軟的DOS和windows也是采用樹型結(jié)構(gòu),但是在DOS和 windows中這樣的樹型結(jié)構(gòu)的根是磁盤分區(qū)的盤符,有幾個分區(qū)就有幾個樹型結(jié)構(gòu),他們之間的關(guān)系是并列的。最頂部的是不同的磁盤(分區(qū)),如:C,D,E,F(xiàn)等。

  但是在linux中,無論操作系統(tǒng)管理幾個磁盤分區(qū),這樣的目錄樹只有一個。從結(jié)構(gòu)上講,各個磁盤分區(qū)上的樹型目錄不一定是并列的。

  3.3.文件目錄管理命令

  磁盤和文件空間 :fdisk df du

  文件目錄與管理: cd pwd mkdir rmdir ls cp rm mv

  查看文件內(nèi)容 cat、tac、more、less、head 、tail

  文件目錄與權(quán)限 :chmod chown chgrp umask

  文件查找:which、whereis、locate、find、find

  linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明:四、linux 應(yīng)用

  標(biāo)準(zhǔn)的Linux系統(tǒng)一般都有一套都有稱為應(yīng)用程序的程序集,它包括文本編輯器、編程語言、X Window、辦公套件、Internet工具和數(shù)據(jù)庫等。

  linux操作系統(tǒng)的結(jié)構(gòu)及詳細(xì)說明:五、linux內(nèi)核參數(shù)優(yōu)化

  內(nèi)核參數(shù)是用戶和系統(tǒng)內(nèi)核之間交互的一個接口,通過這個接口,用戶可以在系統(tǒng)運(yùn)行的同時動態(tài)更新內(nèi)核配置,而這些內(nèi)核參數(shù)是通過Linux Proc文件系統(tǒng)存在的。因此,可以通過調(diào)整Proc文件系統(tǒng)達(dá)到優(yōu)化Linux性能的目的。

3636348