/dev,設(shè)備文件存儲目錄约计,應(yīng)用程序通過對這些文件的讀寫和控制,可以訪問實際的設(shè)備迁筛;
/sys/devices 目錄煤蚌,按照設(shè)備掛接的總線類型,組織成層次結(jié)構(gòu)细卧,保存了系統(tǒng)所有的設(shè)備尉桩;是文件系統(tǒng)管理設(shè)備的最重要的目錄結(jié)構(gòu);
這是內(nèi)核設(shè)備贪庙, devices 中的所有設(shè)備都是連接于某種總線之下蜘犁,在這里的每一種具體總線之下可以
找到每一個具體設(shè)備的符號鏈接,它也是構(gòu)成 Linux 統(tǒng)一設(shè)備模型的一部分止邮;
/sys/dev 下有兩個子目錄这橙,block和char奏窑,存放的是,形式為(major:minor)屈扎,它
埃唯。
- sysfs的掛載點是/sys目錄, sysfs是一個虛擬的文件系統(tǒng)(還有其它的虛擬文件系統(tǒng)鹰晨,例如usbfs和procfs)墨叛,sysfs導(dǎo)出了內(nèi)核的數(shù)據(jù)結(jié)構(gòu)。
- /sys/dev/ 和/sys/devices是sysfs按
模蜡,sysfs最主要是用來描繪Linux kernel 2.6中的設(shè)備驅(qū)動模型漠趁,用戶態(tài)的
后臺程序(udev)會動態(tài)地周期性的掃描/sys目錄中的屬性項來自動管理設(shè)備文件(也稱為設(shè)備節(jié)點),忍疾。
1棚潦、/dev 下放的是設(shè)備文件,是由應(yīng)用層mknod創(chuàng)建的文件膝昆。如果底層驅(qū)動對mknod的設(shè)備號有對應(yīng)的驅(qū)動丸边,如open等函數(shù),那么應(yīng)用層open "/dev/**"時荚孵,就會調(diào)用到底層的驅(qū)動妹窖。說白了,/dev下放的是內(nèi)核和應(yīng)用層交互的文件收叶,讓應(yīng)用層去open,write,poll等骄呼。
2、/sys 是個文件系統(tǒng)判没,你寫內(nèi)核代碼時蜓萄,如果有調(diào)用kobj_init等函數(shù),就會在/sys下的相應(yīng)目錄生成相應(yīng)文件澄峰。 它的作用是將內(nèi)核注冊的設(shè)備嫉沽、驅(qū)動、BUS連成一個樹形結(jié)構(gòu)俏竞。 另外绸硕,應(yīng)用層也可以通過讀寫/sys下的文件和內(nèi)核進(jìn)行交互(ktype)。 說白了/sys就是一個樹形結(jié)構(gòu)魂毁,讓你明白內(nèi)核都有哪些驅(qū)動和設(shè)備已經(jīng)bus玻佩,方便電源管理。
————————————————
原文鏈接:https://blog.csdn.net/u012590688/article/details/46489641