<Linux>计算机体系结构和操作系统
計算機體系結構(馮 ? 諾依曼體系)和操作系統(Operator System)
文章目錄
- 計算機體系結構(馮 ? 諾依曼體系)和操作系統(Operator System)
- 一、馮 ? 諾依曼體系結構
- 1.存儲器(內存)
- 2.運算器和控制器(CPU)
- 3.輸入設備和輸出設備(I/O設備)
- 輸入設備
- 輸出設備
- 4.擴展
- 二、數據流動
- 1.單機
- 2.跨機
- 三、操作系統OS
- 操作系統概念
- 設計OS的目的
- 如何理解管理
- OS的管理結構
- 四、系統調用與用戶操作接口
- 1.系統調用接口
- 2.用戶操作接口
一、馮 ? 諾依曼體系結構
我們常見的計算機,如筆記本。我們不常見的計算機,如服務器,大部分都遵守馮諾依曼體系。
計算機包含輸入設備、輸出設備、存儲器、中央處理器(運算器+控制器) 截至目前,我們所認識的計算機,都是有一個個的硬件組件組成的。磁盤屬于外存,具有永久性存儲能力。CPU作為計算機的核心,負責計算,速度最快,寄存器次之,內存在次之,而外設是較慢的。
- 這里的體系結構我們不考慮軟件,只研究硬件
其中:
輸入設備:鍵盤、磁盤、網卡、鼠標、攝像頭、話筒等
- 計算機的本質是計算數據,要計算數據第一步是想辦法把數據交給計算機,需要有對應的設備來采集相應的數據,這就需要使用輸入設備。
輸出設備:顯示器、磁盤、網卡、聲卡、音箱、打印機等
- 計算機的作用是服務用戶,計算完數據后需要將數據輸出給用戶,這就需要輸出設備
存儲器:內存
CPU:運算器、控制器
- 計算機的本質工作是計算,CPU就是用來計算的,這是必不可少的。比如我們今天買了一部手機,這個手機沒有芯片,那也只能當作移動硬盤來用。
- 注意:同種設備可能即使輸入設備,也是輸出設備如磁盤、網卡等
- 內存需要從磁盤中讀取數據(為什么不是CPU讀取下面會講),這時它是輸入設備,CPU處理好的數據需要經由內存放入磁盤,這里它就是輸出設備。
- 我們在聊天軟件如微信、QQ聊天時,別人將信息通過網卡傳給我們,這時本地的網卡對于我們就是輸入設備,我們將信息通過本地的網卡傳給別人,此時本地的網卡就是輸出設備。
- 存儲器不是磁盤,是內存,之后會反復用到內存
1.存儲器(內存)
馮諾依曼體系結構里的存儲器一般指的是內存。我們都知道,寫好的軟件在編譯好后,要運行,必須要先加載到內存,但是為什么要先加載到內存呢?
因為CPU在和存儲器的交互中,要不斷讀取數據,這些數據必須是在內存里面,這里的CPU能且只能對內存進行讀寫,不能訪問外設(輸入或輸出設備),但是你編譯好的.exe程序是文件,而這個文件在編譯好后是在磁盤這個外設上的,所以cpu會要求你把程序加載到內存,從而實現交互。而這個操作是操作系統幫你完成的,會自動加載到內存上(預加載)。CPU不和外設直接打交道,和內存直接打交道。外設(輸入或輸出設備)要輸入或者輸出數據,也只能寫入內存或者從內存中讀取。所有外設有數據需要載入,只能載入到內存中,內存寫出也一定是寫到外設中。簡單來說,就**是所有設備都只能直接和內存打交道,提高整機效率。**
- 總結:所以程序的運行必須要加載到內存,CPU執行的代碼訪問數據,只能從內存中讀取(這也是體系結構規定的)。
在這里大多數人還有一個問題就是,先將輸入設備的數據交給內存,再由內存將數據交給CPU,這個過程真的比CPU直接從輸入設備獲取數據更快嗎?
說明這個問題之前,我們首先需要知道:內存具有數據存儲的能力。雖然內存的大小只有4G/8G,但是既然內存有大小,那么它就有預裝數據的能力,而這就是提高該體系結構效率的秘訣。
這里不得不說到的就是局部性原理:根據統計學原理,當一個數據正在被訪問時,那么下一次有很大可能會訪問其周圍的數據。所以當CPU需要獲取某一行數據時,內存可以將該行數據之后的數據一同加載進來,而CPU處理數據和內存加載數據是可以同時進行的,這樣下次CPU就可以直接從內存當中獲取數據。
輸出數據的時候也一樣,CPU處理完數據后直接將數據放到內存當中,當輸出設備需要時再在內存當中獲取即可,這也就有了我們平常所說的緩沖區的概念。例如,緩沖區滿了才將數據打印到屏幕上,使用fflush函數將緩沖區當中的數據直接輸出之類的,都是將內存當中的數據直接拿到輸出設備當中進行顯示輸出。
按理說,計算機把要處理的數據通過輸入設備交給CPU處理,處理好后再通過輸出設備顯示結果,整個過程為何要有內存呢?
下面將從兩個角度去解決這個問題:
一、技術角度:
CPU的內部是有寄存器的,寄存器就是一些存儲單元,寄存器的速度是非常快的,而我們要清楚cpu的運算速度 > 寄存器的速度 > L1 ~ L3Cache > 內存 > 外設(磁盤)> 光盤磁帶,因此我們得知輸入輸出設備的速度相較于CPU是很慢的,而如若直接把數據通過輸入設備交給CPU處理,處理好后再通過輸出設備顯示結果,就會產生一個木桶效應:
因此得知,計算機體系的效率不是由cpu決定的(盡管cpu很快),而是由輸入輸出這兩個外設決定的,這就導致計算機的效率非常的差,所以不能只把外設和cpu對接起來,這樣的效率太低了。因此馮諾依曼就在輸入輸出和cpu之間添加了存儲器來改變這一現狀。
從數據角度看,外設不和CPU直接交互,而是和內存交互,CPU也是如此。僅是添加存儲器這個媒介就能解決效率低的原因是如下:
1、從硬件上,存儲器的存在更好的適配了外設和CPU速度不均衡的特點。
2、因為存儲器的存在,讓軟件的存在有了更大的生存空間和價值。
- **總結:**內存在我們看來,就是體系結構的一個大的緩存,用于適配外設和CPU速度不均的問題!
二、成本角度
- 前面提到過,CPU具有寄存器,而寄存器也具有存儲數據的能力,為什么不用CPU的寄存器來充當這個內存呢,這樣就不再需要單獨添加內存了。從技術上談是可以的,但是這就要考慮到成本了:寄存器的成本 >> 內存 >> 磁盤(外設)。如果用寄存器充當內存,光成本就要幾十w,真承擔不起。而計算機之所以能蔓延全球,主要是其具有便宜和有效的特點。因此使用內存是最優選,既適配了速度不均的問題,也經濟實惠。
- **總結:**使用內存可以達到用較低的成本,來獲得較高的性能的特點。
2.運算器和控制器(CPU)
運算器:
計算機計算的種類有兩種:算數計算(+、-、*、/……) + 邏輯計算(&&邏輯與、||邏輯或……)
控制器:
控制器也是一個硬件,雖然外設和中央處理器在數據上沒有交互,但并不代表它倆就沒有交互。前面得知輸入設備會把數據預裝載到內存,從何和cpu進行交互,但是你怎么知道所有數據都被預裝載了呢,針對沒被預裝載的數據,中央處理器就要和外設進行交互協商,而這個操作就是由控制器完成的,從而將數據盡可能加載到內存,或把數據從內存加載到外設。
幾乎所有的硬件,只能被動的完成某種功能,不能主動的完成某種功能,一般都是要配合軟件完成的(OS操作系統+CPU)
這里的CPU只能被動接受別人的指令和別人的數據,那么CPU必須先認識別人的指令(每個CPU被制作都有自己的指令集),才能執行別人的指令,起到計算別人數據的目的。
上面說到CPU的速度很快,而外設的速度很慢,那么CPU直接從外設拿數據效率就降低了,所以數據是從外設加載到內存中的,然后CPU再從內存中讀取數據,CPU處理完的數據再返回給內存(產生了緩存),數據再從內存中加載到外設,這大大提高的數據的處理。
所以CPU再讀取和寫入時候,在數據層面只和內存打交道,為了整體效率。內存從外設讀取和寫入數據的過程成為I/O過程(input/output)
3.輸入設備和輸出設備(I/O設備)
輸入設備
借助計算機的輸入設備,用戶能夠輕松地將數據或者指令傳遞給計算機。同時,計算機中的 CPU 會接收用戶輸入的指令或數據,并對其進行處理、加工,最終將處理結果反饋給用戶。
下面給大家列舉了一些常見的輸入設備,如下表所示。
| 鍵盤 | 最常見的輸入設備之一,其包含有多個按鍵,每個按鍵上都標有不同的數字、字母、字符等。 如今的鍵盤,可以通過 USB 或者藍牙設備連接到計算機,用戶只需要按壓按鍵即可向計算機傳遞數據。 |
| 鼠標 | 一種手持輸入設備,通常有 2 個按鈕和一個滾輪組成。 借助鼠標,用戶可以控制計算機屏幕上光標的移動,也可以選中某個應用程序并對其做打開、刪除等操作。 |
| 掃描儀 | 用于掃描圖片或者文檔,并將掃描的內容轉換為數字格式的數據傳遞給計算機。 |
| 攝像頭 | 可以連接到計算機的任何攝像頭,都可以稱為網絡攝像頭,筆記本上的內嵌攝像頭也可歸為此類。 網絡攝像頭可以拍攝圖像或者錄制視頻,然后將其轉換為數字形式傳輸給計算機。 |
| 麥克風 | 麥克風是用于向計算機中輸入聲音的輸入設備,它可以接收聲音產生的振動信息并將其轉換為音頻信息,必要時它還可以將音頻信息轉換為數字形式供計算機存儲。 |
| 數碼相機 | 它可以捕捉圖像、視頻等信息,并以數字形式存儲在存儲卡中,用戶也可以將存儲的信息導入到計算機。 |
| 游戲桿/游戲方向盤 | 游戲桿的功能和鼠標類似,是一種確定位置的輸入設備。和鼠標不同,游戲桿是通過搖桿的移動來改變計算機屏幕上光標的位置。 游戲方向盤常用作賽車游戲中的輸入設備,借助該設備,用戶可以在賽車游戲中控制賽車左轉或右轉。 |
| 觸摸屏/觸摸板 | 觸摸屏和觸摸板都可以看做是鼠標的替代品,它們都是輸入設備。這 2 種輸入設備允許用戶通過手指控制計算機屏幕上光標的移動,還附帶點擊、選中某個應用程序等功能。 |
| 遙控器 | 遙控器允許用戶在不離開座位的情況也可以控制某臺設備。以電視遙控器為例,它可以調臺、增大或減小電視機的音量等。 |
| VR設備 | VR 是指由計算機生成的人工虛擬環境,用戶借助 VR 設備(例如 VR 耳機、VR 眼鏡等)即可與虛擬環境中的虛擬對象實現交互。 |
| 手勢識別裝置 | 此類輸入設備可以識別人的手勢,不同的手勢會被識別為不同的指令傳輸給計算機。 |
| 生物識別設備 | 生物識別主要指的是通過指紋、眼角膜、面部結構等識別一個人的過程。 生物識別設備通常先掃描用戶的信息,然后和存儲在計算機(數據庫)中的數據比對,從而判定該用戶的身份是否符合要求。 |
| 光學字符閱讀器(OCR) | 該輸入設備可以掃描手寫或者打印的文本信息,并將掃描到的數據轉換為數字格式傳輸給計算機。 |
| 條形碼閱讀器 | 這是一種可讀取條形碼數據的輸入設備。條形碼閱讀器可以掃描條形碼表示的信息并傳輸給相連接的計算機。 |
| 讀卡器 | 讀卡器常用于讀取銀行卡,它可以將銀行卡包含的信息傳輸給連接的計算機。 |
除上表列舉的這些輸入設備外,還有一些輸入設備,例如 OMR 光標閱讀器,數字化儀等,由于不太常見,這里不再做詳細的介紹,感興趣的讀者可自行查閱相關資料。
輸出設備
計算機的輸出設備用于向用戶顯示計算機對輸入數據的處理結果。
計算機可以用多種多樣的形式將處理結果展示給用戶,比如文本、圖像、音頻以及視頻等。
接下來給大家列舉了一些實際生活中常用的輸出設備,以及它們各自的特點。
顯示器
顯示器又稱屏幕,是實際生活中最常用的輸出設備之一。
顯示器用于向用戶顯示經計算機處理后的數據,且支持文本、圖像、音頻、視頻等多種顯示形式。
隨著科技的不斷進步,根據內部實現機制的不同,顯示器又可細分為 CRT顯示器(陰極射線管顯示器)、LCD 液晶顯示器、LED 顯示器以及等離子顯示器。
打印機
打印機的功能是將計算機的處理結果打印到紙張上,其顯示形式可以為文本、圖像等形式。
現今市面上的打印機,根據工作原理的不同大體可分為 2 類,分別為擊打式打印機和非擊打式打印,每一類還有更細致的劃分,比如現在常用的噴墨式打印機、激光打印機都屬于非擊打式打印機,而針式打印機則屬于擊打式打印機。
投影儀
投影儀也是一種輸出設備,它可以將計算機的處理結果以投影的方式顯示到大屏幕或者墻壁上。
鑒于投影儀在顯示計算機處理結果的同時,還能將其放大顯示,因此該類輸出設備常常用于演示或者教學。
音箱
音箱也是一種輸出設備,它可以將計算機的處理結果以音頻的方式播放出來。
4.擴展
我們經常說CPU當中有寄存器,實際上寄存器不僅在CPU中,在其它外設中也有寄存器。
如:當我們敲擊鍵盤時,鍵盤是先將獲取到的內容存儲在寄存器當中,然后通過寄存器將數據寫入內存中。
在物理層面,各個硬件單元之間是通過總線連接的,外設與內存之間的總線叫做IO總線,內存與CPU之間的總線叫做系統總線。
在早些年的計算機中,因為芯片能力不強,有時是之間將外設中的數據傳輸給CPU,CPU計算完后在交給內存,在合適的時候由內存拿出數據。現在不在使用這個技術,而是在外設中使用DMA芯片,將外設的數據存入內存,不在利用CPU。
在數據層面上,CPU不和外設交互,但有時候,有些控制信號需要二者交互。如:一些外設給CPU發送控制信號,請求幫助處理一些數據。
二、數據流動
我們已經有了對馮諾依曼體系的理解,接下來我們就可以看一下,在硬件層面,單機和跨主機之間,數據流是如何流向的!
也就是研究,我們將我們的程序加載到內存,然后執行我們的代碼,最后在外設顯示器上打印,它的整個數據流在硬件上是如何走的。
該內容難度不高,作為理解軟件的工具。因為軟件是無法脫離硬件的,當我們理解了硬件的數據流向,軟件上的很多行為我們就可以嘗試去理解它了。
1.單機
我們以QQ音樂的啟動來了解單機中數據是如何流動的?
以在音樂播放器(網易云音樂)播放音樂為例:
首先,我們的客戶端軟件,先加載到內存,然后由CPU執行,接著我們就看到了網易云的界面,其次,我們點擊播放音樂,通過外設的網卡,拿到數據,再將數據傳輸到內存,經CPU計算(此時的計算可以看作解析),計算后將計算結果返回到內存,由內存傳到外設,傳到計算機的音箱中播放出來。
2.跨機
假設你和你的朋友進行qq聊天,如何解釋一個數據從你的輸入到輸出的整個數據流動過程呢?
要使用QQ,首先需要聯網,而A和B的電腦都是馮諾依曼體系結構,在A向B發送消息的過程中,A電腦中的鍵盤充當輸入設備、顯示器和網卡是輸出設備。B電腦中的網卡充當輸入設備、顯示器充是輸出設備。
因為你和你朋友的計算機都是馮諾依曼體系,所以你們通信的本質就是從一個體系結構到另一個體系結構,A在鍵盤上輸入數據,在硬件上講,將數據輸入到內存,在軟件上講,將數據輸入到QQ中。然后數據要經過計算和加密,經由CPU計算,將計算結果傳回內存,由內存傳到外設,這里是傳到了兩個地方,一個是A自己的顯示器,因為他輸入的消息,他自己也要看到,另一個傳到了網卡,經由網卡傳給B。B的計算機通過網卡拿到數據,將數據傳給內存,經過CPU進行解密操作,在傳回內存,由內存傳到外設中的顯示器,使B看到該消息。
其中,將外設中的數據讀入內存,將數據顯示在顯示器上和發送到網卡,都是由軟件(QQ)內部自己來完成。
對馮諾依曼的理解,不能停留在概念上,要深入到對軟件數據流理解上,請解釋,從你登錄上qq開始和某位朋友聊天開始,數據的流動過程。 從你打開窗口,開始給他發消息,到他的到消息之后的數據流動過程。如果是在qq上發送文件呢?
- 發送消息 ——> 接受消息的數據流動:你的電腦鍵盤 —> 你的電腦內存 —> 你的電腦的CPU (加密) —> 你的電腦網卡 —> 你朋友電腦的網卡 —> 你朋友電腦的內存 —> 你朋友電腦的CPU (解密) —> 你朋友電腦的顯示器
- 發送文件 ——> 接受文件的數據流動:你的電腦鍵盤 —> 你的電腦內存 —> 你的電腦的CPU (加密) —> 你的電腦網卡 —> 你朋友電腦的網卡 —> 你朋友電腦的內存 —> 你朋友電腦的CPU (解密) —> 你朋友電腦的顯示器
三、操作系統OS
操作系統概念
任何計算機系統都包含一個基本的程序集合,稱為操作系統(OS)。籠統的理解,操作系統包括:
- 內核(進程管理,內存管理,文件管理,驅動管理)
- 其他程序(例如函數庫, shell程序等等)
設計OS的目的
在整個計算機軟硬件架構中,操作系統的定位是: 一款純正的“搞管理”的軟件。對下要管理好軟硬件資源,對上要給用戶提供一個良好的運行環境。那操作系統究竟管理些什么呢?操作系統主要進行以下四項管理:
-
內存管理:內存分配、內存共享、內存保護以及內存擴張等等。
-
驅動管理:對計算機設備驅動驅動程序的分類、更新、刪除等操作。
-
文件管理:文件存儲空間的管理、目錄管理、文件操作管理以及文件保護等等。
-
進程管理:其工作主要是進程的調度。
如何理解管理
下面我將從三個方面去理解管理:
一、管理者不需要與被管理者直接交互,依舊能夠很好的將被管理者管理起來
我們以學校為例,學校的校長并沒有直接與我們 (學生) 進行交互,但是他仍然能夠很好的將我們管理起來。可能有的同學會說,我們并不是由校長來管理的,而是由輔導員來管理的。但是實際上,輔導員并不算一個管理者,他沒有重大事宜的決策權。
擁有對重大事宜的決策權的人才是管理者,雖然日常與我們進行交互的入是輔導員,但是輔導員對我們并沒有決策權,比如你是否能夠升級、是否能夠評優評先、是否會別學校開除等等重大事項。
二、管理的本質就是對數據的管理
先舉個例子,每個高校都有校長、輔導員、學生這三類人。這里面有人是做決策,有人是做執行,當然這也就有了管理者與被管理者的身份,而管理的本質:不是對被管理對象進行直接管理,而是只要拿到被管理對象的所有的相關數據,我們對數據的管理,就可以體現對人的管理!!而拿到相關數據的人就稱為執行者,我們畫個簡圖示意:
而上述校長的角色就是操作系統,輔導員就是驅動,學生就是硬件。對于計算機來說,各種硬件對應的驅動就是所謂的執行者,比如網卡有網卡驅動,磁盤有磁盤驅動;操作系統從這些驅動獲取硬件數據,然后通過對硬件的數據進行管理實現對硬件的管理。
- 綜上管理的本質是對數據的管理,但是數據是有“多、少”的分別的。當數據量很大時該如何管理呢,下面就來討論。
三、管理的理念就是先描述,再組織
- 對于校長來說,他想管理上千號學生本質就是在管理數據,但是數據量很大,可是每個學生的重復數據類型很多,比如每個學生都具有籍貫、姓名、各科成績……,我們先前在學習c語言的過程中,都知道有struct,它是用來描述對象的某種功能,如下:
- 這是站在C語言的視角用結構體類型來定義變量,如果數據量過大,多大上萬個,那么就要定義上萬個變量來記錄這些人的數據,可這就會導致這么多變量毫無關聯,同樣對于校長來說難道我要一個一個小本本的添加信息嗎,這不純純冤種。對于校長,他就想到可以創建一個鏈表結構,在結構體內部構建前驅和后繼指針
- 通過這樣一個鏈表結構,每個節點存儲了各個學生的相關信息,而這些節點又是前后相串聯起來的,如圖示:
- 此時對學生的管理,就變成了對鏈表的增刪改查。校長要想派出一名學生去參加數學競賽,那么就遍歷此鏈表,并找出數學成績最好的那個……
由硬件各種數據抽象出來的結構體
typedef struct device {int type; //設備類型int status; //設備狀態... //其他屬性信息struct device* next; //下一個設備的地址 }Dev;對各種設備的數據進行管理轉變為了對鏈表進行增刪查改
list dev_list; struct Dev disk_div; dev_list.insert(disk_div); struct Dev keyBoard_div; dev_list.insert(keyBoard_div); dev_list.erase(display_div); ...總結:管理的本質是對數據進行管理,而對數據的管理就是對某種數據結構的管理。管理的核心理念就是先描述、再組織。所以無論是C還是C++,都是來幫助我們描述對象的,而數據結構是幫助我們把所有的對象組織管理起來的。
OS的管理結構
先來看下銀行的體系結構:
- 銀行有自己的底層硬件,比如電腦,桌椅,倉庫,宿舍……。當然上面也有一批人專門負責對應硬件的管理,這一批人直接和硬件打交道。再往上就會有銀行的正式職工,可以用電腦,做桌椅,取錢,住宿舍……。因為這些職工的存在再往上就會產生銀行的業務。而這些職工也會有人管理,叫做行長,可以管理軟硬件。整個這一套就是銀行的體系結構。
類似的操作系統也是差不多這個結構。
- 計算機的底層有相應的硬件和驅動程序,操作系統內核對下可以管理好軟硬件,同樣也要管理進程。并且可以對外提供服務。
- 操作系統并不相信任何的用戶,它不會將自己任何的數據結構、代碼邏輯……直接暴露給用戶,為的是防止用戶惡意修改操作系統,所以操作系統是通過系統調用的方式,對外提供接口服務!類似于銀行的工作人員提供一個一個小的窗口來給我們服務。Linux操作系統是用C語言寫的,這里所謂的“接口”,本質就是C函數!。我們學習系統編程,本質就是在學習這里的系統接口。
- 系統調用在使用上,功能比較基礎,對用戶的要求相對也比較高,所以,有心的開發者可以對部分系統調用進行適度封裝,從而形成庫(用戶操作接口),有了庫,就很有利于更上層用戶或者開發者進行二次開發。
四、系統調用與用戶操作接口
1.系統調用接口
既然操作系統是管理各種軟硬件資源的軟件,那么我們能否通過操作系統直接對各種軟硬件進行操作呢?比如磁盤、顯示器、磁盤驅動等設備;答案是不能,因為操作系統不相信任何用戶,操作系統不確定我們是否會對各種軟硬件進行違法操作,比如刪除磁盤驅動、向磁盤中添加惡意數據等等。
但是操作系統又必須給上層用戶提供各種服務,比如用戶訪問軟硬件的需求,比如從磁盤中讀取與寫入數據、向顯示器打印數據、通過網卡發送數據等等;針對上述情況,操作系統想了一個完美的方法:給用戶提供系統調用的接口,即當用戶有訪問軟硬件的需求時,直接調用操作系統提供的接口,然后由操作系統來幫助用戶完成對應的工作;這樣即滿足了用戶的需求,又保護了軟硬件資源。
注:Linux 操作系統是托瓦茲大神于1991年使用C語言編寫的,而上述的各種系統調用接口又是由操作系統提供的,所以它們也是C式的接口,說白了就是 用C語言編寫的用于用戶調用的各種函數接口。
2.用戶操作接口
雖然操作系統為我們提供了各種系統調用接口讓我們來訪問軟硬件,但是這些接口在使用上功能比較基礎,對用戶的要求也相對較高;于是人們在系統調用接口的基礎上開發出了用戶操作接口,比如 Linux 下的外殼程序 shell,各種函數庫 (C/C++等),windows 圖形化界面 (GUI),以及一些指令 (編譯好的可執行程序) 等;
用戶通過這些操作接口進行指令操作、開發操作以及管理操作等等;比如 Linux 下外殼程序 bash 提供的 ls,本質上是調用系統接口,將磁盤中文件信息寫入到顯示器;touch 本質是調用系統接口,在磁盤上創建文件;又比如 C語言的 scanf/printf 函數,底層都是調用系統調用接口從鍵盤讀入數據/向顯示器上打印數據。
參考文章:
1、計算機軟硬件體系結構
2、I/O設備(輸入設備和輸出設備)
總結
以上是生活随笔為你收集整理的<Linux>计算机体系结构和操作系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dockerfile配置APM监控实现J
- 下一篇: kubevirt 存储 网络 监控