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

LinuxÄÚºËNAPI»úÖÆ·ÖÎö

NAPI ÊÇ Linux ÉϲÉÓõÄÒ»ÖÖÌá¸ßÍøÂç´¦ÀíЧÂʵļ¼Êõ£¬ËüµÄºËÐĸÅÄî¾ÍÊDz»²ÉÓÃÖжϵķ½Ê½¶ÁÈ¡Êý¾Ý£¬¶ø´úÖ®ÒÔÊ×ÏȲÉÓÃÖжϻ½ÐÑÊý¾Ý½ÓÊյķþÎñ³ÌÐò£¬È»ºó POLL µÄ·½·¨À´ÂÖѯÊý¾Ý¡£Ëæ×ÅÍøÂçµÄ½ÓÊÕËٶȵÄÔö¼Ó£¬NIC ´¥·¢µÄÖжÏÄÜ×öµ½²»¶Ï¼õÉÙ£¬Ä¿Ç° NAPI ¼¼ÊõÒѾ­ÔÚÍø¿¨Çý¶¯²ãºÍÍøÂç²ãµÃµ½Á˹㷺µÄÓ¦Óã¬Çý¶¯²ã´ÎÉÏÒѾ­ÓÐ E1000 ϵÁÐÍø¿¨£¬RTL8139 ϵÁÐÍø¿¨£¬3c50X ϵÁеÈÖ÷Á÷µÄÍøÂçÊÊÅäÆ÷¶¼²ÉÓÃÁËÕâ¸ö¼¼Êõ£¬¶øÔÚÍøÂç²ã´ÎÉÏ£¬NAPI ¼¼ÊõÒѾ­ÍêÈ«±»Ó¦Óõ½ÁËÖøÃûµÄ netif_rx º¯ÊýÖм䣬²¢ÇÒÌṩÁËרÃÅµÄ POLL ·½·¨--process_backlog À´´¦ÀíÂÖѯµÄ·½·¨£»¸ù¾ÝʵÑéÊý¾Ý±íÃ÷²ÉÓÃNAPI¼¼Êõ¿ÉÒÔ´ó´ó¸ÄÉÆ¶Ì³¤¶ÈÊý¾Ý°ü½ÓÊÕµÄЧÂÊ£¬¼õÉÙÖжϴ¥·¢µÄʱ¼ä¡£
µ«ÊÇ NAPI ´æÔÚһЩ±È½ÏÑÏÖØµÄȱÏÝ£º
1£®              ¶ÔÓÚÉϲãµÄÓ¦ÓóÌÐò¶øÑÔ£¬ÏµÍ³²»ÄÜÔÚÿ¸öÊý¾Ý°ü½ÓÊÕµ½µÄʱºò¶¼¿ÉÒÔ¼°Ê±µØÈ¥´¦ÀíËü£¬¶øÇÒËæ×Å´«ÊäËÙ¶ÈÔö¼Ó£¬ÀۼƵÄÊý¾Ý°ü½«»áºÄ·Ñ´óÁ¿µÄÄڴ棬¾­¹ýʵÑé±íÃ÷ÔÚ Linux ƽ̨ÉÏÕâ¸öÎÊÌâ»á±ÈÔÚ FreeBSD ÉÏÒªÑÏÖØÒ»Ð©£»
2£®              ÁíÍâÒ»¸öÎÊÌâÊǶÔÓÚ´óµÄÊý¾Ý°ü´¦Àí±È½ÏÀ§ÄÑ£¬Ô­ÒòÊÇ´óµÄÊý¾Ý°ü´«Ë͵½ÍøÂç²ãÉϵÄʱºòºÄ·ÑµÄʱ¼ä±È¶ÌÊý¾Ý°ü³¤ºÜ¶à£¨¼´Ê¹ÊDzÉÓà DMA ·½Ê½£©£¬ËùÒÔÕýÈçÇ°ÃæËù˵µÄÄÇÑù£¬NAPI ¼¼ÊõÊÊÓÃÓÚ¶Ô¸ßËÙÂʵĶ̳¤¶ÈÊý¾Ý°üµÄ´¦Àí¡£
ʹÓà NAPI ÏȾöÌõ¼þ£º
Çý¶¯¿ÉÒÔ¼ÌÐøÊ¹ÓÃÀ쵀 2.4 Äں˵ÄÍøÂçÇý¶¯³ÌÐò½Ó¿Ú£¬NAPI µÄ¼ÓÈë²¢²»»áµ¼ÖÂÏòǰ¼æÈÝÐÔµÄɥʧ£¬µ«ÊÇ NAPI µÄʹÓÃÖÁÉÙÒªµÃµ½ÏÂÃæµÄ±£Ö¤£º
1.         ҪʹÓà DMA µÄ»·ÐÎÊäÈë¶ÓÁУ¨Ò²¾ÍÊÇ ring_dma£¬Õâ¸öÔÚ 2.4 Çý¶¯ÖйØÓÚ Ethernet µÄ²¿·ÖÓÐÏêϸµÄ½éÉÜ£©£¬»òÕßÊÇÓÐ×ã¹»µÄÄÚ´æ¿Õ¼ä»º´æÇý¶¯»ñµÃµÄ°ü¡£
2.         ÔÚ·¢ËÍ/½ÓÊÕÊý¾Ý°ü²úÉúÖжϵÄʱºòÓÐÄÜÁ¦¹Ø¶Ï NIC ÖжϵÄʼþ´¦Àí£¬²¢ÇÒÔÚ¹Ø¶Ï NIC ÒԺ󣬲¢²»Ó°ÏìÊý¾Ý°ü½ÓÊÕµ½ÍøÂçÉ豸µÄ»·Ðλº³åÇø£¨ÒÔϼò³Æ rx-ring£©´¦Àí¶ÓÁÐÖС£
NAPI ¶ÔÊý¾Ý°üµ½´ïµÄʼþµÄ´¦Àí²ÉÓÃÂÖѯ·½·¨£¬ÔÚÊý¾Ý°ü´ïµ½µÄʱºò£¬NAPI ¾Í»áÇ¿ÖÆÖ´ÐÐdev->poll ·½·¨¡£¶øºÍ²»ÏñÒÔǰµÄÇý¶¯ÄÇÑùΪÁ˼õÉÙ°üµ½´ïʱ¼äµÄ´¦ÀíÑÓ³Ù£¬Í¨³£²ÉÓÃÖжϵķ½·¨À´½øÐС£
E1000Íø¿¨Çý¶¯³ÌÐò¶ÔNAPIµÄÖ§³Ö£º
ÉÏÃæÒѾ­½éÉܹýÁË£¬Ê¹ÓÃNAPIÐèÒªÔÚ±àÒëÄں˵ÄʱºòÑ¡


