青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 網(wǎng)站 服務(wù)器 查看內(nèi)容

詳解Linux用戶態(tài)與內(nèi)核態(tài)通信的幾種方式

2022-10-6 15:37| 查看: 1560 |來源: 互聯(lián)網(wǎng)

Linux 用戶態(tài)和內(nèi)核態(tài)由于 CPU 權(quán)限的限制,通信并不像想象中的使用進程間通信方式那么簡單,今天這篇文章就來看看 Linux 用戶態(tài)和內(nèi)核態(tài)究竟有哪些通信方式。

Linux 用戶態(tài)和內(nèi)核態(tài)由于 CPU 權(quán)限的限制,通信并不像想象中的使用進程間通信方式那么簡單,今天這篇文章就來看看 Linux 用戶態(tài)和內(nèi)核態(tài)究竟有哪些通信方式。

我們平常在寫代碼時,一般是在用戶空間,通過系統(tǒng)調(diào)用函數(shù)來訪問內(nèi)核空間,這是最常用的一種用戶態(tài)和內(nèi)核態(tài)通信的方式。(關(guān)于 Linux 用戶態(tài)和內(nèi)核態(tài)可以參考 xx)

除此之外,還有以下四種方式:

  • procfs(/proc)

  • sysctl(/proc/sys)

  • sysfs(/sys)

  • netlink 套接口

procfs(/proc)

procfs是 進程文件系統(tǒng) 的縮寫,它本質(zhì)上是一個偽文件系統(tǒng),為什么說是 偽 文件系統(tǒng)呢?因為它不占用外部存儲空間,只是占用少量的內(nèi)存,通常是掛載在 /proc目錄下。

我們在該目錄下看到的一個文件,實際上是一個內(nèi)核變量。內(nèi)核就是通過這個目錄,以文件的形式展現(xiàn)自己的內(nèi)部信息,相當(dāng)于/proc目錄為用戶態(tài)和內(nèi)核態(tài)之間的交互搭建了一個橋梁,用戶態(tài)讀寫/proc下的文件,就是讀寫內(nèi)核相關(guān)的配置參數(shù)。

比如常見的/proc/cpuinfo、/proc/meminfo和/proc/net就分別提供了 CPU、內(nèi)存、網(wǎng)絡(luò)的相關(guān)參數(shù)。除此之外,還有很多的參數(shù),如下所示:

root@ubuntu:~# ls /proc/
1   1143 1345 1447 2   2292 29  331  393 44  63  70  76  acpi    diskstats  irq     locks     sched_debug  sysvipc      zoneinfo
10  1145 1357 148  20  23  290 332  396 442  64  7019 77  asound   dma     kallsyms   mdstat    schedstat   thread-self
1042 1149 1361 149  2084 2425 291 34  398 45  65  7029 8  buddyinfo driver    kcore    meminfo    scsi      timer_list
1044 1150 1363 15  2087 25  3  3455 413 46  66  7079 83  bus    execdomains keys     misc     self      timer_stats
1046 1151 1371 16  2090 256  30  35  418 47  6600 7080 884 cgroups  fb      key-users  modules    slabinfo    tty
1048 1153 1372 17  21  26  302 36  419 5   67  71  9  cmdline  filesystems kmsg     mounts    softirqs    uptime
11  1190 1390 18  22  27  31  37  420 518  6749 72  96  consoles  fs      kpagecgroup mtrr     stat      version
1126 12  143  182  2214 28  32  373  421 524  68  73  97  cpuinfo  interrupts  kpagecount  net      swaps     version_signature
1137 1252 1434 184  2215 280  327 38  422 525  69  74  98  crypto   iomem    kpageflags  pagetypeinfo sys      vmallocinfo
1141 13  144  190  2262 281  33  39  425 5940 7   75  985 devices  ioports   loadavg   partitions  sysrq-trigger vmstat

可以看到,這里面有很多的數(shù)字表示的文件,這些其實是當(dāng)前系統(tǒng)運行的進程文件,數(shù)字表示進程號(PID),每個文件包含該進程所有的配置信息,包括進程狀態(tài)、文件描述符、內(nèi)存映射等等,我們可以看下:

