ÕÒÂÛÎÄÍø > ¼ÆËã»úÂÛÎÄ > ¼ÆËã»úÀíÂÛ >

Ò»ÖÖʵÏÖǶÈëʽLinuxµÄз½·¨(1)

ÕªÒª ÔÚLinuxÖлáÓöµ½ÓÉÓÚÎļþϵͳË𻵣¬ÐèÒªÈ˹¤ÐÞ¸´¶øµ¼ÖÂϵͳÎÞ·¨Õý³£Æô¶¯µÄÏÖÏó¡£±¾ÎIJÉÓÃLinux³õʼ»¯ÄÚ´æÅÌ£¨INITRD£©¼¼Êõ£¬²¢°ÑÄÚ´æµÄÒ»²¿·Ö×÷ΪLinuxµÄ¸ùĿ¼£¬Ã¿´ÎÆô¶¯°ÑÍêÕûµÄÎļþϵͳ½âѹµ½ÕâÀ±ÜÃâÁËϵͳ´ÓË𻵵ÄÎļþϵͳÆô¶¯¡£Õâ²»½öʹϵͳÄÜÕý³£Æô¶¯£¬¶øÇÒÌá¸ßÁËϵͳÐÔÄÜ¡£

¹Ø¼ü´Ê Linux ǶÈëʽ INITRD ramdisk

¡¾Abstract¡¿In course of building embedded Linux, the system will not start because of the bad filesystem . The paper describes a new method, which adopts INITial Ramdisk Disk and assigns part of memories as root directory of Linux. It avoids startup from a bad filesystem because it uncompresses integral filesystem to ramdisk every time. With this method, the system can not only start normally, but also it¡¯s performance is very good.

¡¾Keyword¡¿Linux embedded INITRD ramdisk

