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

ÉîÈëLinuxÄÚºËÍøÂç¶ÑÕ»

×÷Õߣºbioforge alkerr@yifan.net
Ô­Ãû£º <<Hacking the Linux Kernel Network Stack>>
·­Ò룬Ð޸ģº duanjigang <duanjigang1983@126.com>
·­Òë²Î¿¼£ºraodan (raod_at_30san.com) 2003-08-22
µÚÒ»Õ  ¼ò½é
±¾ÎĽ«ÃèÊöÈçºÎÀûÓÃLinuxÍøÂç¶ÑÕ»µÄÇÏÃÅ£¨²»Ò»¶¨¶¼ÊÇ©¶´£©À´´ïµ½Ò»Ð©Ä¿µÄ£¬»òÕßÊǶñÒâµÄ£¬»òÕßÊdzöÓÚÆäËüÒâͼµÄ¡£ÎÄÖлá¾ÍºóÃÅͨѶ¶ÔNetfilter¹³×Ó½øÐÐÌÖÂÛ£¬²¢ÔÚ±¾µØ»úÆ÷ÉÏʵÏÖ½«Õâ¸ö´«Êä´Ó»ùÓÚLibpcapµÄÐá̽Æ÷(sniffer)ÖÐÒþ²Ø¡£
    NetfilterÊÇ2.4Äں˵ÄÒ»¸ö×Óϵͳ¡£Netfilter¿ÉÒÔͨ¹ýÔÚÄں˵ÄÍøÂç´úÂëÖÐʹÓø÷ÖÖ¹³×ÓÀ´ÊµÏÖÊý¾Ý°ü¹ýÂË£¬ÍøÂçµØÖ·×ª»»(NAT)ºÍÁ¬½Ó¸ú×ÙµÈÍøÂçÆÛÆ­¡£ÕâЩ¹³×Ó±»·ÅÖÃÔÚÄں˴úÂë¶Î£¬»òÕß¾²Ì¬±àÒë½øÄںˣ¬»òÕß×÷Ϊһ¸ö¿É¶¯Ì¬¼ÓÔØ/Ð¶ÔØµÄ¿ÉÐ¶ÔØÄ£¿é£¬È»ºó¾Í¿ÉÒÔ×¢²á³ÆÖ®ÎªÍøÂçʼþµÄº¯Êý£¨±ÈÈçÊý¾Ý°üµÄ½ÓÊÕ£©¡£
1.1 ±¾ÎÄÂÛÊöµÄÄÚÈÝ
±¾ÎĽ«½²ÊöÄÚºËÄ£¿éµÄ±àдÕßÈçºÎÀûÓÃNetfilterµÄ¹³×ÓÀ´´ïµ½ÈκÎÄ¿µÄ£¬ÒÔ¼°ÔõÑù½«ÍøÂç´«Êä´ÓÒ»¸öLibpcapµÄÓ¦ÓÃÖÐÒþ²Øµô¡£¾¡¹ÜLinux2.4Ö§³Ö¶ÔIPV4£¬IPV6ÒÔ¼°DECnetµÄ¹³×Ó,±¾ÎÄÖ»Ìá¼°IPV4µÄ¹³×Ó¡£µ«ÊÇ£¬¶ÔIPV4µÄ´ó¶àÊýÓ¦ÓÃÄÚÈÝͬÑùÒ²¿ÉÒÔÓ¦ÓÃÓÚÆäËûЭÒé¡£³öÓÚ½ÌѧĿµÄ£¬ÎÒÃÇÔÚ¸½Â¼A¸ø³öÁËÒ»¸ö¿ÉÒÔ¹¤×÷µÄÄÚºËÄ£¿é£¬ÊµÏÖ»ù±¾µÄÊý¾Ý°ü¹ýÂ˹¦ÄÜ¡£Õë¶Ô±¾ÎÄÖÐËùÁм¼ÊõµÄËùÓпª·¢ºÍÊÔÑé¶¼ÔÚIntel»ú×ÓÉϵÄLinux2.4.5ϵͳÉϽøÐйý¡£¶ÔNetfilte ¹³×ÓÐÐΪµÄ²âÊÔʹÓõÄÊǻػ·É豸(Loopback device),ÒÔÌ«ÍøÉ豸ºÍÒ»¸öµã¶Ôµã½Ó¿ÚµÄµ÷ÖÆ½âµ÷Æ÷¡£
¶ÔNetfilter½øÐÐÍêÈ«Àí½âÊÇÎÒ׫д±¾ÎĵÄÁíÒ»¸ö³õÖÔ¡£ÎÒ²»Äܱ£Ö¤ÕâÆªÎÄÕÂËù¸½µÄ´úÂë100%µÄûÓвî´í£¬µ«ÊÇËùÁоٵÄËùÓдúÂëÎÒ¶¼ÊÂÏȲâÊÔ¹ýÁË¡£ÎÒÒѾ­±¥³¢ÁËÄں˴íÎó´øÀ´µÄÄ¥í£¬¶øÄãÈ´²»±ØÔÙ¾­ÊÜÕâЩ¡£Í¬Ñù£¬ÎÒ²»»áΪ°´ÕÕÕâÆªÎĵµËù˵µÄÈκζ«Î÷½øÐеÄ×÷ËùËùΪ´øÀ´µÄËðʧ¶ø¸ºÔð¡£ÔĶÁ±¾ÆªÎÄÕµĶÁÕß×îºÃÊìϤC³ÌÐòÉè¼ÆÓïÑÔ£¬²¢ÇÒ¶ÔÄں˿ÉÐ¶ÔØÄ£¿éÓÐÒ»¶¨µÄ¾­Ñé¡£
Èç¹ûÎÒÔÚÎÄÖз¸ÁËÈκδíÎóµÄ»°£¬Çë¸æÖªÎÒ¡£ÎÒ¶ÔÓÚÄãÃǵĽ¨ÒéºÍÕë¶Ô´ËÎĵĸĽø»òÕ߯äËüµÄNetfilterÓ¦ÓûáÇãÐĽÓÊÜ¡£
1.2 ±¾ÎIJ»»áÉæ¼°µ½µÄ·½Ãæ
±¾ÎIJ¢²»ÊÇNetfilterµÄÍêÈ«¹á´©(»òÕß½ø½ø³ö³öµÄ½²½â)¡£Ò²²»ÊÇiptablesÃüÁîµÄ½éÉÜ¡£Èç¹ûÄãÏë¸üºÃµÄѧϰiptablesµÄÃüÁ¿ÉÒÔÈ¥×ÉѯmanÊֲᡣ
ÈÃÎÒÃÇ´Ó½éÉÜNerfilterµÄʹÓÿªÊ¼°É……….
µÚ¶þÕ  ¸÷ÖÖNetFilter ¹³×Ó¼°ÆäÓ÷¨
2.1 LinuxÄں˶ÔÊý¾Ý°üµÄ´¦Àí
ÎÒ½«¾¡×î´óŬÁ¦


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

