LinuxÄÚºËÖеÄ˫ѻ·Á´±í
LinuxÄÚºËÖеÄ˫ѻ·Á´±í
2006-11-27 19:14
˫ѻ·Á´±í´«Í³ÊµÏÖ
ÔÚ´«Í³µÄ˫ѻ·Á´±íʵÏÖÖУ¬Èç¹û´´½¨Ä³ÖÖÊý¾Ý½á¹¹µÄ˫ѻ·Á´±í£¬Í¨³£²ÉÓõİ취ÊÇÔÚÕâ¸öÊý¾Ý½á¹¹µÄÀàÐͶ¨ÒåÖмÓÈëÁ½¸ö£¨Ö¸Ïò¸ÃÀàÐͶÔÏóµÄ£©Ö¸ÕënextºÍprev¡£ÀýÈ磺
typedef struct foo {
…
struct foo *prev;
struct foo *next;
…
} foo_t;
ÕâÀï¸ø³öÁ˶ÔÓ¦µÄ½Úµã½á¹¹¡¢¿ÕµÄ˫ѻ·Á´±íºÍ·Ç¿ÕµÄ˫ѻ·Á´±íʾÒâͼ¡£
LinuxÄÚºËÖÐ˫ѻ·Á´±íʵÏÖ
ÔÚlinuxÄÚºËÖУ¬ÓдóÁ¿µÄÊý¾Ý½á¹¹ÐèÒªÓõ½Ë«Ñ»·Á´±í£¬ÀýÈç½ø³Ì¡¢Îļþ¡¢Ä£¿é¡¢Ò³ÃæµÈ¡£Èô²ÉÓÃ˫ѻ·Á´±íµÄ´«Í³ÊµÏÖ·½Ê½£¬ÐèҪΪÕâЩÊý¾Ý½á¹¹Î¬»¤¸÷×ÔµÄÁ´±í£¬²¢ÇÒΪÿ¸öÁ´±í¶¼ÒªÉè¼Æ²åÈ롢ɾ³ýµÈ²Ù×÷º¯Êý¡££¨ÓÉÓÚÓÃÀ´Î¬³ÖÁ´±íµÄnextºÍprevÖ¸ÕëÖ¸Ïò¶ÔÓ¦ÀàÐ͵ĶÔÏó£¬Òò´ËÒ»ÖÖÊý¾Ý½á¹¹µÄÁ´±í²Ù×÷º¯Êý²»ÄÜÓÃÓÚ²Ù×÷ÆäËüÊý¾Ý½á¹¹µÄÁ´±í¡££©
ÔÚLinuxÔ´´úÂëÊ÷µÄinclude/linux/list.hÎļþÖУ¬²ÉÓÃÁËÒ»ÖÖ£¨Êý¾Ý½á¹¹£©ÀàÐÍÎ޹صÄ˫ѻ·Á´±íʵÏÖ·½Ê½¡£Æä˼ÏëÊǽ«Ö¸ÕëprevºÍnext´Ó¾ßÌåµÄÊý¾Ý½á¹¹ÖÐÌáÈ¡´¦Àí¹¹³ÉÒ»ÖÖͨÓõÄ"Ë«Á´±í"Êý¾Ý½á¹¹list_head£¬¶ølist_head±»×÷Ϊһ¸ö³ÉԱǶÈëµ½ÒªÀÁ´µÄÊý¾Ý½á¹¹£¨±»³ÆÎªËÞÖ÷Êý¾Ý½á¹¹£©ÖС£ÕâÑù£¬Ö»ÐèÒªÒ»Ì×ͨÓõÄÁ´±í²Ù×÷º¯Êý¾Í¿ÉÒÔ½«list_head³ÉÔ±×÷Ϊ"Á¬½Ó¼þ"£¬°ÑËÞÖ÷Êý¾Ý½á¹¹Á´½ÓÆðÀ´¡£ÈçÏÂͼËùʾ£º
ÔÚLinuxÄÚºËÖеÄ˫ѻ·Á´±íʵÏÖ·½Ê½Ï£º
1. Á´±í½á¹¹×÷Ϊһ¸ö³ÉԱǶÈëµ½ËÞÖ÷Êý¾Ý½á¹¹ÄÚ£»
2. ¿ÉÒÔ½«Á´±í½á¹¹·ÅÔÚËÞÖ÷½á¹¹ÄÚµÄÈκεط½£»
3. ¿ÉÒÔΪÁ´±í½á¹¹È¡ÈκÎÃû×Ö£»
4. ËÞÖ÷½á¹¹¿ÉÒÔÓжà¸öÁ´±í½á¹¹¡£
ÏÂÃæÎÒÃǽ«»ùÓÚLinux 2.4.21·ÖÎöLinuxÄÚºË˫ѻ·Á´±íµÄʵÏÖ¼°Ó¦Óá£
ÉùÃ÷ºÍ³õʼ»¯
Á´±í½á¹¹¶¨ÒåÈçÏ£º
struct list_head {
struct list_head *next, *prev;
};
ÎÒÃÇ¿ÉÒÔÓÃstruct list_headÉùÃ÷Ò»¸öÁ´±í½Úµã¡£ÐèҪעÒâµÄÊÇ£¬Linux µÄÿ¸ö˫ѻ·Á´±í¶¼ÓÐÒ»¸öÁ´±íÍ·£¬Á´±íÍ·Ò²ÊÇÒ»¸ö½Úµã£¬Ö»²»¹ýËü²»Ç¶Èëµ½ËÞÖ÷Êý¾Ý½á¹¹ÖУ¬¼´²»ÄÜÀûÓÃÁ´±íÍ·¶¨Î»µ½¶ÔÓ¦µÄËÞÖ÷½á¹¹¡£
ÎÒÃÇ¿ÉÒÔµ÷ÓÃINIT_LIST_HEAD()ºê³õʼ»¯Á´±í½Úµã£¬½«nextºÍprevÖ¸Õë¶¼Ö¸ÏòÆä×ÔÉí¡£Èç¹ûÕâ¸ö½ÚµãÊÇÁ´±íÍ·£¬ÎÒÃǾ͹¹ÔìÁËÒ»¸ö¿ÕµÄ˫ѻ·Á´±í¡£
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
LIST_HEAD()ºê
Ïà¹ØÎĵµ£º
sourceÃüÁîÓ÷¨£º
source FileName
×÷ÓÃ:ÔÚµ±Ç°bash»·¾³Ï¶ÁÈ¡²¢Ö´ÐÐFileNameÖеÄÃüÁî¡£
×¢£º¸ÃÃüÁîͨ³£ÓÃÃüÁî“.”À´Ìæ´ú¡£
È磺source .bash_rc Óë . .bash_rc ÊǵÈЧµÄ¡£
sourceÃüÁî(´Ó C Shell ¶øÀ´)ÊÇbash shellµÄÄÚÖÃÃüÁî¡£µãÃüÁ¾ÍÊǸöµã·ûºÅ£¬(´ÓBourne Shell¶øÀ´)ÊÇsourceµÄÁíÒ»Ãû³Æ¡£Í¬Ñùµ ......
ÉÕд2410£S linux ²Ù×÷ϵͳ£º
ÔÚwindows xpϽøÐУ¬ÐèÒªµÄÎļþÔÚ¹âÅÌÖеÄimgĿ¼ºÍflashviviĿ¼ÏÂÌṩ¡£
ÉÕд2410£S linux ²Ù×÷ϵͳ°üÀ¨ÉÕдvivi,kernel,rootÈý¸ö²½Ö裬³ý´ËÎÒÃÇ»¹ÒªÉÕдyaffs.tar£¬ÕâËĸöÎļþÔÚimgĿ¼ÖС£
vivi ----linux²Ù×÷ϵͳÆô¶¯µÄbootloader;
zImage----linu ......
1) ¹¤¾ß˵Ã÷
ÔÚSecureCRTÕâÑùµÄsshµÇ¼Èí¼þÀï, ͨ¹ýÔÚLinux½çÃæÀïÊäÈërz/szÃüÁîÀ´ÉÏ´«/ÏÂÔØÎļþ. ¶ÔÓÚRHEL5, rz/szĬÈÏûÓа²×°ËùÒÔÐèÒªÊÖ¹¤°²×°.
sz: ½«Ñ¡¶¨µÄÎļþ·¢ËÍ(send)µ½±¾µØ»úÆ÷;
rz£ºÔËÐиÃÃüÁî»áµ¯³öÒ»¸öÎļþÑ¡Ôñ´°¿Ú, ´Ó±¾µØÑ¡ÔñÎļþÉÏ´«µ½·þÎñÆ÷(receive).
ÏÂÔØ°²×°°ülrzsz-0.12.20.tar. ......
²Î¼û£ºhttp://isis.poly.edu/kulesh/stuff/src/klist/
Introduction:
Linux kernel is mostly written in the C language. Unlike many other languages C does not have
a good collection of data structures built into it or supported by a collection of standard libraries.
Therefore, you're probably excited ......