哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux configfs的內部機制介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-13 11:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

2.1 configfs 和 sysfs
configfs 和 sysfs 都是基于內存的虛擬文件系統(tǒng),但是它們并不相同。

對于 sysfs,當內核創(chuàng)建某個對象時,比如注冊一個 platform_drvier 時,它就會被注冊進 sysfs 里。它的屬性就會在 sysfs
中出現:用戶程序可以通過 readdir、read 函數讀取這些屬性,也可以通過 write 函數修改某些屬性。重點在于:sysfs
中的內容是在內核里創(chuàng)建、銷毀,內核控制著 sysfs 的生命周期。可以認為 sysfs 就是這些內核對象的觀察窗口。

對于 configfs,當然也需要內核驅動程序的支撐。但是操作 configfs 的啟動是用戶程序:用戶執(zhí)行 mkdir
時會在內核里創(chuàng)建一個config_item 對象,用戶執(zhí)行 rmdir 時會銷毀這個內核對象。當執(zhí)行 mkdir 創(chuàng)建目錄時,這個 config_item
的屬性就會出現在這個目錄下。用戶程序可以執(zhí)行 read、write 操作讀寫這些屬性。與 sysfs 的不同在于:configfs
中目錄、文件的生命周期由用戶程序決定。

2.2 重要結構體

掛載 configfs 文件系統(tǒng)后,在里面創(chuàng)建/刪除目錄、讀寫文件、建立鏈接文件,都會導致內核中相關函數被調用。

站在用戶的角度來說,一個文件系統(tǒng)里面有目錄、文件兩種對象。在 configfs 的內核實現中,對應 4 個概念。從底往上看:

configfs_attribute、configfs_bin_attribute:對應文件

configfs_attribute 對應的文件里含有的是可視化的字符串信息,它在內核里有一個結構體:

struct configfs_attribute { char *ca_name; struct module *ca_owner; umode_t
ca_mode; ssize_t (*show)(struct config_item *, char *); ssize_t (*store)(struct
config_item *, const char *, size_t); };

configfs_bin_attribute 對應的文件里含有的是二進制信息,它在內核里有一個結構體:

struct configfs_bin_attribute { struct configfs_attribute cb_attr; /* std.
attribute */ void cb_private; / for user / size_t cb_max_size; / max core
size */ ssize_t (*read)(struct config_item *, void *, size_t); ssize_t
(*write)(struct config_item *, const void *, size_t);};

讀寫文件時,會導致上述結構體里的 show/store 或者 read/write 函數被調用

文件是位于某個目錄的: config_item

config_item:configfs 中的每個對象都是 config_item,后面的 config_group、subsystem
本質上都屬于特殊的 config_item

config_group、subsystem,config_item 都對應一個目錄

跟 config_group、subsystem 對比時,config_item 這個目錄下不再有目錄

在 config_item 目錄下有屬性文件,還可以創(chuàng)建鏈接文件

鏈接文件的操作結構體是:config_item_type 里的 configs_item_operations

圖片

config_group:它是特殊的 config_item,它有對應一個目錄

普通的 config_item:下面不再有子目錄

config_group:下面還可以創(chuàng)建 config_item 或者 config_group,即:下面可以再創(chuàng)建子目錄

在當前目錄下操作子目錄時,對應的操作結構體是:config_item_type 里的 configs_group_operations

圖片

subsystem:它是 configfs 文件系中的最頂層

比如:/sys/kernel/config/usb_gadget、/sys/kernel/config/iio

在driversusbgadgetconfigfs.c中調用configfs_register_subsystem(&gadget_subsys)就會創(chuàng)建
subsystem,它對應 configfs 文件系統(tǒng)中的頂層目錄usb_gadget

subsystem 也屬于 config_group

圖片

2.3 configfs 使用流程

跟 legacy 方法類比,要做的事情是一樣的:

創(chuàng)建 usb_composite_dev

設置設備描述符

設置配置描述符

