日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Linux那些事儿之我是Sysfs(9)sysfs文件系统模型

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux那些事儿之我是Sysfs(9)sysfs文件系统模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?最近Linus炮轟C++,“C++是一種糟糕的(horrible)語言。而且因為有大量不夠標準的程序員在使用而使許多真正懂得底層問題,而不會折騰那些白癡‘對象模型’”。牛人就是牛氣沖天阿。

在fs/sysfs/下面,除去Makefile和Kconfig,還有6個文件。其中file.c, dir.c, symblink.c分別代表了在sysfs文件系統中當文件類型為普通文件,目錄,符號連接時的各自的file operations結構體的實現。mount.c包括了sysfs的初始化函數。sysfs.h就是頭文件,里面有函數的原形,并將其extern出去。

sysfs的文件系統的所讀寫的信息是存放在kobject當中,那么dentry是如何與kobject聯系起來的呢?是通過kernfs_node。

sysfs文件系統有自己的dirent結構,dirent = directory entry (目錄實體)。sysfs中,每一個dentry對應了一個dirent結構,dentry->d _fsdata是一個void的指針,它指向kernfs_node 結構。

include/linux/kernfs.h

struct kernfs_node {atomic_t		count;atomic_t		active;
#ifdef CONFIG_DEBUG_LOCK_ALLOCstruct lockdep_map	dep_map;
#endif/** Use kernfs_get_parent() and kernfs_name/path() instead of* accessing the following two fields directly.  If the node is* never moved to a different parent, it is safe to access the* parent directly.*/struct kernfs_node	*parent;const char		*name;struct rb_node		rb;const void		*ns;	/* namespace tag */unsigned int		hash;	/* ns + name hash */union {struct kernfs_elem_dir		dir;struct kernfs_elem_symlink	symlink;struct kernfs_elem_attr		attr;};void			*priv;unsigned short		flags;umode_t			mode;unsigned int		ino;struct kernfs_iattrs	*iattr;
};

?

count是引用計數。

總結

以上是生活随笔為你收集整理的Linux那些事儿之我是Sysfs(9)sysfs文件系统模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。