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

LinuxÖеÄ"Á㿽±´"ÆÊÎö

http://blog.chinaunix.net/u/9861/showart_1890675.html

LinuxÖеÄ"Á㿽±´"ÆÊÎö
Zero Copy I: User-Mode Perspective
Author By Dragan Stancevic
Translated By Love. Katherine

(½âÊÍLinuxÖеÄ"Á㿽±´"ÌØÐÔ£¬ÎªÊ²Ã´ÓÐÓÃÒÔ¼°ºÎ´¦ÐèÒª¸Ä½øÖ®´¦)

Èç½ñ¼¸ºõÿ¸öÈ˶¼Ìý˵¹ýLinuxÖÐËùνµÄ"Á㿽±´"ÌØÐÔ£¬È»¶øÎÒ¾­³£Åöµ½Ã»Óгä·ÖÀí½âÕâ¸ö
ÎÊÌâµÄÈËÃÇ¡£Òò´Ë£¬ÎÒ¾ö¶¨Ð´Ò»Ð©ÎÄÕÂÂÔ΢ÉîÈëµÄ½²ÊöÕâ¸öÎÊÌ⣬ϣÍûÄܽ«Õâ¸öÓÐÓõÄÌØ
ÐÔ½âÊÍÇå³þ¡£ÔÚ±¾ÎÄÖУ¬½«´ÓÓû§¿Õ¼äÓ¦ÓóÌÐòµÄ½Ç¶ÈÀ´²ûÊöÕâ¸öÎÊÌ⣬Òò´ËÓÐÒâºöÂÔÁË
¸´ÔÓµÄÄÚºËʵÏÖ¡£

ʲôÊÇ”Á㿽±´”

ΪÁ˸üºÃµÄÀí½âÎÊÌâµÄ½â¾ö·¨£¬ÎÒÃÇÊ×ÏÈÐèÒªÀí½âÎÊÌâ±¾Éí¡£Ê×ÏÈÎÒÃÇÒÔÒ»¸öÍøÂç·þÎñÊØ
»¤½ø³ÌΪÀý£¬¿¼ÂÇËüÔÚ½«´æ´¢ÔÚÎļþÖеÄÐÅϢͨ¹ýÍøÂç´«Ë͸ø¿Í»§ÕâÑùµÄ¼òµ¥¹ý³ÌÖУ¬Ëù
Éæ¼°µÄ²Ù×÷¡£ÏÂÃæÊÇÆäÖеIJ¿·Ö¼òµ¥´ú°¢£º

       read(file, tmp_buf, len);
       write(socket, tmp_buf, len);

¿´ÆðÀ´²»Äܸü¼òµ¥ÁË¡£ÄãÒ²ÐíÈÏΪִÐÐÕâÁ½¸öϵͳµ÷Óò¢Î´²úÉú¶àÉÙ¿ªÏú¡£Êµ¼ÊÉÏ£¬Õâ¼ò
Ö±´íµÄÒ»ËúºýÍ¿¡£ÔÚÖ´ÐÐÕâÁ½¸öϵͳµ÷ÓõĹý³ÌÖУ¬Ä¿±êÊý¾ÝÖÁÉÙ±»¸´ÖÆÁË4´Î£¬Í¬Ê±·¢Éú
ÁËͬÑù¶à´ÎÊýµÄÓû§/Äں˿ռäµÄÇл»(ʵ¼ÊÉϸùý³ÌÔ¶±È´Ë´¦ÃèÊöµÄÒª¸´ÔÓ£¬µ«ÊÇÎÒÏ£Íû
ÒÔ¼òµ¥µÄ·½Ê½ÃèÊöÖ®£¬ÒÔ¸üºÃµÄÀí½â±¾ÎĵÄÖ÷Ìâ)¡£

