linux操作系統的結構及詳細說明
linux的操作系統的結構你了解多少呢?下面由學習啦小編為大家整理了linux操作系統的結構及詳細說明的相關知識,希望對大家有幫助!
linux操作系統的結構及詳細說明:一、 linux內核
內核是操作系統的核心,具有很多最基本功能,它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定著系統的性能和穩定性。
Linux 內核由如下幾部分組成:內存管理、進程管理、設備驅動程序、文件系統和網絡管理等。
系統調用接口:SCI 層提供了某些機制執行從用戶空間到內核的函數調用。這個接口依賴于體系結構,甚至在相同的處理器家族內也是如此。SCI 實際上是一個非常有用的函數調用多路復用和多路分解服務。在 ./linux/kernel 中您可以找到 SCI 的實現,并在 ./linux/arch 中找到依賴于體系結構的部分。
1. 內存管理
對任何一臺計算機而言,其內存以及其它資源都是有限的。為了讓有限的物理內存滿足應用程序對內存的大需求量,Linux 采用了稱為“虛擬內存”的內存管理方式。Linux 將內存劃分為容易處理的“內存頁”(對于大部分體系結構來說都是 4KB)。Linux 包括了管理可用內存的方式,以及物理和虛擬映射所使用的硬件機制。
不過內存管理要管理的可不止 4KB 緩沖區。Linux 提供了對 4KB 緩沖區的抽象,例如 slab 分配器。這種內存管理模式使用 4KB 緩沖區為基數,然后從中分配結構,并跟蹤內存頁使用情況,比如哪些內存頁是滿的,哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據系統需要來動態調整內存使用。
為了支持多個用戶使用內存,有時會出現可用內存被消耗光的情況。由于這個原因,頁面可以移出內存并放入磁盤中。這個過程稱為交換,因為頁面會被從內存交換到硬盤上。內存管理的源代碼可以在 ./linux/mm 中找到。
2 .進程管理
進程實際是某特定應用程序的一個運行實體。在 Linux 系統中,能夠同時運行多個進程,Linux 通過在短的時間間隔內輪流運行這些進程而實現“多任務”。這一短的時間間隔稱為“時間片”,讓進程輪流運行的方法稱為“進程調度” ,完成調度的程序稱為調度程序。
進程調度控制進程對CPU的訪問。當需要選擇下一個進程運行時,由調度程序選擇最值得運行的進程。可運行進程實際上是僅等待CPU資源的進程,如果某個進程在等待其它資源,則該進程是不可運行進程。Linux使用了比較簡單的基于優先級的進程調度算法選擇新的進程。
通過多任務機制,每個進程可認為只有自己獨占計算機,從而簡化程序的編寫。每個進程有自己單獨的地址空間,并且只能由這一進程訪問,這樣,操作系統避免了進程之間的互相干擾以及“壞”程序對系統可能造成的危害。 為了完成某特定任務,有時需要綜合兩個程序的功能,例如一個程序輸出文本,而另一個程序對文本進行排序。為此,操作系統還提供進程間的通訊機制來幫助完成這樣的任務。Linux 中常見的進程間通訊機制有信號、管道、共享內存、信號量和套接字等。
內核通過 SCI 提供了一個應用程序編程接口(API)來創建一個新進程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函數),停止進程(kill、exit),并在它們之間進行通信和同步(signal 或者 POSⅨ 機制)。
3. 文件系統
和 DOS 等操作系統不同,Linux 操作系統中單獨的文件系統并不是由驅動器號或驅動器名稱(如 A: 或 C: 等)來標識的。相反,和 UNIX 操作系統一樣,Linux 操作系統將獨立的文件系統組合成了一個層次化的樹形結構,并且由一個單獨的實體代表這一文件系統。Linux 將新的文件系統通過一個稱為“掛裝”或“掛上”的操作將其掛裝到某個目錄上,從而讓不同的文件系統結合成為一個整體。Linux 操作系統的一個重要特點是它支持許多不同類型的文件系統。Linux 中最普遍使用的文件系統是 Ext2,它也是 Linux 土生土長的文件系統。但 Linux 也能夠支持 FAT、VFAT、FAT32、MINIX 等不同類型的文件系統,從而可以方便地和其它操作系統交換數據。由于 Linux 支持許多不同的文件系統,并且將它們組織成了一個統一的虛擬文件系統.
虛擬文件系統(VirtualFileSystem,VFS):隱藏了各種硬件的具體細節,把文件系統操作和不同文件系統的具體實現細節分離了開來,為所有的設備提供了統一的接口,VFS提供了多達數十種不同的文件系統。虛擬文件系統可以分為邏輯文件系統和設備驅動程序。邏輯文件系統指Linux所支持的文件系統,如ext2,fat等,設備驅動程序指為每一種硬件控制器所編寫的設備驅動程序模塊。
虛擬文件系統(VFS)是 Linux 內核中非常有用的一個方面,因為它為文件系統提供了一個通用的接口抽象。VFS 在 SCI 和內核所支持的文件系統之間提供了一個交換層。即VFS 在用戶和文件系統之間提供了一個交換層。
在 VFS 上面,是對諸如 open、close、read 和 write 之類的函數的一個通用 API 抽象。在 VFS 下面是文件系統抽象,它定義了上層函數的實現方式。它們是給定文件系統(超過 50 個)的插件。文件系統的源代碼可以在 ./linux/fs 中找到。
文件系統層之下是緩沖區緩存,它為文件系統層提供了一個通用函數集(與具體文件系統無關)。這個緩存層通過將數據保留一段時間(或者隨即預先讀取數據以便在需要是就可用)優化了對物理設備的訪問。緩沖區緩存之下是設備驅動程序,它實現了特定物理設備的接口。
因此,用戶和進程不需要知道文件所在的文件系統類型,而只需要象使用 Ext2 文件系統中的文件一樣使用它們。
4. 設備驅動程序
設備驅動程序是 Linux 內核的主要部分。和操作系統的其它部分類似,設備驅動程序運行在高特權級的處理器環境中,從而可以直接對硬件進行操作,但正因為如此,任何一個設備驅動程序的錯誤都可能導致操作系統的崩潰。設備驅動程序實際控制操作系統和硬件設備之間的交互。設備驅動程序提供一組操作系統可理解的抽象接口完成和操作系統之間的交互,而與硬件相關的具體操作細節由設備驅動程序完成。一般而言,設備驅動程序和設備
的控制芯片有關,例如,如果計算機硬盤是 SCSI 硬盤,則需要使用 SCSI 驅動程序,而不是 IDE 驅動程序。
5.網絡接口(NET)
提供了對各種網絡標準的存取和各種網絡硬件的支持。網絡接口可分為網絡協議和網絡驅動程序。網絡協議部分負責實現每一種可能的網絡傳輸協議。眾所周知,TCP/IP 協議是 Internet 的標準協議,同時也是事實上的工業標準。Linux 的網絡實現支持 BSD 套接字,支持全部的TCP/IP協議。Linux內核的網絡部分由BSD套接字、網絡協議層和網絡設備驅動程序組成。
網絡設備驅動程序負責與硬件設備通訊,每一種可能的硬件設備都有相應的設備驅動程序。
linux操作系統的結構及詳細說明:二、 linux shell
shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行,是一個命令解釋器。另外,shell編程語言具有普通編程語言的很多特點,用這種編程語言編寫的shell程序與其他應用程序具有同樣的效果。
目前主要有下列版本的shell。
1.Bourne Shell:是貝爾實驗室開發的。
2.BASH:是GNU的Bourne Again Shell,是GNU操作系統上默認的shell,大部分linux的發行套件使用的都是這種shell。
3.Korn Shell:是對Bourne SHell的發展,在大部分內容上與Bourne Shell兼容。
4.C Shell:是SUN公司Shell的BSD版本。
linux操作系統的結構及詳細說明:三、linux文件系統
3.1 文件類型
Linux下面的文件類型主要有:
1) 普通文件:C語言元代碼、SHELL腳本、二進制的可執行文件等。分為純文本和二進制。
2) 目錄文件:目錄,存儲文件的唯一地方。
3) 鏈接文件:指向同一個文件或目錄的的文件。
4) 設備文件:與系統外設相關的,通常在/dev下面。分為塊設備和字符設備。
5)管道(FIFO)文件 : 提供進程建通信的一種方式
6)套接字(socket) 文件: 該文件類型與網絡通信有關
可以通過ls –l, file, stat幾個命令來查看文件的類型等相關信息。
3.2 Linux目錄
文件結構是文件存放在磁盤等存貯設備上的組織方法。主要體現在對文件和目錄的組織上。
目錄提供了管理文件的一個方便而有效的途徑。
Linux使用標準的目錄結構,在安裝的時候,安裝程序就已經為用戶創建了文件系統和完整而固定的目錄組成形式,并指定了每個目錄的作用和其中的文件類型。
完整的目錄樹可劃分為小的部分,這些小部分又可以單獨存放在自己的磁盤或分區上。這樣,相對穩定的部分和經常變化的部分可單獨存放在不同的分區中,從而方便備份或系統管理。目錄樹的主要部分有 root、/usr、/var、/home 等 。這樣的布局可方便在 Linux 計算機之間共享文件系統的某些部分。
Linux采用的是樹型結構。最上層是根目錄,其他的所有目錄都是從根目錄出發而生成的。
微軟的DOS和windows也是采用樹型結構,但是在DOS和 windows中這樣的樹型結構的根是磁盤分區的盤符,有幾個分區就有幾個樹型結構,他們之間的關系是并列的。最頂部的是不同的磁盤(分區),如:C,D,E,F等。
但是在linux中,無論操作系統管理幾個磁盤分區,這樣的目錄樹只有一個。從結構上講,各個磁盤分區上的樹型目錄不一定是并列的。
3.3.文件目錄管理命令
磁盤和文件空間 :fdisk df du
文件目錄與管理: cd pwd mkdir rmdir ls cp rm mv
查看文件內容 cat、tac、more、less、head 、tail
文件目錄與權限 :chmod chown chgrp umask
文件查找:which、whereis、locate、find、find
linux操作系統的結構及詳細說明:四、linux 應用
標準的Linux系統一般都有一套都有稱為應用程序的程序集,它包括文本編輯器、編程語言、X Window、辦公套件、Internet工具和數據庫等。
linux操作系統的結構及詳細說明:五、linux內核參數優化
內核參數是用戶和系統內核之間交互的一個接口,通過這個接口,用戶可以在系統運行的同時動態更新內核配置,而這些內核參數是通過Linux Proc文件系統存在的。因此,可以通過調整Proc文件系統達到優化Linux性能的目的。