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

LinuxÍøÂç½Ø°ü²»ÍêÈ«ÕûÀí

ÍøÂç½Ø°üÊÇÒ»ÏîºÜÓÐÒâ˼µÄ¿ÎÌ⣬¿ÉÒÔÓÐÊý¾Ý¹ýÂË£¬·À»ðǽ£¬Á÷Á¿¿ØÖÆ£¬±¨ÎĴ۸ĵÈÖî¶àÓ¦Ó㬰´ÕÕÄں˷ֲã¼Ü¹¹½«Ò»Ð©½Ø°ü·½·¨²»ÍêÈ«ÕûÀíÈçÏ£¬»¶Ó­²¹³ä¡£
1¡¢ L1²ãÇý¶¯½Ø°ü·¨
    ÔÚÇý¶¯ÖÐÏÂÊÖÓ¦¸Ã¿ÉÒÔ˵ÊÇ×îÌù½üµ×²ãµÄ£¬Íø¿¨Çý¶¯ÖÐ×ÜÓÐrx½ÓÊÕºÍxmit·¢Ëͺ¯Êý£¬²ÎÊý×ÜÊÇsk_buffer£¬ÔÚÕâÀïÐ޸ĺܻƺܱ©Á¦£¬¶øÇÒ¼¸ºõ²»ÐèҪʲôlinuxÄں˵Ä֪ʶ¡£
    xmitº¯Êýµ÷ÓÃʱµÄ²ÎÊýsk_bufferÒѾ­ÊÇÒ»¸ö·¢Óý½¡È«µÄ³ÉÊìÌ壬Òò´ËÔÚÕâÀï×ö¹ýÂËÄÇÕæÊǵÃÐÄÓ¦ÊÖÃÀ´ôÁË£¬µ±È»Ð޸ĵÄʱºò»¹ÊÇÒªÏÂÒ»·¬¹¦·ò£¬¶ørxµÄʱºòÔòÏà·´£¬¿ÉÁ¯µÄsk_bufferÔÚÕâʱºòÖ»·¢ÓýÁËÁ´Â·²ã(L2)Í·²¿£¬Ò»µ©Éæ¼°µ½½ÏΪ¸´ÔӵĹýÂË£¬ÔòÐèÒª×öһЩģÄâЭÒéÕ»µÄ·ÖÎö£¬ÈçÐèÒª»ñÈ¡udp¶Ë¿Ú£¬¾ÍÒª´Ósk_bufferÖÐÏÈÈ¡³öL3 IP²ãµÄ³¤¶È£¬¶Ôsk_buffer->data×÷ÏàÓ¦Î»ÒÆ¡£
2¡¢ L2²ãÐéÄâÉ豸½Ø°ü·¨
    Óë¾ßÌåÍø¿¨É豸Î޹أ¬Í¨¹ýregister_netdevice×¢²áÒ»¸önet_device½á¹¹£¬ÔÚÇý¶¯²ãÉÏÐéÄâÒ»¸öÉ豸½Úµã(ethx.y)£¬À´ÊµÏֽذü£¬Í¨¹ýÉèÖ÷ÓÉ£¬ÈÃÐèÒªÀ¹½ØµÄ±¨ÎÄͨ¹ý¸ÃÉ豸½Úµã·¢³ö£¬´Ó¶øÊµÏÖ¹ýÂË¡£
    ÕýÊÇÒòΪÐèÒª½áºÏ·ÓÉÀ´Ê¹Ó㬸÷½·¨ÏÔµÃÌØ±ðÓÅÑÅ£¬¶ÔÄ¿µÄIPµÄ¹ýÂËÉõÖÁÔÚ·ÓÉÉèÖÃÖоÍÒѾ­Íê³É£¬±ÜÃâÆäËûÎ޹ر¨ÎIJ»±ØÒªµÄÀ¹½ØÅжϡ£ÐéÄâÉ豸À¹½Øµ½µÄsk_bufferÒ²ÒѾ­»ù±¾³ÉÊìÁË£¬¿ÉÒÔ·½±ãµÄ¹ýÂË¡£
    ¿Éϧ·ð˵£¬Óŵ㼴ȱµã£¬ÕýÊÇÒòΪÐèÒª½áºÏ·ÓÉʹÓ㬸÷¨¶Ô½ÓÊÕ±¨ÎĵĹýÂ˺ÍÐÞ¸ÄÎÞÄÜΪÁ¦(Èç¹ûÀí½âÓÐÎó»¶Ó­Ö¸Õý)¡£
3¡¢ L3²ã×Ô¶¨ÒåЭÒ齨°ü·¨
    ÓÖÊǷdz£ÓÅÑŵÄ×ö·¨£¬Í¨¹ýdev_add_pack×¢²ápacket_type½á¹¹£¬¹Ò½ÓÉÏ×Ô¶¨ÒåЭÒéµÄÊÕ·¢Á÷³Ì£¬¾ÍËãLinuxÉý¼¶µ½3.0 4.0£¬¹À¼ÆÒ²ÄÜÇáÒ×µÄÒÆÖ²¡£
    ¿Éϧ¸Ã·½·¨Ö»ÄÜÀ¹½Ø½ÓÊյı¨ÎÄ£¬¶øÇÒÖ»ÄÜÀ¹½Ø¸ÃЭÒéµÄ±¨ÎÄ£¬¶àÓÃÓÚÕý¹æÐ­Ò鿪·¢£¬²»ÊÊÓÃÓÚһЩС¹¦ÄÜʵÏÖ¡£