ΪÁ˸üºÃµÄÀí½âÕâÁ½¾ä´úÂëËùÉæ¼°µÄ²Ù×÷£¬Ç뿴ͼ1¡£Í¼µÄÉϰ벿չʾÁËÉÏÏÂÎÄÇл»£¬¶øÏÂ
°ë²¿Õ¹Ê¾Á˸´ÖƲÙ×÷¡£
Figure 1. Copying in Two Sample System Calls



²½ÖèÒ»£ºÏµÍ³µ÷ÓÃreadµ¼ÖÂÁË´ÓÓû§¿Õ¼äµ½Äں˿ռäµÄÉÏÏÂÎÄÇл»¡£DMAÄ£¿é´Ó´ÅÅÌÖжÁÈ¡
ÎļþÄÚÈÝ£¬²¢½«Æä´æ´¢ÔÚÄں˿ռäµÄ»º³åÇøÄÚ£¬Íê³ÉÁ˵Ú1´Î¸´ÖÆ¡£

²½Öè¶þ£ºÊý¾Ý´ÓÄں˿ռ仺³åÇø¸´ÖƵ½Óû§¿Õ¼ä»º³åÇø£¬Ö®ºóϵͳµ÷ÓÃread·µ»Ø£¬Õâµ¼ÖÂ
ÁË´ÓÄں˿ռäÏòÓû§¿Õ¼äµÄÉÏÏÂÎÄÇл»¡£´Ëʱ£¬ÐèÒªµÄÊý¾ÝÒÑ´æ·ÅÔÚÖ¸¶¨µÄÓû§¿Õ¼ä»º³å
ÇøÄÚ(²ÎÊýtmp_buf)£¬³ÌÐò¿ÉÒÔ¼ÌÐøÏÂÃæµÄ²Ù×÷¡£

²½ÖèÈý£ºÏµÍ³µ÷ÓÃwriteµ¼Ö´ÓÓû§¿Õ¼äµ½Äں˿ռäµÄÉÏÏÂÎÄÇл»¡£Êý¾Ý´ÓÓû§¿Õ¼ä»º³åÇø
±»Ôٴθ´ÖƵ½Äں˿ռ仺³åÇø£¬Íê³ÉÁ˵Ú3´Î¸´ÖÆ¡£²»¹ý£¬Õâ´ÎÊý¾Ý´æ·ÅÔÚÄں˿ռäÖÐÓëʹ
ÓõÄsocketÏà¹ØµÄÌØ¶¨»º³åÇøÖУ¬¶ø²»ÊDz½ÖèÒ»ÖеĻº³åÇø¡£

²½ÖèËÄ£ºÏµÍ³µ÷Ó÷µ»Ø£¬µ¼ÖÂÁ˵Ú4´ÎÉÏÏÂÎÄÇл»¡£µÚ4´Î¸´ÖÆÔÚDMAÄ£¿é½«Êý¾Ý´ÓÄں˿ռä
»º³åÇø´«µÝÖÁЭÒéÒýÇæµÄÊ


Ïà¹ØÎĵµ£º

Linux TCP/IP ЭÒéÕ»Ô´Âë·ÖÎö£¨Ò»£©

 ÕâÆªÎÄÕÂдÓÚÈýÄêǰ£¬µ±Ê±ÊÖÖÐÄÃ×ÅStevensµÄÈý±¾¾ÞÖø TCP v1/v2/v3 µÄÃþ²»×ÅÍ·ÄÔ£­ÒòΪËüÃÇÌ«ºñÁË¡£ÎÒÖªµÀÎÒ²»ÐèÒªÄÇô¶à£¬ÄÇôÏêϸ¡£ÓÚÊÇÓÐÁË×Ô¼º·ÖÎöÔ´´úÂëµÄÏë·¨......
        ÎÒ²»¶ÔÎÄÖеÄÄÚÈÝÌṩÈκα£Ö¤£¬µ«»¶Ó­ÓëÎÒÁªÏµÒԱ㲻¶ÏµÄÐÞ¸ÄËü£¬×îÖÕ¸øÐèÒªÖªµÀ¹ØÓÚLinux TCP/ ......

²éÕÒlinuxϵͳÖдóÎļþµÄ·½·¨

