偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

寫給小白的操作系統入門科普

系統 其他OS
從本質來看,操作系統其實就是一套軟件。它也是代碼寫出來的,像我們現在普遍使用的Windows10,主要就是C/C++寫的。

今天這篇文章,我們來聊聊操作系統(Operating System, OS)。

我們每天都在使用操作系統。Windows、Linux、安卓、iOS,都是非常經典的操作系統。有了它們,我們才能夠更好地使用電腦、手機這樣的硬件終端設備。

那么,操作系統的本質是什么?到底具有哪些功能和特性?我們常說的進程、線程、內核、中斷、GUI、CLI……又是什么意思?

接下來,我們一起尋找答案。

什么是操作系統

從本質來看,操作系統其實就是一套軟件。它也是代碼寫出來的,像我們現在普遍使用的Windows10,主要就是C/C++寫的。

操作系統屬于軟件,但又是非常特別的軟件。

在整個計算機架構中,它距離硬件最近,是最重要、最基礎的軟件。它負責控制和管理整個計算機系統的資源,并進行合理組織、調度和分配。

圖片圖片

計算機的層次架構

對于用戶(user)和上層應用軟件(application)來說,操作系統把很多底層的細節(jié)都封裝隱藏起來了,通過標準接口以供調用,大大簡化了上層應用軟件的開發(fā)。

與此同時,它又提供了很多輔助性的工具和功能,讓用戶可以更好地掌控計算機的運行狀態(tài)。

換句話說,操作系統就是一個超級大管家。它什么都管,為用戶服務,向用戶負責。

操作系統的核心功能

我們可以把操作系統的核心功能分為以下幾個方面:

首先,是進程管理。

進程(Process)和線程(Thread),是操作系統里非常重要的兩個概念。

進程是資源分配的基本單位。進程的創(chuàng)建、終止、調度、同步以及進程間的通信,都是由操作系統負責的。應用程序的運行,包括操作系統本身核心功能的運行,都是以進程的形式存在。

每個進程都包括程序的代碼、數據、狀態(tài),以及操作系統為該程序分配的資源(如內存空間、文件句柄、網絡端口等)。操作系統通過進程管理,來確保各個進程能夠高效、安全地共享CPU時間。

我們使用“Ctrl+Alt+Del”快捷鍵調出Windows的任務管理器,就可以看到很多的進程:

圖片圖片

任務管理器

線程,則是操作系統進行運算調度的最小單位。

線程比進程更低一級,是進程內的一個可以獨立調度和指派的執(zhí)行單元。

一個進程中可以有多個線程,共享相同的內存空間和資源,可以更容易地進行通信和數據共享。

圖片圖片

進程與線程

例如你啟動了一個瀏覽器程序,那么,操作系統就會開啟一個相應的進程。這個進程里面,又會有多個線程,如HTTP請求線程、事件響應線程、渲染線程等。

如果你關閉這個瀏覽器程序,從任務管理器可以看到,這個進程和對應的線程都沒有了。當然,你也可以在任務管理器里,直接右鍵關閉某個進程,程序也就強制退出了。Linux里干掉一個進程,用的命令就是“kill(殺掉)”。

線程是操作系統發(fā)展到后期才引入的。它進一步提供了程序執(zhí)行的并發(fā)性,提高了系統的效率。

進程和線程,都可以包括執(zhí)行態(tài)、就緒態(tài)、阻塞態(tài)等狀態(tài)。對進程和線程進行管理,本質上是為了實現對CPU資源的分配調度。

圖片圖片

進程的狀態(tài)變化

需要注意的是,一個程序可以對應一個或多個進程。而一個進程同樣可以對應一個或多個程序(雖然比較罕見)。

其次,是內存管理。

以前我們多次提到過馮·諾依曼架構。程序要從硬盤到內存,才能夠被運算器(CPU)處理。每個程序都有足夠的內存空間,才能夠確保正常運行。

圖片圖片

馮·諾依曼架構

運行之后,內存也需要被及時釋放,才能讓別的程序能夠繼續(xù)占用。

內存的分配和回收,也是操作系統負責的。

除了內存分配之外,操作系統還要負責進行內存保護(確保每道程序都只在自己的內存區(qū)中運行,進程間不會互相干擾)、地址映射(將程序裝入內存運行時,需要將邏輯地址轉化成內存單元所限定的物理地址)、內存擴充(借助于虛擬存儲技術,從邏輯上去擴充內存容量)等工作。

第三,是設備管理。

這是操作系統的重要任務之一。它管理和控制外部設備(如打印機、硬盤驅動器、鍵盤、鼠標等)的使用。

圖片圖片

