時間:2017.12.19
作者:李強
參考:man,info,magedu講義,萬能的internet
實驗環境:VMware® Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4
聲明:以下英文純屬個人翻譯,英文B級,歡迎糾正,以下内容純屬個人了解,并沒有對錯,隻是參考,盜版不糾,才能有限,希望不誤人子弟為好。
1、Linux組成
linux組成包括kernel+rootfs
kernel:程序管理,記憶體管理,網絡管理,驅動程式,檔案系統,安全功能
rootfs:程式和glibc。
庫:函數的集合
程式:二進制可執行檔案
核心流派:
單核心:把所有功能內建于同一個程式,如linux
微核心:把每種功能使用一個單獨子系統實作,如windows
linux核心特點:
支援子產品化:.ko(核心對象)
如:檔案系統,硬體驅動,網絡協定等。
核心隻有一些基本的功能子產品,這些沒有必要的子產品化,已要是用就加載,不需要不必要加載的方式動态加載解除安裝。
這就是linux核心核心檔案很小的原因。
組成檔案:
核心檔案:/boot/vmlinuz-version-release 存放于此壓縮檔案下。
ramdisk:輔助的僞根系統
centos5:/boot/initrd-version-release
centos6,7:/boot/initramfs-version-release
子產品檔案:/lib/modules/version-release 存放于此目錄下
2、啟動過程

3、centos6啟動過程
首先加電,裝置進行POST加電自檢,如果此時硬體檢測有問題,是進入到下一步的,這是基礎
然後假設有多塊硬碟,去讀取引導資訊,可以到哪個房間,表現形式就是bios裡面的boot 選項,通常表現為,硬碟xx,CD光牒xx,u盤xx等。
然後我們選擇到哪裡,否則預設,然後主機闆引導程式就會去找你選擇的啟動項裝置的MBR的bootloader,MBR的446位元組的bootloader到底存放了什麼呢。
首先bootloader這裡說是不對的,應該說這裡放置的bootloader是stage1,
引導加載器是一個程式:
windows下是ntbootloader
linux下是grub(GRand Unified Bootloader )大型統一加載器。
就像人起床的過程,首先我們的BIOS要檢查我們的硬體是否完好,大腦心髒脊髓等等。如果有東西挂了,就說明啟動不了。
然後就是你大腦中存放了多種人格,他要決定喚醒那個人格。多個MBR
選擇了哪個人格,好那個人格要啟動的資訊存放在哪裡呢。boorloader指向啟動的資訊存放位置,stage1去找stage2。
stage2讓人格開始啟動起來,啟動隻要其能活着就行。生命體征正常。核心檔案的事情。接着就是雞蛋的問題,
/boot/vmlinuz-version-relase . /boot/initramfs-version-release。判定一個死了沒的标準是沒有了腦電波,然後是心髒停了。
然後如果睜眼加載睜眼的子產品,如果要說話加載說話的子產品,如果走路加載走路的子產品,如果思考加載思考的子產品,這些都是沒有必要的子產品,霍金不能動,不能說話,已然可以思考稱為偉大的實體學家。/lib/models/version-release這個是子產品的倉庫,你想要加載什麼子產品要從init初始化的腳本指定。
系統開機的快慢就和你初始化程序有關,你是從上到下慢慢來,還是分塊來,還是大家一起來。
init:5,懶床重症患者
upstart:6,懶床輕度患者
systemd:7,不懶床
本文轉自 lajifeiwomoshu 51CTO部落格,原文連結:http://blog.51cto.com/lajifeiwomoshu/2052673