最近,我發(fā)現(xiàn)了一個(gè)超級強(qiáng)大的人工智能學(xué)習(xí)網(wǎng)站。它以通俗易懂的方式呈現(xiàn)復(fù)雜的概念,而且內(nèi)容風(fēng)趣幽默。我覺得它對大家可能會(huì)有所幫助,所以我在此分享。點(diǎn)擊這里跳轉(zhuǎn)到網(wǎng)站。
??博客主頁:小智_x0___0x_
??歡迎關(guān)注:??點(diǎn)贊??收藏??留言
??系列專欄:Linux入門到精通
??代碼倉庫:小智的代碼倉庫
什么是操作系統(tǒng)?
在上篇【Linux】馮諾依曼體系結(jié)構(gòu)思想中我們介紹了計(jì)算機(jī)的各個(gè)部件的主要功能,以及他們工作的方式和步驟,但是這些設(shè)備都很笨,只能提供基本的功能,就好比鍵盤來說,它就只能從鍵盤來獲取數(shù)據(jù),等待被使用,那么就少不了一個(gè)管理者,來管理這些設(shè)備,這個(gè)設(shè)備可以在合適的時(shí)間使用合適的工具去完成任務(wù),那么這個(gè)管理者就是操作系統(tǒng)(OS)。
在整個(gè)計(jì)算機(jī)軟硬件架構(gòu)中,操作系統(tǒng)的定位是:一款純正的“搞管理”的軟件!
操作系統(tǒng)概念
任何計(jì)算機(jī)系統(tǒng)都包含一個(gè)基本的程序集合,稱為操作系統(tǒng)(OS)?;\統(tǒng)的理解,操作系統(tǒng)包括:
- 內(nèi)核(進(jìn)程管理,內(nèi)存管理,文件管理,驅(qū)動(dòng)管理)
- 其他程序(例如函數(shù)庫,shell程序等等)
操作系統(tǒng)的目的
- 與硬件交互,管理所有的軟硬件資源
- 為用戶程序(應(yīng)用程序)提供一個(gè)良好的執(zhí)行環(huán)境
接下來我們通過計(jì)算機(jī)層狀結(jié)構(gòu)來了解操作系統(tǒng):
底層硬件
- 計(jì)算機(jī)底層硬件是指計(jì)算機(jī)系統(tǒng)中直接參與數(shù)據(jù)處理、存儲(chǔ)和傳輸?shù)膶?shí)體部件,包括中央處理器(CPU)、內(nèi)存、硬盤、主板、顯卡、網(wǎng)卡等。這些硬件組成了計(jì)算機(jī)的核心部分,是計(jì)算機(jī)系統(tǒng)能夠正常運(yùn)行的基礎(chǔ)。
驅(qū)動(dòng)程序
-
驅(qū)動(dòng)程序
是一種軟件,它允許操作系統(tǒng)或其他軟件與硬件設(shè)備進(jìn)行通信。驅(qū)動(dòng)程序通常由硬件制造商提供,用于控制硬件設(shè)備的操作和性能。通過安裝正確的驅(qū)動(dòng)程序,操作系統(tǒng)可以識別設(shè)備并與之通信,從而確保設(shè)備能夠正常工作。常見的驅(qū)動(dòng)程序包括打印機(jī)驅(qū)動(dòng)程序、顯卡驅(qū)動(dòng)程序、聲卡驅(qū)動(dòng)程序等。沒有驅(qū)動(dòng)硬件設(shè)備是無法使用的。
就好比我們平時(shí)使用無線鼠標(biāo)的時(shí)候,把USB接口插入電腦之后的幾秒鐘是用不了鼠標(biāo)的,過了幾秒后,電腦右下角會(huì)彈出驅(qū)動(dòng)安裝成功之類的提示,此時(shí)我們的鼠標(biāo)才能正常使用,一般的驅(qū)動(dòng)程序操作系統(tǒng)會(huì)自帶,也有少部分的需要我們?nèi)ナ謩?dòng)下載。
操作系統(tǒng)
- 操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中最基本的系統(tǒng)軟件之一,它是一種控制和管理計(jì)算機(jī)硬件與軟件資源的程序集合,為應(yīng)用程序提供運(yùn)行環(huán)境和服務(wù)。操作系統(tǒng)負(fù)責(zé)管理計(jì)算機(jī)的內(nèi)存、文件系統(tǒng)、輸入輸出設(shè)備、網(wǎng)絡(luò)等硬件資源,并提供進(jìn)程管理、內(nèi)存管理、文件管理、網(wǎng)絡(luò)管理等核心功能。
操作系統(tǒng)就好比銀行的管理人員,可以將一家銀行比作一個(gè)計(jì)算機(jī)系統(tǒng),操作系統(tǒng)就像銀行的管理人員,負(fù)責(zé)協(xié)調(diào)銀行內(nèi)部各個(gè)部門之間的工作,確保銀行正常運(yùn)行。具體來說,操作系統(tǒng)可以:
- 管理銀行的硬件資源,如ATM機(jī)、服務(wù)器、網(wǎng)絡(luò)設(shè)備等,保證這些設(shè)備能夠正常工作。
- 管理銀行的軟件資源,如數(shù)據(jù)庫、應(yīng)用程序等,確保它們能夠高效地運(yùn)行。
- 管理銀行的數(shù)據(jù),如客戶信息、賬戶信息等,保證數(shù)據(jù)的安全性和完整性。
- 管理銀行的業(yè)務(wù)流程,如開戶、存款、取款等,確保各個(gè)環(huán)節(jié)的順暢進(jìn)行。
- 管理銀行的安全性,如防火墻、加密技術(shù)等,保證銀行系統(tǒng)不受到黑客攻擊和病毒感染。
通過這些管理措施,操作系統(tǒng)可以讓銀行更加高效、安全地運(yùn)營。
總結(jié):操作系統(tǒng)幫助用戶,管理好下面的軟硬件資源!
那么新的問題又來了,操作系統(tǒng)為什么要管理好軟硬件資源呢?
操作系統(tǒng)需要管理好軟硬件資源,主要是為了提高計(jì)算機(jī)系統(tǒng)的性能和可靠性,確保應(yīng)用程序能夠正常運(yùn)行。以銀行為例,如果操作系統(tǒng)不能管理好軟硬件資源,可能會(huì)導(dǎo)致以下問題:
- 銀行的ATM機(jī)無法正常工作,客戶無法進(jìn)行取款和存款操作,影響銀行的服務(wù)質(zhì)量和客戶滿意度。
- 銀行的數(shù)據(jù)庫出現(xiàn)故障,客戶的賬戶信息丟失或泄露,對客戶的財(cái)產(chǎn)安全造成威脅,同時(shí)也可能損害銀行的聲譽(yù)。
- 銀行的應(yīng)用程序崩潰或運(yùn)行緩慢,導(dǎo)致客戶無法正常辦理業(yè)務(wù),影響銀行的業(yè)務(wù)效率和收益。
- 銀行的網(wǎng)絡(luò)受到攻擊或病毒感染,可能導(dǎo)致銀行系統(tǒng)癱瘓,造成嚴(yán)重的經(jīng)濟(jì)損失。
通過管理好軟硬件資源,操作系統(tǒng)可以最大限度地避免這些問題的發(fā)生,確保銀行的正常運(yùn)營和服務(wù)質(zhì)量。
總結(jié):操作系統(tǒng)通過管理好底層的軟硬件資源(手段),為用戶提供一個(gè)良好的執(zhí)行環(huán)境 (目的)
操作系統(tǒng)里面會(huì)有各種數(shù)據(jù)??墒?,操作系統(tǒng)本身并不相信任何用戶!但是不相信你,但是可以讓你用。
舉個(gè)栗子
在銀行,銀行也不會(huì)相信你,在我們平時(shí)取錢辦理業(yè)務(wù)的時(shí)候,只能通過一個(gè)小窗口來進(jìn)行辦理,其他的基本都是用防彈玻璃隔開的,給我們用戶只提供一個(gè)窗口。如果銀行相信每一個(gè)人,變成開放的話,什么人都可以進(jìn)銀行,那么就可能會(huì)出現(xiàn)資金丟失等的問題。甚至有些人無心的把某些設(shè)備誤觸了造成財(cái)產(chǎn)損失,為了避免這些問題銀行就會(huì)把自己封閉起來,但又不能完全封閉這樣就不能為用戶提供服務(wù)也就沒人回來銀行辦理業(yè)務(wù),因此銀行會(huì)給我們開放各種窗口來給我們用戶提供服務(wù),這樣銀行就可以在不相信用戶的同時(shí)還能幫你辦理各種業(yè)務(wù)。
操作系統(tǒng)也是這樣,操作系統(tǒng)在不相信任何用戶的情況下,還要給用戶提供一個(gè)良好的執(zhí)行環(huán)境。
理解系統(tǒng)調(diào)用接口
操作系統(tǒng)保證數(shù)據(jù)安全,也為了保證給用戶提供服務(wù),操作系統(tǒng)以接口的方式給用戶提供調(diào)用的入口,來獲取操作系統(tǒng)內(nèi)部的數(shù)據(jù)。
操作系統(tǒng)使用C語言寫的,所以操作系統(tǒng)上的接口本質(zhì)上就是C語言的一個(gè)函數(shù),是函數(shù)就要有返回值,參數(shù)等等。就好比我們要去銀行取錢,我們就要帶上自己的身份證,銀行卡,存折之類的,來通過窗口交給銀行的工作人員,工作人員通過內(nèi)部認(rèn)證確認(rèn)無誤后,再來幫我們?nèi)″X。 操作系統(tǒng)接口也是如此,我們通過系統(tǒng)接口可以傳遞一些參數(shù),就可以拿到我們想要的系統(tǒng)數(shù)據(jù),以便于我們繼續(xù)開發(fā)。
這樣自己內(nèi)部函數(shù)調(diào)用 ---- 系統(tǒng)調(diào)用
所有的訪問操作行為,都只能通過系統(tǒng)調(diào)用來完成。
系統(tǒng)調(diào)用可以對用戶輸入的參數(shù)進(jìn)行審核,因?yàn)橄到y(tǒng)調(diào)用的代碼是操作系統(tǒng)自己寫的,不會(huì)出現(xiàn)惡意修改的現(xiàn)象,這樣操作系統(tǒng)既保證了自己安全的情況下,又為上層提供服務(wù)了,有了這些系統(tǒng)調(diào)用接口,我們就可以允許用戶對底層的軟硬件資源進(jìn)行間接管理,所以就有些人基于系統(tǒng)調(diào)用接口來設(shè)計(jì)實(shí)現(xiàn)各種各樣的軟件啦。
但是因?yàn)橄到y(tǒng)調(diào)用接口難度太大,所以就有人對這些操作系統(tǒng)調(diào)用接口進(jìn)行封裝,將底層操作系統(tǒng)封裝成庫。
就比如我們平時(shí)使用的scanf
和printf
,scanf
是從鍵盤中獲取數(shù)據(jù)到內(nèi)存,其實(shí)本質(zhì)上是scanf
函數(shù)通過調(diào)用系統(tǒng)接口去訪問硬件資源,printf
函數(shù)也是通過調(diào)用系統(tǒng)接口來訪問顯示器資源。
但凡是涉及到硬件系統(tǒng)的編程語言,都是通過調(diào)用系統(tǒng)接口來實(shí)現(xiàn)的,所有的編程語言都是在系統(tǒng)調(diào)用接口之上的。無論編程語言怎么變化,系統(tǒng)調(diào)用接口都是不會(huì)變的。
總結(jié):
系統(tǒng)調(diào)用接口是操作系統(tǒng)提供給用戶程序的一組函數(shù),用于訪問操作系統(tǒng)內(nèi)部的數(shù)據(jù)和資源。這些接口本質(zhì)上是C語言的函數(shù),可以傳遞參數(shù)和返回值。所有的訪問操作行為都只能通過系統(tǒng)調(diào)用來完成,這樣可以保證操作系統(tǒng)的安全性和可靠性。系統(tǒng)調(diào)用接口可以被封裝成庫,方便用戶程序的開發(fā)和使用。無論編程語言怎么變化,系統(tǒng)調(diào)用接口都是不會(huì)變的。
庫函數(shù)和系統(tǒng)調(diào)用之間是上下層的調(diào)用和被調(diào)用的關(guān)系!庫函數(shù)在上,系統(tǒng)調(diào)用在下!
操作系統(tǒng)是如何進(jìn)行管理的?
什么是管理?
這里我們來舉一個(gè)例子,在大學(xué)里,有校長,有輔導(dǎo)員,有學(xué)生,宿管等等。其中最典型的管理者就是校長。我們大學(xué)生就是最典型的被管理者,但是我們從開學(xué)到畢業(yè)估計(jì)也見不到校長幾次,甚至不知道校長長什么樣子,不知道校長叫什么名字,但是我們確實(shí)被管理了,所以說明管理者和被管理者是不需要見面的。
那么問題又來了管理者在不見到被管理者的情況下,是如何進(jìn)行管理的呢?
比如我們在公司中上班,有一天被老板叫到辦公室,老板說,小張最近在公司怎么樣啊,工作順不順利啊,干了什么事啊,有哪些事情沒干啊,有什么困難?。课覀兛梢园l(fā)現(xiàn)這個(gè)過程中老板是為了獲取信息,所以見不見面不是必須的,只要能夠獲取信息就可以,所以我們只要把信息管理起來就可以完成管理工作。
所以管理的本質(zhì):通過對 數(shù)據(jù)的 管理達(dá)到對人的管理。
再來回到大學(xué)這個(gè)例子,假如我們大學(xué)規(guī)定掛科達(dá)到9門就要被責(zé)令退學(xué),小張同學(xué)今年 剛好掛了第9門課,然后到每年期末校長都會(huì)收到這些掛科信息,校長拿到了小張的掛科信息,就對小張說,你掛了9門課了,可以去辦理退學(xué)了。在這個(gè)過程中校長獲取了小張的掛科信息,進(jìn)而對小張進(jìn)行了管理。進(jìn)一步說明了管理的本質(zhì)就是通過對數(shù)據(jù)的管理來達(dá)到對人的管理。
那么又有新的問題了,管理者和被管理者的面都不見,管理者如何拿到我們的數(shù)據(jù)呢?
在大學(xué)中我們的成績掛科情況會(huì)通過輔導(dǎo)員來進(jìn)行匯總,來提供給校長,那么輔導(dǎo)員是管理者嗎?
我們這個(gè)世界上所做的事情就分為兩種:
- 做決策
- 做執(zhí)行
真正的管理者他的核心工作應(yīng)該放在做決策上,具有決策權(quán)。
再來回到這個(gè)例子當(dāng)中,輔導(dǎo)員對于學(xué)生大部分工作是沒有決策權(quán)的,所以輔導(dǎo)員不算是真正意義上的管理者,而是在做學(xué)校安排的一些工作,而是一個(gè)執(zhí)行者。
所以管理者需要通過執(zhí)行者來獲取被管理者的數(shù)據(jù)信息。
回到我們的計(jì)算機(jī)當(dāng)中,校長就相當(dāng)于操作系統(tǒng),輔導(dǎo)員就是驅(qū)動(dòng)程序,學(xué)生就是軟硬件資源。
驅(qū)動(dòng)程序來獲取軟硬件資源,再將獲取的資源交給操作系統(tǒng),操作系統(tǒng)再對數(shù)據(jù)進(jìn)行處理,以達(dá)到對軟硬件資源的管理。
比如我們的網(wǎng)卡在日常使用中遇到了故障,那么驅(qū)動(dòng)程序就會(huì)把錯(cuò)誤信息傳遞給操作系統(tǒng),操作系統(tǒng)能自己處理的話就自己處理,處理不了就會(huì)將錯(cuò)誤信息報(bào)告給用戶,來告知我們網(wǎng)卡有問題了。
操作系統(tǒng)是如何管理硬件信息呢?
我們再來回到大學(xué)這個(gè)例子。校長想要收集每個(gè)學(xué)生的信息,就給各個(gè)學(xué)院的輔導(dǎo)員發(fā)了一張Excel表格上面有要收集的信息,等輔導(dǎo)員收集好信息之后,校長看著眼前的這一大堆表,陷入了沉思,心想這要找一個(gè)人還不得給我找累死,正好這個(gè)校長之前是個(gè)程序員,他就想著把這些學(xué)生的信息用一個(gè)結(jié)構(gòu)體保存起來,再加上一個(gè)結(jié)構(gòu)體指針把這些學(xué)生一個(gè)個(gè)用鏈表鏈接起來,解釋代碼如下:
struct student
{
char 學(xué)號[];
char 姓名[];
char 班級[];
char 手機(jī)號[];
int 身高;
................
struct student* next;
};
通過結(jié)構(gòu)體把每個(gè)學(xué)生的屬性信息保存起來,再通過鏈表將每個(gè)學(xué)生鏈接起來。
這樣保存成鏈表,就可以把對學(xué)生信息的管理,轉(zhuǎn)換成對鏈表的增刪查改。
假如我們學(xué)校要選舉行運(yùn)動(dòng)會(huì),校長要在全校學(xué)生中找一個(gè)身高最高的,有了鏈表就可以將這個(gè)問題轉(zhuǎn)換為,遍歷這個(gè)鏈表找到身高屬性最高的那個(gè)節(jié)點(diǎn),就可以查看到這個(gè)人的所有信息。
那么有了鏈表,校長就只需要把學(xué)生鏈表管理好就可以了,再也不用對著Excel表格瘋狂查找了。
這樣我們就成功的將 對學(xué)生的管理 轉(zhuǎn)換成為了 對鏈表的增刪查改!
這里我們小小總結(jié)一下:校長在列舉學(xué)生信息的過程叫做描述的過程,而把每個(gè)學(xué)生的結(jié)構(gòu)體鏈接起來的過程叫做組織的過程。這樣子我們就可以得到對數(shù)據(jù)的管理的過程分為兩個(gè)步驟:
- 先描述:用struct結(jié)構(gòu)體保存屬性信息
- 再組織:用結(jié)構(gòu)體指針將結(jié)構(gòu)體對象鏈接起來。
在操作系統(tǒng)中也一樣,我們需要定義一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體里面存儲(chǔ)硬件設(shè)備的各種屬性比如名稱,設(shè)備狀態(tài)。設(shè)備容量等等,這樣一來一個(gè)結(jié)構(gòu)體對象就代表一個(gè)硬件設(shè)備,接下來再用各種結(jié)構(gòu)體指針將這些結(jié)構(gòu)體對象鏈接起來,對這些設(shè)備鏈表進(jìn)行管理。以至此,在操作系統(tǒng)中,管理任何對象,最終都可以轉(zhuǎn)換成為對某種數(shù)據(jù)結(jié)構(gòu)的增刪查改!文章來源:http://www.zghlxwxcb.cn/news/detail-719886.html
??小結(jié)??
今天我們學(xué)習(xí)了"Linux操作系統(tǒng)是如何進(jìn)行管理的"
相信大家看完有一定的收獲。種一棵樹的最好時(shí)間是十年前,其次是現(xiàn)在!
把握好當(dāng)下,合理利用時(shí)間努力奮斗,相信大家一定會(huì)實(shí)現(xiàn)自己的目標(biāo)!加油!創(chuàng)作不易,辛苦各位小伙伴們動(dòng)動(dòng)小手,三連一波????~~~
,本文中也有不足之處,歡迎各位隨時(shí)私信點(diǎn)評指正!文章來源地址http://www.zghlxwxcb.cn/news/detail-719886.html
到了這里,關(guān)于【Linux旅行記】探究操作系統(tǒng)是如何進(jìn)行管理的!的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!