ºìÁªLinuxÃÅ»§
Linux°ïÖú

×Ô¼º¶¯ÊÖ×öÒ»¸öÃÔÄãLinuxϵͳ

·¢²¼Ê±¼ä:2008-10-16 22:33:09À´Ô´:ºìÁª×÷Õß:wangyu
Ô­Îijö´¦http://os.51cto.com/art/200512/14110.htm


±¾ÎÄÒª¹¹½¨µÄÕâ¸öÃÔÄãÐ굀 Linux ϵͳֻÄÜÔÚÒ»Ì¨ÌØ¶¨µÄµ¥»úÉÏÔËÐУ¬Èç¹û¶ÁÕßÅóÓÑÃÇÓÐÐËȤµÄ»°£¬ÔÚÕâ¸öϵͳµÄ»ù´¡ÉϼÓÒԸĽø£¬ÊÇ¿ÉÒÔ¹¹½¨³öͨÓõġ¢¿ÉÒÔÔÚ´ó¶àÊý³£¹æ PC »úÉϼ´²å¼´ÓõÄϵͳÀ´µÄ¡£µ«ÊÇÕâÒѾ­²»ÔÚ±¾ÎĵϰÌâÖ®ÄÚÁË£¬¶ÁÕßÅóÓÑÃÇÈç¹ûÓÐÐËȤ£¬¿ÉÒÔͨ¹ýÎҵĵç×ÓÓʼþºÍÎÒÌÖÂÛÆäÖеÄϸ½ÚÎÊÌâ¡£
ÎÒÃǵÄÄ¿±ê Linux ϵͳÔËÐÐÔÚһ̨ÆÕͨµÄ Intel 386 PC »úÉÏ£¬¿ÉÒÔÓÐÓ²ÅÌ£¬Ò²¿ÉÒÔ²»ÒªÓ²ÅÌ£¬¶øÓà Flash Disk À´´úÌæ¡£Èç¹ûÊÇÓà Flash Å̵ϰ£¬ÐèÒªÄܹ»Ö§³Ö´Ó Flash ÅÌÆô¶¯£¬¶øÇÒ Flash Å̵ĴóСҪÔÚ 16M ×Ö½Ú»òÕßÒÔÉÏ¡£ÎÒÃÇÏ£ÍûÓû§Ò»¿ª»úÆô¶¯£¬¾ÍÖ±½Ó½øÈë X Window ͼÐνçÃæ£¬ÔËÐÐÊÂÏÈÖ¸¶¨ºÃµÄ³ÌÐò¡£²»ÐèÒªÓû§ÊäÈëÓû§ÃûºÍÃÜÂë½øÐеǼ¡£
ÎÒÃÇÉ趨µÄÕâ¸öÄ¿±êÓеãÏñÒ»¸ö X Terminal Öն˹¤×÷Õ¾¡£ÉԼӸĽø£¬»¹¿ÉÒÔ×ö³É¸É´àÎÞÅ̵ÄÐÎʽ£¬Ò²¾ÍÊÇ˵£¬Á¬ 16M µÄ Flash ÅÌÒ²²»ÒªÁË¡£²»¹ý£¬ÕâÒ²³¬³öÁ˱¾ÎĵϰÌâÁË¡£¶ÁÕßÅóÓÑÃÇÈç¹ûÓÐÐËȤ£¬¿ÉÒÔÀ´ÐźÍÎÒ½øÐÐÌÖÂÛ¡£
ϵͳÆô¶¯
ÒòΪÎÒÃÇÒª¿¼ÂÇ´Ó Flash Å̽øÐÐÆô¶¯£¬ËùÒÔÎÒÃÇÑ¡ÔñÓà LILO ×÷ΪÎÒÃÇµÄ Boot Loader£¬¶ø²»Ñ¡Óà GRUB¡£ÕâÊÇ¿¼Âǵ½ GRUB ÓнÏÇ¿µÄ¶ÔÓ²Å̺ÍÎļþϵͳµÄʶ±ðÄÜÁ¦£¬¶ø Flash Å̵½µ×²»ÊDZê×¼µÄÓ²ÅÌ£¬²¢ÇÒÎÒÃÇÑ¡ÓõÄÎļþϵͳ GRUB ÓÖ²»Ò»¶¨ÈÏʶ£¬¸ã²»ºÃµÄ»° GRUB ·´»áŪÇɳÉ×¾¡£¶ø LILO ¾Í¼òµ¥µÄ¶àÁË£¬ËüÔÚÓ²ÅÌ¿ªÊ¼µÄ MBR дÈëÒ»¸öС³ÌÐò£¬Õâ¸öС³ÌÐò²»¾­¹ýÎļþϵͳ£¬Ö±½Ó´ÓÓ²ÅÌÉÈÇøºÅ£¬¶Á³ö Kernel Image ×°ÈëÄÚ´æ¡£ÕâÑù£¬±£ÏÕϵÊý¾Í´ó´óÔö¼Ó¡£²¢ÇÒÒ²¸øÁËÎÒÃÇ×ÔÓÉÑ¡ÓÃÎļþϵͳµÄÓàµØ¡£ÄÇô£¬ÎÒÃÇÒªÈçºÎ°²×° LILO ÄØ£¿
Ê×ÏÈ£¬ÎÒÃÇÒªÕÒÒ»¿éÆÕͨµÄ 800M ×óÓÒµÄ IDE Ó²ÅÌ£¬Á¬ÔÚÄ¿±ê»úÆ÷µÄ IDE ÏßÉÏ¡£ÕâÑùÔÚÎÒÃǵÄÄ¿±ê»úÆ÷ÉÏ£¬IDE1 ÉϹҵÄÊÇ Flash ÅÌ£¬IDE2 ÉϹҵÄÊÇÒ»¿é¹¤×÷Ó²ÅÌ¡£ÎÒÃÇÓñê×¼µÄ²½ÖèÔÚ IDE2 µÄ±ê×¼Ó²ÅÌÉÏ×°ÉÏÒ»¸ö Debian GNU/Linux ϵͳ¡£µ±È»£¬Èç¹û¶ÁÕßÅóÓÑÃÇÊÖͷûÓÐ Debian£¬Ò²¿ÉÒÔ×° Red Hat ϵͳ¡£×°ºÃ¹¤×÷ϵͳ֮ºó£¬ÒªÊ×ÏÈ×öһЩ²Ã¼õ¹¤×÷£¬°Ñ²»±ØÒªµÄ Service ºÍ X Window µÈµÈ¶«Î÷¶¼É¾µô¡£ÕâÑù×öµÄÄ¿µÄÊÇÔö½øÏµÍ³Æô¶¯ËÙ¶È£¬ÒòΪÎÒÃÇÔÚºóÃæµÄ¹¤×÷ÖУ¬¿Ï¶¨Òª²»Í£µÄÖØÐÂÆô¶¯»úÆ÷£¬ËùÒÔÆô¶¯ËٶȶÔÎÒÃǵŤ×÷ЧÂÊÊǺܹؼüµÄ¡£
×°ºÃ¹¤×÷ϵͳ֮ºó£¬ÔÚ Falsh ÅÌÉÏ×öÒ»¸ö Ext2 Îļþϵͳ£¬Õâ¸öÓà mke2fs Õâ¸öÃüÁî¾Í¿ÉÒÔÍê³É¡£ÓÉÓÚ Flash ÅÌÊǽÓÔÚ IDE1 Éϵģ¬ËùÒÔÔÚ Linux ÀïÃæ£¬ËüµÄÉí·ÝÊÇ /dev/hda¡£±¾ÎÄ×÷ÕßÔÚ²Ù×÷µÄʱºò£¬°ÑÕû¸ö Flash ÅÌ»®·ÖÁËÒ»¸öÕû¸öµÄ·ÖÇø£¬ËùÒÔ£¬µ÷Óà mke2fs µÄʱºò£¬´¦ÀíµÄÊÇ /dev/hda1¡£¶ÁÕßÅóÓÑÃÇÓ¦¸Ã¿ÉÒÔÖ±½ÓÔÚ /dev/hda ÉÏ×öÒ»¸ö Ext2 Îļþϵͳ£¬¶ø²»ÓÃÊÂÏÈ·ÖÇø¡£
ÔÚ Flash ÅÌÉÏ×öºÃÁËÎļþϵͳ֮ºó£¬¾Í¿ÉÒÔ°ÑÒ»¸ö±àÒëºÃµÄÄÚºËÓ³ÏñÎļþ vmlinuz ¿½±´µ½ Flash ÅÌÉÏÁË¡£×¢Ò⣬±ØÐëÒªÏȰÑÕâ¸ö vmlinuz Ó³ÏñÎļþ¿½±´µ½ Flash ÅÌÉÏ£¬È»ºó²ÅÄÜÔÚ Flash ÅÌÉϰ²×° LILO¡£²»È»µÄ»°£¬LILO µ½Ê±ºò¿ÉÊÇ»á LILILILI ´ò½á°ÍµÄ£¬ÒòΪËü»áÕÒ²»µ½ Kernel Image ÔÚ Flash ÅÌÉϵÄλÖõģ¬ÄÇÑùµÄ»° Flash ÅÌÒ²¾ÍÆô¶¯²»ÆðÀ´ÁË¡£»¹ÓУ¬Èç¹û¶ÁÕßÅóÓÑÃÇÔÚ Flash ÅÌÉÏÓõÄÊÇÒ»¸öѹËõµÄÎļþϵͳµÄ»°£¬µ½Ê±ºò LILO Ò²»á³öÎÊÌ⣬ËüËäÈ»ÄÜÕýÈ·µÄÕÒµ½ Kernel Image ÔÚÓ²ÅÌÉÏµÄÆðʼλÖ㬵«ÊÇËüȴûÓа취´¦Àí±»ÎļþÏµÍ³ÖØÐÂѹËõ¹ýµÄÕâ¸ö Kernel Image£¬²»ÖªµÀ¸ÃÈçºÎ°ÑËüÕ¹¿ªµ½ÄÚ´æÖÐÈ¥¡£
°Ñ Kernel Image ¿½±´¹ýÈ¥ÒÔºó£¬ÎÒÃǾͿÉÒÔ¶¯Êֱ༭һ·Ý lilo.conf Îļþ£¬Õâ·ÝÎļþ¿ÉÒԾͷÅÔÚ¹¤×÷ϵͳÉϾÍÐÐÁË¡£µ«ÊÇ×¢ÒâÔÚ lilo.conf ÖÐË÷ÒýµÄÎļþÃûµÄ·¾¶¿ÉҪд¶Ô¡£ÕâЩ·¾¶Ãû¶¼ÊÇÔÚ¹¤×÷ϵͳÉÏ¿´ÉÏÈ¥µÄ·¾¶Ãû¡£±ÈÈ磬Èç¹û Flash ÅÌ Mount ÔÚ /mnt Ŀ¼ÏÂÃæ£¬ÄÇô£¬ÔÚ lilo.conf ÖУ¬vmlinuz µÄ·¾¶Ãû¾ÍÊÇ /mnt/vmlinuz¡£×¢ÒâÕâÒ»µãǧÍò²»Òª¸ã´í¡£²»È»µÄ»°£¬Èç¹ûÒ»²»Ð¡Ðİѹ¤×÷ϵͳµÄ LILO ¸øÆÆ»µµôÁË£¬ÄǾÍÂé·³ÁË¡£±à¼­ºÃÁË lilo.conf£¬È»ºóÔÙÔËÐÐ lilo ÃüÁעÒ⣬Ҫ¸æËßËüÓÃÕâ¸öÐ嵀 lilo.conf Îļþ£¬¶ø²»ÒªÓà /etc/lilo.conf¡£
°²×°ºÃ LILO Ö®ºó£¬ÎÒÃÇ¿ÉÒÔÁ¢¼´ÖØÐÂÆô¶¯£¬²âÊÔһϡ£Ê×ÏÈÔÚ BIOS ÀïÃæ£¬ÉèÖÃ³É´Ó IDE1 ¿ªÊ¼Æô¶¯£¬Èç¹ûÎÒÃÇ¿´µ½ LILO µÄÌáʾ·û£¬°´»Ø³µºó»¹ÄÜ¿´µ½ Kernel Êä³öµÄÏûÏ¢£¬Õâ¾ÍËãÊÇ LILO µÄ°²×°³É¹¦ÁË¡£¼ÇµÃÕâ¸ö²Ù×÷µÄ·½·¨£¬ÒÔºóÿ´ÎÎÒÃǸüРFlash ÅÌÉ쵀 Kernel Image£¬¶¼¼ÇµÃÒª¸üРLILO¡£Ò²¾ÍÊÇ˵£¬ÒªÖØÐÂÔËÐÐÒ»±é lilo ÃüÁî¡£
±àÒëÄÚºË
ÊÔÑé³É¹¦ LILO µÄ°²×°ÒÔºó£¬ÎÒÃÇ¿ªÊ¼¿¼ÂDZàÒëÒ»¸öеÄÄںˡ£µ±È»£¬Òª±àÒëеÄÄںˣ¬ÎÒÃÇÊ×ÏÈÒª½øÈëÎÒÃǵŤ×÷ϵͳ¡£ÕâÀïÓÐÁ½¸ö°ì·¨½øÈ빤×÷ϵͳ£¬Ò»ÊÇÔÚ BIOS ÀïÃæÉèÖÃ´Ó IDE2 Æô¶¯£¬µ±È»£¬Õâ¾ÍÒªÇóµ±³õ°²×°¹¤×÷ϵͳµÄʱºò£¬Òª°Ñ LILO °²×°ÔÚ /dev/hdb ÉÏ£»ÁíÒ»¸ö°ì·¨ÊÇ»¹ÊÇ´Ó IDE1 Æô¶¯£¬²»¸Ä±ä BIOS µÄÉèÖ㬵«ÊÇÔÚ¿´µ½ LILO µÄÌáʾ·ûµÄʱºò£¬Òª¼üÈë linux root=/dev/hdb1£¬×îÇ°ÃæµÄ linux ÊÇÔÚ lilo.conf ÀïÃæ¶¨ÒåµÄÒ»¸ö entry£¬ÎÒÃÇÖ»²ÉÓÃÕâ¸ö entry ËùÖ¸¶¨µÄ Kernel Image£¬µ«ÊÇÓà /dev/hdb1 ×÷Ϊ root Îļþϵͳ¡£Á½¸ö°ì·¨¿ÉÄÜÓеÄʱºòÒ»¸ö±ÈÁíÒ»¸öºÃ£¬¸ü·½±ãһЩ¡£Õâ¾ÍÒª¿´¾ßÌåµÄÇé¿öÁË¡£²»¹ý£¬ËüÃǵÄÉèÖò¢²»ÊÇ»¥Ïà³åÍ»µÄ¡£
ÔÚ±àÒëÄں˵Äʱºò£¬ÓÉÓÚÎÒÃǵÄÄÚºËÊÇÖ»ÓÐһ̨»úÆ÷ʹÓõģ¬ËùÒÔÎÒÃÇÓ¦¸Ã¶ÔËüµÄÇé¿öÁËÈçÖ¸ÕÆ£»ÁíÍâÒ»·½Ã棬ΪÁ˼õµÍ²»±ØÒªµÄ¸´ÔÓÐÔ£¬ÎÒÃǾö¶¨²»Óà kernel module µÄÖ§³Ö£¬¶ø°ÑËùÓÐÐèÒªµÄ¶«Î÷Ö±½Ó±àÒëµ½Äں˵ÄÀïÃæ¡£ÕâÑù±àÒë³öÀ´µÄÄںˣ¬ÔÚһ̨ÆÕͨµÄ 586 Ö÷°åÉÏ£¬°ÑËùÓбØÒªµÄ¹¦Äܶ¼¼Ó½øÈ¥£¬Ò»°ãÒ²²»µ½ 800K ×Ö½Ú¡£ËùÒÔ£¬Õâ¸ö°ì·¨ÊÇ¿ÉÐеġ£¶øÇÒ¼õµÍÁË init scripts µÄ¸´Ôӳ̶ȡ£´ÓÔËÐз½ÃæÀ´¿¼ÂÇ£¬ÓÉÓÚÐèÒªµÄ kernel ´úÂë·´ÕýÊÇÒª×°ÔØµ½ÄÚ´æÖеģ¬ËùÒÔ²¢²»»áÒýÆðÄÚ´æµÄÀË·Ñ¡£
ÔÚÎÒÃǵÄÄ¿±êƽ̨ÉÏ£¬ÎÒÃÇÏ£ÍûʹÓà USB ´æ´¢É豸¡£»¹ÓÐÒ»µãҪעÒâµÄ£¬¾ÍÊÇ¶Ô Frame buffer µÄÖ§³Ö¡£ÕâÖ÷ÒªÊÇΪÁËÖ§³Ö XFree86¡£Ò»°ã˵À´£¬Èç¹ûÎÒÃǵÄÏÔ¿¨ÊÇ XFree86 Ö±½ÓÖ§³ÖµÄ£¬Äǵ±È»×îºÃ£¬Ò²¾Í²»ÐèÒª frame buffer µÄÄÚºËÖ§³Ö¡£µ«ÊÇÈç¹û XFree86 ²»Ö§³ÖÎÒÃǵÄÏÔ¿¨£¬ÎÒÃÇ¿ÉÒÔ¿¼ÂÇÓà VESA ģʽ¡£µ«ÊÇ XFree86 µÄ VESA ¿¨Ö§³ÖÔËÐÐÆðÀ´²»Ì«Æ¯ÁÁ£¬»¹Óа²È«·½ÃæµÄÎÊÌ⣬ÓÐʱÔÚÆô¶¯ºÍÍ˳ö X Window µÄʱºò»á³öÏÖ»¨ÆÁ¡£ËùÒÔÎÒÃÇ¿ÉÒÔ²ÉÓà kernel µÄ vesa ģʽµÄ frame buffer£¬È»ºóÓà xfree86 µÄ linux frame buffer µÄÇý¶¯³ÌÐò¡£ÕâÑùÒ»°ã¾Í¿´²»µ½»¨ÆÁµÄÏÖÏóÁË£¬¶øÇÒ°²È«·½ÃæÒ²Ã»ÓÐÈκÎÎÊÌâ¡£
devfs Ò²ÊÇÎÒÃǸÐÐËȤµÄ»°Ìâ¡£Èç¹û kernel ²»Ê¹Óà devfs£¬ÄÇôϵͳÉ쵀 root Îļþϵͳ¾ÍÒªÓÐ /dev Ŀ¼ÏÂÃæµÄËùÓÐÄÚÈÝ¡£ÕâЩÄÚÈÝ¿ÉÒÔÓà /dev/MAKEDEV ½Å±¾À´½¨Á¢£¬Ò²¿ÉÒÔÓà mknod ÊÖ¹¤Ò»¸öÒ»¸öÀ´½¨¡£Õâ¸ö·½·¨ÓÐÆä×ÔÉíµÄºÃ´¦¡£µ«ÊÇËüµÄȱµãÊÇÂé·³£¬¶øÇÒºÍ kernel µÄ״̬ÓÖ²¢²»Ò»Ö¡£Ïà·´µÄ£¬Èç¹ûʹÓÃÁË devfs£¬ÎÒÃǾÍÔÙÒ²²»Óõ£ÐÄ /dev Ŀ¼ÏÂÃæµÄÈκÎÊÂÇéÁË¡£/dev Ŀ¼ÏÂÃæµÄÏîÄ¿»áÓÐ kernel µÄ´úÂë×Ô¼º¸ºÔð¡£Êµ¼ÊʹÓÃÆðÀ´µÄЧ¹û£¬¶ÔÄÚ´æµÄÏûºÄ²¢²»Ã÷ÏÔ¡£ËùÒÔÎÒÃÇÑ¡Ôñ devfs¡£
busybox
ÓÐÁË LILO ºÍ kernel image Ö®ºó£¬½ÓÏÂÀ´£¬ÎÒÃÇÒª°²ÅÅ root Îļþϵͳ¡£ÓÉÓÚ flash Å̵ĿռäÖ»ÓÐ 16M ×Ö½Ú£¬¿ÉÒÔ˵£¬ÕâÊǶÔÎÒÃÇ×î´óµÄÌôÕ½¡£ÕâÀïÊ×ÏÈÒªÏò´ó¼Ò½éÉÜСÐÍǶÈëʽ Linux ϵͳ°²ÅÅ root ÎļþϵͳʱµÄÒ»¸ö³£ÓõÄÀûÆ÷£ºBusyBox¡£
Busybox ÊÇ Debian GNU/Linux µÄ´óÃû¶¦¶¦µÄ Bruce Perens Ê×ÏÈ¿ª·¢£¬Ê¹ÓÃÔÚ Debian µÄ°²×°³ÌÐòÖС£ºóÀ´ÓÖÓÐÐí¶à Debian developers ¹±Ï×Á¦Á¿£¬ÕâÆäÖÐÓÈÍÆ busybox ĿǰµÄά»¤Õß Erik Andersen£¬Ëû»¼Óа©Ö¢£¬¿ÉÊÇÈ´ÊÇÒ»ÃûÓÅÐãµÄ×ÔÓÉÈí¼þ¿ª·¢Õß¡£
Busybox ±àÒë³öÒ»¸öµ¥¸öµÄ¶ÀÁ¢Ö´ÐгÌÐò£¬¾Í½Ð×ö busybox¡£µ«ÊÇËü¿ÉÒÔ¸ù¾ÝÅäÖã¬Ö´ÐÐ ash shell µÄ¹¦ÄÜ£¬ÒÔ¼°¼¸Ê®¸ö¸÷ÖÖСӦÓóÌÐòµÄ¹¦ÄÜ¡£ÕâÆäÖаüÀ¨ÓÐÒ»¸öÃÔÄãµÄ vi ±à¼­Æ÷£¬ÏµÍ³²»¿É»òȱµÄ /sbin/init ³ÌÐò£¬ÒÔ¼°ÆäËûÖîÈç sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat ... µÈµÈÕâЩ¶¼ÊÇÒ»¸öÕý³£µÄϵͳÉϱز»¿ÉÉٵ쬵«ÊÇÈç¹ûÎÒÃǰÑÕâЩ³ÌÐòµÄÔ­¼þÄùýÀ´µÄ»°£¬ËüÃǵÄÌå»ý¼ÓÔÚÒ»Æð£¬ÈÃÈ˳Բ»Ïû¡£¿ÉÊÇ busybox ÓÐÈ«²¿µÄÕâô¶à¹¦ÄÜ£¬´óСҲ²»¹ý 100K ×óÓÒ¡£¶øÇÒ£¬Óû§»¹¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª£¬¾ö¶¨µ½µ×ÒªÔÚ busybox ÖбàÒë½øÄöÓ¦ÓóÌÐòµÄ¹¦ÄÜ¡£ÕâÑùµÄ»°£¬busybox µÄÌå»ý¾Í¿ÉÒÔ½øÒ»²½ËõСÁË¡£
ʹÓà busybox Ò²ºÜ¼òµ¥¡£Ö»Òª½¨Ò»¸ö·ûºÅÁ´½Ó£¬±È·½ ln -s /bin/busybox /bin/ls£¬ÄÇô£¬Ö´ÐÐ /bin/ls µÄʱºò£¬busybox ¾Í»áÖ´ÐÐ ls µÄ¹¦ÄÜ£¬Ò²»á°´ÕÕ ls µÄ·½Ê½´¦ÀíÃüÁîÐвÎÊý¡£ÓÖ±ÈÈç ln -s /bin/busybox /sbin/init£¬ÕâÑùÎÒÃǾÍÓÐÁËϵͳÔËÐв»¿É»òȱµÄ /sbin/init ³ÌÐòÁË¡£µ±È»£¬ÕâÀïµÄǰÌáÊÇ£¬ÄãÔÚ busybox ÖбàÒë½øÈ¥ÁËÕâÁ½¸ö³ÌÐòµÄ¹¦ÄÜ¡£
ÕâÀïÃæÒªÌá³ö×¢ÒâµÄÒ»µãÊÇ£¬busybox µÄ init ³ÌÐòËùÈÏʶµÄ /etc/inittab µÄ¸ñʽ·Ç³£¼òµ¥£¬¶øÇҺͳ£¹æµÄ inittab ÎļþµÄ¸ñʽ²»Ò»Ñù¡£ËùÒÔ¶ÁÕßÅóÓÑÃÇÔÚΪÕâ¸ö busybox µÄ init д inittab µÄʱºò£¬Òª×¢Òâһϲ»Í¬µÄÓï·¨¡£ÖÁÓÚϸ½Ú£¬¾Í²»ÔÚÎÒÃÇÕâÀï¶à˵ÁË£¬Çë´ó¼Ò²Î¿¼ Busybox µÄÓû§Êֲᡣ
´ÓÆô¶¯µ½½øÈë shell
busybox °²×°ºÃÒÔºó£¬ÎÒÃǾͿÉÒÔ¿¼ÂÇÖØÐÂÆô¶¯£¬Ò»Ö±µ½½øÈë shell Ìáʾ·ûÁË¡£Õâ֮ǰ£¬ÎÒÃÇҪ׼±¸Ò»Ï /etc Ŀ¼Ïµļ¸¸öÖØÒªµÄÎļþ£¬¶øÇÒÒª°Ñ busybox Óõ½µÄ library Ò²¿½±´¹ýÀ´¡£
Óà ldd ÃüÁºóÃæ¸úÒª·ÖÎöµÄ¶þ½øÖƳÌÐòµÄ·¾¶Ãû£¬¾Í¿ÉÒÔÖªµÀÒ»¸ö¶þ½øÖƳÌÐò£¬»òÕßÊÇÒ»¸ö library ÎļþÖ®¼äµÄ»¥ÏàÒÀÀµ¹ØÏµ£¬±ÈÈç busybox ¾ÍÒÀÀµÓÚ libc.so ºÍ ld-linux.so £¬ÎÒÃÇÓÐÁËÕâЩ֪ʶ£¬¾Í¿É°Ñ¶¯ÊÖ°ÑËùÓÐÐèÒªµÄ library ¿½±´µ½ flash ÅÌÉÏ¡£ÓÉÓÚÎÒÃÇµÄ flash ÅÌ˵´ó²»´ó£¬ËµÐ¡µ¹Ò²²»Ð¡£¬ÓÐ 16M ×Ö½ÚÖ®¶à¡£ÎÒÃÇÖ±½Ó¾ÍÓà Glibc µÄÎļþҲûÓÐÌ«¶àÎÊÌâ¡£Èç¹û¶ÁÕßÅóÓÑÃÇÓÐÌØÊâµÄÐèÒª£¬¾õµÃ Glibc Ì«ÅÓ´óÁ˵ϰ£¬¿ÉÒÔ¿¼ÂÇÓà uClibc£¬ÕâÊÇÒ»¸ö·Ç³£Ð¡ÇÉµÄ libc ¿â£¬¹¦Äܵ±È»Ã»ÓÐ Glibc È«£¬µ«ÊÇ×ã¹»Ò»¸öǶÈëʽϵͳʹÓÃÁË¡£±¾ÎľͲ»ÔÙ½éÉÜ uClibc ÁË¡£
¿â³ÌÐò¿½±´¹ýÀ´ÒÔºó£¬ÎÒÃǾͿÉÒÔ¿¼ÂÇϵͳÆô¶¯µÄ²½ÖèÁË¡£Æô¶¯µÄʱºò£¬ÏÈÊÇ lilo£¬½ÓÏÂÀ´¾ÍÊÇ kernel£¬kernel ³õʼ»¯Ö®ºó£¬¾Íµ÷Óà /sbin/init£¬È»ºóÓÉ init ½âÊÍ /etc/inittab ÔËÐи÷ÖÖ¸÷ÑùµÄ¶«Î÷¡£inittab »áÖ¸µ¼ init È¥µ÷ÓÃÒ»¸ö×îÖØÒªµÄϵͳ³õʼ»¯³ÌÐò /etc/init.d/rcS£¬ÎÒÃǽ«ÒªÔÚ rcS ÖÐÍê³É¸÷¸öÎļþϵͳµÄ mount£¬´ËÍ⣬»¹ÓÐÔÚ rcS Öе÷Óà dhcp ³ÌÐò£¬°ÑÍøÂç¼ÜÆðÀ´¡£rcS Ö´ÐÐÍêÁËÒÔºó£¬init ¾Í»áÔÚÒ»¸ö console ÉÏ£¬°´ÕÕ inittab µÄָʾ¿ªÒ»¸ö shell£¬»òÕßÊÇ¿ª getty + login£¬ÕâÑùÓû§¾Í»á¿´µ½ÌáʾÊäÈëÓû§ÃûµÄÌáʾ·û¡£ÎÒÃÇÕâÀïΪÁ˼òµ¥Æð¼û£¬ÏÈÖ±½Ó½øÈë shell£¬È»ºóµÈµ½µ÷ÊԳɹ¦ÒÔºó£¬ÔٸijÉÖ±½Ó½øÈë X Window¡£
¹ØÓÚ inittab µÄÓï·¨£¬ÎÒÃÇÉÏÃæÒѾ­Ìáµ½¹ýÁË£¬Ï£Íû¶ÁÕßÅóÓÑÃÇÈ¥²éȨÍþµÄ busybox µÄÓû§ÊֲᡣÕâÀÎÒÃÇÏÈÒª½²Ò»ÏÂÎļþϵͳµÄ¹¹³ÉÇé¿ö¡£
°²ÅÅÎļþϵͳ
´ó¼ÒÒѾ­¿´µ½£¬ÎÒÃÇµÄ root ÎļþϵͳΪÁ˱ÜÃâÂé·³£¬ÓõÄÊDZê×¼µÄ ext2 Îļþϵͳ¡£ÓÉÓÚÎÒÃǵÄÓ²Å̿ռäºÜС£¬Ö»Óв»µ½ 16M£¬¶øÇÒÎÒÃÇ»¹ÒªÔÚÉÏÃæ·ÅÉÏ X Window£¬ËùÒÔ£¬Èç¹ûÎÒÃÇÈ«²¿Óà ext2 µÄ»°£¬Flash Å̵ÄÓÐÏÞ¿Õ¼ä»áºÜ¿ìºÄ¾¡¡£ÎÒÃÇΨһµÄÑ¡ÔñÊDzÉÓÃÒ»¸öÊʵ±µÄѹËõÎļþϵͳ¡£¿¼Âǵ½ /usr Ŀ¼ÏÂÃæµÄÄÚÈÝÔÚϵͳÔËÐеÄʱºò£¬ÊDz»ÐèÒª±»¸ÄдµÄ¡£ÎÒÃǾö¶¨Ñ¡ÔñÖ»¶ÁµÄѹËõÎļþϵͳ cramfs À´ÈÝÄÉ /usr Ŀ¼ÏÂÃæµÄÈ«²¿ÄÚÈÝ¡£
cramfs ÊÇ Linus Torvalds ±¾ÈË¿ª·¢µÄÒ»¸öÊÊÓÃÓÚǶÈëʽϵͳµÄСÎļþϵͳ¡£ÓÉÓÚËüÊÇÖ»¶ÁµÄ£¬ËùÒÔ£¬ËäÈ»Ëü²ÉÈ¡ÁË zlib ×öѹËõ£¬µ«ÊÇËü»¹ÊÇ¿ÉÒÔ×öµ½¸ßЧµÄËæ»ú¶ÁÈ¡¡£¼ÈÈ» cramfs ²»»áÓ°Ïìϵͳ¶ÁÈ¡ÎļþµÄËÙ¶È£¬ÓÖÊÇÒ»¸ö¸ß¶ÈѹËõµÄÎļþϵͳ£¬¶ÔÓÚÎÒÃÇ£¬Ëü¾ÍÊÇÒ»¸öÏ൱²»´íµÄÑ¡ÔñÁË¡£
ÎÒÃÇÊ×Ï顄 /usr Ŀ¼ÏµÄÈ«²¿ÄÚÈÝÖÆ³ÉÒ»¸ö cramfs µÄ image Îļþ¡£Õâ¿ÉÒÔÓà mkcramfs ÃüÁîÍê³É¡£µÃµ½ÁËÕâ¸ö usr.img ÎļþÖ®ºó£¬ÎÒÃÇ»¹Òª¿¼ÂÇÔõÑù²ÅÄÜÔÚϵͳÔËÐеÄʱºò£¬°ÑÕâ¸ö image Îļþ mount ÉÏÀ´£¬³ÉΪһ¸ö¿ÉÓõÄÎļþϵͳ¡£ÓÉÓÚÕâ¸ö image Îļþ²»ÊÇÒ»¸öͨ³£ÒâÒåÉ쵀 block É豸£¬ÎÒÃDZØÐë²ÉÓà loopback É豸À´Íê³ÉÕâÒ»ÈÎÎñ¡£¾ßÌå˵À´£¬¾ÍÊÇÔÚÇ°ÃæÌáµ½µÄ /etc/init.d/rcS ½Å±¾µÄÇ°Ãæ²¿·Ö£¬¼ÓÉÏÒ»ÐÐ mount ÃüÁ
mount -o loop -t cramfs /usr.img /usr
ÕâÑù£¬¾Í¿ÉÒÔ¾­ÓÉ loopback É豸£¬°Ñ usr.img Õâ¸ö cramfs µÄ image Îļþ mount µ½ /usr Ŀ¼ÉÏÈ¥ÁË¡£Å¶£¬¶ÔÁË£¬ÓÉÓÚÒªÓõ½ loopback É豸£¬¶ÁÕßÅóÓÑÃÇÔÚ±àÒëÄں˵Äʱºò£¬±ðÍüÁ˼ÓÈëÄں˶ÔÕâ¸öÉ豸µÄÖ§³Ö¡£¶ÔÓÚϵͳ½ñºóµÄÔËÐÐÀ´Ëµ£¬Õâ¸ö mount µÄЧ¹ûÊÇ͸Ã÷µÄ¡£cramfs µÄѹËõЧÂÊÒ»°ã¶¼ÄÜ´ïµ½½«½ü 50%£¬¶øÎÒÃǵÄϵͳÉϾø´ó²¿·ÖµÄÄÚÈÝÊÇλÓÚ /usr Ŀ¼ÏÂÃæ£¬ÕâÑùÒ»À´£¬Ô­±¾¿ÉÄÜÒªÓõ½ 18M µÄ Flash ÅÌ£¬ÏÖÔÚ¿ÉÄÜÖ»ÐèÒª 11M ¾Í¿ÉÒÔÁË¡£Ò»¸ö 14M µÄ /usr Ŀ¼£¬¸øÑ¹Ëõ³ÉÁ˽ö½ö 7M¡£
ÉÏÃæ¿¼ÂÇÁËѹËõÎÊÌ⣬ÏÂÃæ»¹Òª¿¼Âǵ½£¬Flash Å̱Ͼ¹²»ÏñÆÕͨӲÅÌ£¬¶à´ÎµÄ²Áд±Ï¾¹²»Ì«ºÃ£¬ËùÒÔÎÒÃÇ¿¼ÂÇ£¬ÔÚÐèÒª¶à´Î²ÁдµÄµØ·½£¬Ê¹ÓÃÄÚ´æÀ´×ö¡£Õâ¸öÈÎÎñ£¬ÎÒÃÇ¿¼ÂÇÓà tmpfs À´Íê³É¡£ÖÁÓÚ tmpfs ºÍ¾­µäµÄ ramdisk µÄ±È½Ï£¬ÎÒÃÇÕâÀï¾Í²»¶à˵ÁË¡£Ò»°ã˵À´£¬tmpfs ¸ü¼ÓÁé»îһЩ£¬tmpfs µÄ´óС²»Ïñ ramdisk£¬¿ÉÒÔ˳×ÅÓû§µÄÐèÒªÔö³¤»òÕßËõС¡£ÎÒÃÇÑ¡Ôñ°Ñ /tmp¡¢/var µÈ¼¸¸öĿ¼×ö³É tmpfs¡£ÕâÖ»ÐèÒªÎÒÃÇÔÚ /etc/fstab ÀïÃæ¼ÓÉÏÁ½ÐÐÀàËÆÏÂÃæµÄÎÄ×־ͿÉÒÔÁË£º
none /var tmpfs default 0 0
È»ºó±ðÍüÁËÔÚ /etc/init.d/rcS ÀïÃæ¿¿½ü¿ªÍ·µÄµØ·½£¬¼ÓÉÏ mount -a¡£ÕâÑù£¬¾Í¿ÉÒÔ°Ñ /etc/fstab ÀïÃæÖ¸¶¨µÄËùÓеÄÎļþϵͳ¶¼ mount ÉÏÀ´ÁË¡£
X Window
½øÐе½ÕâÀ¶ÁÕßÅóÓÑÃÇ¿ÉÄÜ»áÒÔΪ£¬X Window µÄ°²×°¿ÉÄÜ»áºÜ¸´ÔÓ¡£Æäʵ²»È»£¬ÓÉÓÚÎÒÃÇÉÏÃæµÄ¼Ü×Ó´îºÃÁË£¬X Window µÄ°²×°·Ç³£¼òµ¥£¬Ö»ÐèÒª°Ñ¼¸¸ö¹Ø¼üµÄ³ÌÐò¿½±´¹ýÀ´¾Í¿ÉÒÔÁË¡£Ò»°ã˵À´£¬Ö»ÐèÒª /usr/X11R6 Ŀ¼ÏÂÃæµÄ bin ºÍ lib Á½¸öĿ¼¡£È»ºó£¬¸ù¾ÝÓû§¸÷×ÔµÄÐèÒª£¬»¹¿ÉÒÔ×ö´ó·ùµÄ²Ã¼õ¡£±ÈÈ磬Èç¹ûÄãµÄ¾ÖÓòÍøÉÏÓÐÒ»¸ö¿ª·ÅµÄ xfs ×ÖÌå·þÎñÆ÷µÄ»°£¬Äã¿ÉÒÔ°ÑËùÓб¾µØµÄ×ÖÌ嶼ɾµô£¬¶øÊ¹ÓÃÔ¶¶ËµÄ×ÖÌå·þÎñÆ÷¡£Èç¹ûÖ»ÐèÒªÔËÐÐÓÐÏ޵ijÌÐò£¬±ðÍüÁ˰ÑûÓÐÓÃµÄ library ¶¼É¾µô¡£´ËÍ⣬»¹¿ÉÒ԰ѶàÓàµÄ X Window µÄ driver ¶¼É¾µô£¬Ö»±£Áô±¾»úµÄÏÔʾ¿¨ËùÐèÒªµÄ driver ¾Í¿ÉÒÔÁË¡£
µ±È»£¬ÕâÒ»¹ØÃâ²»ÁËÒª×ö¶à´Î²âÊÔ¡£
ÆäËü¼¼ÇÉ
Èç¹ûÄãµÄ¹¤×÷ϵͳʽÔÚÁíÍâһ̨»úÆ÷ÉÏ£¬Í¨¹ý¾ÖÓòÍøºÍ±¾»ú»¥ÁªµÄ»°£¬ssh ÊÇÒ»¸ö²»´íµÄ¹¤¾ß¡£´ËÍ⣬ssh ÖдøµÄ scp ÓÃÆðÀ´ºÍÆÕͨµÄ cp ¿½±´³ÌÐò²î²»¶à£¬·Ç³£·½±ã¡£Óà ssh ºÍ scp À´¹²ÏíÎļþ£¬Ô¶³ÌÊÔÑ飬Äã¾Í¿ÉÒÔ²»ÐèÒªÔڰ칫ÊÒÀïÅÜÀ´ÅÜÈ¥µÄÁË¡£
Èç¹ûÄãÐèÒªÒ»¸ö MS Windows ÉÏÔËÐÐµÄ X Server ºÍ xfs ×ÖÌå·þÎñÆ÷£¬¿ÉÒÔ¿¼ÂǰüÀ¨ÔÚ Red Hat µÄ Cygwin ¹¤¾ßÏäÖÐµÄ XFree86 ϵͳ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 3 ÌõÆÀÂÛ

  1. cj2008 ÓÚ 2008-10-17 00:02:04·¢±í:

    ºÃÏñºÜÀÏÁË£¬¶ÔÏÖÔÚ¶¼²»ÄÜÓÃÁË

  2. shresh ÓÚ 2008-10-16 23:37:56·¢±í:

    ¸ßÈË ÎÒÏÈÕ¼¸ö×ø