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

Virtio£ºÕë¶Ô Linux µÄ I/O ÐéÄ⻯¿ò¼Ü

¸Å¶øÑÔÖ®£¬virtio
ÊǰëÐéÄ⻯ hypervisor ÖÐλÓÚÉ豸֮ÉϵijéÏó²ã¡£virtio
ÓÉ Rusty Russell ¿ª·¢£¬Ëûµ±Ê±µÄÄ¿µÄÊÇÖ§³Ö×Ô¼ºµÄÐéÄ⻯½â¾ö·½°¸ lguest
¡£±¾ÎÄÔÚ¿ªÆªÊ±½éÉܰëÐéÄ⻯ºÍÄ£ÄâÉ豸£¬È»ºó̽Ë÷ virtio
µÄϸ½Ú¡£±¾ÎĵÄÖØµãÊÇÀ´×Ô 2.6.30 Äں˷¢ÐаæµÄ virtio
¿ò¼Ü¡£
Linux ÊÇ hypervisor չ̨¡£ÈçÎÒµÄ ÆÊÎö Linux hypervisor
ËùÊö£¬Linux Ìṩ¸÷ÖÖ hypervisor ½â¾ö·½°¸£¬ÕâЩ½â¾ö·½°¸¶¼ÓÐ×Ô¼ºµÄÌØµãºÍÓŵ㡣ÕâЩ½â¾ö·½°¸°üÀ¨ Kernel-based Virtual Machine (KVM)¡¢lguest
ºÍ User-mode Linux µÈ¡£ÔÚ Linux ÉÏÅ䱸ÕâЩ²»Í¬µÄ hypervisor ½â¾ö·½°¸»á¸ø²Ù×÷ϵͳ´øÀ´¸ºµ££¬¸ºµ£µÄ´óСȡ¾öÓÚ¸÷¸ö½â¾ö·½°¸µÄÐèÇ󡣯äÖеÄÒ»ÏÏúΪÉ豸µÄÐéÄ⻯¡£virtio
²¢Ã»ÓÐÌṩ¶àÖÖÉ豸ģÄâ»úÖÆ£¨Õë¶ÔÍøÂç¡¢¿éºÍÆäËûÇý¶¯³ÌÐò£©£¬¶øÊÇΪÕâЩÉ豸ģÄâÌṩһ¸öͨÓõÄǰ¶Ë£¬´Ó¶ø±ê×¼»¯½Ó¿ÚºÍÔö¼Ó´úÂëµÄ¿çÆ½Ì¨ÖØÓá£
ÍêÈ«ÐéÄ⻯ºÍ°ëÐéÄ⻯
¼ÓÈë My developerWorks ÉϵÄÂÌɫС×é
ÔÚ My developerWorks É쵀 GReen IT Report ¿Õ¼ä
ºÍ ÂÌÉ«¼ÆËãС×é
ÉÏÌÖÂÛ¹ØÓÚÄÜÔ´¡¢Ð§Âʺͻ·¾³µÄÖ÷Ìâ²¢¹²Ïí×ÊÔ´¡£
ÈÃÎÒÃÇ¿ìËÙÌÖÂÛÒ»ÏÂÁ½ÖÖÀàÐÍÍêÈ«²»Í¬µÄÐéÄ⻯ģʽ£ºÍêÈ«ÐéÄ⻯ºÍ°ëÐéÄ⻯¡£ÔÚÍêÈ«ÐéÄ⻯
ÖУ¬À´±ö²Ù×÷ϵͳÔËÐÐÔÚλÓÚÎïÀí»úÆ÷É쵀 hypervisor Ö®ÉÏ¡£À´±ö²Ù×÷ϵͳ²¢²»ÖªµÀËüÒѱ»ÐéÄ⻯£¬²¢ÇÒ²»ÐèÒªÈκθü¸Ä¾Í¿ÉÒÔÔÚ¸ÃÅäÖÃϹ¤×÷¡£Ïà·´£¬ÔÚ°ëÐéÄ⻯
ÖУ¬À´±ö²Ù×÷ϵͳ²»½öÖªµÀËüÔËÐÐÔÚ hypervisor Ö®ÉÏ£¬»¹°üº¬ÈÃÀ´±ö²Ù×÷ϵͳ¸ü¸ßЧµØ¹ý¶Éµ½ hypervisor µÄ´úÂ루¼û ͼ 1
£©¡£
ÔÚ
ÍêÈ«ÐéÄ⻯ģʽÖУ¬hypervisor
±ØÐëÄ£ÄâÉ豸Ӳ¼þ£¬ËüÊÇÔڻỰµÄ×îµÍ¼¶±ð½øÐÐÄ£ÄâµÄ£¨ÀýÈç£¬ÍøÂçÇý¶¯³ÌÐò£©¡£¾¡¹ÜÔڸóéÏóÖÐÄ£ÄâºÜ¸É¾»£¬µ«ËüͬʱҲÊÇ×îµÍЧ¡¢×Ôӵġ£ÔÚ°ëÐéÄ⻯ģʽ
ÖУ¬À´±ö²Ù×÷ϵͳºÍ hypervisor Äܹ»¹²Í¬ºÏ×÷£¬ÈÃÄ£Äâ¸ü¼Ó¸ßЧ¡£°ëÐéÄ⻯·½·¨µÄȱµãÊDzÙ×÷ϵͳ֪µÀËü±»ÐéÄ⻯£¬²¢ÇÒÐèÒªÐ޸IJÅÄܹ¤×÷¡£


ͼ 1. ÔÚÍêÈ«ÐéÄ⻯ºÍ°ëÐéÄ⻯»·¾³ÏµÄÉ豸ģÄâ

