05_操作系統(tǒng)(計(jì)算機(jī)科學(xué))

帶著問題學(xué)習(xí)(操作系統(tǒng))

  • 軟件的運(yùn)行環(huán)境指的什么?
  • Windows的應(yīng)用程序能夠在Linux下運(yùn)行嗎?
  • Java虛擬機(jī)是什么原理?

偉大的操作系統(tǒng)

????????在X86電腦出現(xiàn)之前,不同類型的電腦中的CPU指令是不同的,所以當(dāng)時(shí)寫的應(yīng)用程序只能在一種類型甚至一臺(tái)電腦上運(yùn)行。

  • 克服硬件差異性:微軟設(shè)計(jì)了叫做MS-DOS的操作系統(tǒng)(最開始的MS-DOS也可以認(rèn)為是一個(gè)軟件,它相當(dāng)于一個(gè)殼),我們只需要編寫符合MS-DOS規(guī)則的程序,就能夠在所有安裝了MS-DOS電腦上運(yùn)行我們編寫的程序,達(dá)到了克服硬件之間的差異性的目的,能夠更好的駕馭我們的程序。
  • 提供統(tǒng)一接口:操作系統(tǒng)為我們提供了標(biāo)準(zhǔn)的API,拿著這些API接口,
  • 偽跨平臺(tái):目前主要的操作系統(tǒng)有Windows、Linux以及Mac,而這三種操作系統(tǒng)之間是有很大差別的,最主要是體現(xiàn)在API函數(shù)接口的不同。這些API的不同,就會(huì)導(dǎo)致應(yīng)用程序在編寫起來變得比較麻煩,所以,如果想讓我們的應(yīng)用程序能夠在上面三個(gè)操作系統(tǒng)上運(yùn)行,就需要進(jìn)行三次編譯,每一次都會(huì)產(chǎn)生一個(gè)native code(本地代碼)機(jī)器碼。
    我們?cè)诰帉懺创a的時(shí)候,需要對(duì)操作系統(tǒng)進(jìn)行判斷,然后寫出相對(duì)應(yīng)的API,那么編譯器在編譯的時(shí)候,就會(huì)根據(jù)不同的草錯(cuò)系統(tǒng)編譯出相應(yīng)的native code機(jī)器碼。所以我們寫的源代碼達(dá)到了一次編寫,處處編譯,處處運(yùn)行的目的。這只是一個(gè)簡(jiǎn)單的編程技法,并沒有什么難度。
    交叉編譯,顧名思義,我們可以在一個(gè)平臺(tái)下面編譯出其它平臺(tái)下面可以運(yùn)行的程序,這需要用到交叉編譯器,其實(shí)對(duì)于編程人員來說更是沒有什么技術(shù)含量。
    我們知道操作系統(tǒng)下面的硬件是各種各樣的,然后將各種各樣的硬件統(tǒng)一成一個(gè)標(biāo)準(zhǔn)的接口,達(dá)到了一次編寫程序,各個(gè)硬件上運(yùn)行的目的。那么我們可以想象得出,是否有一個(gè)標(biāo)準(zhǔn)的軟件或什么,將Windows、Linux以及mac這三種平臺(tái)再封裝一下,達(dá)到一次編寫程序、一次編譯、處處運(yùn)行的目的呢?當(dāng)然有,那就是著名的Java虛擬機(jī)和dot net框架,這樣的跨平臺(tái)是一個(gè)偽跨平臺(tái),因?yàn)檫€是需要在操作系統(tǒng)上安裝Java虛擬機(jī)或者dot net 框架的軟件。
  • BIOS及引導(dǎo):BIOS存儲(chǔ)在計(jì)算機(jī)主板中,它主要的一個(gè)作用是對(duì)計(jì)算機(jī)硬件的檢測(cè)(比如鍵盤、內(nèi)存、硬盤等),另一個(gè)主要功能是對(duì)操作系統(tǒng)進(jìn)行引導(dǎo),能夠讓操作系統(tǒng)運(yùn)行起來。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容