這是我見過的最詳細的Linux系統結構講解!
對於每個Linux學習者來說,除了掌握常用的工具和命令之外,瞭解Linux作業系統的目錄結構,也是學好Linux至關重要的一步,小編為大家整理了這篇文章,相信一定會對你有所幫助,請看下文:
Linux作業系統有4個部分:核心、shell、檔案系統和應用程式。
其中,核心、shell和檔案系統一起形成了基本的作業系統結構,因此使用者可以執行程式、管理檔案並使用系統。
1、Linux核心
核心是作業系統的核心,具有很多最基本的功能,負責管理系統的程式、記憶體、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。
2、記憶體管理
對任何一臺計算機而言,其記憶體以及其它資源都是有限的。為了讓有限的實體記憶體滿足應用程式對記憶體的大需求量,Linux採用了稱為“虛擬記憶體”的記憶體管理方式。Linux將記憶體劃分為容易處理的“記憶體頁”(對於大部分體系結構來說都是4KB)。Linux包括了管理可用記憶體的方式,以及物理和虛擬對映所使用的硬體機制。
不過記憶體管理要管理的可不止4KB緩衝區。Linux提供了對4KB緩衝區的抽象,例如slab分配器。這種記憶體管理模式使用4KB緩衝區為基數,然後從中分配結構,並跟蹤記憶體頁使用情況,比如哪些記憶體頁是滿的,哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據系統需要來動態調整記憶體使用。
為了支援多個使用者使用記憶體,有時會出現可用記憶體被消耗光的情況。由於這個原因,頁面可以移出記憶體並放入磁碟中。這個過程稱為交換,因為頁面會被從記憶體交換到硬碟上。記憶體管理的原始碼可以在./linux/mm中找到。
3、程式管理
程式實際是某特定應用程式的一個執行實體。在Linux系統中,能夠同時執行多個程式,Linux透過在短的時間間隔內輪流執行這些程式而實現“多工”。這一短的時間間隔稱為“時間片”,讓程式輪流執行的方法稱為“程式排程” ,完成排程的程式稱為排程程式。
程式排程控制程式對CPU的訪問。當需要選擇下一個程式執行時,由排程程式選擇最值得執行的程式。可執行程式實際上是僅等待CPU資源的程式,如果某個程式在等待其它資源,則該程式是不可執行程式。Linux使用了比較簡單的基於優先順序的程式排程演算法選擇新的程式。
4、檔案系統
和DOS等作業系統不同,Linux作業系統中單獨的檔案系統並不是由驅動器號或驅動器名稱(如A: 或 C:等)來標識的。相反,和UNIX作業系統一樣,Linux作業系統將獨立的檔案系統組合成了一個層次化的樹形結構,並且由一個單獨的實體代表這一檔案系統。Linux將新的檔案系統透過一個稱為“掛裝”或“掛上”的操作將其掛裝到某個目錄上,從而讓不同的檔案系統結合成為一個整體。
Linux作業系統的一個重要特點是它支援許多不同型別的檔案系統。Linux中最普遍使用的檔案系統是Ext2,它也是Linux土生土長的檔案系統。但Linux也能夠支援FAT、VFAT、FAT32、MINIX等不同型別的檔案系統,從而可以方便地和其它作業系統交換資料。由於Linux支援許多不同的檔案系統,並且將它們組織成了一個統一的虛擬檔案系統。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2884054/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最詳細的JVM&GC講解JVMGC
- 最新Java筆試題分享,我見過最詳細的Redis解析Java筆試Redis
- vue-cli 目錄結構詳細講解Vue
- 如何優雅的設計RESTful API?這是我看過講的最清晰的文章!RESTAPI
- 這是我見過最詳細的十大排序演算法介紹了,沒有之一!(十大排序演算法詳解)排序演算法
- 前端魔法堂:可能是你見過最詳細的WebWorker實用指南前端Web
- 可能是最詳細的字元編碼詳解字元
- 這是我見過的把開發人員學習路線總結的最清晰的四張圖了
- 這可能是你看過最詳細的NodeJS安裝配置教程NodeJS
- 史上最詳細的webpack 講解2 (DefinePlugin中的淫技巧)WebPlugin
- 是時候深入瞭解Linux的系統結構了Linux
- 這或許是最詳細的JUC多執行緒併發總結執行緒
- 最全面最詳細的字符集講解來了!
- 最詳細的測試用例設計方法講解
- 這可能是最詳細的Python檔案操作Python
- 教科書級講解,秒懂最詳細Java的註解Java
- 這可能是我用過的最強大 APIAPI
- 別找了,這是 Pandas 最詳細教程了
- 工程師們看過來|這是我見過的IT圈最“潮”的產品釋出會了!工程師
- iOS史上最詳細的動畫講解-載入等待動畫(一)iOS動畫
- Kafka原始碼篇 --- 可能是你看過最詳細的RecordAccumulator解讀Kafka原始碼
- webpack4.x最詳細入門講解Web
- 全網最!詳!細!Tarjan演算法講解。演算法
- 這是我讀過寫得最好的【秒殺系統架構】分析與實戰!架構
- 這應該是全網最詳細的Vue3.5版本解讀Vue
- HTML 超級連結詳細講解HTML
- 據我瞭解免費OA系統是這樣的
- EventBus 3.0+ 原始碼詳解(史上最詳細圖文講解)原始碼
- 這是我見過最通俗易懂的SVD(奇異值分解)演算法介紹演算法
- 絕對是講的最清楚的-NodeJS模組系統NodeJS
- react的詳細知識講解!React
- Java中的static詳細講解Java
- 最詳細的代理講解--JDK動態代理和cglib代理JDKCGLib
- Linux系統中10個最危險的命令詳解Linux
- MVC 三層架構案例詳細講解MVC架構
- 這是我見過最全的支付系統!一套適合網際網路企業使用的開源支付系統
- Linux系統常見檔案大小常用的命令詳解!Linux
- Linux系統中服務常見的兩大類詳解!Linux