LinuxÄÚºËÉ豸ģÐÍ
·ÒëÕߣº¹ùÉÙ±¯
2009/12/01
ÔÎÄ£ºlinux/Documentation/driver-model/overview.txt
¸ÅÊö
~~~~
LinuxÄÚºËÇý¶¯Ä£ÐÍÊÇÕë¶ÔÄÚºË֮ǰËùÓв»Í¬µÄÇý¶¯Ä£Ð͵Äͳһ³éÏóÄ£ÐÍ¡£ËüµÄÄ¿µÄÊÇ,ͨ
¹ý½áºÏÒ»Ì×Êý¾ÝºÍ²Ù×÷¼¯µ½Ò»¸öÈ«¾Ö¿É·ÃÎʵÄÊý¾Ý½á¹¹À´Ó¶øÌí¼Ó»ùÓÚijÖÖÖ¸¶¨×ÜÏßµÄÉè
±¸ºÍÇŽÓÇý¶¯¡£
´«Í³µÄÇý¶¯Ä£ÐÍʵÏÖÁËÀàËÆÊ÷µÄÊý¾Ý½á¹¹(»òÕßÒ»¸öÁ´±íÊý¾Ý½á¹¹£©À´¿ØÖÆÉ豸,
¶øÃ»ÓÐÒ»¸ö¿çÔ½²»Í¬×ÜÏßÀàÐÍ£¬Í³Ò»µÄ³éÏóÊý¾Ý½á¹¹¡£
µ±Ç°µÄÇý¶¯Ä£ÐÍÌṩÁËÒ»¸öͨÓõÄͳһµÄÊý¾ÝÄ£ÐÍ£¬ÓÃÓÚÃèÊöÒ»¸ö×ÜÏߣ¬ÒÔ¼°¹ÒÔØÔÚ×ÜÏß
ÉϵÄÉ豸¡£Õâ¸öͳһµÄ×ÜÏßÄ£ÐͰüº¬ÁËÒ»Ì×ÿ¸ö×ÜÏß¶¼ÓµÓеÄͨÓÃÊôÐÔ£¬Ò»Ì×ͨÓõĻص÷
º¯Êý£¬ÀýÈçÔÚbus probing, bus shutdown, bus power management»Øµ÷º¯Êý
µÈµÈ¡£
ͨÓõÄÉ豸ºÍÇŽӽӿÚÌåÏÖÁËÏÖ´ú¼ÆËã»úµÄÄ¿±ê£º¼´ÎÞ·ìÉ豸“¼´²å¼´ÓÔµÄÄÜÁ¦£¬µçÔ´¹Ü
ÀíÄÜÁ¦£¬ºÍÈȲå°ÎÄÜÁ¦¡£ÌØ±ðµØ£¬ÓÉIntelºÍMicrosoftÖ§ÅäµÄÄ£Ðͼٶ¨¼¸ºõËùÓеÄÉ豸ÔÚ
x86¼æÈݵÄ×ÜÏßÉÏÄܹ»ÒÔÉÏÊö·½Ê½¹¤×÷¡£µ±È»£¬²»ÊÇÿһ¸ö×ÜÏßÄܹ»Ö§³ÖËùÓеÄÕâЩ²Ù×÷
£¬µ«ÊǼ¸ºõ¾ø´ó²¿·ÖµÄ×ÜÏßÖ§³ÖÕâЩ²Ù×÷µÄ¾ø´ó²¿·Ö¡£
µ×²ã·ÃÎÊ
~~~~~~~~
ͨÓõÄÊý¾ÝÓòÒѾ´Óµ¥¸ö¾ßÌåµÄ×Ü ......
¡¡¡¡±¾ÎÄÒ²¼´¡¶Learning the bash Shell¡·3rd EditionµÄµÚÈýÕÂCustomizing Your EnvironmentÖ®¶ÁÊé±Ê¼Ç£¬µ«ÎÒÃǽ«²»ÏÞÓÚ´Ë¡£ÉèÖÃÒ»¸öºÃµÄÓû§»·¾³£¬¶ÔÎÒÃÇ¿ª·¢ÊǷdz£¹Ø¼üµÄ¡£ÔÚÕâÒ»Õ½ÚÖУ¬´ÓËĸö·½Ãæ½øÐнéÉÜ£ºÌرðµÄÎļþ£¬±ðÃû£¬Ñ¡Ï²ÎÊý¡£
ÌØÊâÎļþ
¡¡¡¡ÔÚÓû§Ä¿Â¼ÏÂÓм¸¸öÌØÊâµÄÎļþ£¬¿ÉÒÔÓÃls -a
À´²é¿´ÕâЩÒþ²ØµÄϵͳÎļþ¡£.bash_profileÖ»ÖØÒªµÄÎļþ£¬¾³£ÓÃÓÚÉèÖÃÓû§»·¾³¡£Õâ¸öÎļþ½«ÔÚÓû§loginµÄʱºòÖ´ÐС£È«¾Ö£¨ËùÓÐÓû§Ê¹Óõģ©Îª/etc/profile¡£Í¨³¤ÎÒÃǽ«ÐµÄÅäÖø½¼ÓÔÚ¸ÃÎļþµÄĩ⣬Ð޸ĺóÐèÒªÖØÐµÇ¼·½²ÅÉúЧ£¬»òÕßʹÓÃsourceÃüÁîÀ´Ö´ÐÐÕâÐ©ÌØÊâÎļþ£¬¼´source .bash_profile
¡£
¡¡¡¡ÏÖÔÚµÄlinuxÒ»°ã¶¼ÊÇʹÓÃ.bash_profile£¬Èç¹ûûÓÐϵͳ»áÈ¥ÕÒ.bash_login£¬´ÎÈ¥ÕÒ.profile¡£ÁíÍ⻹ÓÐ.bashrcÎļþ£¬ÕâʵÔÚµ÷ÓÃsubbashµÄʱºòϵͳִÐеģ¬Ò²¼´ÊÇÎÒÃÇÇÃÈëbash
À´¿ªÆôеÄbash»·¾³£¬ÕâÔÚʵ¼ÊÖÐÊǺÜÉÙÓõġ£.bash_logout¹ËÃû˼Ò壬ÊÇÔÚlogoutÊǵ÷Óá£
±ðÃû
¡¡¡¡ÔÚ»·¾³ÎļþÖУ¬»áÉèÖÃһЩ±ðÃû£¬µ±È»Ò²¿ÉÒÔÔÚÕý³£µÄbashÃüÁîÐÐʹÓá£Í¨¹ý±ðÃû£¬ÎÒÃÇ¿ÉÒÔÓÃÎÒÃDZãÓÚ¼ÇÒä»òÕß¾³£Ê¹ÓÃµÄÆäËû²Ù×÷ϵͳµÄÃüÁîÀ´Ìæ´úlinuxµÄÃüÁҲ¿ÉÒÔ½«ºÜ³¤Ò»´®ÃüÁîÓñȽϼòµ ......
·ÒëÕߣº¹ùÉÙ±¯
2009/12/01
ÔÎÄ£ºlinux/Documentation/driver-model/binding.txt
Çý¶¯°ó¶¨
Çý¶¯°ó¶¨¾ÍÊǽ«Ò»¸öÉ豸ºÍ¿ØÖƸÃÉ豸µÄÇý¶¯¹ØÁªÔÚÒ»ÇеĹý³Ì¡£
µäÐ͵ÄÇé¿öÏ£¬×ÜÏßÇý¶¯À´´¦ÀíÇý¶¯°ó¶¨£¬ÒòΪÿ¸ö×ÜÏßÇý¶¯¶¼ÓÐ×ÜÏßÏà¹ØµÄÊý¾Ý
½á¹¹À´±íʾÉ豸ºÍÉ豸Çý¶¯¡£ÓÐÁ˱íʾÉ豸ºÍÉ豸Çý¶¯µÄͨÓÃÊý¾Ý½á¹¹£¬¾ø´ó¶àÊýµÄ°ó
¶¨¹ý³Ì¿ÉÒÔʹÓÃÕâЩͨÓôúÂë¡£
×ÜÏß
~~~
×ÜÏßÀàÐÍÊý¾Ý½á¹¹°üº¬Ò»¸ö¼Ç¼ËùÓÐÊôÓÚÕâ¸ö×ÜÏßÀàÐ͵ÄÉ豸Á´±í¡£µ±Ò»¸öÉ豸Çý¶¯µ÷ÓÃ
device_register()ʱ£¬Ëü»á±»Ìí¼Óµ½Õâ¸öÁ´±íµÄβ²¿¡£
×ÜÏßÀàÐÍÊý¾Ý½á¹¹Ò²°üº¬Ò»¸ö¼Ç¼ËùÓÐÊôÓÚÕâ¸ö×ÜÏßÀàÐ͵ÄÇý¶¯Á´±í¡£µ±Ò»¸öÉ豸Çý¶¯µ÷ÓÃ
driver_register()ʱ£¬¸ÃÇý¶¯»á±»Ìí¼Óµ½Õâ¸öÁ´±íµÄβ²¿¡£
ÕâÊÇ´¥·¢Çý¶¯°ó¶¨µÄÁ½¸öÖ÷Ҫʼþ¡£
É豸ע²á
~~~~~~~~
µ±Ò»¸öÐÂÉ豸±»Ìí¼Óºó£¬×ÜÏßµÄÇý¶¯Á´±í»á±»µü´ú£¬²éÕÒ³öÖ§³Ö¸ÃÉ豸µÄÇý¶¯¡£ÎªÁË´ïµ½
Õâ¸öÄ¿µÄ£¬ÐÂÉ豸µÄÉ豸ID±ØÐëÆ¥ÅäÇý¶¯Ö§³ÖµÄÉ豸IDÖеÄÒ»¸ö¡£É豸IDµÄ¸ñʽºÍ
Óï·¨ÊÇ×ÜÏßÏà¹ØµÄ¡£²»ÐèҪʹÓÃÒ»¸ö¸´ÔÓµÄ״̬»úºÍÆ¥ÅäËã·¨£¬¶øÊÇÓÉ×ÜÏßÇý¶¯Ìṩ
Ò»¸öcallbackº¯ÊýÀ´±È½ÏÉ豸ºÍÒ»¸öÇý¶¯ËùÖ§³ÖµÄIDÊÇ·ñÆ¥Å䣬Èç¹ûÆ¥Åä·µ»ØÖµÎª1£¬·ñÔò
·µ»ØÖµÎª0¡£
int match(s ......
.tar
½â°ü£º tar xvf FileName.tar
´ò°ü£ºtar cvf FileName.tar DirName
£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
---------------------------------------------
.gz
½âѹ1£ºgunzip FileName.gz
½âѹ2£ºgzip -d FileName.gz
ѹËõ£ºgzip FileName
.tar.gz
½âѹ£ºtar zxvf FileName.tar.gz
ѹËõ£ºtar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
½âѹ1£ºbzip2 -d FileName.bz2
½âѹ2£ºbunzip2 FileName.bz2
ѹËõ£º bzip2 -z FileName
.tar.bz2
½âѹ£ºtar jxvf FileName.tar.bz2
ѹËõ£ºtar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
½âѹ1£ºbzip2 -d FileName.bz
½âѹ2£ºbunzip2 FileName.bz
ѹËõ£ºÎ´Öª
.tar.bz
½âѹ£ºtar jxvf FileName.tar.bz
ѹËõ£ºÎ´Öª
---------------------------------------------
.Z
½âѹ£ºuncompress FileName.Z
ѹËõ£ºcompress FileName
.tar.Z
½âѹ£ºtar Zxvf FileName.tar.Z
ѹËõ£ºtar Zcvf FileName.tar.Z DirName
---------------------------------------------
.tgz
½âѹ£ºtar zxvf FileName.tgz
ѹËõ£ºÎ´Öª
.tar.tgz
½âѹ ......
¾ßÌåΪ£ºsudo chown cjfh /CJFH1 ½«/CJFH1µÄÊôÖ÷¸ü¸ÄΪ“cjfh”£¨ÎÒµÄÓû§Ãû£©
ÓÚÊǾͿÉÒÔ¶Ô/CJFH1ÀïµÄÎļþ½øÐвÙ×÷ÁË¡£
Íê³ÉÖ®ºó£¬¾õµÃ×Ô¼º¶ÔÃüÁîµÄÊìϤ³Ì¶È²»¸ß£¬Ðè½øÒ»²½Ñ§Ï°£»
˳±ã½«chownѧÁËһϣº
chown ÃüÁî
ÓÃ; ¸ü¸ÄÓëÎļþ¹ØÁªµÄËùÓÐÕß»ò×é¡£
Óï·¨
chown [ -f ] [ -h ] [ -R ] Owner [ :Group ] { File ... | Directory ... }
chown -R [ -f ] [ -H | -L | -P ] Owner [ :Group ] { File ... | Directory ... }
ÃèÊö
chown
ÃüÁ File ²ÎÊýÖ¸¶¨µÄÎļþµÄËùÓÐÕ߸ü¸ÄΪ Owner ²ÎÊýÖ¸¶¨µÄÓû§¡£Owner ²ÎÊýµÄÖµ¿ÉÒÔÊÇ¿ÉÔÚ /etc/passwd
ÎļþÖÐÕÒµ½µÄÓû§±êʶ»òµÇ¼Ãû¡£»¹¿ÉÒÔÑ¡ÔñÐÔµØÖ¸¶¨×é¡£Group ²ÎÊýµÄÖµ¿ÉÒÔÊÇ¿ÉÔÚ /etc/group ÎļþÖÐÕÒµ½µÄ×é±êʶ»ò×éÃû¡£
Ö»ÓÐ root Óû§¿ÉÒÔ¸ü¸ÄÎļþµÄËùÓÐÕß¡£Ö»ÔÚÄúÊÇ root Óû§»òÓµÓиÃÎļþµÄÇé¿öϲſÉÒÔ¸ü¸ÄÎļþµÄ×é¡£Èç¹ûÓµÓÐÎļþµ«²»ÊÇ root Óû§£¬ÔòÖ»¿ÉÒÔ½«×é¸ü¸ÄΪÄúÊÇÆä³ÉÔ±µÄ×é¡£
ËäÈ» -H¡¢-L ºÍ -P ±êÖ¾ÊÇ»¥³âµÄ£¬Ö¸¶¨²»Ö¹Ò»¸öÒ²²»ÈÏΪÊÇ´íÎó¡£Ö¸¶¨µÄ×îºóÒ»¸ö±ê־ȷ¶¨ÃüÁîÄâ¸å½«ÑÝʾµÄ²Ù×÷¡£
±êÖ¾
-f ½ûÖ¹³ýÓ÷¨ÏûÏ¢Ö®ÍâµÄËùÓдíÎóÏ ......
ÒëÕߣº¹ùÉÙ±¯
2009/12/01
ÔÎÄ£ºlinux-2.6/Documentation/driver-model/bus.txt
×ÜÏßÀàÐÍ
¶¨Òå
~~~~
struct bus_type {
char * name;
struct subsystem subsys;
struct kset drivers;
struct kset devices;
struct bus_attribute * bus_attrs;
struct device_attribute * dev_attrs;
struct driver_attribute * drv_attrs;
int (*match)(struct device * dev, struct device_driver * drv);
int (*hotplug) (struct device *dev, char **envp,
int num_envp, char *buffer, i ......