linux學習第1課

1、LINUX發行版

linux是什麼?
Linux的發行版說簡單點就是將Linux內核與應用軟件做一個打包
Linux的內核免費,阿銘常用的就是Redhat 和 CentOS,這裏有必要說一下,其實CentOS是基於Redhat的,網上有人說,Centos是Redhat企業版的克隆。CentOS較之於Redhat 可以免費使用yum 下載安裝所需要的軟件包,而Redhat要想使用yum必須要購買授權協議。
ANdirod屬於linux發行版,apple屬於unix
通過哪些渠道下載centos及yum源
http://mirrors.sohu.com
http://mirrors.163.com
centos.org官網
騰迅雲、阿里雲
http://www.centoscn.com

2、虛擬機的配置(建議使用vm10)
虛擬機的複製、快照、硬件定製等熟悉實驗環境

  1. linux分區
    soft raid、標準分區、LVM卷
    最小化分區法就是/boot、swap、/
    boot不能加密,其他都可以,果對/加密了那麼/啓動時需要輸入密碼
    Linux裏所有的分區都是掛載在/分區下

  2. http://v.apelearn.com/student.php?view_unit=3
    安裝centos系統(需要多多溫習)
    養成良好的習慣(儘量不用最高權限操作、經常備份、執行命令前要三思)

  3. 配置IP地址
    ipconfig -a (tab鍵補全)、 dhclient
    /etc/sysconfig/network-scripts/ifcfg-eth0
    ifdown eth0&&ifup eth0 (沒寫入文件都是臨時)

  4. linux啓動過程(已保成爲圖)
    init 3切換圖形模式下,startx表示啓動圖形服務,默認會開6個tty和1個圖形服務 ,tty運行在3級別,圖形服務運行在5級別

    第一階段,硬件引導啓動。首先是BIOS加電自檢,BIOS找啓動介質,是硬盤還是光盤或者其他啓動介質,然後再啓動介質中找到MBR。MBR是啓動介質(比如硬盤)的第一個分區的第一個扇區,大小爲512字節。其中前面446字節是bootloader(CentOS安裝的時候會安裝一個grub程序在這裏),緊接着的64字節是分區表,最後面2字節是用來校驗的,我們把它叫做55AA。

第二階段,grub啓動引導程序。既然找到了MBR,那麼就找到了grub,它就是一個引導程序,它會幫我們引導我們想啓動的系統,grub引導分爲兩個階段執行stage1和stage2。stage1是直接在MBR中的,也就是那前面446字節裏面,而stage2比較大不能放到MBR裏,所以只能放到文件系統裏,按理說stage1執行後就直接調用stage2了。但對於目前較新的文件系統(比如ext4)來說,stage2是不能識別到的,所以還得藉助於一箇中間橋樑stage1_5來識別stage2所在的文件系統。當stage2被執行後,它就會去解析配置文件/boot/grub/grub.conf,在該配置文件中它又找到了內核和內核映像(initrd)的位置。

第三階段內核引導階段。內核和內核映像(initrd)找到了,所以內核接管控制權。按理說內核能夠識別到幾乎所有的硬件設備,但實際上內核的身材是非常小的,它只含有最基本的硬件驅動,而其他有常見硬件驅動是在initrd中的。所以在這一階段,initrd先釋放到內存中,臨時構成一個只讀的文件系統,在這個只讀的文件系統中,內核去執行臨時文件系統裏面的init進程,目的是加載各種硬件的驅動。當所需的驅動加載完後,內核再次掛載真正的根文件系統,內核把控制器教給了/sbin/init進程。

第四階段系統初始化階段。/sbin/init進程是系統其他所有進程的父進程,當它接管了系統的控制權先之後,它首先會去讀取/etc/inittab文件來執行相應的腳本進行系統初始化,如設置鍵盤、字體,裝載模塊,設置網絡等。主要包括以下工作:

1) 執行系統初始化腳本(/etc/rc.d/rc.sysinit),對系統進行基本的配置,以讀寫方式掛載根文件系統及其它文件系統,到此係統算是基本運行起來了,後面需要進行運行級別的確定及相應服務的啓動。rc.sysinit所做的事情(不同的Linux發行版,該文件可能有些差異)如下:

(1)獲取網絡環境與主機類型。首先會讀取網絡環境設置文件"/etc/sysconfig/network",獲取主機名稱與默認網關等網絡環境。

(2)測試與載入內存設備/proc及usb設備/sys。除了/proc外,系統會主動檢測是否有usb設備,並主動加載usb驅動,嘗試載入usb文件系統。

(3)決定是否啓動SELinux。

(4)接口設備的檢測與即插即用(pnp)參數的測試。

(5)用戶自定義模塊的加載。用戶可以再"/etc/sysconfig/modules/*.modules"加入自定義的模塊,此時會加載到系統中。

(6)加載核心的相關設置。按"/etc/sysctl.conf"這個文件的設置值配置功能。

(7)設置系統時間(clock)。

(8)設置終端的控制檯的字形。

(9)設置raid及LVM等硬盤功能。

(10)以方式查看檢驗磁盤文件系統。

(11)進行磁盤配額quota的轉換。

(12)重新以讀取模式載入系統磁盤。

(13)啓動quota功能。

(14)啓動系統隨機數設備(產生隨機數功能)。

(15)清楚啓動過程中的臨時文件。

(16)將啓動信息加載到"/var/log/dmesg"文件中。

當/etc/rc.d/rc.sysinit執行完後,系統就可以順利工作了,只是還需要啓動系統所需要的各種服務,這樣主機纔可以提供相關的網絡和主機功能,因此便會執行下面的腳本。

2) 執行/etc/rc.d/rc腳本。該文件定義了服務啓動的順序是先K後S,而具體的每個運行級別的服務狀態是放在/etc/rc.d/rc.d(=0~6)目錄下,所有的文件均是指向/etc/init.d下相應文件的符號鏈接。rc.sysinit通過分析/etc/inittab文件來確定系統的啓動級別,然後纔去執行/etc/rc.d/rc*.d下的文件。

/etc/init.d-> /etc/rc.d/init.d

/etc/rc ->/etc/rc.d/rc

/etc/rc.d ->/etc/rc.d/rc.d

/etc/rc.local-> /etc/rc.d/rc.local

/etc/rc.sysinit-> /etc/rc.d/rc.sysinit

也就是說,/etc目錄下的init.d、rc、rc*.d、rc.local和rc.sysinit均是指向/etc/rc.d目錄下相應文件和文件夾的符號鏈接。我們以啓動級別3爲例來簡要說明一下。

/etc/rc.d/rc3.d目錄,該目錄下的內容全部都是以 S 或 K 開頭的鏈接文件,都鏈接到"/etc/rc.d/init.d"目錄下的各種shell腳本。S表示的是啓動時需要start的服務內容,K表示關機時需要關閉的服務內容。/etc/rc.d/rc.d中的系統服務會在系統後臺啓動,如果要對某個運行級別中的服務進行更具體的定製,通過chkconfig命令來操作,或者通過setup、ntsys、system-config-services來進行定製。如果我們需要自己增加啓動的內容,可以在init.d目錄中增加相關的shell腳本,然後在rc.d目錄中建立鏈接文件指向該shell腳本。這些shell腳本的啓動或結束順序是由S或K字母后面的數字決定,數字越小的腳本越先執行。例如,/etc/rc.d/rc3.d /S01sysstat就比/etc/rc.d/rc3.d /S99local先執行。

3) 執行用戶自定義引導程序/etc/rc.d/rc.local。其實當執行/etc/rc.d/rc3.d/S99local時,它就是在執行/etc/rc.d/rc.local。S99local是指向rc.local的符號鏈接。就是一般來說,自定義的程序不需要執行上面所說的繁瑣的建立shell增加鏈接文件的步驟,只需要將命令放在rc.local裏面就可以了,這個shell腳本就是保留給用戶自定義啓動內容的。

4) 完成了系統所有的啓動任務後,linux會啓動終端或X-Window來等待用戶登錄。tty1,tty2,tty3...這表示在運行等級1,2,3,4的時候,都會執行"/sbin/mingetty",而且執行了6個,所以linux會有6個純文本終端,mingetty就是啓動終端的命令。

除了這6個之外還會執行"/etc/X11/prefdm-nodaemon"這個主要啓動X-Window。至此,系統就啓動完畢了。

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