root@ubuntu:~# ls /proc/1/
attr/      cmdline     environ     io        mem       ns/       pagemap     schedstat    stat       timers
autogroup    comm       exe       limits      mountinfo    numa_maps    personality   sessionid    statm      uid_map
auxv       coredump_filter fd/       loginuid     mounts      oom_adj     projid_map    setgroups    status      wchan
cgroup      cpuset      fdinfo/     map_files/    mountstats    oom_score    root/      smaps      syscall     
clear_refs    cwd/       gid_map     maps       net/       oom_score_adj  sched      stack      task/

綜上,內(nèi)核通過一個個的文件來暴露自己的系統(tǒng)配置信息,這些文件,有些是只讀的,有些是可寫的,有些是動態(tài)變化的,比如進程文件,當(dāng)應(yīng)用程序讀取某個 /proc/文件時,內(nèi)核才會去注冊這個文件,然后再調(diào)用一組內(nèi)核函數(shù)來處理,將相應(yīng)的內(nèi)核參數(shù)拷貝到用戶態(tài)空間,這樣用戶讀這個文件就可以獲取到內(nèi)核的信息。一個大概的圖示如下所示:

sysctl

我們熟悉的 sysctl 是一個 Linux 命令,man sysctl可以看到它的功能和用法。它主要是被用來修改內(nèi)核的運行時參數(shù),換句話說,它可以在內(nèi)核運行過程中,動態(tài)修改內(nèi)核參數(shù)。

它本質(zhì)上還是用到了文件的讀寫操作,來完成用戶態(tài)和內(nèi)核態(tài)的通信。它使用的是/proc的一個子目錄/proc/sys。和 procfs 的區(qū)別在于:

procfs 主要是輸出只讀數(shù)據(jù),而 sysctl 輸出的大部分信息是可寫的。

例如,我們比較常見的是通過cat /proc/sys/net/ipv4/ip_forward 來獲取內(nèi)核網(wǎng)絡(luò)層是否允許轉(zhuǎn)發(fā) IP 數(shù)據(jù)包,通過echo 1 > /proc/sys/net/ipv4/ip_forward或者 sysctl -w net.ipv4.ip_forward=1來設(shè)置內(nèi)核網(wǎng)絡(luò)層允許轉(zhuǎn)發(fā) IP 數(shù)據(jù)包。

