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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章