Ïà¹ØÎĵµ£º

Linux¸ºÔؾùºâ

http://www.askwan.com/post/28/
haproxy+keepalived
LinuxÆóÒµ¼¯Èº
http://book.51cto.com/art/200806/76015.htm#
µÚÒ»²½:rsyncͬ²½webÊý¾Ý£¨²âÊÔͨ¹ý²¢ÇÒ×Ô¼º¼ÓÈëÁËsshµÄRSA keyÑéÖ¤£©
http://www.linuxsir.org/main/?q=node/256   rsync ·þÎñÆ÷¼ÜÉè·½·¨ v0.1b £¨ÕýÔÚÐÞ¶©ÖУ©
µÚ¶þ²½:°²×°heartbeat²¢ÇÒ¿ ......

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×ÀÃæMeeGo 1.0·¢²¼






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
    ´ó¼ÒÖªµÀ£¬
MeeGo
×ÀÃæµÄ×î´óÌØµãÊÇʹÓÃ×ÔÓÉ£¨
free
use
£©£¬²»ÂÛÄãÔÚʲôµØ·½£¨Ê²Ã´¹ú¼Ò£©£¬Ò²²»ÂÛÄãÏëÓÃËü¸ÉʲôÊÂÇé¡£ÄÇô£¬
MeeGo
ÊDz»ÊÇÀ¬»ø´úÂëÄØ£¿µ±È»²»ÊÇ¡£ ......

linux¿ª»ú×Ô¶¯ÔËÐÐÉèÖÃ

ÔÚÍøÉÏ¿´µ½ÓÐÈË×ܽáµÃ²»´í
1£®¿ª»úÆô¶¯Ê±×Ô¶¯ÔËÐгÌÐò 
Linux
¼ÓÔØºó, Ëü½«³õʼ»¯Ó²¼þºÍÉ豸Çý¶¯, È»ºóÔËÐеÚÒ»¸ö½ø³Ìinit¡£init¸ù¾ÝÅäÖÃÎļþ¼ÌÐøÒýµ¼¹ý³Ì£¬Æô¶¯ÆäËü½ø³Ì¡£Í¨³£Çé¿öÏ£¬Ð޸ķÅÖÃ
ÔÚ /etc/rc»ò /etc/rc.d »ò /etc/rc?.d Ä¿Â¼ÏµĽű¾Îļþ£¬¿ÉÒÔʹinit×Ô¶¯Æô¶¯Æ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