Linux findÃüÁîÏê½â

ÓÉÓÚfind¾ßÓÐÇ¿´óµÄ¹¦ÄÜ£¬ËùÒÔËüµÄÑ¡ÏîÒ²ºÜ¶à£¬ÆäÖд󲿷ÖÑ¡Ïî¶¼ÖµµÃÎÒÃÇ»¨Ê±¼äÀ´Á˽âһϡ£¼´Ê¹ÏµÍ³Öк¬ÓÐÍøÂçÎļþϵͳ( NFS)£¬findÃüÁîÔÚ¸ÃÎļþϵͳÖÐͬÑùÓÐЧ£¬Ö»Äã¾ßÓÐÏàÓ¦µÄȨÏÞ¡£
ÔÚÔËÐÐÒ»¸ö·Ç³£ÏûºÄ×ÊÔ´µÄfindÃüÁîʱ£¬ºÜ¶àÈ˶¼ÇãÏòÓÚ°ÑËü·ÅÔÚºǫִ́ÐУ¬ÒòΪ±éÀúÒ»¸ö´óµÄÎļþϵͳ¿ÉÄܻỨ·ÑºÜ³¤µÄʱ¼ä(ÕâÀïÊÇÖ¸30G×Ö ......

Linux FHSĿ¼½á¹¹

/   :¸ùĿ¼£¬ÊÇFHS½á¹¹ÖеÄ×î¶¥²ãĿ¼¡£ÆäËüËùÓÐĿ¼¶¼ÊÇËüµÄ×ÓĿ¼£¬Ëü×ÜÊÇÒÔ¶ÀÁ¢µÄ·ÖÇø¹ÒÔØ¡£ÆäËüËùÓв»ÊÇÒÔ¶ÀÁ¢·ÖÇø¹ÒÔØµÄĿ¼¶¼°üº¬Ôڴ˸ùĿ¼·ÖÇø¡£
/bin:°üº¬Ò»Ð©ÓÐÓõÄÃüÁîÐй¤¾ß¡£²»Äܱ»µ¥¶À¹ÒÔØÎªÒ»¸ö·ÖÇø£¬·ñÔòÓûָ´ÅÌÐÞ¸´ÏµÍ³Ê±½«²»ÄÜ·ÃÎÊÕâЩÃüÁî¡£
/boot:°üº¬LinuxÆô¶¯Îļþ£¬°üº¬LinuxϵͳµÄÄÚº ......

ǶÈëʽ linux Ï ͨÓà console£¨¿ØÖÆÌ¨£© µÄʵÏÖ

ǰÑÔ£º
        µ±ÎÒÃÇʹÓÃǶÈëʽlinux ½øÐпª·¢Ê±£¬kernel ÅÜÆðÀ´Ö®ºó£¬ÎÒÃÇÏ£ÍûÄÜͨ¹ý´®¿Ú£¨±ê×¼ÊäÈë¡¢Êä³ö£©£¬ÔÚÓ¦ÓóÌÐòÕýÔÚÔËÐеĹý³ÌÖУ¬½øÐÐһЩµ÷ÊÔ¹¤×÷£¬ÀýÈ磬¶ÔCPUһЩ¼Ä´æ½øÐе÷Õû£¬ÒÔ¹Û²âµ÷ÕûÒÔºóµÄ½á¹û£¬²¢ÇÒ£¬µ±ÎÒÃÇÎÞ·¨°ÑÎÒÃǵÄÓ¦ÓóÌÐò·ÅÔÚºǫ́ÔËÐУ¬ÄÇôÎÒÃǾÍÐèÒªÊ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