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

沒有操作系統(tǒng),程序可以運(yùn)行起來嗎?

數(shù)據(jù)庫 其他數(shù)據(jù)庫
要想寫個(gè)能直接在計(jì)算機(jī)上運(yùn)行的程序可不簡單,想一想這種不依賴操作系統(tǒng)系統(tǒng)的程序該怎樣運(yùn)行起來?

大家好,我是小風(fēng)哥。

現(xiàn)在的程序員對操作系統(tǒng)已經(jīng)習(xí)以為常了,但是你有沒有想過,如果沒有操作系統(tǒng)的話我們可以讓程序運(yùn)行起來嗎?

先說答案,當(dāng)然是可以的,而且必須是可以的。你可以從這個(gè)角度來思考,操作系統(tǒng)本身就是一個(gè)程序,這個(gè)程序的運(yùn)行沒有依賴任何其它“操作系統(tǒng)”,注意,這不是套娃。實(shí)際上在計(jì)算機(jī)歷史早期,或者說上古時(shí)期,計(jì)算機(jī)上根本就沒有什么操作系統(tǒng)之說,這一時(shí)期的程序的確是在沒有操作系統(tǒng)的情況下編寫和運(yùn)行的。

要想寫個(gè)能直接在計(jì)算機(jī)上運(yùn)行的程序可不簡單,想一想這種不依賴操作系統(tǒng)系統(tǒng)的程序該怎樣運(yùn)行起來?

啟動(dòng)是個(gè)問題

我們面臨的第一個(gè)問題就是:此時(shí)計(jì)算機(jī)上沒有任何程序,你該怎樣讓計(jì)算機(jī)啟動(dòng)起來呢?換句話說加電后CPU該干啥?啊哈,沒想到吧,第一個(gè)問題就不好解決,要想讓計(jì)算機(jī)運(yùn)行你的程序至少要把計(jì)算機(jī)啟動(dòng)起來吧。

所謂的計(jì)算機(jī)啟動(dòng)起來無非就是讓CPU加電后開始執(zhí)行一段初始化代碼,為你真正的程序運(yùn)行鋪路,這一大段代碼就是所謂的內(nèi)核,kernel,實(shí)際上你可以讓計(jì)算機(jī)加電后執(zhí)行任何代碼,也就是實(shí)現(xiàn)你自己的內(nèi)核,當(dāng)然你也可以沒有這樣的內(nèi)核,直接運(yùn)行你的程序,關(guān)于計(jì)算機(jī)的啟動(dòng)你可以參考這篇文章《操作系統(tǒng)是如何啟動(dòng)起來的?》但這依然會(huì)有問題。

運(yùn)行時(shí)問題

第一個(gè)要面臨的是內(nèi)存問題,你的程序要被加載到內(nèi)存的哪個(gè)位置呢?顯然這就是涉及到內(nèi)存管理問題。第二個(gè)問題是你沒有辦法充分利用計(jì)算機(jī)。想一想,在這種情況下,你只有啟動(dòng)的時(shí)候才可以開始執(zhí)行一個(gè)全新的程序,想執(zhí)行第二個(gè)程序就需要關(guān)機(jī),在存儲(chǔ)設(shè)備中刷入新的程序然后再開機(jī),這是不是讓人抓狂。這還不算完,如果你的程序有bug,那么不好意思,你可能需要重啟計(jì)算機(jī)了,你能想象程序出點(diǎn)問題就要重啟計(jì)算機(jī)嗎?想一邊運(yùn)行文本編輯程序一邊運(yùn)行音樂程序?門都沒有,要想實(shí)現(xiàn),自己寫個(gè)多任務(wù)(Multitask)管理系統(tǒng)吧,你至少要把運(yùn)行的程序管理起來吧,想一想是不是就必須用到進(jìn)程這樣的抽象啦,還覺得這些概念沒有用嗎?

