Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 iptableÎĵµ

×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

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

Èý¿î Linux ϵÄÃâ·Ñ×ÀÃæ¼¶É±¶¾Èí¼þ(ͼ)


ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......

linux¹²ÏíÄÚ´æÊ¹ÓÃʵÀý

Èý¸öÎļþ£¬Ò»¸öÍ·Îļþ£¬Ò»¸ö¶Á£¬Ò»¸öд£¬ÓÃͬһ¸ökeyÖµÉêÇë¹²ÏíÄÚ´æ¡£
//shm.h
#ifndef _SHM_COM_H
#define _SHM_COM_H 1
#define TEXT_SZ 2048
struct shared_use_at
{
    int written_by_you;
    char some_text[TEXT_SZ];
};
struct kts
{
 int power;
 int mod ......

LinuxÖеÄwaitϵͳµ÷ÓÃ

ϵͳÖеĽ©Ê¬½ø³Ì¶¼ÒªÓÉwaitϵͳµ÷ÓÃÀ´»ØÊÕ£¬ÏÂÃæ¾Íͨ¹ýʵս¿´Ò»¿´waitµÄ¾ßÌåÓ÷¨£º
waitµÄº¯ÊýÔ­ÐÍÊÇ£º
#include <sys/types.h> /* ÌṩÀàÐÍpid_tµÄ¶¨Òå */
#include <sys/wait.h>
pid_t wait(int *status);
½ø³ÌÒ»µ©µ÷ÓÃÁËwait£¬¾ÍÁ¢¼´×èÈû×Ô¼º£¬ÓÉwait×Ô¶¯·ÖÎöÊÇ·ñµ±Ç°½ø³ÌµÄij¸ö×Ó½ø³ÌÒѾ­Í˳ö£¬Èç¹ûÈ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