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 Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......
ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c multiple thread p ......
ϵͳÖеĽ©Ê¬½ø³Ì¶¼ÒªÓÉwaitϵͳµ÷ÓÃÀ´»ØÊÕ£¬ÏÂÃæ¾Íͨ¹ýʵս¿´Ò»¿´waitµÄ¾ßÌåÓ÷¨£º
waitµÄº¯ÊýÔÐÍÊÇ£º
#include <sys/types.h> /* ÌṩÀàÐÍpid_tµÄ¶¨Òå */
#include <sys/wait.h>
pid_t wait(int *status);
½ø³ÌÒ»µ©µ÷ÓÃÁËwait£¬¾ÍÁ¢¼´×èÈû×Ô¼º£¬ÓÉwait×Ô¶¯·ÖÎöÊÇ·ñµ±Ç°½ø³ÌµÄij¸ö×Ó½ø³ÌÒѾÍ˳ö£¬Èç¹ûÈ ......
ÍøÉÏ¿´µ½µ½µÄ·½·¨£¬¼Ç¼ÒÔ±¸Óá£
ÔÚÓ¢ÎÄLocaleϵÄUbuntu
ÎÞ·¨Õý³£ÏÔʾXPÏÂGBK±àÂëµÄÖÐÎÄ
±à¼/etc/environmentÎļþ
Ìí¼ÓLC_CTYPE="zh_CN.GBK"Ò»ÐÐ
ÈçÏÂ:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
LANG="en_US.UTF-8"
LANGU ......