linuxÉ豸Çý¶¯³ÌÐò——ÍøÂçÉ豸Çý¶¯³ÌÐò
LinuxµÄÍøÂçϵͳÖ÷ÒªÊÇ»ùÓÚBSD Unix µÄsocket»úÖÆ£¬ ·ÃÎÊÍøÂçÉ豸µÄÇý¶¯³ÌÐò²»ÐèҪʹÓÃÉ豸½Úµã¡£ÔÚϵͳºÍÇý¶¯³ÌÐòÖ®¼ä¶¨ÒåÓÐרÃŵÄÊý¾Ý½á¹¹£¨sk_buff£©½øÐÐÊý¾ÝµÄ´«µÝ¡£ÏµÍ³ÄÚ²¿Ö§³Ö¶Ô·¢ËÍÊý¾ÝºÍ½ÓÊÕÊý¾ÝµÄ»º´æ£¬ÌṩÁ÷Á¿¿ØÖÆ»úÖÆ£¬Ìṩ¶Ô¶àÐÒéµÄÖ§³Ö¡£Òò´Ë£¬Ñ¡ÔñÄĸöÇý¶¯³ÌÐòÊÇ»ùÓÚÄÚºËÄÚ²¿µÄÆäËû¾ö¶¨£¬¶ø²»Êǵ÷ÓÃopen()£¬¶ÔÍøÂçÉ豸µÄʹÓÃͨ³£ÓÉϵͳµ÷ÓÃsocket½Ó¿ÚÒýÈë¡£
LinuxÍøÂçÉ豸Çý¶¯³ÌÐò´ÓÉϵ½Ï¿ÉÒÔ»®·ÖΪ4²ã£¬ÒÀ´ÎÎªÍøÂçÐÒé½Ó¿Ú²ã¡¢ÍøÂçÉ豸½Ó¿Ú²ã¡¢Ìṩʵ¼Ê¶¯ÄܵÄÉ豸Çý¶¯¹¦ÄܲãÒÔ¼°ÍøÂçÉ豸Óëý½é²ã¡£ÔÚÉè¼Æ¾ßÌåµÄÍøÂçÉ豸Çý¶¯³ÌÐòʱ£¬ÎÒÃÇÐèÒªÍê³ÉµÄÖ÷Òª¹¤×÷ÊDZàдÉ豸Çý¶¯¹¦ÄܲãµÄÏà¹Øº¯ÊýÒÔÌî³änet_deviceÊý¾Ý½á¹¹µÄÄÚÈݲ¢½«net_device×¢²áÈëÄںˡ£
Ò»¡¢ÍøÂçÐÒé½Ó¿Ú²ã
ÍøÂçÐÒé½Ó¿Ú²ã×îÖ÷ÒªµÄ¹¦ÄÜÊǸøÉϲãÐÒéÌṩÁË͸Ã÷µÄÊý¾Ý°ü·¢ËͺͽÓÊÕ½Ó¿Ú¡£µ±ÉϲãARP»òIPÐÒéÐèÒª·¢ËÍÊý¾Ý°üʱ£¬Ëü½«µ÷ÓÃÍøÂçÐÒé½Ó¿Ú²ãµÄdev_queue_xmit()º¯Êý·¢Ë͸ÃÊý¾Ý£¬ÉϲãÊý¾Ý°üµÄ½ÓÊÕҲͨ¹ýÏònetif_rx()º¯Êý´«µÝÒ»¸östruct sk_buffÊý¾Ý½á¹¹µÄÖ¸ÕëÀ´Íê³É¡£
sk_buff½á¹¹Ìå·Ç³£ÖØÒª£¬ËüµÄº¬ÒåΪ“Ì×½Ó×Ö»º³åÇø”£¬ÓÃÓÚÔÚLinuxÍøÂç×ÓϵͳÖеĸ÷²ãÖ®¼ä´«µÝÊý¾Ý£¬ÊÇLinuxÍøÂç×ÓϵͳÊý¾Ý´«µÝµÄ“ÖÐÊàÉñ¾”¡£
1.Ì×½Ó×Ö»º³åÇø³ÉÔ±
(1) ¸÷²ãÐÒéÍ·h¡¢nhºÍmac 3¸öÐÒéÍ·¶ÔÓ¦ÓÚÍøÂçÐÒéµÄ²»Í¬²ã´Î£¬·Ö±ðΪ´«Êä²ãTCP/UDPÐÒéÍ·h¡¢ÍøÂç²ãÐÒéÍ·nhºÍÁ´Â·²ãÐÒéÍ·mac¡£
(2) Êý¾Ý»º³åÇøÖ¸Õëhead¡¢data¡¢tailºÍend
(3) ³¤¶ÈÐÅÏ¢len¡¢data_len¡¢truesize
2. Ì×½Ó×Ö»º³åÇø²Ù×÷
·ÖÅä alloc_skb(),dev_alloc_skb()£»ÊÍ·Å kfree_skb(),dev_kfree_skb(),dev_kfree_skb_irq(),dev_kfree_skb_any()£»
Ö¸ÕëÒÆ¶¯ skb_put(),_ _skb_put(),skb_push(),_ _skb_push(),skb_pull(),skb_reserve()¡£
¶þ¡¢ÍøÂçÉ豸½Ó¿Ú²ã
Ö÷Òª¹¦ÄÜÊÇΪǧ±äÍò»¯µÄÍøÂçÉ豸¶¨ÒåÁËͳһ¡¢³éÏóµÄÊý¾Ý½á¹¹net_device½á¹¹Ì壬ÒÔ²»±äÓ¦Íò±ä£¬ÊµÏÖ¶àÖÖÓ²¼þÔÚÈí¼þ²ã´ÎÉϵÄͳһ¡£
É豸²Ù×÷£ºopen(),stop()¡£
Èý¡¢É豸Çý¶¯¹¦Äܲã
net_device½á¹¹ÌåµÄ³ÉÔ±ÐèÒª±»É豸Çý¶¯¹¦ÄܲãµÄ¾ßÌåÊýÖµºÍº¯Êý¸³Óè¡£
ÓÉÓÚÍøÂçÊý¾Ý°üµÄ½ÓÊÕ¿ÉÓÉÖжÏÒý·¢£¬É豸Çý¶¯¹¦ÄܲãÖÐÁíÒ»¸öÖ÷Ì岿·Ö½«ÊÇÖжϴ¦Àíº¯Êý£¬Ëü¸ºÔð¶ÁȡӲ¼þÉϽÓÊÕµÄÊý¾Ý°ü²¢
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst GR ......
ÌâÄ¿£ºÔÚLinuxϵÄMATLABÖÐÔËÐÐMATLAB³ÌÐò²¢ÔÚwebÖÐÏÔʾ½á¹û
ÎÒ×öÁËÒ»¸öÀý×ÓÖ÷ÒªÓÐ5¸öÎļþ£º
webtttt.html webtttt1.html webtttt2.html webtttttempt.html webttttrnd.m
1.webtttt1.htmlÎļþ
<!-- $Revision: 1.2 $ -->
<HTML>
<HEAD>
<TITLE>Simulat ......
Ò»¡¢BootLoaderµÄ¸ÅÄî
BootLoaderÊÇϵͳ¼ÓµçÆôÔËÐеĵÚÒ»¶ÎÈí¼þ´úÂ룮»ØÒäÒ»ÏÂPCµÄÌåϵ½á¹¹ÎÒÃÇ¿ÉÒÔÖªµÀ£¬PC»úÖеÄÒýµ¼¼ÓÔØ³ÌÐòÓÉBIOS£¨Æä±¾ÖʾÍÊÇÒ»¶Î¹Ì¼þ³ÌÐò£©ºÍλÓÚÓ²ÅÌMBRÖеÄÒýµ¼³ÌÐòÒ»Æð×é³É¡£BIOSÔÚÍê³ÉÓ²¼þ¼ì²âºÍ×ÊÔ´·ÖÅäºó£¬½«Ó²ÅÌMBRÖеÄÒýµ¼³ÌÐò¶Áµ½ÏµÍ³µÄRAMÖУ¬È»ºó½«¿ØÖÆÈ¨½»¸øÒýµ¼³ÌÐò¡£Òý ......
ºÍÎÒÃÇÌÖÂÛµÄÖ÷ÌâÔ½À´Ô½½üÁË¡£¡°ÄÐÅÂÈë´íÐУ¬Å®Å¼޴íÀÉ¡±£¬ÎÒ¶ÔÕâ¾ä»°µÄÌå»áÔ½À´Ô½Éî¿ÌÁË¡£×î½üÓиöÃñÉúÒøÐеÄÀÏ×ܺÍÎÒ̽ÌÖÁËÕâ¸öÎÊÌ⣬ºÁÎÞÒÉÎÊ£¬ÔÚÒøÐÐÕâ¸öÐÐÒµ¿Ï¶¨±ÈÒ»°ãµÄÐÐÒµÕõÇ®¡£ÓÚÊÇ£¬×ÔÈ»Çе½ÎÒÃǵϰÌ⣺LinuxÕâ¸öÐÐÒµÔõôÑù£¿ÕõÇ®Âð£¿ÒÔºó¿ªÔ´ÁËÎÒ»¹Óз¹³ÔÂð£¿×î½ü£¬ÎÒÄõ½ÁËÒ»·ÝLinuxµÄÖ°Òµ±¨¸æ¡£µ÷²é ......