你应该知道为什么需要内核
不知道大家想過這個問題沒有?為什么要有內核?如果沒有內核有怎么樣呢?
因為有了 unix 內核,有了 minix 后面又有了 Linux 內核,內核這個思想越來越根深蒂固,估計沒學什么計算機知識的人都能侃出點所以然來。
在技術上來說,內核應該是連接硬件和應用程序的,說白了還是為應用服務,讓應用程序更多的做自己的事情,所以說內核的時候,肯定是離不開驅動程序的,如果一個招聘的人說,我們需要一個內核開發工程師,如果一個不懂驅動開發,不懂電子硬件知識的人,怎么可能做得好內核開發呢?
我們使用計算機的時候,我們把手機或者電腦當座一個操作系統使用,打開QQ,打開微信,等等,但是對于應用程序來說,內核就是他的操作系統了,他可以通過系統調用來完成各種工作,比如我們獲取一個文件的內容,我會調用 open ,read 來獲取里面的信息。
如果很多人使用一個電腦,這個時候用電腦來比喻可能不是很恰當,用服務器來比喻吧,我們小組的幾個工程師都在編譯自己的代碼,內核其實就是一個多任務協調者,對進程進行資源協調,讓他們假裝認為就只有自己一個人在獨享計算機資源。
微內核和宏內核
這個就有點搞笑了,林納斯和minix的發明者因為這個還吵了一架,minix 發明者說微內核才是先進的,當然被林納斯啪啪啪打臉了,打臉的原因不是說了什么話,而是林納斯在宏內核上做了優化升級,而且現在的 linux 地位,足以秒殺minix幾條街了。
微內核有點像中央集權的意思,就好像,一個打印機進程,你負責給中央CPU匯報就可以了,你不能跟其他藩王溝通,這樣有可能你們會發生叛變,這個核心思想非常好,但是實踐起來一團糟,當初BSD操作系統就想這么搞,結果搞了很多年,都沒有做出一個穩定性良好的系統,思想先進不能落地也就只是空談了。
宏內核就跟上面的相反了,負責內核模塊的子系統之間是可以打電話的,他們是可以通過內核符號表來互相調用的,這樣看起來耦合性會非常高,但是可惜的是,我們的林納斯大神讓他變成了現實,我們的Linux 系統就是用這樣的思想完成了代碼編寫。
晚上隨筆寫了下,有筆誤和錯誤的地方,請見諒哈~
總結
以上是生活随笔為你收集整理的你应该知道为什么需要内核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么需要超过48k的采样音频?
- 下一篇: 串口UART串行总线协议