就算你有多任務(wù)系統(tǒng),如果一個(gè)程序有問題把另一個(gè)程序的內(nèi)存刷掉了,這是不是就一石二鳥了,一個(gè)bug導(dǎo)致兩個(gè)程序崩潰,你是不是得有進(jìn)程隔離機(jī)制?此外,如果你的程序需要使用I/O設(shè)備那就更有酸爽啦,沒有驅(qū)動(dòng)你怎樣控制這些設(shè)備、怎樣使用鼠標(biāo)鍵盤顯示器,你的程序是不是要鏈接一大堆驅(qū)動(dòng),想想是不是就已經(jīng)頭痛了。而且你還要高效的利用計(jì)算機(jī)資源,當(dāng)搞定這一切后你會(huì)發(fā)現(xiàn)自己實(shí)際上已經(jīng)寫出了一個(gè)操作系統(tǒng)。還覺得操作系統(tǒng)沒有用嗎?操作系統(tǒng)把這些臟活累活統(tǒng)統(tǒng)攬下,程序員只需要專注寫bug就可以了。說了這么多缺點(diǎn),但沒有操作系統(tǒng)的還是有一個(gè)有趣的優(yōu)點(diǎn)的,那就是你可以獨(dú)掌大權(quán)。

程序員也是獨(dú)裁者

說來有趣,盡管現(xiàn)在你可以花上幾千塊錢買一臺(tái)計(jì)算機(jī),但是你(程序員)幾乎沒有辦法繞開操作系統(tǒng)隨意讀寫你的內(nèi)存、讓CPU執(zhí)行任何指令,因?yàn)槟愕腤indows/Linux/MacOS會(huì)直接將你kill掉。

有意思的是明明是你自己花錢買的計(jì)算機(jī)硬件、花錢買的操作系統(tǒng),理論上這是個(gè)人財(cái)產(chǎn),但是你花錢買來的操作系統(tǒng)竟然不受你控制(大神除外),反而禁止你干這干那,就好比你買來一頭牛,結(jié)果這頭牛不受控,自己想干啥干啥,如果真的買了這樣一頭牛相信你早就忍不了了,但是你花大價(jià)錢買來的計(jì)算機(jī)、智能手機(jī)根本不受你的掌控,大家竟然對此沒什么感覺,認(rèn)為這很正常,想想也是有夠魔幻的。扯遠(yuǎn)了,在早期的計(jì)算機(jī)上普通程序員(應(yīng)用程序)可以徹底控制計(jì)算機(jī),可謂獨(dú)掌大權(quán),實(shí)際上在現(xiàn)代計(jì)算機(jī)系統(tǒng)上你也可以在沒有操作系統(tǒng)的支持下寫程序,這就是所謂的Bare-Metal Programming,嵌入式同學(xué)對此應(yīng)該不陌生。

好啦,關(guān)于操作系統(tǒng)與程序運(yùn)行這個(gè)話題就到這里,總之操作系統(tǒng)并不是計(jì)算機(jī)執(zhí)行程序的一個(gè)必須組件,沒有操作系統(tǒng)我們一樣可以讓程序運(yùn)行起來。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)的荒島求生
相關(guān)推薦

2022-02-24 08:30:24

操作系統(tǒng)CPU程序

2010-05-10 17:21:26

Unix操作系統(tǒng)

2010-04-22 13:36:15

Aix操作系統(tǒng)

2013-12-20 09:44:57

操作系統(tǒng)計(jì)算機(jī)服務(wù)器

2010-04-16 18:15:11

Unix操作系統(tǒng)

2017-11-30 10:26:32

操作系統(tǒng)運(yùn)行時(shí)間CPU

2023-03-29 23:19:27

2009-12-09 17:25:19

Linux操作系統(tǒng)

2022-02-27 23:14:33

Windows 11安卓微軟

2021-02-27 21:45:22

程序代碼函數(shù)

2010-04-16 18:02:30

Unix操作系統(tǒng)

2013-09-16 15:15:44

Linux操作系統(tǒng)

2010-05-05 17:53:39

Oracle 8i

2022-11-16 09:40:18

操作系統(tǒng)

2010-04-19 12:47:39

Unix操作系統(tǒng)

2009-11-20 09:17:20

Firefox操作系統(tǒng)計(jì)劃

2010-04-30 23:15:26

云計(jì)算

2014-05-15 11:02:34

Linux操作系統(tǒng)國產(chǎn)操作系統(tǒng)

2023-02-07 00:24:24

2010-04-15 14:40:26

Unix操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)