1. 程式人生 > >2.14.1.內核和發行版的區別.zhu

2.14.1.內核和發行版的區別.zhu

註冊 設備 計算 14. 本質 OS 進程調度 不能 部分

2.14.1.1、到底什麽是操作系統

(1)linux、windows、android、ucos就是操作系統
(2)操作系統本質上是一個程序,由很多個源文件構成,需要編譯連接成操作系統程序(vmlinz、zImage)
(3)操作系統的主要作用就是管理計算機硬件,給應用程序提供一個運行環境。

2.14.1.2、操作系統核心功能:

(1)內存管理。如果沒有操作系統,內存是需要程序自己來管理的。譬如在uboot中要使用內存的哪裏是自己隨便用的,沒有註冊也沒有限制。這時候如果程序自己不小心把同一塊內存重復用了就會出現程序邏輯錯誤。系統大了之後(內存多了)內存管理非常麻煩;有了操作系統之後,操作系統負責管控所有的內存,所有的應用程序需要使用內存時都要向操作系統去申請和註冊,由操作系統的內存管理模塊來分配內存給你使用,這樣好處是可以保證內存使用不會沖突。

(2)進程調度。操作系統下支持多個應用程序同時運行(所以可以一邊聊QQ一邊看電影···),這是宏觀上的並行。實際上在單核心CPU上微觀上是不能並行的,宏觀上的並行就是操作系統提供的分時復用機制。操作系統的進程調度模塊負責在各個進程之間進行切換。

(3)硬件設備管理。沒有操作系統時要控制任何硬件都要自己寫代碼,有了操作系統後操作系統本身會去控制各個硬件,應用程序就不用考慮硬件的具體細節了。操作系統的硬件設備管理模塊就是驅動模塊。

(4)文件系統。文件系統是管理存儲設備的一種方式。存儲設備是由很多個扇區組成的,每個扇區有512/1024/2048/4096字節,存儲設備要以扇區為單位進行讀寫。如果沒有文件系統,程序要自己去讀寫扇區,就得記得哪個文件在哪個扇區。有了文件系統之後我們人不用再關註扇區,人只用關註文件系統中的目錄和文件名,而不用管這個文件在物理磁盤的哪個扇區。

2.14.1.3、操作系統擴展功能

(1)協議棧
(2)有用的應用程序包。應用程序本身不屬於操作系統內核的一部分,應用程序是給人用的,面向某種功能的。譬如ping程序用來測試網絡是否聯通,ifconfig程序用來配置網卡。

2.14.1.4、內核和發行版的區別

區別:內核是操作系統內核的簡稱,內核負責實現操作系統的核心功能(資源管理模塊,譬如內存管理、調度系統······),內核不包括應用程序。所以說只有內核人是沒法用的,因為人做任何事情都是通過相應的應用程序來完成的。所以賣操作系統的人把內核和一些常用的應用程序打包在一起提供給普通用戶,這就是操作系統的發行版(也就是普通意義上的操作系統)。
(1)內核只有一個。www.kernel.org
(2)發行版有很多。譬如ubuntu、redhat、suse、centos······

總結:發行版=內核+常用程序

2.14.1.內核和發行版的區別.zhu