Linux核心梳理

2021-10-25 19:46:36 字數 2064 閱讀 2620

提供乙個最小的通用模型,使得這個模型支援的功能是所有檔案系統的最小交集

提供乙個盡量大的通用模型,使得這個模型包含所有檔案系統功能的合集。

linux採用第二種策略來實現vfs,因此vfs封裝了底層檔案系統的所有功能和抽象,vfs負責把應用層的請求**給特定的檔案系統。

在處理檔案時,應用空間和核心空間使用的物件是不同的。對應用程式來說,檔案描述符用來表示乙個檔案,這個檔案描述符是開啟檔案時核心分配給這個檔案的乙個整數,注意,這個檔案描述符只在本程序內有效;而對於核心來說,則使用乙個inode來表示乙個檔案,這個inode可能對應著應用層多個程序內的多個檔案描述符。

5、網路介面

概述:網路介面提供了對各種網路標準的實現和各種網路硬體的支援。網路介面一般分為網路協議和網路驅動程式。網路協議部分負責實現每一種可能的網路傳輸協議。

網路裝置驅動程式則主要負責與硬體裝置進行通訊,每一種可能的網路硬體裝置都有相應的裝置驅動程式。

詳解:①網路介面的命名

這裡並不存在一定的命名規範,但網路介面名字的定義一般都是要有意義的。例如:

eth0: ethernet的簡寫,一般用於乙太網介面。

wifi0:wifi是無線區域網,因此wifi0一般指無線網路介面。

ath0: atheros的簡寫,一般指atheros晶元所包含的無線網路介面。

lo: local的簡寫,一般指本地環迴介面。

②網路介面如何工作

網路介面是用來傳送和接受資料報的基本裝置。

系統中的所有網路介面組成乙個鏈狀結構,應用層程式使用時按名稱呼叫。

每個網路介面在linux系統中對應於乙個struct net_device結構體,包含name,mac,mask,mtu…資訊。

每個硬體網絡卡(乙個mac)對應乙個網路介面,其工作完全由相應的驅動程式控制。

③虛擬網路介面

虛擬網路介面的應用範圍非常廣泛。最著名的當屬「lo」了,基本上每個linux系統都有這個介面。

虛擬網路介面並不真實地從外界接收和傳送資料報,而是在系統內部接收和傳送資料報,因此虛擬網路介面不需要驅動程式。

虛擬網路介面和真實存在的網路介面在使用上是一致的。

④網路介面的建立

硬體網絡卡的網路介面由驅動程式建立。而虛擬的網路介面由系統建立或通過應用層程式建立。

驅動中建立網路介面的函式是:register_netdev(struct net_device *)或者register_netdevice(struct net_device *)。

這兩個函式的區別是:register_netdev(…)會自動生成以」eth」作為打頭名稱的介面,而register_netdevice(…)需要提前指定介面名稱.事實上,register_netdev(…)也是通過呼叫register_netdevice(…)實現的。

⑤lo介面的作用

本地乙個程序發起連線,到乙個本地的daemon監聽的內網ip位址(eth1: 10.1.1.1)的埠(8085),此時在eth1上是抓不到包的,在 lo 上抓到,說明使用的是本地回環介面lo,而網路層的ip位址則是內網ip位址.

lo其實是乙個系統虛擬的環迴介面,它的ip位址是127.0.0.1,利用這個介面可以實現系統內部傳送和接收資料,所以一般情況下我們使用:ping 127.0.0.1 是可以ping通的,因為這其實就是系統內部建立連線。

127.0.0.1,通常被稱為本地回環位址(loop back address),不屬於任何乙個有類別位址類。它代表裝置的本地虛擬介面,所以預設被看作是永遠不會宕掉的介面。通常在不安裝網絡卡前就可以ping通這個本地回環位址。一般都會用來檢查本地網路協議、基本資料介面等是否正常的。

其主要作用有兩個:

一是測試本機的網路配置,能ping通127.0.0.1說明本機的網絡卡和ip協議安裝都沒有問題;

另乙個作用是某些server/client的應用程式在執行時需呼叫伺服器上的資源

常用命令:

ifconfig檢視網絡卡資訊

service network status 檢視網絡卡狀態

service network stop 停止網絡卡

service network start 啟動網絡卡

service network restart 重啟網絡卡

Linux核心小梳理

q 什麼是核心?核心作為應用連線硬體裝置的橋梁,應用程式只需關心與核心互動,不用關心硬體的細節。q 核心是起什麼作用的呢?核心一般提供4個基本能力 1.程序排程 管理程序 執行緒 決定哪個程序 執行緒使用cpu 2.記憶體管理 管理記憶體,決定記憶體的分配和 3.硬體通訊能力 為程序與硬體裝置之間提...

linux 核心相關學習梳理

1 strace跟蹤程序的系統呼叫 strace 命令 輸出程序執行過程中產生的系統呼叫 輸出的一條記錄表示一條系統呼叫 引數 c 對系統呼叫進行統計 t 記錄系統呼叫花費的時間 2 c 開發安裝相關命令 configure 命令表示對編譯平台進行檢查和編譯選項的配置,生成make file檔案 m...

Linux 核心知識梳理 12 記憶體的分類

sdram synchronous dynamic random access memory 同步動態隨機儲存器,sdram的一些引數 主要應用於fpga 記憶體中 sram static random access memory 即靜態隨機訪問儲存器。它是一種具有靜止訪問功能的記憶體,不需要重新整...