[ת]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½á¹¹µÄÖ¸Õ룬±íʾ¸Ã¶ÔÏóµ
Ïà¹ØÎĵµ£º
Ò»£®Ìî¿ÕÌâ
1. ÔÚLinuxϵͳÖУ¬ÒÔ ·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪ ¡£
5. Á´½Ó ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
TD P { margin-bottom: 0cm }
A:link { so-language: zxx }
-->
µÇ½£ºssh [hostname]
ÊäÈëÃÜÂ룺*****
µÇ
½ÒÔºó¾Í¿ÉÒÔÏñ¿ØÖÆ×Ô¼ºµÄ»úÆ÷Ò»Ñù¿ØÖÆËüÁË£¬²»¹ýûÓпÉÊÓ»¯µÄ½çÃæ¡£²»¹ýÏÖÔÚ
ÎÒËùʹÓùýµÄÁ½¸ö°æ±¾Linux( ......
³ÌÐò12£ºÀàËÆjava ÀïÃæµÄswitch case
[root@localhost scripts]# cat sh12.sh
read -p "input comand:" command
case $command in
"fix")
echo "fix system"
;;
"fuck")
echo "fuck you"
;;
*)
echo "what a stupid man!ex>$0 some word"
......
×î½ü×öµÄһЩ¹¤×÷ÐèÒªÓõ½Ï̳߳ؼ¼Êõ£¬Òò´Ë²Î¿¼ÁËһЩ×ÊÁϺÍÊé¼®£¬Èç¡¶0bug c/c++ÉÌÓù¤³ÌÖ®µÀ¡·¡£
Ϊ´ËÔÚlinuxƽ̨ÉÏÓô¿cдÁËÒ»¸öÏ̳߳صÄʵÏÖ¡£
ÔÚ´ËÁгöÁËÔ´úÂë¡£
Ö÷ÒªÓõ½µÄÊý¾Ý½á¹¹ÓÐ
1.struct thread_pool_t // thread pool µÄʵÏÖ´úÂë
2.struct thread_pool_token_t &nb ......
ÒÔϵÄ×ö·¨ÕûÀí×ÔÂÛ̳ÉϵÄÌû×Ó¡£
ÈçºÎcreate´óÎļþ
Òª´ó¾Í·Ç³£´ó£¬1T°É¡£
ÓÐÁ½ÖÖ·½·¨£º
Ò».dd
dd if=/dev/zero of=1T.img bs=1G seek=1024 count=0
bs=1G±íʾÿһ´Î¶Áд1GÊý¾Ý£¬count=0±íʾ¶Áд0´Î£¬seek=1024±íʾÂÔ¹ý1024¸öBlock²»Ð´£¬Ç°Ãæblock sizeÊÇ1G£¬ËùÒÔ¹²ÂÔ¹ý1T£¡
ÕâÊÇ´´½¨´óÐÍsparseÎļþ×î¼ ......