具體來說,它可以完成用戶進程提出的I/O(輸入/輸出)請求,為用戶進程分配其所需的I/O設備,提高CPU和I/O設備的利用率,提高I/O速度等。高效的I/O調度,可以避免I/O設備拖累系統的運行。

第四,是文件系統管理。

文件系統是操作系統用來組織、存儲和檢索數據的一套規(guī)則。

操作系統提供了一套機制來組織、存儲、檢索和保護文件,包括文件的創(chuàng)建、刪除、讀寫操作以及目錄結構的維護。我們也可以將其理解為操作系統對存儲設備和資源的管理和調用。

第五,安全和權限管理。

有了硬件和軟件資源,我們還要指定到底誰能夠使用他們。

操作系統提供了完善的安全機制,確保用戶數據的安全性和完整性,包括用戶身份驗證、訪問控制和加密等。

最后一個核心功能,是交互界面。

操作系統是用戶使用計算機的一個工具。我們想要讓計算機工作,就需要一個好的交互界面,以便下達命令、查詢結果和狀態(tài)。

操作系統提供圖形用戶界面(GUI,Graphical User Interface)或命令行界面(CLI,Command Line Interface),讓用戶能夠方便地與計算機交互。這是計算機在社會全面普及的一個前提條件。

很多人都用過“cmd”調出來的命令行界面,那種叫做聯機命令接口,也叫交互式命令接口。

圖片圖片

以前,我們還學過寫批處理文件(.bat文件),給出好幾個命令,讓計算機逐一執(zhí)行。這種叫做脫機命令接口。

值得一提的是,除了(聯機、脫機)命令接口之外,操作系統還提供了程序接口。

程序接口由一組系統調用(system call)組成,允許應用程序間接調用資源。

圖片圖片

現在有很多應用程序通過高級語言提供的庫函數,間接地進行系統調用。我們可以把這些庫函數視為對系統調用的進一步封裝。

圖片圖片

需要注意,凡是與共享資源有關的操作(如存儲分配、I/O操作、文件管理等),都必須通過系統調用的方式,向操作系統內核提出服務請求,由操作系統內核代為完成。這樣可以保證系統的穩(wěn)定性和安全性。

操作系統的主要特性

除了上面說的六大功能之外,操作系統還有四個特性,分別是:并發(fā)、共享、異步和虛擬。

  • 并發(fā)(concurrency)

并發(fā)是指兩個或多個事件在同一時間間隔內發(fā)生。操作系統具有并發(fā)特性,是指其具有處理和調度多個程序同時執(zhí)行的能力。

并發(fā)和并行(parallellism)是有區(qū)別的。并行是兩個或多個事件在同一時刻內發(fā)生。舉例來說,一邊吃蘋果一邊看電視,是并行。在1分鐘之內,吃掉蘋果、香蕉和橘子,就是并發(fā)。

圖片圖片

很顯然,并發(fā)從宏觀上看是同時發(fā)生的,但從微觀上看是分時交替發(fā)生的(和通信里面的“時分復用”有點像)。并發(fā)考驗的是資源調度的能力,而并行需要硬件的支持,例如采用多核處理器。

  • 共享(sharing)

共享,是指系統中的資源可以被多個并發(fā)進程共同使用。它分為兩種方式,互斥共享和同時共享。

互斥共享,顧名思義,就是不能同時用。僅當某一進程訪問完并釋放該資源后,才允許另一進程對該資源進行訪問。這類資源稱為臨界資源或獨占資源。計算機系統中的大多數物理設備,都屬于臨界資源。

同時共享,就是能夠多個進程同時用。最典型的設備,就是硬盤。

大家應該也能看出來,共享的底層邏輯也和通信里的“復用”很像,要么是分時間進行共享(時分復用),要么是分物理資源空間進行共享(空分復用),主要看資源本身的屬性。

  • 異步(asynchronous)

異步,是同步的反義詞。同步是大家保持節(jié)奏統一。而異步,是各走各的路。

異步的前提是并發(fā)性,如果沒有并發(fā)性,所有任務只能one by one串行執(zhí)行,那么,整個系統的效率就會很低。

  • 虛擬(virtualization)

最后是虛擬。這個我們在云計算里經常會提到。把一個物理實體,變成若干個邏輯實體,就是虛擬。

虛擬的本質,還是資源的復用。只不過通過軟件來實現了,用戶感受到的,是多個邏輯實體。

操作系統的組成架構

我們再來看看操作系統的組成架構。

操作系統的核心,就是大家經常聽說的內核(Kernel)。

圖片圖片