ÒýÑÔ
ÔÚLinux²Ù×÷ϵͳÖУ¬ÓÐÒ»ÏîÌØÊâµÄ¹¦ÄÜ¡ª¡ª³õʼ»¯ÄÚ´æÅÌINITRD£¨INITial Ram Disk£©¼¼Êõ£¬¶øÇÒÄÚºËÖ§³ÖѹËõµÄÎļþϵͳӳÏñ¡£ÓÐÁËÕâÁ½ÏÄÜ£¬ÎÒÃÇ¿ÉÒÔÈÃLinuxϵͳ´ÓСµÄ³õʼ»¯ÄÚ´æÅÌÆô¶¯£¬²¢°ÑϵͳÄÚ´æµÄÒ»²¿·Ö×÷Ϊ¸ùÎļþϵͳ¹ÒÔØ£¬¶øÇÒ²»Ê¹Óý»»»·ÖÇø£¨Èç¹û²»ÔËÐÐX WindowsÕâÊÇÍêÈ«¿ÉÒԵģ©£¬¼´°ÑLinuxϵͳÍêȫǶÈëµ½ÄÚ´æÖÐ,¶ø²»ÒÀÀµÓÚÈÎºÎÆäËûÓ²ÅÌ¡£ÏÖÔÚPC»úÄÚ´æÖÁÉÙ128M£¬¶ø¸ùÎļþϵͳËùÓõÄÖ»ÓÐ30M£¬Òò´Ë²»½ö²»»áʹÕû»úÐÔÄÜϽµ£¬·´¶øÓкܴóµÄÌá¸ß¡£
ÓÉÓÚϵͳ²»¹¤×÷ÔÚÓ²ÅÌÉÏ£¬ËùÒÔϵͳÏû³ýÁËÓÉÓÚ»úеÇý¶¯¶øµ¼Ö嵀 ÎÊÌâ £»ÒòΪϵͳÔËÐÐÓÚÄÚ´æÖУ¬¸ùÎļþϵͳºÍ²Ù×÷ÍêÈ«ÔÚCPU/RAM»·¾³Ï£¬ÏµÍ³ÐÔÄÜÔÚËٶȺͿɿ¿ÐÔ·½Ãæ·Ç³£ºÃ£»Ëü²»»áÓÉÓÚ·Ç·¨¹Ø»ú¶øÆÆ»µÎļþϵͳ£¬ÒòΪÎÒÃÇÿһ´ÎÆô¶¯ÊǰÑѹËõµÄÎļþϵͳ½âѹÖÁÄÚ´æÅÌÖÐ×÷Ϊ¸ùÎļþϵͳ¹ÒÔØ¡£
1 Ó²¼þÒªÇó
¶ÔÓÚÕâÑùÒ»¸öϵͳ£¬Ó²¼þ²»ÐèÒªÌØ±ðµÄÉè¼Æ£¬Ö»ÊÇͨ¹ýÆÕͨµÄPC»úÉϵÄ×é¼þʵÏÖ¡£ÖµµÃÒ»ÌáÊÇϵͳµÄÄÚ´æµÄ´óС£¬ËüÖÁÉÙÓ¦¸ÃÓÐ64M¡£ÒòΪ30M×÷ΪRamdiskʹÓã¬Ê£ÏÂ30¶àÕ××÷ΪϵͳÔËÐУ¬²ÅÄܱ£Ö¤ÏµÍ³µÄÕý³£¹¤×÷£¬ÎÒÃÇÏÖÔÚµÄ ¼ÆËã »úÄÚ´æÒ»°ãΪ128M£¬Õâ¸öÌõ¼þ¶¼ÄÜÂú×ã¡£Î¨Ò»ÌØ±ðµÄÊÇÒ»¸öflashÅÌ £¬ËüÏ൱ÓÚÒ»¸öIDE½Ó¿ÚµÄÓ²ÅÌ£¬´óСΪ20M£¬Ö÷ÒªÓÃËü×÷ΪÆô¶¯LILOºÍ·ÅÖøùÎļþϵͳѹËõ°ü¡£
2 RamdiskµÄʹÓÃ
Ramdisk¾ÍÊǽ«ÄÚ´æµÄÒ»²¿·Ö·ÖÅäΪһ¸ö·ÖÇø²¢×÷ΪӲÅÌÀ´Ê¹Ó᣶ÔÓÚϵͳÔËÐÐʱ²»¶ÏʹÓõijÌÐò£¬½«ËüÃÇ·ÅÔÚRamdiskÖн«¼Ó¿ì¼ÆËã»úµÄ²Ù×÷£¬Èç´óÊý¾ÝÁ¿µÄ ÍøÂç ·þÎñÆ÷¡¢ÎÞÅ̹¤×÷Õ¾µÈ¡£ÎªÁËÄܹ»Ê¹ÓÃRamdisk£¬ÎÒÃÇÔÚ±àÒëÄÚºËʱÐ뽫block deviceÖеÄRamdiskÖ§³ÖÑ¡ÉÏ£¬ËüÏÂÃæ»¹ÓÐÁ½¸öÑ¡Ïһ¸öÊÇÉ趨RamdiskµÄ´óС£¬Ä¬ÈÏÊÇ4096k£»ÁíÒ»¸öÊÇinitrdµÄÖ§³Ö¡£Ëü¼È¿ÉÒÔÖ±½Ó±àÒë½øÄںˣ¬Ò²¿ÉÒÔ±àÒë³ÉÄ£¿é£¬ÔÚÐèÒªµÄʱºò¼ÓÔØ¡£ÎÒÃÇÓÉÓÚÔÚÆô¶¯Ê±¾ÍÓÃËü£¬ËùÒÔ±ØÐ뽫ËüÖ±½Ó±àÒë½øÄںˡ£
Èç¹û¶ÔRamdiskµÄÖ§³ÖÒѾ­±àÒë½øÄںˣ¬ÎÒÃǾͿÉÒÔʹÓÃËüÁË¡£Ê×ÏÈÔÚ/mntĿ¼Ï´´½¨Ä¿Â¼ram£¬ÔËÐÐmkdir /mnt/ram£»È»ºó¶Ô/dev/ram0´´½¨Îļþϵͳ£¬ÔËÐÐmke2fs /dev/ram£»×îºó¹ÒÔØÉÏ/dev/ram£¬ÔËÐÐmount /dev/ram /mnt/ram£¬¾Í¿ÉÒÔÏó¶ÔÆÕͨӲÅÌÒ»Ñù¶ÔËü½øÐвÙ×÷ÁË¡£ÖµµÃ×¢ÒâµÄÊÇ£¬ÔÚ´´½¨ÎļþϵͳµÄʱºò£¬ÔÚÆÁÄ»ÉÏÊä³ö1024 inodes £¬4096 blocks£¬¼´ramdisk´óСΪ4M£½4096¸ö¿é£¬µ«ÊÇÎÒÃǹÒÔØÉÏÖ®ºó£¬ÓÃÃüÁîdf ¨Ck /dev/ram²é¿´Ê±£¬ÏÔʾ³öÀ´ramdisk´óСֻÓÐ3963K£¬ÕâÊÇÓÉÓÚÎļþϵͳ±¾ÉíÕ¼ÓÃÁËһЩ¿Õ¼ä¡£
ÎÒÃÇÄܸù¾ÝÐèÒª¸Ä±äramdiskµØ´óС¡£ÈçÎÒÃÇÒª°ÑĬÈϵÄ4MÔö´óµ½10M£¬µ±ramdiskÊÇÖ±½Ó±àÒë½øÄں˵ÄÇé¿öÏ£¬¿ÉÔÚLILOÅäÖÃÎļþlilo.confÖмÓÈëÒ»ÐУºappend£½¡°ramdis_size=10000¡±,ÔËÐÐLILOºó£¬ÖØÆô¼ÆËã»úºó£¬ramdisk´óС±äΪ10M£¬»òÕßÔÚÆô¶¯ÊÇ×÷ΪÆô¶¯ÐвÎÊýramdis_size=10000£»µ±ramdiskÊÇ×÷Ϊ¿É¼ÓÔØÄ£¿é±àÒëʱ£¬ÐèÒªÔÚÄ£¿é¼ÓÔØÅäÖÃÎļþ/etc/modules.confÖмÓÈëÒ»ÐУºoptions rd rd_size=10000,»òÕßÔÚ¼ÓÔØrdÄ£¿éÊÇÔÚºóÃæ¼ÓÉÏ˵Ã÷,¼´insmod rd rd_size=10000.
3 ʵÏÖ¹ý³Ì
3.1´´½¨Ñ¹ËõµÄÎļþϵͳ
   ÎÒÃǵÄʵÏÖ¹ý³ÌÊÇÒÀÀµÓÚ´æÔÚµÄLinuxϵͳ¡£Ê×ÏÈÆô¶¯Ò»°ãµÄLinuxϵͳ£¬ÔÚÕâ¸öϵͳÖиù¾Ý×Ô¼ºµÄÐèÒª£¬´´½¨Ò»¸öÊʺϹ¦ÄܵÄÎļþϵͳ¡£ÀýÈçÎÒÃÇҪʵÏÖApacheÍøÂç·þÎñÆ÷£¬ÄÇôֻҪ°ÑÍê³ÉϵͳÆô¶¯ºÍ»ù±¾Î¬»¤ÐèÒªµÄһЩÃüÁî¡¢½Å±¾¡¢ÅäÖÃÎļþºÍ¿âº¯ÊýÁôÏ£¬ÔÙ¼ÓÉÏʵÏÖApache·þÎñÆ÷ËùÐèÒªµÄ¡£¾ßÌå¹ý³ÌΪ£º
