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

[ת]linuxÉ豸ģÐÍ

Linux
2.6Äں˵ÄÒ»¸öÖØÒªÌØÉ«ÊÇÌṩÁËͳһµÄÄÚºËÉ豸ģÐÍ¡£Ëæ×ż¼ÊõµÄ²»¶Ï½ø²½£¬ÏµÍ³µÄÍØÆË½á¹¹Ô½À´Ô½¸´ÔÓ£¬¶ÔÖÇÄܵçÔ´¹ÜÀí¡¢ÈȲå°ÎÒÔ¼°plug and
playµÄÖ§³ÖÒªÇóÒ²Ô½À´Ô½¸ß£¬2.4ÄÚºËÒѾ­ÄÑÒÔÂú×ãÕâЩÐèÇó¡£ÎªÊÊÓ¦ÕâÖÖÐÎÊÆµÄÐèÒª£¬2.6Äں˿ª·¢ÁËȫеÄÉ豸ģÐÍ¡£
£±£® SysfsÎļþϵͳ
SysfsÎļþϵͳÊÇÒ»¸öÀàËÆÓÚprocÎļþϵͳµÄÌØÊâÎļþϵͳ£¬ÓÃÓÚ½«ÏµÍ³ÖеÄÉ豸×éÖ¯³É²ã´Î½á¹¹£¬²¢ÏòÓû§Ä£Ê½³ÌÐòÌṩÏêϸµÄÄÚºËÊý¾Ý½á¹¹ÐÅÏ¢¡£Æä¶¥²ãĿ¼Ö÷ÒªÓУº
BlockĿ¼£º°üº¬ËùÓеĿéÉ豸
DevicesĿ¼£º°üº¬ÏµÍ³ËùÓеÄÉ豸£¬²¢¸ù¾ÝÉ豸¹Ò½ÓµÄ×ÜÏßÀàÐÍ×éÖ¯³É²ã´Î½á¹¹
BusĿ¼£º°üº¬ÏµÍ³ÖÐËùÓеÄ×ÜÏßÀàÐÍ
DriversĿ¼£º°üÀ¨ÄÚºËÖÐËùÓÐÒÑ×¢²áµÄÉ豸Çý¶¯³ÌÐò
ClassĿ¼£ºÏµÍ³ÖеÄÉ豸ÀàÐÍ£¨ÈçÍø¿¨É豸£¬Éù¿¨É豸µÈ£©
£²£® Äں˶ÔÏó»úÖÆ¹Ø¼üÊý¾Ý½á¹¹
2.1 kobjectÄں˶ÔÏó
Kobject ÊÇLinux 2.6ÒýÈëµÄеÄÉ豸¹ÜÀí»úÖÆ£¬ÔÚÄÚºËÖÐÓÉstruct
kobject±íʾ¡£Í¨¹ýÕâ¸öÊý¾Ý½á¹¹Ê¹ËùÓÐÉ豸Ôڵײ㶼¾ßÓÐͳһµÄ½Ó¿Ú£¬kobjectÌṩ»ù±¾µÄ¶ÔÏó¹ÜÀí£¬Êǹ¹³ÉLinux
2.6É豸ģÐ͵ĺËÐĽṹ£¬ËüÓësysfsÎļþϵͳ½ôÃܹØÁª£¬Ã¿¸öÔÚÄÚºËÖÐ×¢²áµÄkobject¶ÔÏó¶¼¶ÔÓ¦ÓÚsysfsÎļþϵͳÖеÄÒ»¸öĿ¼¡£
Kobject½á¹¹¶¨ÒåΪ£º
struct
 kobject {
char
 
*
 k_name;    
//
 Ö¸ÏòÉ豸Ãû³ÆµÄÖ¸Õë
char
 name[KOBJ_NAME_LEN];   
//
 É豸Ãû³Æ
struct
 kref kref;    
//
 ¶ÔÏóÒýÓüÆÊý
struct
 list_head entry;   
//
 ¹Ò½Óµ½ËùÔÚksetÖÐÈ¥µÄµ¥Ôª
struct
 kobject 
*
 parent; 
//
 Ö¸Ïò¸¸¶ÔÏóµÄÖ¸Õë
struct
 kset 
*
 kset;    
//
 ËùÊôksetµÄÖ¸Õë
struct
 kobj_type 
*
 ktype;   
//
 Ö¸ÏòÆä¶ÔÏóÀàÐÍÃèÊö·ûµÄÖ¸Õë
struct
 dentry 
*
 dentry; 
//
 sysfsÎļþϵͳÖÐÓë¸Ã¶ÔÏó¶ÔÓ¦µÄÎļþ½Úµã·¾¶Ö¸Õë
};
ÆäÖеÄkrefÓò±íʾ¸Ã¶ÔÏóÒýÓõļÆÊý£¬ÄÚºËͨ¹ýkrefʵÏÖ¶ÔÏóÒýÓüÆÊý¹ÜÀí£¬ÄÚºËÌṩÁ½¸öº¯Êýkobject_get()¡¢kobject_put()·Ö±ðÓÃÓÚÔö¼ÓºÍ¼õÉÙÒýÓüÆÊý£¬µ±ÒýÓüÆÊýΪ0ʱ£¬ËùÓиöÔÏóʹÓõÄ×ÊÔ´½«±»ÊÍ·Å¡£
Ktype
ÓòÊÇÒ»¸öÖ¸Ïòkobj_type½á¹¹µÄÖ¸Õ룬±íʾ¸Ã¶ÔÏóµ


