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ÏÂÃæÈ¥Ñ¹ËõÎļþ»òÕßĿ¼¡£ÎÒÃǽ«Ñ§Ï°zip, tar, tar.gzºÍtar.bz2µÈѹËõ¸ñʽµÄ»ù±¾Ó÷¨¡£
zip¸ñʽÒѳÉΪѹËõÎļþµÄ±ê׼ѡÔñ£¬¶øÇÒËüÔÚwindowsÉÏÒ²ÄÜʹÓá£
¾³£ÓÃzip¸ñʽѹËõÄÇЩÐèÒª¹²Ïí¸øwindowsÓû§µÄÎļþ¡£
Èç¹ûÖ»Êǹ²Ïí¸ølinuxÓû§»òÕßMacÓû§£¬Æ«ÏòÓÚÑ¡Ôñtar.gz¸ñʽ¡£
ZIP
zip¿ÉÄÜÊÇĿǰʹÓõÃ×î¶àµÄÎĵµÑ¹ ......
¼ÇµÃÎÒÃÇÔÚÉÏÆªÎÄÕÂmem_init()·ÖÎöÖÐÌáµ½__free_page()º¯ÊýÂð£¿ÎÒÃÇÏÖÔÚÀ´ÍêÉÆËü¡£ËüµÄµ÷Óùý³ÌÊÇÕâÑùµÄ£ºmem_init()->free_all_bootmem_node():ÎÒÃÇÖªµÀÕâ¸öº¯ÊýÊÇͳ¼ÆÒ»¹²ÊÍ·ÅÁ˶àÉÙ¿ÕÏÐÒ³¡£->free_all_bootmem_core()¾ÍÊÇÔÚÕâ¸öº¯ÊýÀïÃæÏȺó¶à´Îµ÷ÓÃ__free_pages()º¯Êý¡£Ä¿µÄ¾ÍÊÇΪÁËÊÍ·Åÿ¸öÄÚ´ænodeÀïÃæÎ ......
Ò»¡¢×ܽáһϣº
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£¬¿ÉÒÔ¿¼ÂÇÓÃGTK(The GIMP Toolkit)À´×öGUI(Graphic User interface)¿ª·¢£¬¿ª·¢¹¤¾ß½¨ÒéʹÓÃanjuta + glade(Ã²ËÆeclipse+cdtÒ²¿ÉÒÔ)¡£
½¨Ò飺
Ò»¡¢ÏÈѧϰGTK+ 2.0±¾Éí£¬±ÈÈçÓÃvim+gcc+gdb+make+automake+autoconf...ÕâÑù¶Ô»ùÓÚGTKµÄͼÐοª·¢¹ý³Ì¾ÍÓÐÁË»ù±¾Á˽⣬ÒÔºóÓÃanjuata+glade×Ô¶¯Éú³É´úÂëµÄʱºòÈÝÒ×ÔĶÁºÍ· ......