為什么操作系統(tǒng)是程序必不可少的依賴?
對(duì)于大多數(shù)編程愛(ài)好者來(lái)說(shuō),很少有人關(guān)注程序?yàn)槭裁葱枰劳胁僮飨到y(tǒng)才能運(yùn)行。這樣的概念模糊不清直接影響到編程質(zhì)量以及初級(jí)程序員的數(shù)量。但是,了解操作系統(tǒng)的正常運(yùn)行過(guò)程和工作原理將有助于您更好地理解為什么
對(duì)于大多數(shù)編程愛(ài)好者來(lái)說(shuō),很少有人關(guān)注程序?yàn)槭裁葱枰劳胁僮飨到y(tǒng)才能運(yùn)行。這樣的概念模糊不清直接影響到編程質(zhì)量以及初級(jí)程序員的數(shù)量。但是,了解操作系統(tǒng)的正常運(yùn)行過(guò)程和工作原理將有助于您更好地理解為什么它是程序必不可少的依賴。
1. 電腦的啟動(dòng)
當(dāng)計(jì)算機(jī)通電時(shí),首先會(huì)從主板的BIOS中順序讀取程序數(shù)據(jù)。BIOS本身就是一個(gè)完整的程序,也就是計(jì)算機(jī)開(kāi)始運(yùn)行的第一個(gè)程序。該程序會(huì)檢測(cè)硬件并根據(jù)硬件設(shè)定對(duì)相應(yīng)硬件進(jìn)行參數(shù)初始化。當(dāng)然,也可以通過(guò)操作系統(tǒng)或其他軟件對(duì)硬件的參數(shù)進(jìn)行調(diào)節(jié)。這些高級(jí)編程知識(shí)已經(jīng)被廣泛使用,并且其本質(zhì)就是使用計(jì)算機(jī)指令來(lái)改變硬件參數(shù)的結(jié)果。
2. 進(jìn)入操作系統(tǒng)前的事件
計(jì)算機(jī)運(yùn)行BIOS程序后最終要轉(zhuǎn)到操作系統(tǒng)。那么它如何轉(zhuǎn)到操作系統(tǒng)呢?這個(gè)就要提到外部設(shè)備和外部寄存器了。大容量的數(shù)據(jù)一般都存放在稱為“硬盤”的外部?jī)?chǔ)存器上,其中自然包括用戶的操作系統(tǒng)。從BIOS轉(zhuǎn)到操作系統(tǒng)必須通過(guò)“硬盤”的外部寄存器和硬盤進(jìn)行數(shù)據(jù)交換后獲得硬盤的基本參數(shù),然后獲得啟動(dòng)地址。此時(shí),BIOS程序就跳轉(zhuǎn)到硬盤啟動(dòng)區(qū)的程序段開(kāi)始執(zhí)行程序,即此時(shí)基本結(jié)束了BIOS程序,而轉(zhuǎn)入了操作系統(tǒng)的引導(dǎo)程序。
3. 引導(dǎo)程序
引導(dǎo)程序的作用一般除了初始化一些必要的參數(shù)外就是決定將程序指向那個(gè)存儲(chǔ)地址開(kāi)始執(zhí)行的作用了。即引導(dǎo)程序的作用是跳轉(zhuǎn)到指定地址開(kāi)始執(zhí)行真正的操作系統(tǒng)程序。
4. 操作系統(tǒng)的工作原理
從上面我們可以看出,程序的運(yùn)行一直都是通過(guò)跳轉(zhuǎn)程序地址的方式來(lái)進(jìn)行程序間的切換。同樣,操作系統(tǒng)也是通過(guò)這種方式來(lái)運(yùn)行系統(tǒng)中的程序的。操作系統(tǒng)程序跳轉(zhuǎn)到應(yīng)用程序的程序段繼續(xù)執(zhí)行程序。
5. 系統(tǒng)中的應(yīng)用程序
當(dāng)我們想要使用應(yīng)用程序時(shí),一般都會(huì)使用鼠標(biāo)去點(diǎn)擊應(yīng)用程序或其中的快捷方式。當(dāng)系統(tǒng)通過(guò)鼠標(biāo)設(shè)備的外部寄存器讀取到鼠標(biāo)的點(diǎn)擊動(dòng)作,并配合鼠標(biāo)的位置來(lái)判斷我們是否要執(zhí)行應(yīng)用程序,當(dāng)確定執(zhí)行的應(yīng)用程序后,系統(tǒng)就會(huì)跳轉(zhuǎn)到該應(yīng)用程序的初始處開(kāi)始執(zhí)行代碼。一般系統(tǒng)中的應(yīng)用程序都帶有系統(tǒng)識(shí)別碼,系統(tǒng)首先會(huì)搜索程序中的識(shí)別碼,確認(rèn)無(wú)誤后便跳轉(zhuǎn)到指定地址開(kāi)始執(zhí)行程序。
6. 總結(jié)
從計(jì)算機(jī)的原理上我們知道計(jì)算機(jī)是順序執(zhí)行指令的,因此我們可以把從開(kāi)機(jī)到運(yùn)行程序,再到關(guān)機(jī)為止,都將它看成為只運(yùn)行了一個(gè)程序,而程序間的切換也等效于是單個(gè)程序的地址切換。而操作系統(tǒng)除了為用戶提供可視化的操作界面外,其真正的功能就是為應(yīng)用程序提供人為可控的地址跳轉(zhuǎn)平臺(tái)。由于操作系統(tǒng)的重要性,我們不應(yīng)忽略它對(duì)于程序運(yùn)行的影響。
如何理解程序必不可少的依賴?
操作系統(tǒng)是程序必不可少的依賴,因?yàn)樗浅绦蜻\(yùn)行的平臺(tái)。程序必須在操作系統(tǒng)的支持下才能運(yùn)行。操作系統(tǒng)為程序提供了許多服務(wù),例如內(nèi)存管理、進(jìn)程調(diào)度、文件系統(tǒng)管理等。沒(méi)有操作系統(tǒng),程序?qū)o(wú)法利用計(jì)算機(jī)的資源。此外,操作系統(tǒng)還為用戶提供了可視化的操作界面,使得計(jì)算機(jī)更易于使用。因此,理解操作系統(tǒng)的作用和工作原理對(duì)于編寫高質(zhì)量的程序至關(guān)重要。