Linux學習筆記之Linux引導流程解析
1、Linux引導流程:frimeware--bootloader--kernel--init--/etc/inittab--initdefault--/etc/rc.d/rc.sysinit--/etc/rc.d/rc/--/etc/rc.d/rcN.d(N代表0~6的數字)--username--password
->固件firmware(CMOS/BIOS) -->POST加電自檢
MBR:Master Boot Record主引導記錄 位於0柱面0磁頭1扇區 裏面保存了 Bootloader(引導加載程序)、Partition table(分區表)、Magic Number(結束標記)
->自舉程序BootLoader(GRUB) -->載入內核
BootLoader(GRUB):相當於windows操作系統的NTLDR,其配置問價爲boot.ini。在linux裏面也有一個這樣的自啓動程序就是GRUB,其配置文件vi /etc/grub.conf 這是/boot/grub/grub.conf的符號鏈接文件
"kernel /boot/vmlinuz-2.6.32-279.el6.i686"其中vmlinuz-2.6.32爲內核的版本號,其中6表示該操作系統爲正式版,奇數爲測試版,偶數爲正式版 可以使用uname -r 查看linux系統的版本號
->載入內核 Kernel ("kernel /boot/vmlinuz-2.6.32-279.el6.i686") -->內核只需要做兩件事情:1、驅動硬件,內核裏面有硬件的驅動程序。2、啓動一個進程,進程名字爲init,也是系統啓動的第一個進程
init進程啓動後讀取inittab文件,執行缺省的運行級別,從而繼續引導過程。在UNIX系統中,init是第一個可以存在的進程,它的PID恆爲1,但它也必須向一個更高級的進程負責:PID爲0的內核調度器(Kernel scheduler),從而獲得CPU時間.可以使用 ps -le |more查看進程號
[root@CentOS-Test boot]# ps -le |more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init (是所有進程的父進程)
1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd
->啓動進程init
->讀取執行配置文件/etc/inittab
inittab是init進程的配置文件。文件位置 /etc/inittab。是linux的運行級別配置文件
運行級別相當於windows裏面的安全模式等等。
同步硬件和軟件的時鐘:
設置以硬件時鐘的時間設置系統時鐘
[root@CentOS-Test data]# hwclock --hctosys
設置以系統時鐘時間設置硬件時鐘
[root@CentOS-Test data]# hwclock --systohc
設置系統時鐘:
[root@CentOS-Test data]# date -s "2012-11-21 12:01:25"
2、Linux運行級別
使用grep -v "^#" /etc/inittab去掉註釋去查看inittab配置文件
[root@CentOS-Test etc]# grep -v "^#" /etc/inittab |more (#是要排除的行)
id:5:initdefault:
或者使用vi命令進行修改
vi /etc/inittab
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this) //表示關機
# 1 - Single user mode //單用戶模式,類似於windows的安全模式。只有root可以登錄。沒有圖形界面。是一種修復模式
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)//多用戶模式,無網絡文件系統,不能實現Linux和Unix的文件共享
# 3 - Full multiuser mode//全功能下的多用戶模式
# 4 - unused //沒有在使用的,只啓動自己需要的服務
# 5 - X11 //是系統缺省的運行級別。是圖形界面環境的運行級別
# 6 - reboot (Do NOT set initdefault to this) //系統重啓,不能將此運行級別設置爲默認的運行級別
#
id:5:initdefault:
id:當前的運行級別 initdefault:默認的運行級別
查看當前的運行級別:runlevel
[root@CentOS-Test etc]# runlevel
3 5
切換當前的運行級別:telinit或init(telinit是init的一個鏈接)
init 1 init3 init 5
->固件firmware(CMOS/BIOS) -->POST加電自檢
MBR:Master Boot Record主引導記錄 位於0柱面0磁頭1扇區 裏面保存了 Bootloader(引導加載程序)、Partition table(分區表)、Magic Number(結束標記)
->自舉程序BootLoader(GRUB) -->載入內核
BootLoader(GRUB):相當於windows操作系統的NTLDR,其配置問價爲boot.ini。在linux裏面也有一個這樣的自啓動程序就是GRUB,其配置文件vi /etc/grub.conf 這是/boot/grub/grub.conf的符號鏈接文件
"kernel /boot/vmlinuz-2.6.32-279.el6.i686"其中vmlinuz-2.6.32爲內核的版本號,其中6表示該操作系統爲正式版,奇數爲測試版,偶數爲正式版 可以使用uname -r 查看linux系統的版本號
->載入內核 Kernel ("kernel /boot/vmlinuz-2.6.32-279.el6.i686") -->內核只需要做兩件事情:1、驅動硬件,內核裏面有硬件的驅動程序。2、啓動一個進程,進程名字爲init,也是系統啓動的第一個進程
init進程啓動後讀取inittab文件,執行缺省的運行級別,從而繼續引導過程。在UNIX系統中,init是第一個可以存在的進程,它的PID恆爲1,但它也必須向一個更高級的進程負責:PID爲0的內核調度器(Kernel scheduler),從而獲得CPU時間.可以使用 ps -le |more查看進程號
[root@CentOS-Test boot]# ps -le |more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init (是所有進程的父進程)
1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd
->啓動進程init
->讀取執行配置文件/etc/inittab
inittab是init進程的配置文件。文件位置 /etc/inittab。是linux的運行級別配置文件
運行級別相當於windows裏面的安全模式等等。
同步硬件和軟件的時鐘:
設置以硬件時鐘的時間設置系統時鐘
[root@CentOS-Test data]# hwclock --hctosys
設置以系統時鐘時間設置硬件時鐘
[root@CentOS-Test data]# hwclock --systohc
設置系統時鐘:
[root@CentOS-Test data]# date -s "2012-11-21 12:01:25"
2、Linux運行級別
使用grep -v "^#" /etc/inittab去掉註釋去查看inittab配置文件
[root@CentOS-Test etc]# grep -v "^#" /etc/inittab |more (#是要排除的行)
id:5:initdefault:
或者使用vi命令進行修改
vi /etc/inittab
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this) //表示關機
# 1 - Single user mode //單用戶模式,類似於windows的安全模式。只有root可以登錄。沒有圖形界面。是一種修復模式
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)//多用戶模式,無網絡文件系統,不能實現Linux和Unix的文件共享
# 3 - Full multiuser mode//全功能下的多用戶模式
# 4 - unused //沒有在使用的,只啓動自己需要的服務
# 5 - X11 //是系統缺省的運行級別。是圖形界面環境的運行級別
# 6 - reboot (Do NOT set initdefault to this) //系統重啓,不能將此運行級別設置爲默認的運行級別
#
id:5:initdefault:
id:當前的運行級別 initdefault:默認的運行級別
查看當前的運行級別:runlevel
[root@CentOS-Test etc]# runlevel
3 5
切換當前的運行級別:telinit或init(telinit是init的一個鏈接)
init 1 init3 init 5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.