添加接口(功能)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5208

    文章

    20620

    瀏覽量

    336668
  • Linux
    +關注

    關注

    88

    文章

    11806

    瀏覽量

    219486
  • 函數
    +關注

    關注

    3

    文章

    4421

    瀏覽量

    67813
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux系統(tǒng)安全機制及技術大觀

    Linux 系統(tǒng)是開放的, 其上安全機制、工具很多,不同的場景其安全目標和選擇的工具都不相同。以下從個人角度仿ATT&CK列出一些常見的安全機制和技術。
    發(fā)表于 05-19 10:59 ?4015次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)安全<b class='flag-5'>機制</b>及技術大觀

    Linux 機制分析

    走入 Linux 的殿堂已經有一年有余了,在這里我想將 Linux 的各種實現機制分析一遍,一方面對自己來說也是溫故而知新,另一方面,促進大家的交流,最好能夠給大家一些拋磚引玉的啟迪。我是硬件出身
    發(fā)表于 05-21 09:51

    詳解Linux內核搶占實現機制

    本文詳解了Linux內核搶占實現機制。首先介紹了內核搶占和用戶搶占的概念和區(qū)別,接著分析了不可搶占內核的特點及實時系統(tǒng)中實現內核搶占的必要性。然后分析了禁止內核搶占的情況和內核搶占的時機,最后
    發(fā)表于 08-06 06:16

    詳解Linux能力機制

    Linux能力機制
    發(fā)表于 04-20 08:23

    INtime RTOS內部的關鍵處理機制是什么

    INtime RTOS內部的關鍵處理機制是什么?INtime RTOS內部的關鍵處理機制有哪些相關的應用案例?
    發(fā)表于 09-29 06:28

    Linux與VxWorks任務調度機制分析

    Linux與VxWorks任務調度機制分析
    發(fā)表于 03-28 09:52 ?19次下載

    linux內存管理機制淺析

    本內容介紹了arm linux內存管理機制,詳細說明了linux內核內存管理,linux虛擬內存管理,arm
    發(fā)表于 12-19 14:09 ?73次下載
    <b class='flag-5'>linux</b>內存管理<b class='flag-5'>機制</b>淺析

    linux內核rcu機制詳解

    Linux內核源碼當中,關于RCU的文檔比較齊全,你可以在 /Documentation/RCU/ 目錄下找到這些文件。Paul E. McKenney 是內核中RCU源碼的主要實現者,他也寫了很多RCU方面的文章。今天我們而主要來說說linux內核rcu的
    發(fā)表于 11-13 16:47 ?9422次閱讀
    <b class='flag-5'>linux</b>內核rcu<b class='flag-5'>機制</b>詳解

    Linux系統(tǒng)的fork運行機制分析

    如果其中一個進程的輸出結果是“pid1:1001, pid2:1002”,寫出其他進程的輸出結果(不考慮進程執(zhí)行順序)。 明顯這道題的目的是考察linux下fork的執(zhí)行機制。下面我們通過分析這個題目,談談Linux下fork
    發(fā)表于 04-26 16:26 ?1455次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)的fork運行<b class='flag-5'>機制</b>分析

    Linux的notifier機制在TP中的應用

    linux內核系統(tǒng)中,各個模塊、子系統(tǒng)之間是相互獨立的。Linux內核可以通過通知鏈機制來獲取由其它模塊或子系統(tǒng)產生的它感興趣的某些事件。
    發(fā)表于 05-05 11:46 ?2596次閱讀

    Linux內核驅動的platform機制是怎樣的

    Linux 2.6起引入了一套新的驅動管理和注冊機制:platform_device和platform_driver。
    發(fā)表于 11-06 14:12 ?2157次閱讀
    <b class='flag-5'>Linux</b>內核驅動的platform<b class='flag-5'>機制</b>是怎樣的

    一篇非常新的介紹PyTorch內部機制的文章

    譯者序:這篇博文是一篇非常新的介紹PyTorch內部機制的文章,作者Edward Z Yang來自于Stanford大學,是PyTorch的核心開發(fā)者之一。文章中介紹了如何閱讀PyTo
    的頭像 發(fā)表于 12-26 10:17 ?3277次閱讀
    一篇非常新的<b class='flag-5'>介紹</b>PyTorch<b class='flag-5'>內部</b><b class='flag-5'>機制</b>的文章

    面向Linux系統(tǒng)的系統(tǒng)數據容災機制綜述

    面向Linux系統(tǒng)的系統(tǒng)數據容災機制綜述
    發(fā)表于 06-27 14:29 ?8次下載

    Linux內核文件Cache機制

    Linux內核文件Cache機制(開關電源技術與設計 第二版)-Linux內核文件Cache機制? ? ? ? ? ? ? ??
    發(fā)表于 08-31 16:34 ?4次下載
    <b class='flag-5'>Linux</b>內核文件Cache<b class='flag-5'>機制</b>

    Linux configfs的使用

    1. 體驗 1.1 使用 所有命令都是在開發(fā)板上執(zhí)行。 掛載 configfs 文件系統(tǒng) # modprobe libcomposite# mount -t configfs none /sys
    的頭像 發(fā)表于 07-13 10:59 ?2295次閱讀
    饶河县| 宜春市| 东方市| 都匀市| 谷城县| 五河县| 广宗县| 巧家县| 新乡县| 宝清县| 安西县| 永新县| 普洱| 孝昌县| 信丰县| 东乌| 日照市| 阿瓦提县| 天柱县| 平湖市| 长武县| 南昌县| 江达县| 霍州市| 罗定市| 乐亭县| 正阳县| 梁河县| 山西省| 鹰潭市| 巫山县| 会宁县| 无锡市| 项城市| 红原县| 兴安盟| 崇仁县| 乐昌市| 黔江区| 葵青区| 西城区|