一:什麼是作業系統
(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