Linux ÐéÄâÎļþϵͳ¸Å¹Û
Linux ÐéÄâÎļþϵͳ¸Å¹Û
×÷Õß Richard Gooch <rgooch@atnf.cs.iro.au>
·Òë albcamus <albcamus@gmail.com>
×îºó¸üÐÂ:2007 Äê 6 Ô 24 ÈÕ
°æÈ¨:1999, Richard Gooch
°æÈ¨:2005, Pekka Enberg
±¾ÎļþÒÔ GPLv2 Ðí¿É·¢·Å
[·Òë˵Ã÷:Richard Gooch µÄÕâ·Ý Overview of the Linux Virtual File System λÓÚÄÚºË
Ô´´úÂëµÄ Documentation/filesystems/ÏÂ, ÎļþÃûÊÇ vfs.txt¡£ ¸ÃÎĵµÔÚ Understanding
the Linux Kernel Öб»ÍƼö, ÎÒÊÇ´Ó 2.6.16 ¹Ù·½ÄÚºËÖп½±´³öÀ´·ÒëµÄ¡£ ×Ô¼ºÖªµÀˮƽ
²î, Àí½âºÍ±í´ï¶¼²»µ½Î», ËùÒÔ»¹Êǽ¨Òé¿´ÔÎÄ:( ]
½éÉÜ
====
ÐéÄâÎļþϵͳ(Ò²±»³Æ×öÐéÄâÎļþϵͳÇл»)ÊÇÄÚºËÖÐΪӦÓóÌÐòÌṩÎļþϵͳ½Ó¿ÚµÄÒ»¸öÈí¼þ²ã¡£
ͬʱ, ËüҲΪ²»Í¬µÄÎļþϵͳ¹²´æ, ÌṩÁËÒ»ÖÖ³éÏó¡£
open(2),stat(2),read(2),write(2),chmod(2)µÈVFSϵͳµ÷ÓÃ, ÊÇÔÚ½ø³ÌÉÏÏÂÎÄÖб»
µ÷Óõġ£ ÎļþËøµÄÃèÊöÔÚ Documnetation/filesystems/LockingÖС£
Ŀ¼Ï´æ(dcache)
-----------------
VFSʵÏÖÁËÖîÈç open(2),stat(2),chmod(2)µÈϵͳµ÷Óᣠ·¾¶Ãû×÷Ϊ²ÎÊý´«µÝ¸øÕâЩϵͳ
µ÷ÓÃ, È»ºóVFSʹÓ÷¾¶Ãû, ÔÚĿ¼Ï´æ(Ò²½Ð dentry cache »ò dcache)ÖвéÕÒÏàÓ¦µÄÄ¿
¼Ïî(dentry)¡£ ͨ¹ýĿ¼Ï´æ, ·¾¶Ãû(ÎļþÃû)ÄÜѸËÙµÃת»»³ÉÏàÓ¦µÄĿ¼Ïî¡£ Ŀ¼ÏîÖ»´æ
ÔÚÓÚÄÚ´æÖÐ, ²»»á±£´æµ½´ÅÅÌÉÏ:ËüÃÇ´æÔÚµÄÒâÒåÔÚÓÚÐÔÄÜ¡£
Ŀ¼Ï´æ(dcache)Ö¼ÔÚά»¤Õû¸öÎļþ¿Õ¼äµÄÒ»¸öÊÓͼ¡£ µ«´ó¶àÊý¼ÆËã»úÎÞ·¨½«ÎļþϵͳµÄÕû
¸öĿ¼½á¹¹»º´æÔÚÄÚ´æÖÐ, Òò´ËÓÐЩÎļþûÓб»»º´æ¡£ ΪÁ˰Ñ·¾¶Ãû½âÎö³ÉÏàӦĿ¼Ïî(dentry),
VFSµÃÒ»²½²½µÄ½«Â·¾¶Ãû·Ö½â£¬´´½¨Ä¿Â¼Ïî(dentry)£¬¶ÁÈ¡ÏàÓ¦µÄInode¡£ Õâ¸ö¹ý³ÌÊÇͨ¹ý
InodeÖеIJéÕÒ·½·¨×öµ½µÄ¡£
Inode ¶ÔÏó
---------
Ò»¸öĿ¼Ïî £¨dentry£© ͨ³£°üº¬Ö¸Ïò inode µÄÖ¸Õë¡£ InodeÊÇÎļþϵͳÖеĶÔÏó, ÖîÈç³£¹æÎļþ,
Ŀ¼£¬ ¹ÜµÀ(FIFO) ºÍÆäËûµÄÎļþϵͳ¶ÔÏó¡£ ËüÃÇҪô±£´æÔÚÓÚ´ÅÅÌÉÏ(¿éÉ豸ÉϵÄÎļþϵͳ), Ҫô
´æÔÚÓÚÄÚ´æÖÐ(αÎļþϵͳ)¡£ µ±ÐèҪʱ, ÔÚ´ÅÅÌÉ쵀 inode»á±»¶ÁÈ¡µ½ÄÚ´æÖÐ; ¶ÔinodeµÄÐÞ¸ÄÒ²»á
д»Øµ½´ÅÅÌÉÏ¡£ Ò»¸ö Inode¿ÉÒÔ±»¶à¸öĿ¼Ïî(dentry)Ö¸Ïò(ÀýÈçÓ²Á´½Ó¾ÍÊÇÕâÑù)¡£
²éÕÒÒ»¸öÎļþµÄInode, VFSÐèÒªµ÷ÓÃËüµÄ¸¸Ä¿Â¼¶ÔÓ¦InodeµÄlookup()·½·¨¡£ ¸Ã·½·¨ÓÉInodeËùÔÚ
µÄÎļþϵͳʵÏÖÀ´¶¨Òå¡£ Ò»µ© VFSÕÒµ½ÁËdentry(Òò´ËÒ²¾ÍÖªµÀÁËinode
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
˵Ã÷1£º
ÎÄ×ÖÖеÄY±íʾѡÔñ½øÄںˡ£M±íʾ±à³ÉÄ£¿é¡£N±íʾ²»Ñ¡Ôñ¡£ÓеÄÖ»ÄÜÑ¡Y£¬ÓеÄÖ»ÄÜÑ¡M¡£
ÔÚmake menuconfig Ï£¬£ª±íʾY£¬M±íʾM£¬¿Õ°×±íʾN¡£
make xconfigÏ£¬√ ±íʾY£¬? ±íʾM£¬¿Õ°×±íʾN¡£
˵Ã÷2£º
²Ëµ¥ÖУ¬ÓеÄÑ¡ÏîÄãÑ¡ÁËY²Å³öÏÖ£¬ÓеÄÑ¡ÁËY£¬Ëü·´¶ø²»»á³öÏÖ¡£ÓеÄÑ¡Ïî¸ù±¾²»»áÌṩѡÔñ¡£ËùÒÔÎÒÌṩµ ......
Ò»¡¢Ò»¸öÒÔǰµÄÀÏÒµÎñ,ÀàËÆÏÂÃæÕâÑùµÄ
int test(char * ptest)
£û
return atoi(ptest);
£ý
Òì³£µÄʱºò£¬Ö¸ÕëÊǿյģ¬Á¢Âí¾ÍcoreµôÁË
¶þ¡¢
int uin = 77564267;
......
LINUXÏÂͼÐνçÃæÇл»µ½Îı¾Ä£Ê½
http://blog.chinaunix.net/u/3995/showart_115072.html
1.¿ª»ú½øÈëÎı¾Ä£Ê½
Èç¹ûÏëÈÿª»ú×Ô¶¯½ø´¿Îı¾Ä£Ê½,
ÐÞ¸Ä/etc/inittab
ÕÒµ½ÆäÖеÄ
id:5:initdefault:
ÕâÐÐָʾÆô¶¯Ê±µÄÔËÐм¶ÊÇ5,Ò²¾ÍÊÇͼÐÎģʽ
¸Ä³É3¾ÍÊÇÎı¾Ä£Ê½ÁË
id:3:initdefault:
ÕâÊÇÒòΪLinux²Ù×÷ϵͳÓÐÁùÖÖ ......
mountÊÇÓÃÀ´¹ÒÔØÎļþϵͳµÄ£¬¿ÉÒÔÔÚÆô¶¯µÄʱºò¹ÒÔØÒ²¿ÉÒÔÔÚÆô¶¯ºó¹ÒÔØ¡£ÔÚÆô¶¯ºó¹ÒÔØ¿ÉÒÔʹÓÃmountÃüÁîʵÏÖ£¬ÒªÊµÏÖÆô¶¯Ê±×Ô¶¯¹ÒÔØÉ豸ÔòÐèÆô¶¯autofs·þÎñ¾ÍÌṩÕâÖÖ¹¦ÄÜ¡£¸Ã¹¦ÄܾÍÏñwindowsÖеĹâÇý×Ô¶¯´ò¿ª¹¦ÄÜ£¬Äܹ»¼°Ê±¹ÒÔØ¶¯Ì¬¼ÓÔØµÄÎļþϵͳ¡£ÃâÈ¥ÎÒÃÇÊÖ¶¯¹ÒÔÚÂé·³¡£ÒªÊµÏÖ¹âÇý£¬ÈíÅ̵ȵĶ¯Ì¬×Ô¶¯¹ÒÔØ£¬ÐèÒª½øÐÐÏà¹Øµ ......