本篇學習目標
了解Linux系統的啟動原裡。
了解Linux系統的終端。
熟悉Linux的登錄和注銷;關機、重啟、系統基本操作。
熟悉Linux系統中用戶的切換,和查看系統中和登錄用戶有關的其他操作。
正文:
了解Linux系統的啟動原裡。
Linux的啟動過程簡介:
當用戶打開計算機的電源的時候,首先會進行BIOS自檢,根據BIOS中設置的啟動設備進行啟動。接著計算機讀取硬盤上的MBR記錄冰啟動設備上安裝的引導程序GRUB或者LILO,引導程序接著開始引導Linux系統。此時,BIOS會將CPU的控制權交給Linux系統,Linux系統重新進行硬件自檢讓後引導內核,接下來執行init父進程,系統會根據/etc/inittab文件選擇系統的啟動級別並調用rc.sysinit和/etc/rc目錄中的腳步。最後到達用戶的登錄界面,用戶輸入正確的憑據後,就進入系統。到此,Linux啟動啟動完成。
上面只是簡單的介紹了Linux系統啟動過程,下面讓我們對Linux系統的啟動過程進行詳細的講解。
Linux系統的整個啟動需要經過多個步驟,我們逐一的對其進行分析。
1.BIOS開機自檢
計算機在接通電源之後首先由BIOS進行POST(Power On Self Testing)開機自檢,接著安裝BIOS設置的引導順序從網絡、軟盤、硬盤、或光驅中讀入引導程序。Linux系統通常都是從硬盤上引導的,其中分區中的主引導記錄(MBR)包含主引導加載程序(GRUB或者LILO)。MBR是一個512字節大小的扇區,位於磁盤上的第一個扇區(0磁道0柱面1扇區)。當MBR被加載到內存之後,BIOS就會將控制權交給MBR。Linux系統是從BIOS中的地址0xFFFF0處開始引導的。BIOS的第1個步驟是加電進行POST自檢。POST的工作是對硬件進行檢測。BIOS的第2個步驟是進行本地設備的枚舉和初始化。BIOS由兩部分組成:POST代碼和運行時的服務。當POST在內存中完成自檢之後,POST代碼將從內存中清理出來,但是BIOS運行時服務依然保留在內存中,這些服務可以提供給目標操作系統使用。
2.啟動GRUB/LILO引導加載程序
GRUB和LILO都是引導加載程序,但是LILO現在很少用了。引導加載程序用於引導操作系統啟動。當機器引導它的操作系統時,BIOS會讀取引導介質上最前面的512字節(主引導記錄)。在單一的MBR中只能存儲一個操作系統的引導記錄,所以當安裝了多個操作系統時引導就會出現問題,所以就需要更靈活的引導加載程序。
所有引導加載程序都以類似的方式工作,滿足共同的目的,但LILO現在已經很少用了,因為l LILO沒有交互式命令界面、並且不支持從網絡引導。所以現在大部分的系統引導加載程序都用GRUB。GRUB包含許多特性,這使得GRUB比其他可用的引導加載程序更加優越,下面列出一些比較重要的特性:
(1)GRUB在x86機器上提供一個真正基於命令行的、先於操作系統啟動的環境。
(2)GRUB支持邏輯塊尋址(LBA)方式。
LBA的主要作用是尋找驅動器上文件的地址並將其置於驅動器的硬件中,它被用在許多IDE和SCSI硬盤中。在使用LBA之前,硬盤驅動器遇到一個1024柱面的限制,即BIOS不能找到在1024柱面後的文件(比如一個引導加載程序或是內核文件)。只要系統BIOS能支持LBA模式(大多數都支持),那麼LBA就允許GRUB超越1024柱面的限制,引導操作系統。
(3)GRUB的配置能在每次系統引導時被讀取。
這就避免了用戶每次改變引導選項時都要重寫一次主引導記錄。大多數的引導加載程序都不能讀取配置文件,並使用它們來設置引導選項。比如,用戶必需改變一個LILO的配置文件,然後執行一個命令將新的配置數據重寫回系統的主引導記錄。這種方法比GRUB所采用的方法更加危險,因為一個錯誤配置的主引導記錄將使系統無法引導。在使用GRUB中,如果配置文件被錯誤配置並且引導,那它也僅僅簡單地轉到一個默認的命令行,允許用戶手工輸入命令來運行操作系統。