¿ÉÒÔÓÃÏÂÃæµÄÃüÁî²éÕÒµ½ÏµÍ³ÖÐÄÄÒ»¸öÎļþ¼ÐÓÐÎÊÌâÈ»ºóÖð²ã²é¿´¾Í¿ÉÒÔÕÒµ½ÊÇÄÄÒ»¸öÎļþÁË
ÃüÁîÊÇ
Ê×ÏÈÇл»µ½¸ùĿ¼
cd /
du -sh ./*
du -sh ./* | sort
È»ºóÕÒµ½×î´óµÄÎļþ¼Ð
Öð²ã¾Í¿ÉÒÔÕÒµ½ÊÇÄÄÒ»¸öÎļþ¼Ð×î´óÊÇ·ñÊÇÓÐÎÊÌâµÄ
Ò»°ãÕâÑù¾Í¿ÉÒÔÈ·¶¨Ä¿±êÎļþÊÇÄÄÒ»¸öÁË ......

LVS¹¹¼Ü¸ºÔؾùºâLinux¼¯ÈºÏµÍ³


 
       ±¾È˳õѧlinux£¬ÔÚÁìµ¼¶½´ÙºÍ¹¤×÷ѹÁ¦Ï£¬°´ÕÕǰÈ˲¿ÊðÊÖ²áºÍÇ¿´óËÑË÷ÒýÇæ°ïÖúÏ£¬ÓÃlvsºÍmonʵÏÖµÄnat¸ºÔؾùºâ£¬vsÊÇsuse 10.2£¬realserverÊÇwindows2003µÄIIS²¿Êð¡£
1 °²×°
1.1 ÍøÂçÍØÆËͼ
 
 
1.1 ¼ì²éÄÚºËÊÇ·ñÖ§³ÖlvsÑ¡Ïî
  &nbs ......

Linux Deamon(ÊØ»¤½ø³Ì)ʵÏÖ·½·¨

from: http://agiser.bokee.com/viewdiary.13976981.html
ÊØ»¤½ø³Ì£¨Daemon£©ÊÇÔËÐÐÔÚºǫ́µÄÒ»ÖÖÌØÊâ½ø³Ì¡£Ëü¶ÀÁ¢ÓÚ¿ØÖÆÖն˲¢ÇÒÖÜÆÚÐÔµØÖ´ÐÐijÖÖÈÎÎñ»òµÈ´ý´¦ÀíijЩ·¢ÉúµÄʼþ¡£ÊØ»¤½ø³ÌÊÇÒ»ÖÖºÜÓÐÓõĽø
³Ì¡£
LinuxµÄ´ó¶àÊý·þÎñÆ÷¾ÍÊÇÓÃÊØ»¤½ø³ÌʵÏֵġ£±ÈÈ磬Internet·þÎñÆ÷inetd£¬Web·þÎñÆ÷httpdµÈ¡£Í¬Ê±£¬ÊØ»¤½ø³ÌÍ ......

linux²Ù×÷ϵͳ³õʼ»¯¹ý³Ì

¸ÕѧÍêÕⲿ·Ö£¬»¹Ã»ÓÐÍêÈ«Àí½â£¬²»ÖªµÀ»á²»»áÓÐÈË¿´µ½£¬ºÜÏ£ÍûÄܺʹó¼ÒÒ»ÆðÌÖÂÛ¡£¿¿×Å×Ô¼ºµÄÀí½âдµÄ£¬²»ÖªµÀ»á²»»á³ö´í£¬O(∩_∩)O~
£¨Ò»£©linuxϵͳÒýµ¼¹ý³Ì:“Äں˴úÂë×°ÈëÄÚ´æÖ´ÐÐ--->³öÏÖ"login:"µÄ¹ý³Ì”
     IBM PcʹÓù̻¯ÔÚROMÖеÄbios³ÌÐòÀ´Æô¶¯³ÌÐò¡£¸Õ¿ª»úʱ£¬³ýÁËr ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