本篇主要總結的是操作系統(tǒng)的基本認知和一些概念
馮諾依曼體系結構
那么上圖表示的就是馮諾依曼體系結構,那這個體系結構是什么?為什么要先介紹它?
截止目前來說,常見的計算機都是遵循著馮諾依曼體系組成的,可以說有了馮諾依曼體系才能讓計算機變得這么普及,才有了現(xiàn)在的互聯(lián)網(wǎng)的概念,那么他是如何做到的?
在生活中我們遇到的計算機,都是由一個一個的硬件拼接而成的,從大類上來說,一般包括有輸入單元,輸出單元,中央處理器三個部分,而馮諾依曼體系的基本理解就是,讓CPU
與內(nèi)存做交互,也就是圖中的存儲器這個區(qū)域,而不是讓CPU
與輸入單元直接進行交互;輸入單元給出的內(nèi)容和信號傳到內(nèi)存后,內(nèi)存將信號傳遞給CPU
,CPU
進行一些數(shù)據(jù)處理后再傳遞回內(nèi)存,內(nèi)存再傳遞給輸出單元
關于為什么要采用這樣的方式的原因,要從下圖說起
計算機中有很多的存儲器,而每個存儲器對應的存儲大小和存儲速度也是不一樣的,比如對于CPU
來說,它的傳遞速度相當?shù)目?,可能是以納秒為單位進行的計時,而對于內(nèi)存來說,可能就是微秒或者納秒的概念,但對于輸入單元來說,就可能到達毫秒的概念上了,那么如果讓輸入單元直接和CPU
進行交互,帶來的一定是輸入單元無法跟得上CPU
的速度,導致電腦的效率極低,甚至無法進行正常的工作
那么上圖表示的就是存儲器的層次結構,說是層次結構不如說是運行速度結構,從某種意義上來說也是造價結構,寄存器的運行速度相當?shù)目?,但是它可以存儲的?nèi)容大小可能只有幾十字節(jié),造價也特別高,但對于Web
服務器來說,可能只需要幾十塊或者幾百塊就可以存儲很大的數(shù)據(jù)了,但進行數(shù)據(jù)交互的速度和寄存器是不可以比的,那么如何把計算機中的各個存儲器合理的分配才能利益最大化?這就成了最大的問題,那么這個時候馮諾依曼就提出了這樣的體系,給未來的計算機的整體設計提供了全新的思路
按照馮諾依曼的體系結構來看就能看出,讓存儲器和CPU
進行交互是最合理的,在這里可以近似的把內(nèi)存看成是一個硬件級別的緩存,它并不直接存儲數(shù)據(jù),而是作為一個把輸入數(shù)據(jù)和中央處理器進行交互的一個中間單元,因此基于馮諾依曼的體系設計出的計算機是最合理的,因此這個體系才能被保留至今,被大多數(shù)計算機進行廣泛的應用
因此我們說,基于馮諾依曼體系結構的計算機,是用最少的錢做出最高效的計算機,這樣才能讓計算機走進普通人的家中,才能讓互聯(lián)網(wǎng)開始發(fā)展到現(xiàn)在的盛世,可以說沒有馮諾依曼的體系結構是不會有現(xiàn)在的互聯(lián)網(wǎng)的
上面只是對馮諾依曼體系的概念理解,那么具體來說,根據(jù)這個體系可以解釋下面的一些現(xiàn)象
馮諾依曼體系的理解
通過社交平臺發(fā)送消息的過程
從上面的概念來解釋:輸入設備比如發(fā)送了一個你好的字樣,現(xiàn)在這個字樣要被發(fā)送出去,首先要傳遞到存儲器中被加載,在存儲器中這個消息被送到了CPU
中進行了處理,處理后通過輸出設備,比如說網(wǎng)卡,就能通過網(wǎng)絡發(fā)送到另外一臺電腦上,而與此同時在我們的這臺電腦上的輸出設備,比如說顯示器,會顯示出發(fā)送成功或者失敗的提示
對于另外一個設備,作為接受我們消息的設備,首先有一個輸入設備來接受消息,比如說網(wǎng)卡來接收消息,然后接收到的消息被傳遞到了存儲器,存儲器再傳遞到CPU
中,CPU
進行數(shù)據(jù)的處理后,將數(shù)據(jù)顯示到輸出設備上,這里就是顯示器,因此就形成了我發(fā)了一個你好,遠在很遠處的人就可以看到這條你好的句子
程序被運行前,為什么要加載到內(nèi)存?
程序其實就是代碼和數(shù)據(jù),那么最后都要交給CPU
進行處理,而CPU
需要先讀取到這些代碼和數(shù)據(jù),而在CPU
和內(nèi)存
之間有一個二進制層次的交互,形成了一個可執(zhí)行程序,本質(zhì)上來說這其實也是一個文件,這個文件只能在磁盤中讀取,而磁盤本質(zhì)上就是一個外部的輸出或者輸入設備,因此要被加載到內(nèi)存當中
通過社交平臺發(fā)送文件的過程
和上面的理解類似,只不過區(qū)別是在輸入輸出設備上略有不同,文件的存儲是在磁盤上的,而磁盤就是這里的輸入設備,經(jīng)過網(wǎng)絡的傳遞后可以傳遞到對方的電腦上,此時數(shù)據(jù)就被存儲到了輸出設備上,這里的輸出設備也是磁盤
那么到這里就結束了馮諾依曼體系結構的認識,下面就要引入正經(jīng)內(nèi)容:操作系統(tǒng)
操作系統(tǒng)
操作系統(tǒng)的基本定位
操作系統(tǒng)其實并不陌生,經(jīng)常會聽說有Windows操作系統(tǒng),Mac操作系統(tǒng),甚至有Linux操作系統(tǒng),但是操作系統(tǒng)到底是什么?操作系統(tǒng)是如何運作的?它的工作原理和核心目的是什么?這些就并沒有了解過多,那么下面開始對操作系統(tǒng)的概念有一個基礎的認知
操作系統(tǒng)是什么?
直觀的下定義來說,操作系統(tǒng)是一款軟件,它的作用是用來進行軟硬件的資源管理,也是打開電腦后第一個進行加載的軟件
操作系統(tǒng)為什么要存在?
如果沒有操作系統(tǒng),計算機只是幾個比較精美的廢鐵,并沒有什么實質(zhì)性的作用,它無法像現(xiàn)在的電腦一樣進行運轉(zhuǎn),因此操作系統(tǒng)是十分重要的,操作系統(tǒng)將軟硬件資源進行管理給用戶提供良好的使用環(huán)境,這里的良好主要體現(xiàn)在要穩(wěn)定,高效,安全,易用:用這個操作系統(tǒng)不會突然掛掉,可以合理的使用;用這個操作系統(tǒng)處理問題可以很高效的解決,幫助人縮小工作量;有一定的數(shù)據(jù)防護性,不會被偷取數(shù)據(jù)
操作系統(tǒng)是如何進行管理的?
關于操作系統(tǒng)如何進行管理,是一個很宏觀的概念,這里把操作系統(tǒng)的管理模式放到理解篇進行闡述
操作系統(tǒng)的理解1
講到操作系統(tǒng),就離不開下面的這張圖,整個操作系統(tǒng)都將圍繞下面這張圖進行闡述
那么前面對操作系統(tǒng)進行了一個基本的概念,操作系統(tǒng)是一個進行管理的軟件,那么這個管理具體表現(xiàn)在什么地方?如何理解管理這個詞呢?
管理的本質(zhì)是管理數(shù)據(jù)
接觸到管理,在實際生活運用中有很多和管理掛鉤的概念,大到管理一個國家,小到管理自己的一日安排,那么對于管理一詞的認知,也應該要進行一定的理解
所謂管理,管理的是什么?管理的是人,還是物還是什么,實際上,看似管理的是人或者是其他性質(zhì),其實管理的都是一條一條的數(shù)據(jù),比如銀行管理的是你有多少錢,就是資金數(shù)據(jù),學校管理的是你的信息,也是數(shù)據(jù),學校對你的行為做管理,其實也是在管理你在什么時候做什么事,其實也是管理的范疇,而這些管理的內(nèi)容從計算機的角度來講,其實是事物的屬性
那事物的屬性如何理解?管理的內(nèi)容通常就是事物的一條條信息,也就是屬性,因此上面的那句話其實可以更變?yōu)椋?strong>管理的本質(zhì)是管理屬性
先描述,再組織
那現(xiàn)在已經(jīng)理解了管理的含義,那么現(xiàn)在再看編程語言就知道了,在寫日期類的時候會先定義日期,在寫順序表的時候會先定義順序表的下標容量數(shù)組等,完成鏈表前要先定義鏈表的節(jié)點,再將節(jié)點穿起來等,這些都說明,當我們需要做一件事的時候,會先從屬性的角度思考問題,因為人其實就是通過屬性來認識世界上的各種事物,那重要的屬性的集合,也就代表了要研究的對象,因此才會出現(xiàn)C++
、Java
這樣的語言,它們之所以選擇面向?qū)ο蟮木幊陶Z言,其實本質(zhì)就是這方面的原因,因此本段話要引出的觀點是,在完成一件事前要先描述,再組織,當知道了要做的事物的具體屬性后,才能針對事物做出組織的動作
操作系統(tǒng)的理解2
那么現(xiàn)在就要看下面的這張圖來進行操作系統(tǒng)的全面理解
首先這張圖的右側劃分出了三個部分,分別是用戶部分,系統(tǒng)軟件部分,硬件部分,那么如何理解這三個部分?
用戶的訪問內(nèi)容是有限的
從上面的圖中可以看出,用戶其實所擁有的范圍是很小的,只有最上面的兩層,用戶和用戶接口,下來是系統(tǒng)軟件的部分,那么這個部分的意義是什么?應該如何理解除了用戶部分外的這些部分?
其實,在電腦中用戶可以訪問的內(nèi)容是有限的,比如說,用戶是不可以直接對網(wǎng)卡,硬盤進行控制的,都是用戶向操作系統(tǒng)發(fā)出詢問,操作系統(tǒng)再向我們反饋,比如該部分硬件是正常運行的還是非正常運行,有沒有接入某個驅(qū)動,用戶或者說開發(fā)人員是不可以直接進行訪問的,都是對操作系統(tǒng)發(fā)出的指令,操作系統(tǒng)再予以反饋,因此就引入了系統(tǒng)調(diào)用接口的概念,用戶的操作實際上只能局限于對接口進行調(diào)用,而當用戶發(fā)出了這個調(diào)用后,操作系統(tǒng)才能根據(jù)用戶的需求進行反饋所需要的信息,這其實也是表現(xiàn)了操作系統(tǒng)的安全性,如果沒有這層保護,可以讓用戶或開發(fā)人員直接訪問底層的內(nèi)容或驅(qū)動程序等,那對于操作系統(tǒng)來說就是不可控的行為,由于操作系統(tǒng)是一個用來管理的軟件,那么它就必定不會讓用戶的隨機訪問和隨意改動對于整個系統(tǒng)的穩(wěn)定造成威脅,因此操作系統(tǒng)拒絕對于用戶的直接訪問,而是采用操作系統(tǒng)管理后搜索到用戶需要的數(shù)據(jù)后,將數(shù)據(jù)進行一定的反饋
操作系統(tǒng)管理的核心
- 進程管理
- 內(nèi)存管理
- 文件以及IO管理
- 驅(qū)動管理
上面的內(nèi)容就是操作系統(tǒng)進行管理的內(nèi)容,當然這些內(nèi)容也是用戶不可以進行直接訪問的,但是可以借助操作系統(tǒng)的力量完成這些管理,使得整個系統(tǒng)變得井井有條,這也是操作系統(tǒng)存在的意義和價值,那么對于操作系統(tǒng)的初步理解就是上面的理解,但是上圖中還有一些部分沒有闡述
現(xiàn)在已經(jīng)理解了上圖中的絕大部分內(nèi)容:
- 操作系統(tǒng)是一個純粹進行管理的內(nèi)容,它可以管理我們電腦中的各個模塊,并且管理驅(qū)動程序和底層硬件
- 操作系統(tǒng)不允許外界進行內(nèi)部的直接訪問,如果想要訪問內(nèi)部的數(shù)據(jù)可以借助接口來實現(xiàn),操作系統(tǒng)可以將需要的內(nèi)容傳遞到外界中
- 操作系統(tǒng)進行訪問是需要進行逐層訪問的,一般想要訪問到底層的硬件或者驅(qū)動程序,需要從上到下依次訪問到最底層才能訪問到內(nèi)容
那么現(xiàn)在還有一塊:用戶操作接口
這個模塊的內(nèi)容是用來做什么的?對于用戶來說,想要調(diào)用系統(tǒng)的接口其實并不容易,系統(tǒng)的接口的調(diào)用不管從難度還是繁瑣度來說,都不算一個容易的事,但是在實際開發(fā)中是需要進行經(jīng)常調(diào)用的,因此就有了用戶操作接口的內(nèi)容,可以將繁瑣的接口進行簡化,下面舉幾個例子來理解這個概念:
-
Linux
中的bash
和shell
的概念:Linux
中bash
作為命令行解釋器,可以幫助我們進行一些命令的調(diào)用和解釋,而bash實際上就是shell
的一種,shell
外殼就是面向用戶的,將用戶的指令翻譯成操作系統(tǒng)可以聽懂的語言,再執(zhí)行后返回給用戶 -
Windows
中的圖形化界面的概念:在Windows
中,看似是雙擊了文件夾,可以看到文件夾的管理等操作,實際上這個過程是很復雜的,圖形化界面其實就相當于是上面的shell
的概念,對于用戶來說降低了使用成本,使得使用變得簡單 -
C
語言中的很多庫函數(shù):當使用C語言寫的第一個程序就會用到printf
函數(shù),那么這個函數(shù)是如何將我們寫的代碼中的信息打印到顯示器上的?其實這個過程說白了也離不開操作系統(tǒng)的,因為沒有操作系統(tǒng)的支持是不可能訪問到底層硬件的,函數(shù)也就不可能執(zhí)行后將信息打印到顯示器上
那么到這里,對于操作系統(tǒng)的基本理解就告一段落,這是對操作系統(tǒng)的基本理解,后面還有很多的深入理解需要結合其他內(nèi)容來解釋文章來源:http://www.zghlxwxcb.cn/news/detail-732342.html
總結
總結一下操作系統(tǒng)的基本理解吧:文章來源地址http://www.zghlxwxcb.cn/news/detail-732342.html
- 為什么會出現(xiàn)用戶操作接口?因為系統(tǒng)調(diào)用起來太麻煩了,一般人調(diào)用起來的成本太高,作為用系統(tǒng)的人的角度,借助
shell
或者圖形化界面可以更好地使用系統(tǒng),作為開發(fā)的角度可以節(jié)約開發(fā)成本 -
C
和C++
的標準庫實際上一定有系統(tǒng)調(diào)用的概念,否則就無法在屏幕上顯示或在磁盤中的寫入和讀取 - 先描述再組織,先用struct對于事物的屬性進行描述,再用一些其他的手段將這些內(nèi)容組織起來,那么對于如何組織起來,就需要進行后面的學習總結了
到了這里,關于Linux:馮諾依曼系統(tǒng)和操作系統(tǒng)的概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!