【CentOS Linux 7】實驗4【Linux網路應用】

是您啊,噠噠子前輩!發表於2020-09-30

 

 

 

 

 

【實驗目的】

1、學會Linux網路的基本配置;

2、掌握Linux基本的網路應用;

3、Linux啟動過程

4、Linux下C語言程式設計

【實驗步驟】

(1)說明/etc/sysconfig/network-scripts/ifcfg-ens33, /etc/resolv.conf, /etc/hosts, /etc/services四個檔案的作用。

 

1、/etc/sysconfig/network-scripts/ifcfg-ens33

在Linux系統中,系統網路裝置的配置檔案儲存在/etc/sysconfig/network-scripts目錄下,其中檔案ifcfg-eno16777736包含一塊網路卡的配置資訊,檔案ifcfg-lo包含迴路IP地址資訊。

2、/etc/resolv.conf

/etc/resolv.conf檔案是由域名解析器(resolver,一個根據主機名解析IP地址的庫)使用的配置檔案。

3、/etc/hosts

    當計算器啟動時,在可以查詢DNS以前,計算機需要查詢一些主機名到IP地址的匹配,這些匹配資訊存放在/etc/hosts檔案中。在沒有域名伺服器的情況下,系統上的所有網路程式都通過查詢該檔案來解析對應於某個主機名的IP地址。

4、/etc/services

    /etc/services檔案定義了Linux系統中所有服務的名稱、協議型別、服務的埠等資訊。/etc/services檔案是一個服務名和服務埠對應的資料庫檔案。

 

(2)舉例說明traceroute、ping、ifconfig、netstat、tcpdump命令的作用。

1、traceroute

    使用traceroute命令可以顯示資料包到目標主機之間的路徑。traceroute命令使使用者可以追蹤網路資料包的路由途徑,預設IPv4資料包大小是60位元組,使用者可以另外設定。

2、ping

3、ifconfig

4、netstat

5、tcpdump

(3)舉例說明systemctl命令的用法。

啟動sshd;

檢視sshd服務當前的狀態;

停止sshd服務;

重新啟動sshd;

設定sshd服務開機自動啟動;

檢視所有載入的服務;

(4)Linux下C程式設計

說gcc編譯器的作用。舉例說明Linux環境下如何進行C語言程式設計。

(5)什麼是程式?   程式有哪些特徵?   Linux程式有哪些分類?

舉例說明ps命令的用法、top命令的用法。

    Linux系統上所有執行的內容都可以稱為程式。每個使用者任務、每個系統管理守護程式都可以稱為程式。

    程式具有以下特徵:

    動態性:程式的實質是程式在多道程式系統中的一次執行過程,程式是動態產生、動態消亡的。

    併發性:任何程式都可以同其他程式一起併發執行。

獨立性:程式是一個能獨立執行的基本單位,同時也是系統分配資源和排程的獨立單位。

非同步性:由於程式間的相互制約,使得程式具有執行的間斷性,即程式按各自獨立的、不可預知的速度向前推進。

結構特徵:程式由程式、資料和程式控制塊三部分組成。

多個不同的程式可以包含相同的程式:一個程式在不同的資料集裡就構成不同的程式,能得到不同的結果;但是執行過程中,程式不能發生改變。

在Linux系統中有以下3種程式。

互動式程式:一個由Shell啟動並控制的程式,互動式程式既可在前臺執行,也可在後臺執行。

批處理程式:與終端無關,安排在指定時刻完成的一系列程式。

守護程式:在引導系統時啟動,以執行即時的作業系統任務,比如crond、rsyslogd、named等。

ps命令的用法舉例:

     

top命令的用法舉例:

 

(6)說明Linux系統的啟動過程。(說明分為幾個步驟,每個步驟都做了些什麼工作)

Linux系統的啟動是從計算機開機通電自檢開始,一直到登入系統需要經過的多個過程。

1.BIOS自檢

計算機在接通電源之後首先由BIOS進行POST自檢,然後依據BIOS內設定的引導順序從硬碟、軟盤或光碟中讀人引導塊。BIOS的第一個步驟是加電POST自檢,POST 的工作是對硬體進行檢測。BIOS的第二個步驟是進行本地裝置的列舉和初始化。BIOS由兩部分組成:POST 程式碼和執行時的服務。當POST完成之後,它被從記憶體中清理出來,但是BIOS執行時服務依然保留在記憶體中,目標作業系統可以使用這些服務。

Linux系統通常都是從硬碟上引導的,其中主開機記錄(MBR)中包含主引導載入程式。MBR是一個512位元組大小的扇區,位於磁碟上的第一個扇區中(0道0柱面1扇區)。當MBR被載入到RAM中之後,BIOS就會將控制權交給MBR.

2.啟動GRUB2

GRUB2是Linux系統中預設使用的引導載入程式,引導載入程式用於引導作業系統啟動。當計算機引導作業系統時,BIOS會讀取引導介質上最前面的512位元組(主開機記錄)。

    3.載入核心

    接下來的步驟就是載入核心映像到記憶體中,核心映像並不是一個可執行的核心,而是一個壓縮過的核心映像。在這個核心映像前面是一個例程,它實現少量硬體設定,並對核心映像中包含的核心進行解壓,然後將其放入高階記憶體中。如果有初始RAM磁碟映像,系統就會將它移動到記憶體中,並標明以後使用。然後該例程會呼叫核心,並開始啟動核心引導的過程。

4.執行systemd程式

systemd程式是Linux系統所有程式的起點,在完成核心引導以後,即在本程式空間內載入systemd程式。systemd程式是所有程式的發起者和控制者。因為在任何Linux系統中,它都是第一個執行的程式,所以systemd程式的程式號(PID)永遠是1。

    5.初始化系統環境

    Linux系統使systemd作為引導管理程式,之後的引導過程將由systemd完成。systemd 使用目標(target)來處理引導和服務管理過程。這些systemd裡的目標檔案被用於分組不同的引導單元以及啟動同步程式。

(1)systemd執行的第一個目標是 default.target,但實際上 default.target目標是指向 graphical.target目標的軟連線。graphical.target目標單元檔案的實際位置是/usr/lib/systemd/graphical.target。
         (2)在執行graphical.target目標階段,會啟動multi-user.target目標,而這個目標將自己的子單元存放在/etc/systemd/system/multi-user.target.wants目錄中。這個目標為多使用者支援設定系統環境。非root使用者會在這個階段的引導過程中啟用,防火牆相關的服務也會在這個階段啟動。
         (3)multi-user.target目標會將控制權交給basic.target目標。basic.target目標用於啟動普通服務特別是圖形管理服務。它通過/etc/systemd/system/basic.target.wants目錄來決定哪些服務會被啟動,basic.target目標之後將控制權交給sysinit.target目標。
         (4)sysinit.target目標會啟動重要的系統服務,比如系統掛載、記憶體交換空間和裝置、核心補充選項等。sysinit.target目標在啟動過程中會傳遞給local-fs.target和swap.target目標。
         (5) local-fs.target和swap.target目標不會啟動使用者相關的服務,它只處理底層核心服務。這兩個目標會根據/etc/fstab和/etc/inittab檔案來執行相關操作。
    6.執行/bin/login程式
         login程式會提示使用者輸入賬號及密碼,接著編碼並確認密碼的正確性,如果賬號與密碼相符,則為使用者初始化環境,並將控制權交給shell,即等待使用者登入。
         login會接收mingetty傳來的使用者名稱並將其作為使用者名稱引數,然後login會對使用者名稱進行分析。如果使用者名稱不是root,且存在/etcc/nologin檔案,login將輸出nologin檔案的內容,然後退出。這通常用來在系統維護時防止非root使用者登入。只有在/etc/securetty中登記了的終端才允許root使用者登入,如果不存在這個檔案,則root可以在任何終端上登入。/etc/usertty檔案用於對使用者做出附加訪問限制,如果不存在這個檔案,則沒有其他限制。
         在分析完使用者名稱後,login將搜尋/etc/passwd以及/etc/shadow來驗證密碼以及設定賬戶的其他資訊,比如主目錄是什麼?使用何種shell?如果沒有指定主目錄,則將主目錄預設設定為根目錄;如果沒有指定shell,則將 Shell型別預設設定為/bin/bash。
         login程式成功後,會向對應的終端再輸出最近一次登入的資訊(在/var/log/lastlog檔案中有記錄),並檢查使用者是否有新郵件(在/var/spool/mail/的對應使用者名稱目錄下),然後開始設定各種環境變數。對於bash來說,系統首先尋找/etc/profile指令碼檔案並執行它;然後,如果使用者的主目錄中存在.bash_profile檔案,就執行它,在這些檔案中又可能呼叫了其他配置檔案,所有的配置檔案執行後,各種環境變數也設好了,這時會出現大家熟悉的命令列提示符,到此整個啟動過程就結束了。

(7)什麼是GRUB?

    當計算機要引導作業系統時,BIOS會讀取引導介質上最前面的主開機記錄(MBR記錄)。主開機記錄本身要包含兩類內容:引導載入程式和分割槽表。

GRUB是Linux系統預設的引導載入程式。在Linux載入一個系統前,它必須由一個引導載入程式中的特定指令去引導系統。這個程式一般是位於系統的主硬碟驅動器或其他介質驅動器上。

Linux安裝程式允許使用者快速、方便地配置引導載入程式,將其存放在主硬碟驅動的主開機記錄中來引導作業系統。

GNU GRU是一個將引導載入程式安裝到主開機記錄的程式,主開機記錄是位於一個硬碟開始的扇區。它允許位於主開機記錄區中特定的指令來載入一個GRUB選單或是GRUB的命令環境。這使得使用者能夠開始作業系統的選擇,在核心引導時傳遞特定指令給核心,或是在核心引導前確定一些系統引數(如可用的RAM大小)。

GRUB支援直接和鏈式載入的引導方法。GRUB能用於幾乎所有作業系統、絕大多數流行的檔案系統以及幾乎所有的系統BIOS所能識別的硬碟。

【實驗總結】

通過本次實驗,我對Linux中的程式與網路配置更加了解。程式是在自身的虛擬地址空間執行的一個單獨的程式。要檢視Linux系統中的程式資訊,使用者可以使用ps和top命令。使用者可以在Linux系統中編輯相應的網路配置檔案來完成配置工作,這些檔案主要有/etc/sysconfig/network-scripts/ifcfg-eno1677773、/etc/resolv.conf、/etc/hosts與/etc/services。實踐令我發現自身的不足,課下我會多加練習、勤查資料。

 

相關文章