歡迎光臨
每天分享高質量文章

計算機實驗室之樹莓派:課程 0 簡介 | Linux 中國

這個課程簡介不包含實踐內容,但它解釋了一個操作系統的基本概念、彙編代碼、和其它很重要的一些基本原理。
— Robert Mullins

 

致謝
譯自 | cl.cam.ac.uk 
作者 | Robert Mullins
譯者 | LCTT / qhwdw

這個課程簡介不包含實踐內容,但它解釋了一個操作系統的基本概念、彙編代碼、和其它很重要的一些基本原理。如果你想直接進入實踐環節,跳過本課程並不會有什麼問題。

1、操作系統

操作系統就是一個非常複雜的程式。它的任務就是組織安排計算機上的其它程式,包括共享計算機的時間、記憶體、硬體和其它資源。你可能聽說過的一些比較大的桌面操作系統家族有 GNU/Linux、Mac OS X 和 Microsoft Windows。其它的設備比如電話,也需要操作系統,它可能使用的操作系統是 Android、iOS 和 Windows Phone[1]

由於操作系統是用來與計算機系統上的硬體進行交互的,所以它必須瞭解系統上硬體專有的信息。為了能讓操作系統適用於各種型別的計算機,發明瞭 驅動程式 的概念。驅動程式是為了能夠讓操作系統與特定的硬體進行交互而添加(並可刪除)到操作系統上的一小部分代碼。在本課程中,我們並不涉及如何創建可刪除的驅動程式,而是專註於特定的一個硬體:樹莓派。

操作系統有各種不同的設計方式,在本課程中,我們只觸及操作系統設計的皮毛。本課程中,我們主要專註於操作系統與各種硬體的交互部分,因為這經常是比較棘手的部分,並且也是在網絡上文件和幫助最少的部分。

2、彙編代碼

處理器每秒可以執行上百萬的指令,但是這些指令必須要簡單。

本課程幾乎要完全靠彙編代碼來寫。彙編代碼非常接近計算機的底層。計算機其實是靠一個叫處理器的設備來工作的,處理器能夠執行像加法這樣的簡單任務,還有一組叫做 RAM 的芯片,它能夠用來儲存數字。當計算機通電後,處理器執行程式員給定的一系列指令,這將導致記憶體中的數字發生變化,以及與連接的硬體進行交互。彙編代碼只是將這些機器命令轉換為人類可讀的文本。

常規的編程就是,程式員使用編程語言,比如 C++、Java、C#、Basic 等等來寫代碼,然後一個叫編譯器的程式將程式員寫的代碼轉換成彙編代碼,然後進一步轉換為二進制代碼[2]。二進制代碼才是計算機真正能夠理解的東西,但它是人類無法讀取的東西。彙編代碼比二進制代碼好一點,至少它的命令是人類可讀的,但它仍然讓人很沮喪。請記住,你用彙編代碼寫的每個命令都是處理器可以直接認識的,因此這些命令設計的很簡單,因為物理電路必須能夠處理每個命令。

Compiler process

和普通編程一樣,也有很多不同的彙編代碼編程語言,但與普通編程不一樣的是,每個彙編編程語言是面對不同的處理器的,每種處理器設計為去理解不同的語言。因此,用一個針對某種機器設計的彙編語言所寫的彙編代碼,是不能在其它種類的機器上運行的。很多情況下,這都是一個大災難,因此每個程式都必須在使用它的不同種類的機器上重寫一遍,但對於操作系統,這不是個問題,因為在不同的硬體上它必須得重寫。儘管如此,大多數操作系統都是用 C++ 或 C 來寫的,這樣它們就可以很容易地在不同種類的硬體上使用,只需要重寫那些必須用彙編代碼來實現的部分即可。

現在,你已經準備好進入第一節課了,它是 課程 1 OK01[3]


via: https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/introduction.html

作者:Robert Mullins[5] 選題:lujun9972 譯者:qhwdw 校對:wxy

赞(0)

分享創造快樂