溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

計算機與操作系統(tǒng)基礎(chǔ)小結(jié)

發(fā)布時間:2020-06-29 05:00:55 來源:網(wǎng)絡(luò) 閱讀:381 作者:wujunqi1996 欄目:網(wǎng)絡(luò)安全

  計算機基礎(chǔ)概念

  1946年二月美國,世界上第一臺電子計算機ENIAC誕生,似乎從這一年開始世界便逐漸變得不一樣了。隨著半個世紀的時間,計算機技術(shù)蓬勃發(fā)展,推動人類進入信息社會。

  計算機操作界面:

  ①圖形用戶界面

  ②命令行界面

  在ENIAC計算機研制的同時,馮.諾依曼與莫爾小組合作研制EDVAC計算機,采用了存儲程序方案,即把解題過程中的每一步用指令表示,并按執(zhí)行順序編寫成為程序,存放在存儲器中,稱為馮.諾依曼計算機。馮.諾依曼計算機有著如下幾個特點。

  (1)計算機由運算器,控制器,存儲器,輸入設(shè)備,輸出設(shè)備五部分組成。

  (2)采用存儲程序的方式,程序和數(shù)據(jù)放在同一個存儲器中,并以二進制碼表示。

  (3)指令由操作碼和地址碼組成。

  (4)指令在存儲器中按執(zhí)行順序存放,有指令計數(shù)器(PC)指名要執(zhí)行的指令所在的存儲單元地址。

  (5)計算機以運算器為核心,運算器進行數(shù)字運算有算術(shù)運算和邏輯運算兩大類,由控制器協(xié)調(diào)操作運算器和其他設(shè)備之間的操作,存儲器以隨機存儲器RAM為主,輸入輸出設(shè)備與存儲器間的數(shù)據(jù)傳送都通過運算器。

  根據(jù)電子計算機所采用的物理器件的發(fā)展,一般把電子計算機的發(fā)展分成五個階段,習(xí)慣上稱之為五代。

  第一代:電子管計算機計算機時代

  第二代:晶體管計算機計算機時代

  第三代:集成電路計算機計算機時代

  第四代:大規(guī)模集成電路計算機時代

  第五代:超大規(guī)模集成電路計算機時代

  計算機的硬件是計算機實現(xiàn)各種功能的基礎(chǔ),軟件則是實現(xiàn)功能的方法,由指令加上數(shù)據(jù)構(gòu)成的,將頻率轉(zhuǎn)換成信息類型讓邏輯硬件能夠理解并運行。如遙控器紅外線操控功能和觸摸屏進行邏輯轉(zhuǎn)換變成二進制的機器語言形式能夠讓計算機理解。

  計算機語言有機器語言,微碼語言(匯編語言)和高級語言三大類,機器語言作為計算機最底層的語言,它的普適性最強但針對性弱,是由二進制直接實現(xiàn)的,在計算機剛出現(xiàn)那會人們便是利用機器語言來對計算機進行操作,但由于機器語言都由二進制代碼寫成,這對于程序員的壓力太大,效率更是低。基于這樣的背景下匯編語言應(yīng)運而生。匯編語言利用符號代替二進制碼,因此匯編語言又叫做符號語言,使用匯編語言編寫的程序,硬件不能直接識別,要利用匯編程序?qū)R編語言轉(zhuǎn)化成機器語言這樣硬件才能夠識別。對于匯編語言來說這個過程我們稱之為匯編過程,利用匯編器來達成。匯編語言與芯片的耦合度很高,但在某個芯片上編寫的匯編語言基本無法移植到其它芯片上,移植性很差,所以就出現(xiàn)了高級語言。高級語言有很多種,C語言,JAVA,PHP,Python,perl等每種語言皆有其針對性。C語言和JAVA為系統(tǒng)級語言更接近于底層,PHP,Python,perl等則為應(yīng)用級語言。雖然高級語言針對性強但越接近人類的自然語言,轉(zhuǎn)化成機器語言的效率就低,會產(chǎn)生很多中間代碼,在運行的時候所需要的額外開銷越大。

  高級語言可分為:

  ①系統(tǒng)級,應(yīng)用級。

  ②可分為面向過程:按照嚴格的邏輯結(jié)構(gòu)來編寫代碼。面向?qū)ο螅合鄬ψ杂?,更注重?shù)據(jù)處理的過程,而不是數(shù)據(jù)結(jié)構(gòu)。

  ③可分為強語言(編譯性語言):C語言,C++,JAVA。不聲名變量就無法使用,源代碼必須經(jīng)過編譯,不編譯無法使用。弱語言(解釋性語言):PHP,Python,shell,不聲明變量也可以使用,不經(jīng)過編譯,經(jīng)過解釋器也可以使用。

  操作系統(tǒng)基礎(chǔ)概念

  操作系統(tǒng)(Operating System,OS)是配置在計算機硬件上的第一層軟件,是對硬件系統(tǒng),是對硬件系統(tǒng)的首次擴充。其主要作用是管理好這些設(shè)備,提高他們的利用率和系統(tǒng)吞吐量,并為用戶和應(yīng)用程序提供一個簡單的接口,便于用戶使用。

  目前我們使用的計算機是數(shù)字設(shè)備即能夠進行數(shù)字信息處理和運算的設(shè)備。只能理解二進制代碼的數(shù)字設(shè)備。因此任何一個程序想要在計算機上運行,必須編碼成二進制代碼形式才能被底層硬件所接受,但底層硬件太過簡單和丑陋,所以為了方便程序員的開發(fā),供貨商會為這些底層丑陋的硬件分配匯編接口,但這些匯編接口也很底層。為了能夠很很好的利用這些匯編接口則需要一個能完成匯編功能的程序——驅(qū)動程序。一開始,因為不同的硬件需要不同的匯編程序,為了能夠?qū)τ嬎銠C底層硬件進行使用,會為每一個底層硬件的匯編接口編寫一個對應(yīng)的驅(qū)動程序進行驅(qū)動。但是隨著計算機的不斷發(fā)展,后來的人覺得使用一個硬件就要編寫一個對應(yīng)的驅(qū)動程序太過復(fù)雜,就有人專門開發(fā)這些計算機底層的硬件,封裝成一個整體,并且共享出來,這樣程序員在開發(fā)程序時就不需要自行編寫這些代碼,直接調(diào)用即可。這樣程序員在開發(fā)程序時,直接調(diào)用驅(qū)動程序就可以訪問硬件,匯編成二進制流就可以被CPU直接處理了。

  操作系統(tǒng)又稱為硬件虛擬抽象層。是把硬件虛擬化抽象出來的。(如D盤圖標等)不直接去使用硬件,而是用一種代替,虛擬的方式去使用硬件。給硬件分配資源,監(jiān)控,防止出現(xiàn)資源分配不合理的情況。資源分配不合理,資源浪費會導(dǎo)致系統(tǒng)不運行。這里的操作系統(tǒng)即為內(nèi)核(kernal)。kernal這個監(jiān)控程序只是負責把底層的硬件驅(qū)動起來并且把底層硬件的各種資源虛擬化。如空間復(fù)用,時間復(fù)用。

  操作接口(shell),使用操作接口的程序顯示在界面時容易管理,反之則不容易管理。有的應(yīng)用程序是需要與操作接口作用,產(chǎn)生圖標在界面上,有的直接通過操作系統(tǒng)訪問內(nèi)核,而不直接與操作接口作用顯示在界面上(如***)。

  操作系統(tǒng)內(nèi)核可以很好的承上啟下,即操作系統(tǒng)的接口與內(nèi)核kernal之間的聯(lián)系。內(nèi)核可以很好的屏蔽底層丑陋的硬件將虛擬化的硬件資源放在計算機界面上方便用戶的使用。軟件尋找操作系統(tǒng)接口和使用操作系統(tǒng)的接口的過程叫system call,利用這個接口把我們需要的信息,和需要做的操作通過接口傳遞到操作系統(tǒng)的內(nèi)核中。即系統(tǒng)調(diào)用。調(diào)用系統(tǒng)接口的不是程序而是進程。程序是靜態(tài)的是死的,進程是動態(tài)的,是活的。應(yīng)用程序通過操作接口shell,經(jīng)過系統(tǒng)調(diào)用到操作系統(tǒng)內(nèi)核,由內(nèi)核進行匯編,將高級語言翻譯成匯編語言再翻譯成計算機能夠理解的機器語言,從而對硬件進行調(diào)用。

  一個完整的操作系統(tǒng)由內(nèi)核和各種應(yīng)用程序組成,內(nèi)核通過屏蔽底層硬件丑陋的接口,虛擬硬件接口以方便用戶使用。這些抽象出來的接口,我們稱之為系統(tǒng)調(diào)用。在程序員編程時采用的代碼需要哪些接口,這些需要事先了解清楚再編寫代碼,否則所編寫的代碼與操作系統(tǒng)的接口無法匹配上便無法在此操作系統(tǒng)上運行調(diào)試。因此程序員必須事先了解清楚操作系統(tǒng)有著哪些接口,但操作系統(tǒng)的接口有著上百個,這對于程序員來說也是一種很大的壓力,于是就有一些人將一些常用的到操作系統(tǒng)接口封裝成一個庫即Library。Library中包含了大量的方法,程序員可以基于庫接口進行編程也可以基于內(nèi)核接口進行編程。在Linux領(lǐng)域,庫接口的調(diào)用更加自由,方便。這些庫也稱為API(Application Program Interface).

  如果程序員在編程時使用的是windows操作系統(tǒng)接口,想要在Linux操作系統(tǒng)中運行調(diào)試這一段程序,就要確定起初在編寫程序時的windows操作接口與現(xiàn)在要運行環(huán)境下的操作系統(tǒng)的API庫能否統(tǒng)一調(diào)用。即POSIX(Portable Operating System)可移植操作系統(tǒng)。任何一個遵守了POSIX 規(guī)范的程序代碼可以在不同的操作系統(tǒng)上使用。

  編程接口兼容并不意味著二進制接口兼容,也就是說,在程序員編寫代碼時對操作系統(tǒng)的接口能夠兼容但并不意味著能將所編寫程序的語言轉(zhuǎn)化成二進制機器語言讓硬件進行操作。這里的二進制接口兼容即ABI(Application Binary Interface)。將程序的源代碼轉(zhuǎn)化為二進制代碼來實現(xiàn)。源代碼能不能編譯取決于API能不能兼容,源代碼編譯后能不能執(zhí)行取決于ABI能不能兼容。

  訪問界面程序可以分為兩大類

  ①圖形用戶界面(GUI)

  ②命令行界面(CLI)

  我們常用的windows系統(tǒng)都有一個桌面,這個桌面就是圖形用戶界面,初學(xué)者使用電腦利用GUI會更容易上手,但是但凡是使用過CLI的人都知道,使用CLI的效率要比使用GUI的要高得多。CLI的入門門檻較高,這也導(dǎo)致了許多人不喜歡使用。但是只要一入門,你就會發(fā)現(xiàn)命令行界面是非常簡單的。使用起來幾乎是透明的,哪一個環(huán)節(jié)出現(xiàn)問題都能迅速找到并且解決。

  從1945年誕生的第一臺計算機到50年代中期的計算機,都屬于第一代計算機。這是還未出現(xiàn)OS,對計算機的全部操作都是由用戶采取人工操作方式進行的。由程序員將事先已穿孔的紙帶,裝入紙帶輸入機,再啟動它們將紙帶上的程序和數(shù)據(jù)輸入計算機,然后啟動計算機運行。為了解決人機矛盾和I/O設(shè)備之間速度不匹配的矛盾,20世紀50年代末出現(xiàn)了脫機I/O技術(shù)。該技術(shù)是事先將裝有用戶程序和數(shù)據(jù)的紙帶裝入紙帶輸入機,在一臺外圍機的控制下,把紙帶上的數(shù)據(jù)輸入到磁帶上,當CPU需要這些程序和數(shù)據(jù)時再從磁帶高速地調(diào)入到內(nèi)存。為了能夠充分提高計算機資源的利用率,先把一批作業(yè)以脫機方式輸入到磁帶上,并在系統(tǒng)中配上監(jiān)督程序,在它的控制下,使這批作業(yè)能夠一個接一個地連續(xù)處理。雖然系統(tǒng)對作業(yè)的處理是成批進行,但在內(nèi)存中始終只保持一道作業(yè),故稱為單道批處理。但單道批處理系統(tǒng)中的資源得不到充分的利用,因為內(nèi)存中僅有一道程序所以該程序在發(fā)出I/O請求后,CPU便處于等待狀態(tài)。為了進一步提高資源利用率和系統(tǒng)吞吐量,在20世紀60年代中期引入了多道程序的設(shè)計技術(shù),由此形成多道批處理系統(tǒng)。在該系統(tǒng)中,,用戶所I提交的作業(yè)先存放在外村上,并排成一個隊列。然后由作業(yè)調(diào)度程序按一定的算法從隊列中選若干個作業(yè)進入內(nèi)存,使他們共享CPU的和系統(tǒng)中的各種資源,由于同時在內(nèi)存中有若干程序,這樣便可以在運行程序A時,利用其因I/O操作而暫停執(zhí)行的空擋時間在調(diào)度另一程序B執(zhí)行,使多道程序交替執(zhí)行,這樣就可以使CPU處于忙碌狀態(tài)。

  

  


 

   

  



  

  


  

  

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI