Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Ïêϸ½éÉÜ Linux 2.6 É豸µÄÇý¶¯Ä£ÐÍ


linux 2.6 É豸Çý¶¯Ä£ÐÍ
 
1.±³¾°
 
Ëæ×ÅÉ豸ÍØÆ˽ṹԽÀ´Ô½¸´ÔÓ£¬ÐèҪΪÄں˽¨Á¢Ò»¸öͳһµÄÉ豸ģÐÍ£¬¶Ôϵͳ½á¹¹×öÒ»°ãÐԵijéÏóÃèÊö¡£
 
ÓÐÁ˸óéÏó½á¹¹£¬¿ÉÖ§³Ö¶àÖÖ²»Í¬µÄÈÎÎñ£º
 
a) µçÔ´¹ÜÀí  Íê³ÉµçÔ´¹ÜÀí¹¤×÷ÐèÒª¶Ôϵͳ½á¹¹µÄÀí½â£¬ÇÒÓÐÑϸñµÄ˳Ðò£¬È磺һ¸öUSBËÞÖ÷ÊÊÅäÆ÷£¬ÔÚ´¦ÀíÍêËùÓÐÓëÆäÏàÁ¬½ÓµÄÉ豸ÃæÇ°ÊDz»Äܹرյģ»
 
b) ÓëÓû§¿Õ¼äͨÐÅ  ÓÉ/sysfsÐéÄâÎļþϵͳչʾÉ豸µÄÊôÐÔ
 
c) ÈȲå°ÎÉ豸
 
d) ¶ÔÏóÉúÃüÖÜÆÚ
 
2.sysfs ÐéÄâÎļþϵͳ
 
sysfs ÊÇÒ»¸öÌØÊâµÄÎļþϵͳ£¬ÀàËÆÓÚ/proc¡£sysfs²»½öÏó/procÒ»ÑùÔÊÐíÓû§¿Õ¼ä·ÃÎÊÄں˵ÄÊý¾Ý£¬¶øÇÒËüÒÔ¸ü½á¹¹»¯µÄ·½Ê½ÏòÓû§ÌṩÄÚºËÊý¾ÝÐÅÏ¢¡£
 
sysfsµÄÒ»¸öÄ¿µÄ¾ÍÊÇչʾÉ豸Çý¶¯Ä£ÐÍÖи÷×é¼þµÄ²ã´Î¹Øϵ¡£Æ䶥¼¶Ä¿Â¼°üÀ¨£º
 
a) block
 
b) device
 
c) bus
 
d) drivers
 
e) class
 
f) power
 
g) firmware
 
ÿ¸öĿ¼´ú±íÒ»¸ökobject¶ÔÏó£¬Ã¿¸öÎļþ´ú±íkobjectµÄÊôÐÔ¡£
 
3. Kobject¡¢Kset ºÍ subsystem
 
3.1 Kobject
Kobject ÊÇ×é³ÉÉ豸ģÐ͵Ļù±¾½á¹¹¡£ÀàËÆÓÚC++ÖеĻùÀ࣬ËüǶÈëÓÚ¸ü´óµÄ¶ÔÏóµÄ¶ÔÏóÖÐ--ËùνµÄÈÝÆ÷--ÓÃÀ´ÃèÊöÉ豸ģÐ͵Ä×é¼þ¡£Èçbus, devices, drivers ¶¼ÊǵäÐ͵ÄÈÝÆ÷¡£
 
ÈÝÆ÷ÓÐÁËkobjectÖ®ºó£¬ÔÊÐíÄںˣº
a) ±£´æ¶ÔÈÝÆ÷µÄÒýÓüÆÊý
b) ±£´æÈÝÆ÷Ö®¼äµÄ²ã´Î¹Øϵ
c) Ϊÿ¸öÈÝÆ÷µÄÊôÐÔÌṩһ¸öÓû§ÊÓͼ
 
struct kobject{
        char             * k_name;
        char               name[20];
        struct k_ref       kref;
        struct list_head   entry;
        struct kobject   * parent;
        struct kset      * kset;
        struct ktype     *


Ïà¹ØÎĵµ£º

Linux µÄ¶àÏ̱߳à³ÌµÄ¸ßЧ¿ª·¢¾­Ñé

2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾­Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄÏ°¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØͼ£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

ÔÚlinuxÖеÄlikelyºÍunlikely

ÔÚlinuxÖеÄlikelyºÍunlikely
0
ÍƼö
ÔÚlinuxÖÐÅжÏÓï¾ä¾­³£»á¿´µ½likelyºÍunlikely£¬ÀýÈ磺
if(likely(value)){
}
else{
}
¼òµ¥´Ó±íÃæÉÏ¿´if(likely(value)) == if(value)£¬if(unlikely(value)) == if(value)¡£
ÕâÁ½¸öºê¶Ô³ÌÐòÔËÐнá¹ûûÓÐÓ°Ï죬ֻÊÇÓÃÓÚÌá¸ß³ÌÐòЧÂÊ¡£ÆäʵÏÖºÍgcc±àÒëÆ÷ÃÜÇÐÏà¹Ø¡£
¾ßÌåµã˵£¬¾ ......

Linux ±à³Ì¾­µäÊé¼®ÍƼö

³ÉΪһÃû¾«Í¨ Linux ³ÌÐòÉè¼ÆµÄ¸ß¼¶³ÌÐòÔ±Ò»Ö±ÊDz»ÉÙÅóÓÑ×Î×ÎÒÔÇóµÄÄ¿±ê¡£¸ù¾ÝÖлªÓ¢²ÅÍøͳ¼ÆÊý¾Ý£¬±±¾©µØÇø Linux ³ÌÐòÔ±ÔÂнƽ¾ùΪ Windows ³ÌÐòÔ±µÄ 1.8 ±¶¡¢Java ³ÌÐòÔ±µÄ 2.6 ±¶£¬ Linux ³ÌÐòÔ±ÄêÖÕ½±½ðƽ¾ùΪ Windows ³ÌÐòÔ±µÄ 2.9 ±¶¡£Í¬Ê±Êý¾ÝÏÔʾ£¬Ëæ׏¤×÷¾­ÑéµÄÔö³¤£¬ Linux ³ÌÐòÔ±Óë Windows ³ÌÐòÔ±µÄÊÕÈë²î¾à» ......

Linux¶àÏß³ÌÓëÐźÅ

LinuxϵÄÏß³ÌÊÇËùνµÄÇáÁ¿¼¶½ø³Ì£¨LWP: light weight process£©£¬ÆäÓëÆÕͨ½ø³ÌÒ»ÑùÓµÓÐÒ»¸öÅÓ´óµÄtask_struct½á¹¹Ì壬һ¸ö½ø³ÌÖеĶà¸öÏ̹߳²ÏíÄÚ´æ¿Õ¼ä£¬±Ï¾¹ËüÃÇÊôÓÚͬһ¸ö½ø³Ì£¬ËùÒÔÐèÒªÏòÍâ³ÊÏÖÒ»¸öͳһµÄpid£¬Òò´Ë¸÷Ï̵߳Äpid´æ·ÅµÄÊǽø³ÌºÅ£¬ÓÖÓÉÓÚÏß³ÌͬÑùÒ²Êǽø³Ì£¬Òò´ËÆäÓÐ×Ô¼ºµÄ½ø³ÌidºÅ£¬LinuxΪÁËÖ§³Ö¶àỊ̈߳¬ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