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

Linux KernelÖÐlist½â¶Á


±êÇ©£º
it
·ÖÀࣺ
linux_kernel
×÷ÕߣºSam £¨Õç·å£© sam_code@hotmail.com
Sam֮ǰ¿´2.4
kernelʱ£¬³£¿´µ½List.Ò²×Ðϸ¿´ÁËһϣ¬µ«ÏÖÔÚ³¤ÆÚûÓп´kernel,ûÓÐд³ÌÐò£¬ÒѾ­Íü¼ÇÁ˺ܶࡣ½ñÌìÓÖ¿´Ò»¿´²¢¼Ç¼ÏÂÀ´¡£
Linux
KernelÖУ¬³£³£ÐèҪʹÓÃË«ÏòÁ´±í¡£ÔÚ~/include/linux/list.hÖУ¬¾Í¶¨ÒåÁËË«ÏòÁ´±íºÍ³£ÓõÄfunction.
Á´±íÍ·ÈçÏ£º
struct list_head {
 struct list_head *next, *prev;
};
1.´´½¨Ë«ÏòÁ´±í£¨doubly linked
list£©£º
INIT_LIST_HEAD(
struct list_head
*list
)
´úÂëÈçÏ£º
static inline void INIT_LIST_HEAD(struct list_head *list)
{
 list->next = list;
 list->prev = list;
}
½«ListµÄÍ·ºÍβ¶¼Ö¸Ïò×ÔÉí¡£
2. Ìí¼ÓÄÚÈݵ½Ë«ÏòÁ´±í£º
2.1: ƽ³£µÄÌí¼Ó£º
2.1.1:½«ÐÂÏîÄ¿Ìí¼Óµ½listµÄÍ·²¿£¨headÖ®ºóµÚÒ»¸öλÖã©¡£×¢Ò⣬´Ë´¦headÊÇÖ¸´ËË«ÏòÁ´±íÍ·¡£
void list_add(struct list_head *new, struct list_head *head)
½«²ÎÊýÒ»£¨new£©Ìí¼Óµ½headÖ®ºó¡£Ëüµ÷ÓÃ
__list_add(new, head,
head->next);Ò²¾ÍÊÇ˵£¬°ÑnewÌí¼Óµ½headºÍhead->nextÖ®¼ä¡£
static inline void __list_add(struct
list_head *new,
        
struct list_head *prev,
        
struct list_head *next) //ËüÖ»Êǽ«newÌí¼Óµ½prevºÍnextÖ®¼ä
{
 next->prev = new;
 new->next = next;
 new->prev = prev;
 prev->next = new;
}
2.1.2£º½«ÐÂÏîÄ¿Ìí¼ÓË«ÏòÁ´±í×îºóÒ»¸öλÖã¨Ò²¾ÍÊÇheadµÄpriv£©¡£×¢Òâ´Ë´¦head±íʾlistÍ·¡£
static inline void list_add_tail(struct
list_head *new, struct list_head *head)
{
 __list_add(new, head->prev,
head);
}
Ôò½«newÌí¼Óµ½head->prevºÍheadÖ®¼äÁË¡£
2.2:¶Á¿½±´¸üУ¨rcu£©Ä£Ê½µÄÌí¼Ó£¨smp_wmb()
£©£¨Çë¿´±³¾°ÖªÊ¶£©
2.2.1: ½«ÐÂÏîÄ¿¼Óµ½ÒÔÖªµÄprevºÍnextÖ®¼ä£º
static inline void __list_add_rcu(struct
list_head * new,
  struct list_head * prev, struct
list_head * next)
{
 new->next = next;
 new->prev = prev;
 smp_wmb();
 next->prev = new;
 prev->next = new;
}//´Ë´¦×¢Ò⣺smp_wmb();
smp_wmb()·ÀÖ¹±àÒëÆ÷ºÍCPUÓÅ»¯´úÂëÖ´ÐеÄ˳


Ïà¹ØÎĵµ£º

Linux ¼à¿Ø/SNMPÅäÖÃ


