我們都知道沒有插電的計算機就是一堆廢鐵,那么插了電的計算機其實也就是帶了電的廢鐵,哈哈,沒有軟件的運作,計算機的功能也無從發(fā)揮。就好像行尸走肉,所以我們要了解一下軟件是什么。
計算機程序和編譯程序
計算機只認識 0 與1 而已,而且計算機最重要的運算與邏輯判斷是在CPU 內(nèi)部, 而
CPU 其實是具有微指令集的。因此,我們需要CPU 幫忙工作時,就得要參考微指令集的內(nèi)容, 然后撰寫讓CPU 讀的懂的腳本給CPU 執(zhí)行,這樣就能夠讓CPU 運作了。
不過這樣的流程有幾個很麻煩的地方,包括:
· 需要了解機器語言:機器只認識0 與1,所以你必須天天在鍵盤上打0和1,你說你記的了多少編碼嘛?
·硬件的相關(guān)功能函數(shù):因為你的程序必須要寫給機器看, 當(dāng)然你就得要參考機器本身的功能,函數(shù)是一個自我包含的完成一定相關(guān)功能的執(zhí)行代碼段。
說白了就是將要實現(xiàn)的功能進行模塊化,
它是實現(xiàn)某種功能的算法集合,有助于程序的可重用性。
程序不可移植性:每個CPU 都有獨特的微指令集,同樣的,每個硬件都有其功能函數(shù)。因此,你為C計算機寫的程序,理論上是沒有辦法在D 計算機上面運作的!而且程序代碼的修改非常困難! 因為是機器碼,并不是人類看的懂得程序語言啊!
程序?qū)R恍裕阂驗檫@樣的程序必須要針對硬件功能函數(shù)來撰寫, 如果已經(jīng)開發(fā)了一支瀏覽器程序,想要再開發(fā)文件管理程序時,還是得從頭再參考硬件的功能函數(shù)來繼續(xù)撰寫, 每天都在和『硬件』挑戰(zhàn)!可能會累死你。
既然這么多的問題,那該怎么解決呢?所以啊,科學(xué)家就創(chuàng)造了“編譯程序“,這樣人類就可以編寫一些人類看的懂的代碼,然后交給編譯器再翻譯成機器能看的懂的機器碼,目前常見的編譯程序有c,c++,JAVA等等。

越高級的程序越接近人類的語言,所以比如C語言和Python的差別就有點大了,c更近機器語言而python就更接近人類的語言,而且學(xué)c的難度會比python大。
1、操作系統(tǒng)
我們剛剛談到計算機沒有軟件就是一堆廢鐵,那么操作系統(tǒng)的功能就是讓cpu可以開始判斷與運算數(shù)值、讓主存儲器可以開始加載/讀出數(shù)據(jù)與程序代碼、讓硬盤可
以開始被存取、讓網(wǎng)絡(luò)卡可以開始傳輸數(shù)據(jù)、讓所有周邊可以開始運轉(zhuǎn)等等。總之,硬件的所有動作都必須要透過這個操作系統(tǒng)來達成就是了。
我個人理解,操作系統(tǒng)就是一個大的軟件,響應(yīng)用戶的操作,調(diào)用各個電腦的硬件,完成各類任務(wù)。
2、 操作系統(tǒng)核心
說到系統(tǒng),就不得不談系統(tǒng)核心了,你的計算機能不能做到某些事情,都與核心有關(guān)! 只有
核心有提供的功能,你的計算機系統(tǒng)才能幫你完成!舉例來說,你的核心并不支持某顯卡
議, 那么無論你購買了什么樣的顯卡,這個核心都無法提供屏幕顯示能力的!
3、系統(tǒng)呼叫(System Call)
既然我的硬件都有核心管理,那么我想開發(fā)軟件的話,自然就要去參考這個核心的相關(guān)功能,這樣就從參考硬件函數(shù)變成參考核心功能,依然麻煩。
為了解決這個問題,操作系統(tǒng)通常就會提供開發(fā)接口給工程師來開發(fā)軟件,比如,我們學(xué)習(xí)c語言,只要參考c程序的函式就可以,不需要參考其他核心的功能。

計算機系統(tǒng)主要有硬件構(gòu)成,然后核心程序主要再管理硬件,提供合理的系統(tǒng)資源分配,但是人只要操作應(yīng)用程序,這樣才能夠操作系統(tǒng)。
簡單的總結(jié)一下:
1、 操作系統(tǒng)的核心層直接參考硬件的規(guī)格寫成的,所以同一個操作系統(tǒng)不能夠再不一樣的硬件架構(gòu)下運行,比如window的操作系統(tǒng)就不能在蘋果的操作系統(tǒng)運行。
2、 操作系統(tǒng)知識管理硬件資源,例如cpu、內(nèi)存等,如果沒有其他的程序來支持,操作系統(tǒng)沒啥用,至少在我眼里是這樣的,所以你要看電影啥的就要安裝播放軟件了吧!
3、 應(yīng)用程序的開發(fā)都是參考系統(tǒng)提供的開發(fā)接口,我個人理解是小軟件在大軟件上面運行,哈哈。而且在Android/ target=_blank class=infotextkey>安卓開發(fā)的應(yīng)用程序只能在安卓的系統(tǒng)上運行,蘋果的就不行了。
等等下篇說說系統(tǒng)的內(nèi)核功能噢!!這個已經(jīng)算比較難了!
最后喜歡我文章的朋友請加圈子關(guān)注我們,私信關(guān)鍵詞:加群。
就會自動分享給你群號。歡迎大家加入我們的安全大家庭。提高大家的安全意識,提升大家的網(wǎng)絡(luò)安全技能一直是我們的初衷和愿景,讓我們共同成為守護信息世界的“SaFeMAN”。
還有可以關(guān)注我們微信公眾號,在公眾號上輸入安界網(wǎng),就可以關(guān)注到我們。