同樣的操作,Linux 也提供了文件/etc/sysctl.conf[來讓你進行批量修改。

sysfs

sysfs 是 Linux 2.6 才引入的一種虛擬文件系統(tǒng),它的做法也是通過文件/sys來完成用戶態(tài)和內(nèi)核的通信。和 procfs 不同的是,sysfs 是將一些原本在 procfs 中的,關(guān)于設(shè)備和驅(qū)動的部分,獨立出來,以 “設(shè)備樹” 的形式呈現(xiàn)給用戶。

sysfs 不僅可以從內(nèi)核空間讀取設(shè)備和驅(qū)動程序的信息,也可以對設(shè)備和驅(qū)動進行配置。

我們看下/sys下有什么:

# ls /sys
block bus class dev devices firmware fs hypervisor kernel module power

可以看到這些文件基本上都跟計算機的設(shè)備和驅(qū)動等息息相關(guān)的。更多關(guān)于這些文件的解釋大家可以自行了解,這里就不過多展開了。

netlink

netlink 是 Linux 用戶態(tài)與內(nèi)核態(tài)通信最常用的一種方式。Linux kernel 2.6.14 版本才開始支持。它本質(zhì)上是一種 socket,常規(guī) socket 使用的標(biāo)準(zhǔn) API,在它身上同樣適用。比如創(chuàng)建一個 netlink socket,可以調(diào)用如下的 socket 函數(shù):

#include <asm/types.h>
#include <sys/socket.h>
#include <linux/netlink.h>
netlink_socket = socket(AF_NETLINK, socket_type, netlink_family);

netlink 這種靈活的方式,使得它可以用于內(nèi)核與多種用戶進程之間的消息傳遞系統(tǒng),比如路由子系統(tǒng),防火墻(Netfilter),ipsec 安全策略等等。

引申:

net-tools 工具通過 procfs(/proc) 和 ioctl 系統(tǒng)調(diào)用去訪問和改變內(nèi)核網(wǎng)絡(luò)參數(shù)配置,而 iproute2 則通過 netlink 套接字接口與內(nèi)核通信,前者已經(jīng)被淘汰了,后者逐步成為標(biāo)準(zhǔn)。

總結(jié)

Linux 用戶態(tài)和內(nèi)核態(tài)通信主要的四種方式,其中 netlink 和 procfs 是最常見的方式。

本文最后更新于 2022-10-6 15:37,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:[email protected]
·END·
站長網(wǎng)微信號:w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

  • 當(dāng)我們在共享網(wǎng)絡(luò)訪問的時候,可能會遇到提示指定的網(wǎng)絡(luò)名不再可用的問題,這可能是由于我們的共享網(wǎng)絡(luò)出現(xiàn)了錯誤,也可能是被共享的對象所拒絕了。指定的網(wǎng)絡(luò)名 ......

    故障排除 2023-03-10
  •   文/曹楊  原標(biāo)題:誰還看電視?  爸爸戴一副老花鏡,媽媽戴一副近視鏡,一人坐在沙發(fā),一人躺在床上,各自刷著自己關(guān)注的博主更新的短視頻。電視也許開著,但只是背景。  這樣的畫面,幾乎成了洛奇家的常 ...

    站長 2020-12-09
  • 1、首先進入到“百度”軟件中, 2、然后在其中輸入“百度識圖”, 3、之后點擊圖中的“開始使用”按鈕, 4、緊接著點擊右下角的“相冊”功能, 5、在相冊下 ......

    軟件教程 2023-02-17
  • 圖片來源于簡書  文/郭開森 楊帆  陸玖財經(jīng)準(zhǔn)備開新欄目了,每周一創(chuàng)始人郭開森和楊帆合體郭德帆,對行業(yè)進行一些觀察和評論,第一篇我們?nèi)允谴蛩銓懮鐓^(qū)團購,這是當(dāng)下最火的話題。  來過陸玖財經(jīng)做客的朋友們...

    熱議 2020-12-07
  • 一、軟件沖突1、首先確認(rèn)是否是應(yīng)用程序沖突導(dǎo)致的。2、查看是否只有特定幾個游戲或應(yīng)用會導(dǎo)致該問題。3、如果是應(yīng)用沖突,那么只要卸載這些app就可以解決了。二 ......

    軟件教程 2022-12-27
  • 電腦端:1、大家可以點擊右邊鏈接進入網(wǎng)頁版的百度網(wǎng)盤,進入之后點擊“去登錄”。https://pan.baidu.com/2、之后正確的輸入賬號密碼進行登錄就好啦。手機端:1 ......

    軟件教程 2022-12-27
  • 一、N100對比intel i3 1、N100的跑分達到了147210分,這個數(shù)據(jù)可以達到i3的七代級別。 2、在跑分上也是超越了大部分的I3七代CPU,不過比I3八代要弱勢一些。 3 ......

    硬件知識 2023-04-26
  • 8月15日消息 上周,有媒體報道前身為百度圖片的“榴蓮”APP含有大量不雅視頻內(nèi)容被用戶舉報。對此,百度圖片官方進行了回應(yīng),百度圖片表示已經(jīng)對報道中所涉及的“生吃旋風(fēng)哥”等爭議內(nèi)容進行了下線處理。 此外,百度...

    站長 2016-08-15
  • 在填寫一些項目申請書中,總是免不了要選擇一些數(shù)字,但是在方框中如何插入數(shù)字,該怎么辦呢?那么下面就由學(xué)習(xí)啦小編給大家分享下word在方框里輸入數(shù)字的技巧, ......

    Word教程 2023-04-27
  • WPS Office手機版怎么加橫線?很多用戶還不知道WPS Office手機版怎么加橫線,WPS Office手機版怎么加橫線,WPS Office手機版怎么打橫線,WPS Office手機版怎么弄 ......

    WPS教程 2023-03-31
  • 迅雷前綴是什么 答:迅雷前綴是(magnet:?xt=urn:btih:)括號里的就是了。 我們只要在這段文字之后輸入后續(xù)的內(nèi)容,就可以創(chuàng)建下載鏈接了。 1、磁力鏈接不基于文 ......

    軟件教程 2023-06-03
  • 一、內(nèi)容特權(quán)。 1、半價點播。 許多站內(nèi)視頻都需要付費觀看,而大會員用戶可以直接半價享受; 購買成功后的48h內(nèi)無限次觀看。有部分的內(nèi)容是只限在中國大陸內(nèi)觀 ......

    軟件教程 2023-05-05
  • 1、首先打開小米運動的“實驗室功能”。 2、接著點擊“門卡模擬”。 3、然后點擊“我知道了”。 4、最后貼近就可以刷卡成功了。...

    硬件知識 2023-05-17
  • 1、打開手機輕顏相機app,點擊“我的”,點擊“設(shè)置”,2、點擊“幫助與反饋”,3、點擊右下角“在線咨詢”即可聯(lián)系客服,詢問自己的問題啦!...

    軟件教程 2023-03-16
  • 答:華為P系列: 華為p40,華為p40plus,華為p50,華為p50e,華為p60 華為mate系列: 華為mate40,華為mate50,華為mate50e,華為mate60 華為nova系列: 華為n ......

    鴻蒙系統(tǒng) 2023-04-24
  • 近期有用戶反映,電腦在更新Windows 11 Insider Preview 25252.1000后,出現(xiàn)了應(yīng)用和已壓縮的文件點擊毫無反應(yīng),拖拽都不行,只能從開始菜單打開的情況,這是怎 ......

    windows11 2022-12-13
  • 可見單元格就是不包括隱藏或者篩選篩選后隱藏起來的單元格區(qū)域。方法:篩選或隱藏數(shù)據(jù),復(fù)制需要粘貼的值,在目標(biāo)單元格區(qū)域左上角的第一個單元格處右擊,選擇【 ......

    WPS教程 2022-12-10
  • 答:驍龍8+更好。 驍龍7+gen2實際上就是驍龍8+的低配版本。 在一些其他的核心架構(gòu)方面都是保持一致的,比如說CPU的架構(gòu)、GPU的架構(gòu)等等。 驍龍7+和驍龍8+具體 ......

    硬件知識 2023-04-06
  •   文/黎明  一場針對中國互聯(lián)網(wǎng)巨頭的反壟斷風(fēng)暴正在醞釀,而且這次動真格了。  11月10日,國家市場監(jiān)管總局發(fā)布《關(guān)于平臺經(jīng)濟領(lǐng)域的反壟斷指南(征求意見稿)》,要加大對互聯(lián)網(wǎng)巨頭涉嫌壟斷的調(diào)查和監(jiān)管。 ...

    熱議 2020-11-14
  • win11系統(tǒng)如何釋放掉系統(tǒng)默認(rèn)保留的存儲空間?一般情況下,Windows會保留一些存儲空間,以便設(shè)備獲得良好性能和成功更新。但是當(dāng)出現(xiàn)系統(tǒng)盤儲存空間不足時,我們會將幾個G的保留空間釋放出來,以解燃眉之急。本期教...

    windows11 2022-11-17
  • 文件被win10系統(tǒng)誤報病毒自動刪除了如何進行恢復(fù)?有用戶下載了某些破解軟件卻被Win10系統(tǒng)誤認(rèn)為是病毒文件而自動刪除,當(dāng)然系統(tǒng)自帶殺毒軟件其實挺不錯的,就是有時候會誤報,大家遇到這種情況的時候就希望把誤刪的...

    windows10 2022-11-20
  • 1、先打開機頂盒進入主界面,并且使用遙控器打開設(shè)置。 2、然后選擇“賬號與安全”,并且進入。 3、最后往下面翻就可以看到“ADB調(diào)試”的選項,直接開啟就行了 ......

    軟件教程 2023-06-01
  • 羅技g304dpi燈顏色代表什么:1、藍色:這種情況是正常工作的顯示,如果說是常亮或者閃爍,那都沒有問題這是在正常工作呢。2、紅色:如果說是紅燈閃爍的話那就是 ......

    硬件知識 2023-03-16
  • 答:在3DMark壓力測試當(dāng)中,顯卡需要超高97%才能夠算合格,證明顯卡的穩(wěn)定性是過關(guān)的。 1、一般的默認(rèn)情況下在2500~3000分就算很正常的了。 2、分?jǐn)?shù)越高說明顯卡 ......

    軟件教程 2023-06-01
  • win11系統(tǒng)快速跳過聯(lián)網(wǎng)創(chuàng)建本地管理賬戶3種方法?現(xiàn)在市面上銷售的品牌筆記本和臺式機基本上都預(yù)裝Windows11家庭中文版正版操作系統(tǒng),聯(lián)網(wǎng)后系統(tǒng)會自動激活。當(dāng)用戶拿到新機器后還需要按照cortana(小娜)的提示一步...

    windows11 2022-11-13
  • 我們經(jīng)常用WPS的時候,如果需要輸入波浪號~,會發(fā)現(xiàn)鍵盤上的波浪號輸入之后在最上面,但是為了美觀,我們希望波浪號顯示在中間。這里總結(jié)了三個方法分享給大家 ......

    WPS教程 2023-02-18
  • 答:中高端水平 i513500hx在處理器當(dāng)中是處于一個中高端的水平。 i513500hx是第十一代酷睿處理器系列的一員,基礎(chǔ)頻率為2.4GHz,表現(xiàn)十分的不錯。 i513500hx介 ......

    硬件知識 2023-04-27
  • 相信有非常多使用過筆記本的用戶都聽說過獨顯直連這個詞,但很多用戶并不了解獨顯直連是什么,又有什么用處,那么下面就和小編一起來看看什么是獨顯直連和開啟這 ......

    其它 2022-12-15
  • win11系統(tǒng)開機總是自動登錄OneDrive如何關(guān)閉?win11系統(tǒng)開機的時候,會自動啟動OneDrive,不想要啟動,該怎么操作呢?下面我們就來看看詳細的教程。 在OneDrive界面點小齒輪按鈕,下拉菜單中點【設(shè)置】。 單擊【...

    windows11 2022-11-15
  • 打開軟件,直接填寫就可以。 1、下載安裝easyconnect軟件, 2、打開easyconnect應(yīng)用,在如圖所示的“服務(wù)器地址”一欄輸入如圖所示網(wǎng)址,點擊“連接”, 3、等 ......

    軟件教程 2023-04-03

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 久草热8精品视频在线观看 久草青青在线 | 全部免费特黄特色大片看片 | 一二三四韩国免费观看 | 青草精品国产福利在线视频 | 四虎永久在线精品国产免费 | 国产精品女上位在线观看 | 激情内射亚州一区二区三区爱妻 | 99国产这里只有精品视频 | 亚洲精品卡2卡3卡4卡5卡区 | 国产免费人成在线视频有码 | 久青草国产在线观看视频 | 大桥未久与黑人中出视频 | 果冻传媒最新视频在线观看 | 扒开她的黑森林让我添动态图 | 久久精品视在线-2 | 色狐直播免费观看 | 羞羞影院午夜男女爽爽免费 | 蜜桃精品成人影片 | 九九电影伦理片 | 国产亚洲AV无码成人网站 | 久久国产影院 | 亚洲欧美中文字幕网站大全 | 欧美成人中文字幕在线视频 | 大胸美女被C得嗷嗷叫动态图 | 漂亮的保姆3中文版完整版 漂亮的保姆3集电影免费观看中文 | 四虎国产精品永久一区高清 | 99久久国产综合精品 | 日本无码人妻精品一区二区视频 | 色欲无码国产喷水AV精品 | 最新在线黄色网址 | 国产成人精品s8p视频 | 我们日本在线观看免费动漫下载 | 久久99久久成人免费播放 | 亚洲欧美成人无码久久久 | 嗨嗨快播电影 | 日本免费一本天堂在线 | 亚洲色综合中文字幕在线 | 亚洲国产精品99久久久久久 | 99爱在线精品视频网站 | 冠希和阿娇13分钟在线视频 | 男gv纯肉免费视频 |