LinuxÍøÂçÉ豸Çý¶¯½á¹¹¸ÅÊö
ÍøÂçÉ豸Çý¶¯Ïà±È×Ö·ûÐÍÉ豸µÄÇý¶¯Òª¸´ÔÓһЩ£¬³ýÁË×ÜÌåÉÏÇý¶¯µÄ¿ò¼ÜÓÐһЩÏàËÆÍ⣬ÓкܶàµØ·½¶¼ÊDz»Í¬£¬µ«ÍøÂçÉ豸Çý¶¯ÓÐÒ»¸öºÜ´óµÄÌصã¾ÍÊÇÓй̶¨µÄ¿ò¼Ü¿ÉÒÔ×ñÑ£¬¾ßÌåµÄ¿ò¼Ü»áÔÚºó±ßÏêϸµÄÐðÊö£¬ÕâÀïÖ÷Òª·ÖÎöÍøÂçÉ豸Çý¶¯µÄ½á¹¹£¬ºÍÕû¸ötcp/ipÍøÂç½á¹¹Ò»Ñù£¬Õû¸öÍøÂçÉ豸Çý¶¯Ò²ÊÇÒ»¸ö·Ö²ãµÄ½á¹¹¡£¾ßÌåÈçÏ£º
1.ÍøÂçÐÒé½Ó¿Ú²ã
ÔÚÍøÂçÐÒé½Ó¿Ú²ã£¬Ö»ÌṩÁËÁ½¸ö³éÏóº¯Êýdev_queue_xmit()Óë netif_rx()£¬Ö®ËùÒÔ³Æ֮Ϊ³éÏóº¯Êý£¬ÊÇÒòΪÕâÁ½¸öº¯Êý³éÏóÁ˺ܶàµ×²ãµÄ²Ù×÷£¬²»¹ÜÊÇÄǸöоƬËüÔÚÍøÂçÐÒé½á¹¹µÄ²Ù×÷º¯Êý¶¼ÊÇÕâÁ½¸öº¯Êý£¬²ÉÓÃÕâÑùµÄ³éÏóºó£¬¸øÉϲã´øÀ´Á˺ܶàµÄ·½±ã£¬¸øÉϲãÐÒéÌṩͳһµÄÊý¾Ý°üÊÕ·¢½Ó¿Ú£¬ÎÞÂÛÉϲãÊÇARPÐÒ黹ÊÇIPÐÒ飬¶¼Í¨¹ýdev_queue_xmit() º¯Êý·¢ËÍÊý¾Ý£¬Í¨¹ýnetif_rx()º¯Êý½ÓÊÕÊý¾Ý¡£´Ë²ãʹÉϲãÐÒé¶ÀÁ¢ÓÚ¾ßÌåµÄÉ豸¡£
Ïà¹ØÊý¾Ý½á¹¹sk_buff£º
sk_buff ³ÆΪ“Ì×½Ó×Ö»º³åÇø”£¬ÓÃÓÚÔÚLinuxÍøÂç×ÓϵͳÖи÷²ãÖ®¼ä´«µÝÊý¾Ý¡£ÊÇLinuxÍøÂç×ÓϵͳÊý¾Ý´«µÝµÄ“ÖÐÊàÉñ¾”¡£sk_buff¶¨ÒåλÖÃΪ£ºinclude/linux/skbuff.h£¬Õâ¸öÊý¾Ý½á¹¹¶¨ÒåÁ˺ܶàÓÃÓÚÍøÂç²Ù×÷µÄº¯Êý£¬¸ü¶àµÄÉè¼ÆÕû¸öÐÒéµÄʵÏÖ£¬°üÀ¨¸÷²ã±¨ÎĵÄÍ·ÐÅÏ¢£¬ÒÔ¼°±¨ÎĵÄÖ¡¸ñʽ£¬Ï±ßÕâ¸öÕâ¸ö½á¹¹ÌåÊÇÓйر¨ÎÄheaderÐÅÏ¢µÄ£¬Ï±ߵĴúÂëÕª×Ôkernel2.6.29/include/linux /skbuff.h
struct sk_buff {
/* These two members must be first. */
struct sk_buff *next;
struct sk_buff *prev;
struct sock *sk;
ktime_t tstamp;
struct net_device *dev;
union {
struct dst_entry *dst;
struct rtable *rtable;
};
#ifdef CONFIG_XFRM
struct &n
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ÔÚlinuxµÄprocÎļþϵͳÖУ¬Í¨¹ý²é¿´/proc/net/devÎļþ
¿ÉÒԵõ½Ã¿¸öÍøÂç½Ó¿ÚµÄÍÌÍÂÁ¿£¬µ«ÊÇÎÞ·¨»ñµÃʵʱ´ø¿í
×î½ü·¢ÏÖÁËÒ»ÖÖ»ùÓÚncurses¿âµÄС³ÌÐòbmon£¬¿ÉÒÔ»ñµÃʵʱ´ø¿í
Example:
Ö´ÐÐ
[root@debian ~]# bmon -o ascii -p eth0
Interface RX Rate RX # TX Rate TX #
eth0 0.00B 0.0 0.00B 0.0
eth0 0.00B 0.0 ......
×î½üÓÃÓÑÉÆÖ®±ÛµÄ°å×Ó£¬·¢ÏÖÄں˵ÄÃû³ÆÊÇ£ºLinux-2.6.29.4-FriendlyARM.ºóÃæÄǸöFriendlyARMËÀ»îÈ¥²»µô¡£ºóÀ´Ö»ºÃ¿´´úÂë¡£
1¡¢2.6.29.4Õâ¸ö°æ±¾ºÅÊÇÊÇubootÔÚ×öuimageµÄʱºò¼ÓÉϵģ¬¿´arch/arm/boot/Makefile:
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMA ......
LinuxÏÂcoreÎļþµ÷ÊÔ·½·¨
ÔÚ³ÌÐò²»Ñ°³£Í˳öʱ£¬Äں˻áÔÚµ±Ç°¹¤×÷Ŀ¼ÏÂÉú³ÉÒ»¸öcoreÎļþ£¨ÊÇÒ»¸öÄÚ´æÓ³Ïñ£¬Í¬Ê±¼ÓÉϵ÷ÊÔÐÅÏ¢£©¡£Ê¹ÓÃgdbÀ´²é¿´coreÎļþ£¬¿ÉÒÔָʾ³öµ¼Ö³ÌÐò³ö´íµÄ´úÂëËùÔÚÎļþºÍÐÐÊý¡£
1.coreÎļþµÄÉú³É¿ª¹ØºÍ´óСÏÞÖÆ
1£©Ê¹ÓÃul ......
×î½ü£¬¿ªÊ¼ÑжÁÒ»ÏÂLinuxµÄÄں˴úÂ룬¸ÕÒ»¿ªÊ¼£¬¾ÍÓÐÁîÈ˾ªÌ¾µÄ·¢ÏÖ£¬²»µÃ²»¸Ð̾Äں˴úÂëÉè¼ÆµÃÖ®ÃÀ£¡µ¥ÊÇ×î³£ÓõÄÁ´±íÒ²Éè¼ÆµÃ²»µÃ²»ÁîÈËÅå·þ£¡
1.1.Á´±ílist_head
include/linux/list.h
ºÜ¾µä£¬Á´±íÔÚÄÚºËÖкܳ£Óã¬ÀýÈç¹ÜÀí½ø³Ì£¬½ø³ÌµÄ¸÷¸ö× ......