Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

linux menuconfig

Linux 2.6.19.x Äں˱àÒëÅäÖÃÑ¡Ïî¼ò½é
×÷Õߣº½ð²½¹ú
°æÈ¨ÉùÃ÷
±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈÎºÎÆäËüÌõ¼þ¡£Äú¿ÉÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´«²¥´ËÎĵµ£¬ ......

LinuxϱàÒ붯̬¿â£¬¾²Ì¬¿â£¬ÒÔ¼°µ÷ÓÃ

so_test.h£º
#include
#include
void test_a();
void test_b();
void test_c();
test_a.c£º
#include "so_test.h"
void test_a()
{
printf("this is in test_a...\n");
}
test_b.c£º
#include "so_test.h"
void test_b()
{
printf("this is in test_b...\n");
......

linux³£ÓÃcº¯Êý ÎļþȨÏÞ¿ØÖÆÆª

access£¨ÅжÏÊÇ·ñ¾ßÓдæÈ¡ÎļþµÄȨÏÞ£©
¡¡¡¡Ïà¹Øº¯Êý  stat£¬open£¬chmod£¬chown£¬setuid£¬setgid
¡¡¡¡±íÍ·Îļþ  #include<unistd.h>
¡¡¡¡¶¨Ò庯Êý  int access(const char * pathname,int mode);
¡¡¡¡º¯Êý˵Ã÷  access()»á¼ì²éÊÇ·ñ¿ÉÒÔ¶Á/дijһÒÑ´æÔÚµÄÎļþ¡£²ÎÊýmodeÓм¸ÖÖÇé¿ö×éºÏ£¬R_OK ......

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

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