linux中使用者和核心空間的互動介面彙總

2021-08-20 06:04:39 字數 777 閱讀 5745

核心提供介面給使用者空間程式,便於使用者進行進行資訊的讀取和配置。

procfs和sysctl都可以匯出內部資訊,其中procfs主要用於匯出唯讀資訊,sysctl匯出可寫的。此外還有sysfs,ioctl

procfs是核心提供的,一種在使用者空間中對各種子系統的設定進行配置的方式,通常掛載在/proc下。

網路**註冊的檔案位於/proc/net目錄中

sysctl介面允許使用者讀取或者修改核心引數。可以通過sysctl命令匯出變數,如果核心支援procfs,會在/proc下建立sys檔案,sysctl命令也是通過/proc/sys目錄下的檔案與核心通訊的。現在發行版本一般都支援,如果沒支援的那肯定是古董版本。

例如進製**ip資料報,可以設定如下:

echo 1 > /proc/sys/net/ipv4/ip_forward

將1寫入到了檔案,後續將不再支援ip**。也可以通過程式呼叫系統呼叫sysctl來實現。

sysfs是linux2.6提供的虛擬檔案系統,設計之初是用於對裝置和驅動資訊匯出到使用者空間名稱叫做driverfs,後來**更新「失控」,發現也能支援其他子系統,變成了sysfs,掛載在/sys中。

ioctl 系統呼叫可以操作乙個檔案,用於實現特殊裝置的操作。也可以操作套接字描述符,例如net-tools工具包。

netlink套介面是網路應用程式與核心通訊的介面,iproute2包中的大多數命令都使用這個介面。使用也比較簡單,可以通過套介面標準的api來開啟、關閉。

關於netlink可以參考《linux中通用netlink詳解及使用剖析(附原始碼)》

Linux核心空間和使用者空間

在linux系統中存在程序的概念 程序的分類 使用者程序 執行在使用者空間的程序被稱為使用者程序 核心程序 執行在核心空間的程序被稱為核心程序 程序的空間 系統會為每乙個程序分0 4g的虛擬定址空間,在4g的空間中 0 3g 屬於使用者空間,用來執行使用者的相關程序 3 4g 屬於核心空間,用來執行...

使用者空間和核心空間

應用程式是從頭到尾執行單個任務。模組只是預先註冊自己以便服務於將來的某個請求,模組初始化函式的任務就是為以後呼叫模組函式預先做準備,就像模組說 我在這,並且我能做這些工作。模組的退出函式將在模組被解除安裝前呼叫,他告訴核心 我要離開了,不要再讓我做任何事了。應用程式在退出時,可以不管資源的釋放或其他...

linux 使用者空間 和 核心空間 延時函式

2011 06 19 15 28 22人閱讀 收藏舉報 使用者空間 1.unsigned int sleep unsigned int seconds sleep 會使當前程式休眠seconds秒。如果sleep 沒睡飽,它將會返回還需要補眠的時間,否則一般返回零。2.void usleep uns...