LinuxϵͳµÄSNMP·þÎñÉèÖÃ
1) °²×°SNMP
ÂÔ£¬Çë²ÎÔÄLINUXϵͳSNMP°²×°ËµÃ÷£¬Ò»°ãÇé¿öÏÂLinuxÖеľùÒѾ­×Ô¶¯°²×°ÁËSNMP·þÎñ¡£ÒÔÏÂÃüÁî¿ÉÒÔ¼ì²âSNMP·þÎñÊÇ·ñ°²×°ÒÔ¼°°²×°µÄÎļþ°ü¡£
[root@idc ~]# rpm -qa |grep snmp
net-snmp-libs-5.1.2-11.EL4.7
net-snmp-5.1.2-11.EL4.7
 
2) ÅäÖÃSNMP
°´ÕÕÈçÏ·½Ê½ÐÞ¸Ä/etc ......

linux rehl 5 dns Ïê½â3


RHEL5´î½¨DNS·þÎñÆ÷ʵÏÖÃû³Æ½âÎö Èý
 
 
£¨¶þ£©named.confÎļþ˵Ã÷£º
´ËÎļþÐèÓû§×Ô¼º´´½¨£¬¿É´Ó/usr/share/doc/bind-9.3.3/sample/etcÖи´ÖƵ½/var/named/chroot/etc/Ŀ¼ÏÂ
// Sample named.conf BIND DNS server 'named' configuration file
// for the Red Hat BIND distribution.
// See the BIND ......

Linuxµç×ÓÊéÏÂÔØ

µÚÒ»²¿·Ö£ºLinux»ù´¡Ó¦ÓÃ
1¡¢¡¶Linux´ÓÈëÃŵ½¾«Í¨¡·
http://www.gouhuo.com/study/linuxbook.zip
2¡¢ Linux ϵͳ°²È«ÓëÓÅ»¯ÖÐÎİæ
Õâ±¾ÊéµÄÓ¢Îİæ“Get Acquainted with Linux Security and Optimization System”£¨¼ò³ÆLinuxSOS£©ÊÇLinuxÎĵµ¼Æ»®£¨Linux Document Project£©ÖбȽÏеÄÒ»±¾Ö¸ÄÏ¡£Õâ±¾Êé²»ÊÇL ......

LinuxÄÚºËMakefiledzÎö£¨×ª


1£® ÅäÖÃϵͳµÄ»ù±¾½á¹¹
LinuxÄں˵ÄÅäÖÃϵͳÓÉÈý¸ö²¿·Ö×é³É£¬·Ö±ðÊÇ£º
Makefile£º·Ö²¼ÔÚ Linux ÄÚºËÔ´´úÂëÖÐµÄ Makefile£¬¶¨Òå Linux Äں˵ıàÒë¹æÔò£»
ÅäÖÃÎļþ£¨config.in£©£º¸øÓû§ÌṩÅäÖÃÑ¡ÔñµÄ¹¦ÄÜ£»
ÅäÖù¤¾ß£º°üÀ¨ÅäÖÃÃüÁî½âÊÍÆ÷£¨¶ÔÅäÖýű¾ÖÐʹÓõÄÅäÖÃÃüÁî½øÐнâÊÍ£©ºÍÅäÖÃÓû§½çÃæ£¨Ìṩ»ùÓÚ×Ö·û½çÃæ¡ ......

תÌû ¸ºÔؾùºâ ÔÚwindowÓëlinuxÏÂÅäÖÃnginx


×î½üÓÐЩʱ¼ä£¬¿ªÊ¼½Ó´¥¸ºÔؾùºâ·½ÃæµÄ¶«Î÷£¬´ÓÓ²¼þF5ÔÙµ½Citrix Netscalar¡£²»¹ýÒòΪӲ¼þµÄÅäÖÃËäÈ»²»¸´ÔÓ£¬µ«°º¹óµÄ¼Û¸ñÒ²ÈÃÒ»°ãÓû§Íû¶øÈ´²½(Ê®¼¸Íòµ½¼¸Ê®Íò)£¬ËùÒÔÖ»ÄÜתÏònginx,squidÕâÀàÓз´Ïò´úÀí¹¦ÄܵÄÈí¼þÁË¡£ºÃÔÚÆäÉèÖö¼²»ÊǺÜÂé·³¡£
      ±¾ÎľÍ֮ǰËù×ö¹ýµÄ°²×°ºÍÅäÖò½Öè×öÒ»Ï ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