【原創】計算機軟硬件構成基本關系


大綱

硬件:

計算機的主要部件有:CPU、主板、顯卡、內存、硬盤、網卡

聲卡、顯示器、鍵盤、鼠標;光驅、機箱、音箱等。

軟件:

由底向上可以細分為:固件,驅動,操作系統,應用軟件

固件:

就是硬件廠商寫死的軟件,一般不能更改或者很難更改,比如電腦主板自帶的BIOS

驅動:

和固件類似,但是允許用戶更新、卸載的,操作系統通過硬件驅動和硬件打交道。比如英偉達的顯卡驅動。是一種可以使計算機和設備進行相互通信的特殊程序。

操作系統只有通過這個接口,才能控制硬件設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作

操作系統:

比如Linux, Win7,或者手機了的Android,將底層硬件細節封裝起來。

應用軟件:

在操作系統基礎上編寫的應用程序,比如微軟的辦公Word,比如Google的Chrome瀏覽器。

補充:

1,固件和操作系統沒關系,肯定能脫離操作系統而存在。無論你是安裝Windows,還是Linux,或是BSD,主板的BIOS都在那里。

2,因為操作系統將很多底層細節(比如不同的硬盤,不同廠商的顯示器,不同型號的的主板等)封裝了起來,依賴於操作系統,應用軟件開發更加容易、有效率。但是某些場景下,應用軟件也可以脫離操作系統二存在。比如工業控制領域。以單片機為例,寫好跑馬燈的匯編程序,用燒錄軟件將二進制文件燒錄到單片機里面,就可以正確執行。

 3,固件是寫在芯片里的程序代碼,一般是用來引導或起動某個系統功能的執行,比如電腦中的CMOS。一般不會寫在硬盤或存存器中。驅動是在系統的基礎上,為了更好地發揮某個硬件的功能而特地寫出的一段程序代碼,它是建立在系統之上的。

匯編器和鏈接器

匯編器(Assembler)

1,是將匯編語言翻譯為機器語言的程序。一般而言,匯編生成的是目標代碼,需要經鏈接器(Linker)生成可執行代碼才可以執行。

2,匯編程序系統軟件語言處理系統軟件。匯編器把匯編語言翻譯成機器語言的過程稱為匯編。

鏈接器(Linker)

是一個程序,將目標文件外加庫鏈接為一個可執行文件。目標文件是包括機器碼和鏈接器可用信息的程序模塊

1,為什么需要鏈接器

對於源程序任意一行代碼的修改都需要重新編譯和匯編整個程序,全部重新翻譯是對計算資源的嚴重浪費。這種重復對於標准庫程序尤為浪費,因為程序員要編譯和匯編那些在定義上幾乎從未改變過的過程。

於是可以單獨編譯和匯編每個過程,以使得某一行代碼的改變只需要編譯和匯編一個過程。這種方法需要一個新的系統程序,稱為鏈接編輯器(link editor)或鏈接器(linker),它把所有獨立匯編的機器語言程序“拼接”在一起。

如何編寫

能輸出二進制文件的語言都可以!知道它的所有指令集就OK。

你用解釋型(Python,Ruby)的語言寫一個都可以,如IA-32,知道它的所有指令集就OK了。

 

編譯器和操作系統關系

雞和蛋的關系

雖然編譯器本身可以獨立於操作系統,但這樣需要添加大量操作系統完成的工作!

因為操作系統已經封裝了底層硬件操作的復雜性,所以現在的高級語言編譯器是依賴於操作系統的,編譯器通過系統調用和硬件打通等

操作系統內核職責

進程創建,終止,調度

內存管理,

文件系統,

網絡io,

設備管理,

提供系統調用的接口。

編譯器

編譯原理那套實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM