⑴ linux裡面網卡配置僅主機模式是什麼意思
Linux虛擬網路:
NAT:虛機連接vnet8連接路由器連接物理網卡;
橋接:虛機連接vnet0連接物理網卡;
僅主機:虛機連接vnet1,不連接真實的物理網卡;
僅主機模式:真實環境和虛擬環境是隔離開的;在這種模式下,所有的虛擬系統是可以相互通信的,但虛擬系統和真實的網路是被隔離開。(虛擬系統和宿主機器系統是可以相互通信的,相當於這兩台機器通過雙絞線互連。)和nat唯一的不同的是,此種方式下,沒有地址轉換服務,因此,默認情況下,虛擬機只能到主機訪問。-------與宿主主機可以ping通,無法上網;
橋接模式:在橋接模式下,VMWare虛擬出來的操作系統就像是區域網中的一台獨立的主機(主機和虛擬機處於對等地位),它可以訪問網內任何一台機器。我們往往需要為虛擬主機配置IP地址、子網掩碼等(注意虛擬主機的ip地址要和主機ip地址在同一網段)。這樣,虛擬機就可以和主機之間獨立的通信(當然,只要在同一個區域網中都可和虛擬機通信),同時,配置好網關和DNS的地址後,以實現通過區域網的網關或路由器訪問互聯網。。------與宿主主機可以ping通,可以上網;
NAT模式:就是讓虛擬系統藉助NAT(網路地址轉換)功能,通過宿主機器所在的網路來訪問公網。使用NAT模式可以實現在虛擬系統里訪問互聯網。簡單講就是宿主機器再構建一個區域網,然後,區域網內只有一台機器,就是虛擬機。NAT模式下的虛擬系統的TCP/IP配置信息是由VMnet8(NAT)虛擬網路的DHCP伺服器提供的,無法進行手工修改,因此虛擬系統也就無法和本區域網中的其他真實主機進行通訊。採用NAT模式最大的優勢是虛擬系統接入互聯網非常簡單,只需要宿主機器能訪問互聯網,你不需要配置IP地址,子網掩碼,網關,但是DNS地址還是要根據實際情況填的。--------與宿主主機不可以ping通,可以上網;
nat模式可以上網但是不能和宿主計算機通信,理論上是更安全的,無論虛擬的系統做任何破壞,都不會影響宿主計算機。橋接模式相當於是交換機上又接了個獨立主機,一般是作為子網中提供服務用的。
⑵ linux系統的命令模式與圖形界面模式的區別
Linux 系統的命令模式是在命令提示符下面(普通用戶為 $,超級用戶為 #),通過輸入各種系統命令來使用電腦,其最大的優點就是:各種命令使用起來非常靈活,特別是非常便於進行系統管理以及網路管理和維護等,其缺點是:用戶必須要對各種系統命令非常熟悉,需要牢記各種命令;而圖形界面模式一般是通過點擊滑鼠完成對窗口的各種操作(例如:改變窗口大小、編輯文件、運行程序,等等),不需要用戶記住很多繁雜的系統命令,作為一個使用者來說,使用起來很方便。
⑶ Linux系統I/O模型及select、poll、epoll原理和應用
理解Linux的IO模型之前,首先要了解一些基本概念,才能理解這些IO模型設計的依據
操作系統使用虛擬內存來映射物理內存,對於32位的操作系統來說,虛擬地址空間為4G(2^32)。操作系統的核心是內核,為了保護用戶進程不能直接操作內核,保證內核安全,操作系統將虛擬地址空間劃分為內核空間和用戶空間。內核可以訪問全部的地址空間,擁有訪問底層硬體設備的許可權,普通的應用程序需要訪問硬體設備必須通過 系統調用 來實現。
對於Linux系統來說,將虛擬內存的最高1G位元組的空間作為內核空間僅供內核使用,低3G位元組的空間供用戶進程使用,稱為用戶空間。
又被稱為標准I/O,大多數文件系統的默認I/O都是緩存I/O。在Linux系統的緩存I/O機制中,操作系統會將I/O的數據緩存在頁緩存(內存)中,也就是數據先被拷貝到內核的緩沖區(內核地址空間),然後才會從內核緩沖區拷貝到應用程序的緩沖區(用戶地址空間)。
這種方式很明顯的缺點就是數據傳輸過程中需要再應用程序地址空間和內核空間進行多次數據拷貝操作,這些操作帶來的CPU以及內存的開銷是非常大的。
由於Linux系統採用的緩存I/O模式,對於一次I/O訪問,以讀操作舉例,數據先會被拷貝到內核緩沖區,然後才會從內核緩沖區拷貝到應用程序的緩存區,當一個read系統調用發生的時候,會經歷兩個階段:
正是因為這兩個狀態,Linux系統才產生了多種不同的網路I/O模式的方案
Linux系統默認情況下所有socke都是blocking的,一個讀操作流程如下:
以UDP socket為例,當用戶進程調用了recvfrom系統調用,如果數據還沒准備好,應用進程被阻塞,內核直到數據到來且將數據從內核緩沖區拷貝到了應用進程緩沖區,然後向用戶進程返回結果,用戶進程才解除block狀態,重新運行起來。
阻塞模行下只是阻塞了當前的應用進程,其他進程還可以執行,不消耗CPU時間,CPU的利用率較高。
Linux可以設置socket為非阻塞的,非阻塞模式下執行一個讀操作流程如下:
當用戶進程發出recvfrom系統調用時,如果kernel中的數據還沒准備好,recvfrom會立即返回一個error結果,不會阻塞用戶進程,用戶進程收到error時知道數據還沒准備好,過一會再調用recvfrom,直到kernel中的數據准備好了,內核就立即將數據拷貝到用戶內存然後返回ok,這個過程需要用戶進程去輪詢內核數據是否准備好。
非阻塞模型下由於要處理更多的系統調用,因此CPU利用率比較低。
應用進程使用sigaction系統調用,內核立即返回,等到kernel數據准備好時會給用戶進程發送一個信號,告訴用戶進程可以進行IO操作了,然後用戶進程再調用IO系統調用如recvfrom,將數據從內核緩沖區拷貝到應用進程。流程如下:
相比於輪詢的方式,不需要多次系統調用輪詢,信號驅動IO的CPU利用率更高。
非同步IO模型與其他模型最大的區別是,非同步IO在系統調用返回的時候所有操作都已經完成,應用進程既不需要等待數據准備,也不需要在數據到來後等待數據從內核緩沖區拷貝到用戶緩沖區,流程如下:
在數據拷貝完成後,kernel會給用戶進程發送一個信號告訴其read操作完成了。
是用select、poll等待數據,可以等待多個socket中的任一個變為可讀,這一過程會被阻塞,當某個套接字數據到來時返回,之後再用recvfrom系統調用把數據從內核緩存區復制到用戶進程,流程如下:
流程類似阻塞IO,甚至比阻塞IO更差,多使用了一個系統調用,但是IO多路復用最大的特點是讓單個進程能同時處理多個IO事件的能力,又被稱為事件驅動IO,相比於多線程模型,IO復用模型不需要線程的創建、切換、銷毀,系統開銷更小,適合高並發的場景。
select是IO多路復用模型的一種實現,當select函數返回後可以通過輪詢fdset來找到就緒的socket。
優點是幾乎所有平台都支持,缺點在於能夠監聽的fd數量有限,Linux系統上一般為1024,是寫死在宏定義中的,要修改需要重新編譯內核。而且每次都要把所有的fd在用戶空間和內核空間拷貝,這個操作是比較耗時的。
poll和select基本相同,不同的是poll沒有最大fd數量限制(實際也會受到物理資源的限制,因為系統的fd數量是有限的),而且提供了更多的時間類型。
總結:select和poll都需要在返回後通過輪詢的方式檢查就緒的socket,事實上同時連的大量socket在一個時刻只有很少的處於就緒狀態,因此隨著監視的描述符數量的變多,其性能也會逐漸下降。
epoll是select和poll的改進版本,更加靈活,沒有描述符限制。epoll使用一個文件描述符管理多個描述符,將用戶關系的文件描述符的事件存放到內核的一個事件表中,這樣在用戶空間和內核空間的只需一次。
epoll_create()用來創建一個epoll句柄。
epoll_ctl() 用於向內核注冊新的描述符或者是改變某個文件描述符的狀態。已注冊的描述符在內核中會被維護在一棵紅黑樹上,通過回調函數內核會將 I/O 准備好的描述符加入到一個就緒鏈表中管理。
epoll_wait() 可以從就緒鏈表中得到事件完成的描述符,因此進程不需要通過輪詢來獲得事件完成的描述符。
當epoll_wait檢測到描述符IO事件發生並且通知給應用程序時,應用程序可以不立即處理該事件,下次調用epoll_wait還會再次通知該事件,支持block和nonblocking socket。
當epoll_wait檢測到描述符IO事件發生並且通知給應用程序時,應用程序需要立即處理該事件,如果不立即處理,下次調用epoll_wait不會再次通知該事件。
ET模式在很大程度上減少了epoll事件被重復觸發的次數,因此效率要比LT模式高。epoll工作在ET模式的時候,必須使用nonblocking socket,以避免由於一個文件句柄的阻塞讀/阻塞寫操作把處理多個文件描述符的任務餓死。
【segmentfault】 Linux IO模式及 select、poll、epoll詳解
【GitHub】 CyC2018/CS-Notes
⑷ linux系統中vi的3種模式是什麼
Vi有三種基本的工作模式:指令行模式、文本輸入模式、行末模式。
他們的相互關系如所示。
指令模式(Command Mode) 下輸入 a、i、o進入文本輸入模式(Input Mode)
文本輸入模式(Input Mode) 下按ESC進入指令模式(Command Mode)
指令模式(Command Mode)下輸入:進入末行模式(Last line Mode)
末行模式(Last line Mode)下指令錯誤則返回指令模式(Command Mode)
⑸ Linux有幾個運行級別,分別代表什麼
#0-停機(千萬不要把initdefault設置為0)
#1-單用戶模式
#2-多用戶,沒有nfs
#3-完全多用戶模式(標準的運行級)
#4-沒有用到
#5-x11(xwindow)
#6-重新啟動(千萬不要把initdefault設置為6)
這些級別在/etc/inittab
文件里指定。這個文件是init
程序尋找的主要文件,最先運行的服務是放在/etc/rc.d目錄下的文件。在大多數的linux
發行版本中,啟動腳本都是位於
/etc/rc.d/init.d中的。這些腳本被用ln
命令連接到/etc/rc.d/rcn.d
目錄。(這里的n
就是運行級0-6)
⑹ linux分幾種模式linux 單用戶模式作用是什麼和其他那幾個模式都做什麼用的
0:關機
1:單用戶模式
2:無網路支持的多用戶模式
3:有網路支持的多用戶模式
4:保留,未使用
5:有網路支持有X-Window支持的多用戶模式
6:重新引導系統,即重啟
Linux 系統處於正常狀態時,伺服器主機開機(或重新啟動)後,能夠由系統引導器程序自動引導 Linux 系統啟動到多用戶模式,並提供正常的網路服務。如果系統管理員需要進行系統維護或系統出現啟動異常時,就需要進入單用戶模式或修復模式對系統進行管理了。使用單用戶模式有一個前提,就是您的系統引導器(grub)能正常工作,否則要進行系統維護就要使用修復模式。特註:進入單用戶模式,沒有開啟網路服務,不支持遠程連接
Linux 系統中不同的運行級別(Run Level)代表了系統的不同運行狀態,例如 Linux 伺服器正常運行時處於運行級別3,是能夠提供網路服務的多用戶模式;而運行級別 1 只允許管理員通過伺服器主機的單一控制台進行操作,即「單用戶模式」。
⑺ Linux裡面什麼是聚合模式
將多個Linux網路埠綁定為一個,可以提升網路的性能,比如對於備份伺服器,需要在一個晚上備份幾個T的數據,如果使用單個的千兆網口將會是很嚴重的塌孝掘瓶頸。其團核它的應用,比如ftp伺服器,高負載的下載網站, 都有類慎穗似的問題。因此使用Linux teaming或bond來綁定多個網卡作為一個邏輯網口,配置單個的IP地址,會大幅提升伺服器的網路吞吐(I/O)。
Linux的多網卡綁定功能使用的是內核中的"bonding"模塊,關於此模塊可以參考Linux Ethernet Bonding Driver文檔, 但是目前發布各個Linux版本內核均已包含了此模塊,大多數情況下不需要重新編譯內核。 Linux 的 bonding 驅動提供了綁定/集成(bond)多個網卡為一個虛擬邏輯網口的功能。並請注意綁定的網口(bonded)有多種工作模式; 一般來說,分為 熱後備(hot standby) 和 負載均衡(load balancing). 在Redhat/Fedora和其它類Redhat Linux中是比較容易配置的。
⑻ 什麼是Linux操作系統單用戶模式
Linux下的啟動方式常用的有單用戶方式、普通多用戶方式、完全多用戶方式和XWin方式。單用戶方式下,系統並沒有完全運行進來,只是部分程序運行,這時也不能進行遠程登錄到Linux系統。在系統發生故障無法啟動、或者用戶名或密碼錯誤等情況,可以使用單用戶模式進行維護,使系統恢復正常。這時的ROOT用戶對系統有完全的操作許可權,可以修復系統的同時,也能隨時的對系統進行破壞。
進入單用戶模式:
1.grub 進入啟動畫面時,按e
2.通過上下鍵把游標移動到kernel ...那一行,再按e
3.在kernel 行的末尾加上空格1,回車
4.按b,啟動系統,進入單用戶模式。