ÔÚLinuxϽ¨Á¢Ä¿Â¼/minlinux,ÎÒÃÇÔÚ´ËĿ¼Ï´´½¨µÄÎļþϵͳ¡£ÏµÍ³µÄËùÓо²Ì¬Á´½Ó¿â£¬°ïÖúÊֲᣨman pages£©£¬ÐÅÏ¢Ò³£¨info pages£©£¬Í·Îļþ£¬ÄÚºËÔ´Âë¶ÔÓÚϵͳÔËÐÐÊÇÍêÈ«ÎÞÓõģ¬ËùÒÔ²»ÐèÒªËüÃÇ¡£ÔÚĿ¼binÏ·Åϵͳά»¤µÄһЩ»ù±¾¹¤¾ß£¬Èçls¡¢mv¡¢grep¡¢chown¡¢chmod¡¢chgrp¡¢ln¡¢rmµÈ£»ÔÚsbinÏÂÊÇϵͳÆô¶¯¹ý³Ìͨ³£ÐèÒªµÄÃüÁÈçbash¡¢e2fsck¡¢mke2fs¡¢fdisk¡¢insmod¡¢rmmod¡¢depmod¡¢modprobe¡¢lsmod¡¢shutdown¡¢reboot¡¢login¡¢init¡¢getty¡¢mount¡¢umount¡¢µÈ£»usr/binÏ·ÅÖÃApache Ó¦Óà ³ÌÐòhttpºÍÆäËûÒ»Ð©ÌØÊ⹤¾ß¡£È»ºó¸ù¾ÝÕâЩ¿ÉÖ´ÐÐÎļþÐèÒªµÄ¶¯Ì¬Á´½Ó¿âÀ´È·¶¨libĿ¼Ï嵀 ÄÚÈÝ ¡£µ±È»Ä¿Â¼etcϵÄÅäÖÃÎļþ£¬devϵÄÉ豸ÎļþÐèÒªµÄ¶¼±ØÐëÒªÓУ¬ËüÃǶ¼ÊǺͿÉÖ´ÐÐÎļþ¶ÔÓ¦µÄ£¬ÒòΪÐí¶à¿ÉÖ´ÐÐÎļþÖ´ÐÐʱ£¬Ò»°ãÊÇ´ò¿ªÉ豸£¬¸ù¾ÝÅäÖÃÎļþÀ´ÔËÐС£ÓÐÒ»¸öÌØÊâµÄĿ¼procÓ¦¸ÃÉèÖã¬ÔÚÄں˱àÒëÑ¡ÏîÎļþϵͳѡÔñÖУ¬ÎÒÃÇÑ¡Ôñ¶ÔÎļþϵͳprocµÄÖ§³Ö£¬ÄÇôÔÚϵͳÔËÐÐÖ®ºóËüÏÂÃæÓÐÐí¶àÄÚÈÝ£¬ÕâЩÄÚÈÝÊÇʵʱ¡¢²»¶Ï¸ú×ÙϵͳÄں˺ÍÕýÔÚÔËÐеĽø³ÌµÄ״̬¶ø²úÉúµÄ£¬µ«²»Õ¼ÓÃÈκδÅÅ̿ռ䣬¶øÊÇפÁôÔÚÄÚ´æÖС£ÔÚijЩÇé¿öÏ£¬¿ÉÒÔͨ¹ýËüÀ´ÏµÍ³ÉèÖã¬Ðí¶à¹¤¾ß´ÓÕâÀï»ñÈ¡ÐÅÏ¢£¬Èçdmesg¡¢ps¡¢topµÈ¡£
ÎļþÏµÍ³ÖÆ×÷Íê³É£¬´óСӦ¸ÃÔÚ20M×óÓÒ¡£
½ÓÏÂÀ´°ÑÎļþϵͳ¿½±´ÖÁramdiskΪÉú³ÉramdiskÓ³ÏñÎļþ×ö×¼±¸¡£ÎÒÃǰÑϵͳµÄramdisk ¸Ä±äµ½30M£¬ÖØÆô¼ÆËã»úºó£¬Ö´ÐÐÏÂÁвÙ×÷£º
dd if=/dev/zero of=/dev/ram bs=1k count=30000 °Ñramdiskµ÷Õûµ½Á㣬ÒÔ±ãºóÃæÓиü¸ßµÄѹËõÂÊ£»
mke2fs ¨Cm0 /dev/ram 30000 ÔÚramdiskÉϽ¨Á¢30MµÄext2Îļþϵͳ£»
mount /dev/ram /mnt/ram ½«ÒѸñʽ»¯µÄramdisk¹ÒÔØÖÁĿ¼/mnt/ram£»
cp ¨Cav /minlinux/*  /mnt/ram ½«Îļþ½á¹¹¿½±´ÖÁramdisk¡£
È»ºóÎÒÃǶÔ/mnt/ram/etcĿ¼ÏµÄÎļþ½øÐÐÐ޸ġ£Ö÷ÒªµÄÎļþÊÇfstab£¬Ëü¸ºÔðÔÚϵͳÆô¶¯Ê±°ÑϵͳҪ¹ÒÔØµÄÎļþϵͳÐÅÏ¢´«µÝ¸øÆô¶¯½ø³Ì£¬ÎÒÃÇʹÓÃramdisk×÷Ϊ¸ùÎļþϵͳ£¬ÇÒ²»ÐèÒª½»»»·ÖÇø£¬ËùÒÔ´ËÎļþÅäÖÃ
/dev/ram      /       ext2          defaults    1    1
none          /proc   proc          defaults    0    0
¼´¿É¡£Ò»°ãÀ´ËµÏµÍ³Æô¶¯Ê±¶¼Òª¼¤»î½»»»·ÖÇø£¬¼´ÔÚÆô¶¯½Å±¾ÖÐÓÐswapon ¨Ca ÃüÁµ«ÎÒÃDz»ÐèÒª½»»»·ÖÇø£¬Òò´ËÒª°ÑÕâÒ»ÏîÒÆ³ý£¬·ñÔòÆô¶¯Ê±»á´òÓ¡´íÎóÐÅϢȻºóÍ£Ö¹Æô¶¯¡£
×îºóÎÒÃÇÒª¿½±´ramdiskµÄÓ³Ïñ²¢½«ÆäѹËõ¡£Ö÷Òª²½ÖèÈçÏ£º
ÔËÐÐdf £¬×¢Òâ1024-blocksÒ»À¸ÖÐ/dev/ramµÄÊýÖµ£¬ÔÚÎҵĻúÉÏΪ25600;
Ð¶ÔØ/dev/ram£¬ÔËÐÐcd /rootÇл»ÖÁrootĿ¼²¢ÔËÐÐumount /dev/ram;
½«ramdiskд³ÉÓ³ÏóÎļþ£¬ÔËÐÐdd if=/dev/ram of=ram30.img bs=1k count=25600
ѹËõ£¬²¢ÔÚ/rootĿ¼Ï²úÉúÒ»¸öѹËõµÄÓ³ÏóÎļþram30.img.gz£¬ÔËÐÐgzip ¨C9v ram30.img
3.2´´½¨initrd ramdisk Ó³Ïñ
Ê×ÏÈÎÒÃÇÔÚ/dev/ram0Öд´½¨Ò»¸öÊʺϴóСµÄext2Îļþϵͳ£¬ ·½·¨ ͬÉÏ£¬Ö»ÊÇ´óСֻÓÐ2048K£¬ÒòΪinitrd ramdiskÊÇÓÃÀ´Òýµ¼£¨bootstrap£©30MµÄramdisk£¬²¢½«Ëü¹ÒÔØÖÁ/mnt/ram¡£
È»ºóÔÚ/dev/ram0Öн¨Á¢Ó³ÏñÐèÒªµÄĿ¼ºÍÎļþ¡£´´½¨Ä¿Â¼bin¡¢dev¡¢etc¡¢lib¡¢mntºÍ¿ÉÖ´Ðнű¾Îļþlinuxrc£¬linuxrcµÄÄÚÈÝΪ£º
   #!/bin/bash
   mount ¨Co ¨Cro /dev/hda1/ /mnt             ££ ÒÔÖ»¶Á·½Ê½½«flashÅ̹ÒÔØÔÚ/mntÏÂ
   zcat /mnt/boot/ram30.img.gz > /dev/ram     ££ ½«¸ùÎļþϵͳӳÏñ½âѹÖÁram
   umount /dev/hda1                           ££ Ð¶ÔØflashÅÌ
binÏÂÃæÎªlinuxrcÖÐÓõ½µÄÃüÁlibΪÕâЩÃüÁîÐèÒªµÄ¶¯Ì¬Á´½Ó¿â£»etcÏÂΪÅäÖÃÎļþld.so.conf£¬¶¨ÒåÃüÁîÔËÐÐʱѰÕÒËùÐ趯̬Á´½Ó¿âµÄ·¾¶£¬ÔËÐÐÃüÁîldconfig ¨Cr /mnt/ram²úÉúÎļþld.so.cach£¬ÔÚÃüÁîºÍ¶¯Ì¬Á´½Ó¿âÖ®¼ä½¨Á¢¶ÔÓ¦¹ØÏµ£»devÏ»ù±¾ÖÕ¶ËÉ豸ºÍlinuxrcÖÐÓõ½µÄÉ豸£ºconsole¡¢ram¡¢null¡¢systty¡¢tty1¡¢tty2ºÍhda1£»mntΪhda1µÄ¹ÒÔØµã¡£
    ×îºó´´½¨Ñ¹ËõµÄinitrd ramdiskÓ³Ïñ¡£
ÔËÐÐdf ¿´¿´/dev/ram0µÄ×Ö½ÚÊý,ÔÚÎҵļÆËã»úÉÏ1684K;
ת»»µ±Ç°Ä¿Â¼ÖÁ/root²¢Ð¶ÔØ/dev/ram0 umount /dev/ram0£»
¿½±´/dev/ram0³ÉÓ³ÏñÎļþ dd if=/dev/ram0 of=initrd.img bs=1k count=1684£»
²úÉúѹËõµÄÓ³ÏñÎļþinitrd.img.gz£¬ÔËÐÐgzip -9v initrd.img¡£
3.3Æô¶¯
    ϵͳµÄÆô¶¯ÐèÒªÒÀ¿¿flashÅÌ£¬Í¨¹ýLILO°ÑϵͳÆô¶¯ÐÅϢдÈëflashÅÌÖ÷Òýµ¼Çø¡£
½«flashÅÌ×÷ΪµÚÒ»Ö÷ÅÌhda£¬¶ø½«×°ÓÐÆÕͨLinuxµÄÓ²ÅÌ×÷ΪµÚÒ»´ÓÅÌhdb²¢´ÓËüÆô¶¯¡£ÔÚflashÓ²ÅÌÉÏ´´½¨ext2Îļþϵͳ£¬½«Ëü¹ÒÔØÖÁ/mnt/flashĿ¼¡£ÔÚflashÅÌÉϽ¨Á¢bootĿ¼£¬½«Ñ¹ËõµÄÎļþϵͳºÍinitrdÓ³Ïñ¿½±´ÖÁbootĿ¼Ï£¬Í¬Ê±½«LinuxÄںˡ¢Òýµ¼Çø¼Ç¼boot.b¡¢Òýµ¼ÇøÓ³Éämap¿½±´ÖÁÆäÏ¡£ÔÚÆÕͨLinuxϵͳÖн¨Á¢LILOÅäÖÃÎļþramlilo.conf,ÅäÖÃÎļþÈçÏ£º             
 boot=/dev/hda
              map=/mnt/flash/boot/map
                      install=/mnt/flash/boot/boot.b
              prompt
              timeout=50

              image=/mnt/flash/boot/vmlinuz
                     append= ¡°ramdisk_size=30000¡±
                     label=embedded
                     root=/dev/ram
                     initrd=/mnt/flash/boot/initrd.img.gz
ÔËÐÐÃüÁîlilo ¨CC ramlilo.conf ,½«Æô¶¯ÐÅϢдÈëflashµÄÖ÷Òýµ¼ÇøMBR¡£
ÖØÐÂÆô¶¯¼ÆËã»ú£¬µÇ½ºóÔËÐÐmount£¬ÎÒÃÇ¿´µ½ÈçÏÂÁ½Ï
         /dev/ram on / ext2 (rw)
         none on /proc type proc (rw)
ÕâÏÔʾֻÓÐramdisk±»¹ÒÔØ£¬ÖÆ×÷³É¹¦¡£
4 ½áÂÛ
ÔÚÎÒÃÇÖÆ×÷µÄǶÈëʽLinuxÖнøÐи÷ÖÖ²Ù×÷£¬Ëٶȷdz£¿ì£¬¶øÇÒϵͳºÜÎȶ¨¡£Ã»ÓгöÏÖÒòΪ¸ùÎļþϵͳË𻵶øµ¼ÖÂϵͳ½øÈëÊÖ¹¤Î¬»¤½çÃæµÄÏÖÏó¡£ÓÃËü×÷ΪHTTPÍøÂç·þÎñÆ÷¡¢ÍøÂç¼àÊÓÆ÷¡¢¿í´øÍ¨ÐÅÉ豸¹ÜÀíÆ÷»òÕ߯äËûÐèÒª³¤Ê±¼ä²»Í£ÔËÐеĻúÆ÷£¬¶¼ÓкܸߵÄÓ¦ÓüÛÖµ¡£

¹²2Ò³: 1 [2] ÏÂÒ»Ò³


MSComm¿Ø¼þÔÚÖÐÎÄWindowsϵÄͨÐÅÎÊÌâÓë´¦Àí·½·¨
ÓÃOPENSSLʵÏÖµç×ÓÉÌÎñÖеÄCAÈÏÖ¤
¹¤É̹ÜÀí | ¹¤¿ÆÂÛÎÄ | ²ÆÎñ¹ÜÀí | ¹ÜÀíѧ | ¹«¹²¹ÜÀí | ²ÆÕþ˰ÊÕ | ֤ȯ½ðÈÚ | »á¼ÆÉó¼Æ | ¼ÆËã»ú | ·¨ÂÉÂÛÎÄ | ҽҩѧ | ººÓïÑÔÎÄѧ
Éç»áÂÛÎÄ | ¹¤¿ÆÂÛÎÄ | Àí¿ÆÂÛÎÄ | ÎÄ»¯ÂÛÎÄ | ÒÕÊõÂÛÎÄ | ÎÄѧÂÛÎÄ | ÕÜѧÂÛÎÄ | ÕþÖÎÂÛÎÄ | Ó¢ÓïÂÛÎÄ | д×÷Ö¸µ¼ | ¼ÆËã»úÓ¦ÓÃ
www.zlunwen.com ÕÒÂÛÎÄÍø ® °æÈ¨ËùÓÐ ÍøÕ¾µØÍ¼