bootloader把initrd載入記憶體後,kernel就排程,並且安排initrd中的一個init的行程去工作,init主要就是呼叫一個scripts(/etc/init.d/rcS),把其他工作完成,然後接手許多工作,底下是script大致紹的工作
- 建立/proc跟/sys
- 建立必要的/dev裝置,可以看到有許多mknod指令,乃至於hotplug
- 載入drivers,會看到一堆insmod xxx.ko
- 真的引入linux的file system
- 一些類似網路設定等等也可以寫死在這裡
可以用之前的busybox觀察,因為只有建立一個shell,先用ls觀察,發現目錄少的可憐,也因為沒執行script,所以上面列出的功能都沒有做,當使用ps指令的時候,系統會抱怨找不到/proc,/proc的意思是process file system,原意是用來儲存process資訊的地方,使用手動指令把掛載起來
mkdir /proc
mount -t proc none /proc
這時候在執行ps,就可以看到畫面了,kernel就不會再抱怨找不到這個file system
其實使用/proc的人都知道,裡面其實還可以找到很多裝置的資訊,乃至於其他有用資訊,本來單純的process file system也變複雜
為此Linus決定在2.6引入另外一個/sys目錄,意思是system file system來儲存其他有用資訊,這個目錄會用來重新整理一些有用的資訊如/sys/block用來儲存區塊裝置,如硬碟的資料,/sys/bus則用來找尋硬體裝置,使得hotplug功能更容易實踐。
所以掛載/sys也是必須的
mkdir /sys
mount -t sys none /sys
其實還缺少了不少東西
/dev這個重要目錄,它是用來儲存裝置資訊了
/etc這個設定檔案的目錄,且重要的/etc/init.d/rcS這個script檔案就是放在這裡啊
/etc/inittab這個filesystme的分割紀錄檔案
/tmp暫存目錄
沒有留言:
張貼留言