成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

沒有操作系統,程序可以運行起來嗎?

數據庫 其他數據庫
要想寫個能直接在計算機上運行的程序可不簡單,想一想這種不依賴操作系統系統的程序該怎樣運行起來?

大家好,我是小風哥。

現在的程序員對操作系統已經習以為常了,但是你有沒有想過,如果沒有操作系統的話我們可以讓程序運行起來嗎?

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

要想寫個能直接在計算機上運行的程序可不簡單,想一想這種不依賴操作系統系統的程序該怎樣運行起來?

啟動是個問題

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

所謂的計算機啟動起來無非就是讓CPU加電后開始執行一段初始化代碼,為你真正的程序運行鋪路,這一大段代碼就是所謂的內核,kernel,實際上你可以讓計算機加電后執行任何代碼,也就是實現你自己的內核,當然你也可以沒有這樣的內核,直接運行你的程序,關于計算機的啟動你可以參考這篇文章《操作系統是如何啟動起來的?》但這依然會有問題。

運行時問題

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

就算你有多任務系統,如果一個程序有問題把另一個程序的內存刷掉了,這是不是就一石二鳥了,一個bug導致兩個程序崩潰,你是不是得有進程隔離機制?此外,如果你的程序需要使用I/O設備那就更有酸爽啦,沒有驅動你怎樣控制這些設備、怎樣使用鼠標鍵盤顯示器,你的程序是不是要鏈接一大堆驅動,想想是不是就已經頭痛了。而且你還要高效的利用計算機資源,當搞定這一切后你會發現自己實際上已經寫出了一個操作系統。還覺得操作系統沒有用嗎?操作系統把這些臟活累活統統攬下,程序員只需要專注寫bug就可以了。說了這么多缺點,但沒有操作系統的還是有一個有趣的優點的,那就是你可以獨掌大權。

程序員也是獨裁者

說來有趣,盡管現在你可以花上幾千塊錢買一臺計算機,但是你(程序員)幾乎沒有辦法繞開操作系統隨意讀寫你的內存、讓CPU執行任何指令,因為你的Windows/Linux/MacOS會直接將你kill掉。

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

好啦,關于操作系統與程序運行這個話題就到這里,總之操作系統并不是計算機執行程序的一個必須組件,沒有操作系統我們一樣可以讓程序運行起來。

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2010-04-22 13:36:15

Aix操作系統

2022-02-24 08:30:24

操作系統CPU程序

2010-05-10 17:21:26

Unix操作系統

2010-04-16 18:15:11

Unix操作系統

2013-12-20 09:44:57

操作系統計算機服務器

2017-11-30 10:26:32

操作系統運行時間CPU

2009-12-09 17:25:19

Linux操作系統

2023-03-29 23:19:27

2022-02-27 23:14:33

Windows 11安卓微軟

2010-04-16 18:02:30

Unix操作系統

2021-02-27 21:45:22

程序代碼函數

2013-09-16 15:15:44

Linux操作系統

2010-05-05 17:53:39

Oracle 8i

2022-11-16 09:40:18

操作系統

2010-04-19 12:47:39

Unix操作系統

2023-02-07 00:24:24

2009-11-20 09:17:20

Firefox操作系統計劃

2010-04-30 23:15:26

云計算

2014-05-15 11:02:34

Linux操作系統國產操作系統

2010-04-09 11:11:34

Unix操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频精品视频 | 国产精品精品久久久 | 欧美日韩在线一区二区 | 99亚洲国产精品 | 一级视频在线免费观看 | 日韩一区中文字幕 | 欧美激情精品久久久久 | 成年人免费网站 | 欧美国产精品一区二区三区 | 91av在线电影| 99视频在线 | 日韩中出 | 日本一区二区高清视频 | 亚洲免费在线 | 精品日韩一区 | 久久噜噜噜精品国产亚洲综合 | 91福利网| 五月婷婷婷| 欧美一区二区三区在线播放 | 草久久久 | 国产成人精品999在线观看 | 亚洲夜射 | 亚州视频在线 | 黄色免费在线观看网址 | 91久久伊人| 欧美视频二区 | 伊人久久在线观看 | 亚洲人va欧美va人人爽 | 国产精品我不卡 | 国产在线观 | 99国产精品视频免费观看一公开 | 日韩一区二区三区在线观看 | 久久毛片网站 | 国产免费一级一级 | 99国内精品久久久久久久 | 成人精品一区二区三区中文字幕 | 一区二区在线不卡 | 中文在线一区二区 | www.youjizz.com日韩 | 亚洲精品一区国语对白 | 伊人狠狠干 |