內核直接與硬件進行交互,并為其他系統軟件和應用程序提供服務。前面提到的操作系統核心功能,除了交互界面之外,大部分都和內核緊密相關。

計算機里的CPU,工作狀態(tài)可以分為內核態(tài)(也叫管態(tài))和用戶態(tài)(也叫目態(tài))。運行內核程序時,是內核態(tài)。運行應用程序時,是用戶態(tài)。

操作系統有“非特權指令”和“特權指令”兩種指令。

應用程序只能使用“非特權指令”,如:加法指令、減法指令等。操作系統內核作為 “管理者”,有時會讓CPU執(zhí)行一些high level的“特權指令”,如:內存清零指令。這些指令影響重大,只允許操作系統內核來使用。

操作系統處于內核態(tài)時,可以執(zhí)行特權指令。如果處于用戶態(tài),則只能執(zhí)行非特權指令。

一般情況下,開機后,用戶啟動某個應用程序,操作系統內核程序會在合適的時候主動讓出CPU,轉為用戶態(tài)。這時,如果發(fā)生了中斷,操作系統內核會強行奪回CPU控制權,讓CPU從用戶態(tài)變成內核態(tài)。

這里剛好說說中斷(Interrupt)。

處理器收到信號,提示發(fā)生了某個事件,應予以注意,這種情況就稱為中斷。

中斷分為內中斷和外中斷。

內中斷也叫異常,是指來自CPU內部的事件,與當前執(zhí)行的指令有關。如程序的非法操作碼、地址越界、運算溢出等。異常不能被屏蔽,一旦出現,就應該立即處理。

內中斷的三種典型類型包括:陷入(trap,由陷入指令引發(fā))、故障(fault,由錯誤條件引發(fā),內核程序可以修復)、終止(abort,由致命錯誤引發(fā),內核程序無法修復)。

外中斷是狹義的中斷,信號來自CPU外部的事件,與當前執(zhí)行的指令無關。很典型的是時鐘中斷以及I/O中斷,或人為干預。

繼續(xù)說內核。

內核也分為多種類型,例如大內核、微內核。

所有的操作系統服務都在內核空間運行,就是大內核,也叫宏內核、單內核。

只有最基本的系統服務在內核空間運行,其它服務移出內核,放在用戶空間運行,是微內核。

圖片圖片

相比大內核,微內核更靈活,架構更清晰,代碼沒有那么龐大,維護起來也容易一些。

操作系統負責交互界面的,叫做外殼(Shell)。前面介紹過,包括命令解釋器和圖形用戶界面等。

除了內核和外殼以外,操作系統還包括許多其它工具和服務,例如備份工具、恢復工具、防火墻、網絡服務等。

下面這個,是一個操作系統整體架構的示意圖:

圖片圖片

這個是Linux系統的架構示意圖,供參考:

圖片圖片

操作系統的常見分類

隨著技術的發(fā)展,現代操作系統已經經歷了數十年的演變。

計算機硬件不斷升級,用戶需求不斷增加,系統功能不斷迭代,最終導致整個操作系統的架構變得越來越復雜,代碼體積也越來越龐大。

以前的操作系統只有幾MB,一個軟盤就能裝得下?,F在的操作系統,動輒幾個GB,甚至幾十GB,DVD光盤都裝不下。

針對不同的設備終端類型,以及不同的應用場景,操作系統也出現了細化分的趨勢,演變出很多類別。

通常來說,操作系統大致可以分為桌面操作系統、服務器操作系統、移動終端操作系統、嵌入式操作系統、物聯網操作系統等類別。

如下表所示:

圖片 圖片

責任編輯:武曉燕 來源: 鮮棗課堂
相關推薦

2024-11-22 10:45:20

2025-01-27 07:00:00

數據庫數據庫管理系統MySQL

2025-04-24 00:00:02

2020-08-06 08:05:13

云計算

2025-03-12 03:00:00

2023-05-11 20:15:36

2020-03-01 16:05:08

操作系統文件

2012-09-24 15:41:22

2010-04-23 09:23:25

Aix操作系統

2021-06-25 07:37:33

遞歸函數算法

2012-03-14 10:51:49

Tizen

2019-01-15 09:00:27

人工智能AIML

2010-05-07 17:31:42

Unix類操作系統

2022-05-18 09:31:42

編譯器開源代碼生成

2010-04-15 14:40:26

Unix操作系統

2009-12-09 17:25:19

Linux操作系統

2009-01-22 10:31:28

2009-07-23 18:43:25

操作系統LinuxWindows

2021-04-19 11:23:29

操作系統計算機DOS

2018-03-30 16:03:04

軟件無狀態(tài)”
點贊
收藏

51CTO技術棧公眾號