Ó²¼þËæ×ÅÐéÄ⻯¼¼Êõ¶ø²»¶Ï¸Ä±ä¡£ÐµĴ¦ÀíÆ÷ͨ¹ýÄÉÈë¸ß¼¶Ö¸ÁîÀ´ÈÃÀ´±ö²Ù×÷ϵͳµ½ hypervisor µÄ¹ý¶É¸ü¼Ó¸ßЧ¡£´ËÍ⣬Ӳ¼þÒ²Ëæ×ÅÊäÈë/Êä³ö£¨I/O£©ÐéÄ⻯¶ø²»¶Ï¸Ä±ä£¨²Î¼û ²Î¿¼×ÊÁÏ
Á˽â Peripheral Controller Interconnect [PCI] passthrough ºÍ single- and
multi-root I/O ÐéÄ⻯£©¡£
virtio µÄÌæ»»Õß
virtio
²¢²»ÊǸÃÁìÓòÖеÄΨһ°ÔÖ÷¡£Xen Ìṩ°ë


Ïà¹ØÎĵµ£º

¡¾linux¡¿c++ ÄÚ´æ¹ÜÀí£¨¶þ£©

3. Ö¸ÕëÓëÊý×éµÄ±È½Ï
²»Í¬µã£º
      Êý×飺ҪôÔÚ¾ªÌì´æ´¢ÇøÓò±»´´½¨£¨ÈçÈ«¾ÖÊý×飩£¬ÒªÃ´ÔÚÕ»Éϱ»´´½¨¡£Êý×éÃû¶ÔÓ¦×Å£¨¶ø²»ÊÇÖ¸Ïò£©Ò»¿éÄڴ棬ÆäµØÖ·ÓëÈÝÁ¿ÔÚÉúÃüÖÜÆÚÄÚ±£³Ö²»±ä£¬Ö»ÓÐÊý×éµÄÄÚÈÝ¿ÉÒԸı䡣
Ö¸Õ룺¿ÉÒÔËæÊ±Ö¸ÏòÈÎÒâÀàÐ͵ÄÄÚ´æ¿é£¬ËüµÄÌØÕ÷ÊÇ“¿É±ä”£¬ËùÒÔÎÒÃdz£Óà ......

ÓÃSource Insight½¨Á¢Ò»¸öLinuxÄں˴úÂ빤³Ì


¾ßÌå²½ÖèÈçÏ£º
£¨Ò»£©´ò¿ªSource Insight£¬µ¥»÷¡¾ÏîÄ¿¡¿°´Å¥£¬µ¯³öÏÂÀ­²Ëµ¥¡£
£¨¶þ£©µ¥»÷¡¾ÐÂÏîÄ¿¡¿°´Å¥£¬µ¯³ö¡¾ÐÂÏîÄ¿¡¿¶Ô»°¿ò£¬ÊäÈëÏîÄ¿ÃûºÍ´æ·Å·¾¶£¬µ¥»÷¡¾È·¶¨¡¿°´Å¥¡£Èçͼ1Ëùʾ¡£
 
ͼ1 ÐÂÏîÄ¿¶Ô»°¿ò
ÎÄÕÂÀ´Ô´£ºhttp://top-e.org/jiaoshi/html/539.html
£¨Èý£©µ¯³ö¡¾Ìí¼Óɾ³ýÎļþ¡¿¶Ô»°¿ò£¬ÔÚÄÚºËÔ´´ú ......

LinuxÄں˱àÂëʰ½õ

1.Ò»ÖÖ¶¨Ò庯ÊýÖ¸ÕëµÄ·½·¨
<linux/proc_fs.h>
typedef int (read_proc_t)(char *page, char **start, off_t offset, int count, int *eof, void *data);
read_proc_t *proc_read;
    ÕâÖÖ¶¨Òå·½·¨ÓÐÒ»¸öÓÅÊÆ¾ÍÊÇ£¬¼´Ê¹ÄãûÓп´µ½read_proc_tµÄ¶¨Ò壬ҲÄܹ»Çå³þµÄÖªµÀproc_readÊÇÒ»¸öÖ¸Õ룬ÈçÏÂÃæ ......

LinuxϵͳÏÂMySQLÏà¹ØÃüÁî


Ò»¡¢×ܽáһϣº
1.LinuxϵͳÏÂÆô¶¯MySQLµÄÃüÁ
mysqladmin start
/etc/init.d/mysql start (Ç°ÃæÎªmysqlµÄ°²×°Â·¾¶)
2.linuxÏÂÖØÆômysqlµÄÃüÁ
mysqladmin restart
/etc/init.d/mysql restart (Ç°ÃæÎªmysqlµÄ°²×°Â·¾¶)
3.linuxϹرÕmysqlµÄÃüÁ
mysqladmin shutdown
/etc/init.d/mysql   shutd ......

linux Çý¶¯mmap²Ù×÷


Èý¡¢VMAºÍPAGE½á¹¹ ºÍmmapº¯Êý
 
1.page  Ö÷Òª³ÉÔ±
   atomic_t count; 
//Õâ¸öÒ³µÄÒýÓÃÊý. µ±Õâ¸ö count µôµ½ 0, ÕâÒ³±»·µ»Ø¸ø¿ÕÏÐÁбí.
void *virtual; 
//Èç¹ûÒ³±»Ó³É䣬Ôò±íʾÕâÒ³µÄÄÚºËÐéÄâµØÖ·; ·ñÔò, NULL.
unsigned long flags; 
//ÃèÊöҳ״̬µÄÒ»Ì×λ±êÖ¾. ÕâЩ°üÀ¨ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