4¡¢ L3²ãnetfilter½Ø°ü·¨
    netfilterÊÇlinuxÄÚºË×Ô´øµÄÕý¹æ·À»ðǽ£¬×ªÒ»¸önetfilter¹³×Ó·Ö²¼Í¼£º
 ¿ÉÒÔ·¢ÏÖ£¬netfilter¹³×ÓËäÈ»²»¶à£¬µ«ÊDZ鲼ЭÒéÕ»µÄ¸÷¸ö¹Ø¼ü·¾¶£¬Í¨¹ýÕâЩ¹³×ӾͿÉÒÔ»ù±¾ÊµÏÖ¶þ²ãÒÔÉϱ¨ÎĵĹýÂ˺Íɾ¸Ä¡£
5¡¢ Ó¦Óòãraw socket½Ø°ü·¨
    ԭʼÌ×½Ó×ÖÒ²Êdz£ÓõĽذü·½·¨£¬¿Éϧ¹¦ÄÜÓÐÏÞ¡£Äں˴¦ÀíµÄËùÓÐÆäËüÀàÐ͵ÄÊý¾Ý°ü¶¼»á´«Ò»¸ö¿½±´¸øÆ¥ÅäµÄԭʼÌ×½Ó×Ö£¬µ«ÊÇ·½±ã¼àÌýµÄͬʱÊÇÐÞ¸ÄÉϵÄÎÞÁ¦£¬ÒòΪµÃµ½µÄÊý¾Ý½ö½öÊǸö¿½±´¡£¶øÔ­Ê¼Ì


Ïà¹ØÎĵµ£º

Linux µÄ¶àÏ̱߳à³ÌµÄ¸ßЧ¿ª·¢¾­Ñé

2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾­Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......

linux emacs c (Ò»£©

²»À뿪EmacsÍê³É¼òµ¥C³ÌÐòµÄ±à¼­±àÒëÔËÐУ¨×ª£©
£¨1£©´ò¿ªEmacs£¬Ö´ÐÐ
$ emacs
£¨2£©½¨Á¢Ò»¸öеijÌÐòÎļþ. Ö´ÐÐ C-x C-f£¬
È»ºóÔÚÆÁÄ»µÄµ×²¿³öÏÖminibuffer£¬¹â±êÌáʾÄãÊäÈëÎļþÃû³Æ£¬
ÎļþÃû³ÆÒª´øÉϺó׺Ãû£¬Èçhello.cpp¡£»Ø³µ£¬È»ºó¿ªÊ¼±à¼­Ô´´úÂë¡£
£¨3£©±àÒë´úÂë¡£Ö´ÐÐEsc-x compile£¬³öÏÖminibuffer£¬ÌáʾÄãÊäÈ ......

LinuxÇý¶¯µÄ±àÒëÓë¼ÓÔØ

±àÒëºÍ¼ÓÔØ
±¾Õ¿ªÍ·µÄ "hello world" Àý×Ó°üº¬ÁËÒ»¸ö¼ò¶ÌµÄ½¨Á¢²¢¼ÓÔØÄ£¿éµ½ÏµÍ³ÖÐÈ¥µÄÑÝʾ. µ±È», Õû¸ö¹ý³Ì±ÈÎÒÃÇĿǰ¿´µ½µÄ¶à. ±¾½ÚÌṩÁ˸ü¶àϸ½Ú¹ØÓÚÒ»¸öÄ£¿é×÷ÕßÈçºÎ½«Ô´Âëת»»³ÉÄÚºËÖеÄÔËÐеÄ×Óϵͳ.
2.4.1. ±àÒëÄ£¿é
µÚÒ»²½, ÎÒÃÇÐèÒª¿´Ò»ÏÂÄ£¿éÈçºÎ±ØÐë±»½¨Á¢. Ä£¿éµÄ½¨Á¢¹ý³ÌÓëÓû§¿Õ¼äµÄÓ¦ÓóÌÐòµÄ½ ......

¹ØÓÚlinuxÄÚºËÖеÄ"__attribute__ ((packed))"

¹ØÓÚlinuxÄÚºËÖеÄ"__attribute__ ((packed))"  
À´Ô´£º
http://jimmy-lee.blog.hexun.com/8001013_d.html
__attrubte__ ((packed)) µÄ×÷ÓþÍÊǸæËß±àÒëÆ÷È¡Ïû½á¹¹ÔÚ±àÒë¹ý³ÌÖеÄÓÅ»¯¶ÔÆë,°´ÕÕʵ¼ÊÕ¼ÓÃ×Ö½ÚÊý½øÐÐ¶ÔÆë¡£
#define __u8    unsigned char
#define __u16   unsigned short ......

»ùÓÚLinuxµÄ±ãЯǶÈëʽÉ豸µçÔ´¹ÜÀí½â¾ö·½°¸

 Ç°¡¡ÑÔ
 
¡¡¡¡Ëæ×Ÿ÷ÖÖ±ãЯǶÈëʽÉ豸ÐÔÄܵÄÈÕÒæÌá¸ß£¬¹¦ÄÜÈÕÒæ·á¸»£¬ÆäµçÔ´½ôÕŵÄÎÊÌâÒ²ÈÕÒæÍ»³ö£¬¹úÄÚÐÂÍÆ³öµÄijЩ¾ßÓÐPDAµÈ¶àÖÖ¹¦ÄܵÄÖÇÄܵ绰ÔÚÃܼ¯Ê¹ÓÃÏÂÖ»ÄÜά³Ö°ëÌ죬¶àÊýÉãÏñ»ú
ºÍÊýÂëÏà»ú
ÔÚ
Ò»´Î³äµçºó¶¼Ö»ÓÐÒ»¸öСʱ×óÓÒµÄÀÛ»ý¹¤×÷ʱ¼ä¡£Linux×÷Ϊһ¸ö¿ª·ÅÔ´´úÂëµÄ²Ù×÷ϵͳ£¬ÓµÓзdz£·á¸»µÄÈí¼þ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