Ïà¹ØÎĵµ£º

Linux¿Í»§¶ËʹÓÃSSHµÄÃüÁî¹ÜÀílinux·þÎñÆ÷






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
TD P { margin-bottom: 0cm }
A:link { so-language: zxx }
-->
µÇ½£ºssh [hostname] 
ÊäÈëÃÜÂ룺*****
µÇ
½ÒÔºó¾Í¿ÉÒÔÏñ¿ØÖÆ×Ô¼ºµÄ»úÆ÷Ò»Ñù¿ØÖÆËüÁË£¬²»¹ýûÓпÉÊÓ»¯µÄ½çÃæ¡£²»¹ýÏÖÔÚ
ÎÒËùʹÓùýµÄÁ½¸ö°æ±¾Linux( ......

linux mmapÇý¶¯ÊµÏÖ

ÔÚʵÏÖÇý¶¯³ÌÐòµÄmmapº¯Êýʱ£¬Òª×¢ÒâÓ³É䵨ַµÄת»»ÎÊÌ⣬¼û´úÂë¡£
¶¨ÒåÒ»¸öÉ豸½á¹¹Ì壺
struct leedriver
{
struct cdev cdev;
unsigned char mem[MEMSIZE];
};
ÕâÀïÃæÕâ¸öMEMSIZE£¬×îС¶¼ÒªÊÇ4096£¬ÒòΪÄÚ´æÓ³ÉäÊÇÒÔҳΪµ¥Î»µÄ¡£
ÔÚʵÏÖsimple_remap_mmapº¯Êýʱ£¬´úÂëÈçÏÂ
static int simple_remap_mmap(stru ......

fork compare to exec in linux c program

pid_t  pid=fork()
it has 3 situation for the return result pid
0  child
>0 parent process
<0 fork fail
fork create a new process  and it parent live alse when the child process had been created ......

linux killÓ÷¨ ¡¢killall¡¢pkill¡¢xkill


Ò». ÖÕÖ¹½ø³ÌµÄ¹¤¾ß kill ¡¢killall¡¢pkill¡¢xkill
ÖÕÖ¹Ò»¸ö½ø³Ì»òÖÕÖ¹Ò»¸öÕýÔÚÔËÐеijÌÐò£¬Ò»°ãÊÇͨ¹ý kill ¡¢killall¡¢pkill¡¢xkill µÈ½øÐС£±ÈÈçÒ»¸ö³ÌÐòÒѾ­ËÀµô£¬µ«ÓÖ²»ÄÜÍ˳ö£¬Õâʱ¾ÍÓ¦¸Ã¿¼ÂÇÓ¦ÓÃÕâЩ¹¤¾ß¡£
ÁíÍâÓ¦Óõij¡ºÏ¾ÍÊÇÔÚ·þÎñÆ÷¹ÜÀíÖУ¬ÔÚ²»Éæ¼°Êý¾Ý¿â·þÎñÆ÷³ÌÐòµÄ¸¸½ø³ÌµÄÍ£Ö¹ÔËÐУ¬Ò²¿ÉÒÔÓÃÕâЩ¹¤¾ßÀ´Ö ......

linuxË«Íø¿¨Íø¶ÎÍø¹ØÁ÷¿ØÅäÖÃ

Õâ¸öÎÊÌâÀ§ÈÅÎÒÖÁÉÙ2¸öÐÇÆÚÁË£¬·´·´¸´¸´²éÁ˺ܶà×ÊÁÏ£¬½ñÌìÖÕÓÚÄÜÅäÖÃÍê³É£¬ÏÖÔÚҪдÏÂÀ´¼¤¶¯°¡£¬²îµã¾ÍÆøÄÙÁË¡£
ÒªÇó£ºÎÒÏë×öipp2pµÄÁ÷Á¿¿ØÖƲâÊÔ£¬ËùÒÔÒªÔÚ¹«Ë¾ÄÚ²¿´î½¨Ò»¸ö²âÊÔ»·¾³¡£ÔÚÎÒͬ¹«Ë¾µÄÍøÖ®¼ä´î½¨Ò»Ì¨Ë«Íø¿¨µÄlinux»úÆ÷£¬¾ßÌåÓ²¼þ¼ÜÉèͼÊÇÕâÑùµÄ
»¥ÁªÍø
|
¹«Ë¾µÄÄÚ²¿Íø¶Î192.168.4.0(Íø¹ØÊÇ192.168.4.1)
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