天天看點

linux 核心移植(二)——作業系統

一:什麼是作業系統

  (1)linux、windows、android、ucos就是作業系統

  (2)作業系統本質上是一個程式,由很多個源檔案構成,需要編譯

連接配接成作業系統程式(vmlinz、zImage)

  (3)作業系統的主要作用就是管理計算機硬體,給應用程式提供一

個運作環境。

二:作業系統的核心功能

  (1)記憶體管理。如果沒有作業系統,記憶體是需要程式自己來管理

的。譬、如在uboot中要使用記憶體的哪裡是自己随便用的,沒有注冊也

沒有限制。這時候如果程式自己不小心把同一塊記憶體重複用了就會出

現程式邏輯錯誤。系統大了之後(記憶體多了)記憶體管理非常麻煩;有

了作業系統之後,作業系統負責管控所有的記憶體,所有的應用程式需

要使用記憶體時都要向作業系統去申請和注冊,由作業系統的記憶體管理

子產品來配置設定記憶體給你使用,這樣好處是可以保證記憶體使用不會沖突。

 (2)程序排程。作業系統下支援多個應用程式同時運作(是以可以

一邊聊QQ一邊看電影···),這是宏觀上的并行。實際上在單核心CPU上

微觀上是不能并行的,宏觀上的并行就是作業系統提供的分時複用機

制。作業系統的程序排程子產品負責在各個程序之間進行切換。

  (3)硬體裝置管理。沒有作業系統時要控制任何硬體都要自己寫代

碼,有了作業系統後作業系統本身會去控制各個硬體,應用程式就不

用考慮硬體的具體細節了。作業系統的硬體裝置管理子產品就是驅動模

塊。 

  (4)檔案系統。檔案系統是管理儲存設備的一種方式。儲存設備是

由很多個扇區組成的,每個扇區有512/1024/2048/4096位元組,存儲設

備要以扇區為機關進行讀寫。如果沒有檔案系統,程式要自己去讀寫

扇區,就得記得哪個檔案在哪個扇區。有了檔案系統之後我們人不用 

再關注扇區,人隻用關注檔案系統中的目錄和檔案名,而不用管這個

檔案在實體磁盤的哪個扇區。

三:作業系統的擴充功能

 (1)協定棧 

 (2)有用的應用程式包。應用程式本身不屬于作業系統核心的一部

分,應用程式是給人用的,面向某種功能的。譬如ping程式用來測試

網絡是否聯通,ifconfig程式用來配置網卡。

本文轉自 菜鳥養成記 51CTO部落格,原文連結:http://blog.51cto.com/11674570/1839732

繼續閱讀