¡¡¡¡LinuxϵÄÎļþϵͳ½á¹¹ÈçÏ£º
¡¡¡¡

¡¡¡¡LinuxÆô¶¯Ê±£¬µÚÒ»¸ö±ØÐë¹ÒÔØµÄÊǸùÎļþϵͳ£»Èôϵͳ²»ÄÜ´ÓÖ¸¶¨É豸ÉϹÒÔØ¸ùÎļþϵͳ£¬Ôòϵͳ»á³ö´í¶øÍ˳öÆô¶¯¡£Ö®ºó¿ÉÒÔ×Ô¶¯»òÊÖ¶¯¹ÒÔØÆäËûµÄÎļþϵͳ¡£Òò´Ë£¬Ò»¸öϵͳÖпÉÒÔͬʱ´æÔÚ²»Í¬µÄÎļþϵͳ¡£
¡¡¡¡²»Í¬µÄÎļþϵͳÀàÐÍÓв»Í¬µÄÌØµã£¬Òò¶ø¸ù¾Ý´æ´¢É豸µÄÓ²¼þÌØÐÔ¡¢ÏµÍ³ÐèÇóµÈÓв»Í¬µÄÓ¦Óó¡ºÏ¡£ÔÚǶÈëʽLinuxÓ¦ÓÃÖУ¬Ö÷ÒªµÄ´æ´¢É豸ΪRAM(DRAM, SDRAM)ºÍROM(³£²ÉÓÃFLASH´æ´¢Æ÷)£¬³£ÓõĻùÓÚ´æ´¢É豸µÄÎļþϵͳÀàÐͰüÀ¨£ºjffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfsµÈ¡£
¡¡¡¡1. »ùÓÚFLASHµÄÎļþϵͳ
¡¡¡¡Flash(ÉÁ´æ)×÷ΪǶÈëʽϵͳµÄÖ÷Òª´æ´¢Ã½½é£¬ÓÐÆä×ÔÉíµÄÌØÐÔ¡£FlashµÄдÈë²Ù×÷Ö»ÄܰѶÔӦλÖõÄ1ÐÞ¸ÄΪ0£¬¶ø²»ÄܰÑ0ÐÞ¸ÄΪ1(²Á³ýFlash¾ÍÊǰѶÔÓ¦´æ´¢¿éµÄÄÚÈݻָ´Îª1)£¬Òò´Ë£¬Ò»°ãÇé¿öÏ£¬ÏòFlashдÈëÄÚÈÝʱ£¬ÐèÒªÏȲÁ³ý¶ÔÓ¦µÄ´æ´¢Çø¼ä£¬ÕâÖÖ²Á³ýÊÇÒÔ¿é(block)Ϊµ¥Î»½øÐеġ£
¡¡¡¡ÉÁ´æÖ÷ÒªÓÐNORºÍNANDÁ½ÖÖ¼¼Êõ(¼òµ¥±È½Ï¼û¸½Â¼)¡£Flash´æ´¢Æ÷µÄ²Áд´ÎÊýÊÇÓÐÏ޵ģ¬NANDÉÁ´æ»¹ÓÐÌØÊâµÄÓ²¼þ½Ó¿ÚºÍ¶ÁдʱÐò¡£Òò´Ë£¬±ØÐëÕë¶ÔFlashµÄÓ²¼þÌØÐÔÉè¼Æ·ûºÏÓ¦ÓÃÒªÇóµÄÎļþϵͳ£»´«Í³µÄÎļþϵͳÈçext2µÈ£¬ÓÃ×÷FlashµÄÎļþϵͳ»áÓÐÖî¶à±×¶Ë¡£
¡¡¡¡ÔÚǶÈëʽLinuxÏ£¬MTD(Memory Technology Device,´æ´¢¼¼ÊõÉ豸)Ϊµ×²ãÓ²¼þ(ÉÁ´æ)ºÍÉϲã(Îļþϵͳ)Ö®¼äÌṩһ¸öͳһµÄ³éÏó½Ó¿Ú£¬¼´FlashµÄÎļþϵͳ¶¼ÊÇ»ùÓÚMTDÇý¶¯²ãµÄ(²Î¼ûÉÏÃæµÄLinuxϵÄÎļþϵͳ½á¹¹Í¼)¡£Ê¹ÓÃMTDÇý¶¯³ÌÐòµÄÖ÷ÒªÓŵãÔÚÓÚ£¬ËüÊÇרÃÅÕë¶Ô¸÷ÖÖ·ÇÒ×ʧÐÔ´æ´¢Æ÷(ÒÔÉÁ´æÎªÖ÷)¶øÉè¼ÆµÄ£¬Òò¶øËü¶ÔFlashÓиüºÃµÄÖ§³Ö¡¢¹ÜÀíºÍ»ùÓÚÉÈÇøµÄ²Á³ý¡¢¶Á/д²Ù×÷½Ó¿Ú¡£
¡¡¡¡Ë³±ãÒ»Ìᣬһ¿éFlashоƬ¿ÉÒÔ±»»®·ÖΪ¶à¸ö·ÖÇø£¬¸÷·ÖÇø¿ÉÒÔ²ÉÓò»Í¬µÄÎļþϵͳ£»Á½¿éFlashоƬҲ¿ÉÒԺϲ¢ÎªÒ»¸ö·ÖÇøÊ¹Ó㬲ÉÓÃÒ»¸öÎļþϵͳ¡£¼´ÎļþϵͳÊÇÕë¶ÔÓÚ´æ´¢Æ÷·ÖÇø¶øÑԵ쬶ø·Ç´æ´¢Ð¾Æ¬¡£
¡¡¡¡(1) jffs2
¡¡¡¡JFFSÎļþϵͳ×îÔçÊÇÓÉÈðµäAxis Communications¹«Ë¾»ùÓÚLinux2.0µÄÄÚºËΪǶÈëʽϵͳ¿ª·¢µÄÎļþϵͳ¡£JFFS2ÊÇRedHat¹«Ë¾»ùÓÚJFFS¿ª·¢µÄÉÁ´æÎļþϵͳ£¬×î³õÊÇÕë¶ÔRedHat¹«Ë¾µÄǶÈëʽ²úÆ·eCos¿ª·¢µÄǶÈëʽÎļþϵͳ£¬ËùÒÔJFFS2Ò²¿ÉÒÔÓÃÔÚLinux, uCLinuxÖС£
¡¡¡¡Jffs2: ÈÕÖ¾ÉÁ´æÎļþϵͳ°æ±¾2 (Journalling Flash FileSystem v2)
¡¡¡¡Ö÷ÒªÓÃÓÚNORÐÍÉÁ´æ£¬»ùÓÚMTDÇý¶¯²ã£¬ÌصãÊÇ£º¿É¶ÁдµÄ¡¢Ö§³ÖÊý¾ÝѹËõµÄ¡¢»ùÓÚ¹þÏ£±íµÄÈÕÖ¾ÐÍÎļþϵͳ£¬²¢ÌṩÁ˱ÀÀ£/µôµç°²È«±£»¤£¬Ìṩ¡°Ð´Æ½ºâ¡±Ö§³ÖµÈ¡£È±µãÖ÷ÒªÊǵ±ÎļþϵͳÒÑÂú»ò½Ó½üÂúʱ£¬ÒòΪÀ¬»øÊÕ¼¯µÄ¹ØÏµ¶øÊ¹jffs2µÄÔËÐÐËÙ¶È´ó´ó·ÅÂý¡£
¡¡¡¡Ä¿Ç°jffs3ÕýÔÚ¿ª·¢ÖС£¹ØÓÚjffsϵÁÐÎļþϵͳµÄʹÓÃÏêϸÎĵµ£¬¿É²Î¿¼MTD²¹¶¡°üÖÐmtd-jffs-HOWTO.txt¡£
¡¡¡¡jffsx²»ÊʺÏÓÃÓÚNANDÉÁ´æÖ÷ÒªÊÇÒòΪNANDÉÁ´æµÄÈÝÁ¿Ò»°ã½Ï´ó£¬ÕâÑùµ¼ÖÂjffsΪά»¤ÈÕÖ¾½ÚµãËùÕ¼ÓõÄÄÚ´æ¿Õ¼äѸËÙÔö´ó£¬ÁíÍ⣬jffsxÎļþϵͳÔÚ¹ÒÔØÊ±ÐèҪɨÃèÕû¸öFLASHµÄÄÚÈÝ£¬ÒÔÕÒ³öËùÓеÄÈÕÖ¾½Úµã£¬½¨Á¢Îļþ½á¹¹£¬¶ÔÓÚ´óÈÝÁ¿µÄNANDÉÁ´æ»áºÄ·Ñ´óÁ¿Ê±¼ä¡£
¡¡¡¡ (2) yaffs£ºYet Another Flash File System
¡¡¡¡yaffs/yaffs2ÊÇרΪǶÈëʽϵͳʹÓÃNANDÐÍÉÁ´æ¶øÉè¼ÆµÄÒ»ÖÖÈÕÖ¾ÐÍÎļþϵͳ¡£Óëjffs2Ïà±È£¬Ëü¼õÉÙÁËһЩ¹¦ÄÜ(ÀýÈç²»Ö§³ÖÊý¾ÝѹËõ)£¬ËùÒÔËٶȸü¿ì£¬¹ÒÔØÊ±¼äºÜ¶Ì£¬¶ÔÄÚ´æµÄÕ¼ÓýÏС¡£ÁíÍ⣬Ëü»¹ÊÇ¿çÆ½Ì¨µÄÎļþϵͳ£¬³ýÁËLinuxºÍeCos£¬»¹Ö§³ÖWinCE, pSOSºÍThreadXµÈ¡£
¡¡¡¡yaffs/yaffs2×Ô´øNANDоƬµÄÇý¶¯£¬²¢ÇÒΪǶÈëʽϵͳÌṩÁËÖ±½Ó·ÃÎÊÎļþϵͳµÄAPI£¬Óû§¿ÉÒÔ²»Ê¹ÓÃLinuxÖеÄMTDÓëVFS£¬Ö±½Ó¶ÔÎļþϵͳ²Ù×÷¡£µ±È»£¬yaffsÒ²¿ÉÓëMTDÇý¶¯³ÌÐòÅäºÏʹÓá£
¡¡¡¡yaffsÓëyaffs2µÄÖ÷񻂿±ðÔÚÓÚ£¬Ç°Õß½öÖ§³ÖСҳ(512 Bytes) NANDÉÁ´æ£¬ºóÕßÔò¿ÉÖ§³Ö´óÒ³(2KB) NANDÉÁ´æ¡£Í¬Ê±£¬yaffs2ÔÚÄÚ´æ¿Õ¼äÕ¼Óá¢À¬»ø»ØÊÕËÙ¶È¡¢¶Á/дËٶȵȷ½Ãæ¾ùÓдó·ùÌáÉý¡£
¡¡¡¡(3) Cramfs£ºCompressed ROM File System
¡¡¡¡CramfsÊÇLinuxµÄ´´Ê¼ÈË Linus Torvalds²ÎÓ뿪·¢µÄÒ»ÖÖÖ»¶ÁµÄѹËõÎļþϵͳ¡£ËüÒ²»ùÓÚMTDÇý¶¯³ÌÐò¡£
¡¡¡¡ÔÚcramfsÎļþϵͳÖУ¬Ã¿Ò»Ò³(4KB)±»µ¥¶ÀѹËõ£¬¿ÉÒÔËæ»úÒ³·ÃÎÊ£¬ÆäѹËõ±È¸ß´ï2:1,ΪǶÈëʽϵͳ½ÚÊ¡´óÁ¿µÄFlash´æ´¢¿Õ¼ä£¬Ê¹ÏµÍ³¿Éͨ¹ý¸üµÍÈÝÁ¿µÄFLASH´æ´¢ÏàͬµÄÎļþ£¬´Ó¶ø½µµÍϵͳ³É±¾¡£
¡¡¡¡CramfsÎļþϵͳÒÔѹËõ·½Ê½´æ´¢£¬ÔÚÔËÐÐʱ½âѹËõ£¬ËùÒÔ²»Ö§³ÖÓ¦ÓóÌÐòÒÔXIP·½Ê½ÔËÐУ¬ËùÓеÄÓ¦ÓóÌÐòÒªÇ󱻿½µ½RAMÀïÈ¥ÔËÐУ¬µ«Õâ²¢²»´ú±í±ÈRamfsÐèÇóµÄRAM¿Õ¼äÒª´óÒ»µã£¬ÒòΪCramfsÊDzÉÓ÷ÖҳѹËõµÄ·½Ê½´æ·Åµµ°¸£¬ÔÚ¶ÁÈ¡µµ°¸Ê±£¬²»»áÒ»ÏÂ×ӾͺÄÓùý¶àµÄÄÚ´æ¿Õ¼ä£¬Ö»Õë¶ÔĿǰʵ¼Ê¶ÁÈ¡µÄ²¿·Ö·ÖÅäÄڴ棬ÉÐûÓжÁÈ¡µÄ²¿·Ö²»·ÖÅäÄÚ´æ¿Õ¼ä£¬µ±ÎÒÃǶÁÈ¡µÄµµ°¸²»ÔÚÄÚ´æÊ±£¬CramfsÎļþϵͳ×Ô¶¯¼ÆËãѹËõºóµÄ×ÊÁÏËù´æµÄλÖã¬ÔÙ¼´Ê±½âѹËõµ½RAMÖС£
¡¡¡¡ÁíÍ⣬ËüµÄËٶȿ죬ЧÂʸߣ¬ÆäÖ»¶ÁµÄÌØµãÓÐÀûÓÚ±£»¤ÎļþϵͳÃâÊÜÆÆ»µ£¬Ìá¸ßÁËϵͳµÄ¿É¿¿ÐÔ¡£
¡¡¡¡ÓÉÓÚÒÔÉÏÌØÐÔ£¬CramfsÔÚǶÈëʽϵͳÖÐÓ¦Óù㷺¡£
¡¡¡¡µ«ÊÇËüµÄÖ»¶ÁÊôÐÔͬʱÓÖÊÇËüµÄÒ»´óȱÏÝ£¬Ê¹µÃÓû§ÎÞ·¨¶ÔÆäÄÚÈݶԽøÀ©³ä¡£
¡¡¡¡CramfsÓ³Ïñͨ³£ÊÇ·ÅÔÚFlashÖУ¬µ«ÊÇÒ²ÄÜ·ÅÔÚ±ðµÄÎļþϵͳÀʹÓÃloopback É豸¿ÉÒÔ°ÑËü°²×°±ðµÄÎļþϵͳÀï¡£
¡¡¡¡(4) Romfs
¡¡¡¡´«Í³Ð͵ÄRomfsÎļþϵͳÊÇÒ»ÖÖ¼òµ¥µÄ¡¢½ô´ÕµÄ¡¢Ö»¶ÁµÄÎļþϵͳ£¬²»Ö§³Ö¶¯Ì¬²Áд±£´æ£¬°´Ë³Ðò´æ·ÅÊý¾Ý£¬Òò¶øÖ§³ÖÓ¦ÓóÌÐòÒÔXIP(eXecute In Place£¬Æ¬ÄÚÔËÐÐ)·½Ê½ÔËÐУ¬ÔÚϵͳÔËÐÐʱ£¬½ÚÊ¡RAM¿Õ¼ä¡£uClinuxϵͳͨ³£²ÉÓÃRomfsÎļþϵͳ¡£
¡¡¡¡ÆäËûÎļþϵͳ£ºfat/fat32Ò²¿ÉÓÃÓÚʵ¼ÊǶÈëʽϵͳµÄÀ©Õ¹´æ´¢Æ÷(ÀýÈçPDA, Smartphone, ÊýÂëÏà»úµÈµÄSD¿¨)£¬ÕâÖ÷ÒªÊÇΪÁ˸üºÃµÄÓë×îÁ÷ÐеÄWindows×ÀÃæ²Ù×÷ϵͳÏà¼æÈÝ¡£ext2Ò²¿ÉÒÔ×÷ΪǶÈëʽLinuxµÄÎļþϵͳ£¬²»¹ý½«ËüÓÃÓÚFLASHÉÁ´æ»áÓÐÖî¶à±×¶Ë¡£
¡¡¡¡2. »ùÓÚRAMµÄÎļþϵͳ
¡¡¡¡(1) Ramdisk
¡¡¡¡RamdiskÊǽ«Ò»²¿·Ö¹Ì¶¨´óСµÄÄÚ´æµ±×÷·ÖÇøÀ´Ê¹Óá£Ëü²¢·ÇÒ»¸öʵ¼ÊµÄÎļþϵͳ£¬¶øÊÇÒ»ÖÖ½«Êµ¼ÊµÄÎļþϵͳװÈëÄÚ´æµÄ»úÖÆ£¬²¢ÇÒ¿ÉÒÔ×÷Ϊ¸ùÎļþϵͳ¡£½«Ò»Ð©¾³£±»·ÃÎʶøÓÖ²»»á¸ü¸ÄµÄÎļþ(ÈçÖ»¶ÁµÄ¸ùÎļþϵͳ)ͨ¹ýRamdisk·ÅÔÚÄÚ´æÖУ¬¿ÉÒÔÃ÷ÏÔµØÌá¸ßϵͳµÄÐÔÄÜ¡£
¡¡¡¡ÔÚLinuxµÄÆô¶¯½×¶Î£¬initrdÌṩÁËÒ»Ì×»úÖÆ£¬¿ÉÒÔ½«ÄÚºËÓ³ÏñºÍ¸ùÎļþϵͳһÆðÔØÈëÄÚ´æ¡£
¡¡¡¡(2)ramfs/tmpfs
¡¡¡¡RamfsÊÇLinus Torvalds¿ª·¢µÄÒ»ÖÖ»ùÓÚÄÚ´æµÄÎļþϵͳ£¬¹¤×÷ÓÚÐéÄâÎļþϵͳ(VFS)²ã£¬²»Äܸñʽ»¯£¬¿ÉÒÔ´´½¨¶à¸ö£¬ÔÚ´´½¨Ê±¿ÉÒÔÖ¸¶¨Æä×î´óÄÜʹÓõÄÄÚ´æ´óС¡£(ʵ¼ÊÉÏ£¬VFS±¾ÖÊÉϿɿ´³ÉÒ»ÖÖÄÚ´æÎļþϵͳ£¬ËüͳһÁËÎļþÔÚÄÚºËÖеıíʾ·½Ê½£¬²¢¶Ô´ÅÅÌÎļþϵͳ½øÐлº³å¡£)
¡¡¡¡Ramfs/tmpfsÎļþϵͳ°ÑËùÓеÄÎļþ¶¼·ÅÔÚRAMÖУ¬ËùÒÔ¶Á/д²Ù×÷·¢ÉúÔÚRAMÖУ¬¿ÉÒÔÓÃramfs/tmpfsÀ´´æ´¢Ò»Ð©ÁÙʱÐÔ»ò¾³£ÒªÐ޸ĵÄÊý¾Ý£¬ÀýÈç/tmpºÍ/varĿ¼£¬ÕâÑù¼È±ÜÃâÁ˶ÔFlash´æ´¢Æ÷µÄ¶ÁдËðºÄ£¬Ò²Ìá¸ßÁËÊý¾Ý¶ÁдËÙ¶È¡£
¡¡¡¡Ramfs/tmpfsÏà¶ÔÓÚ´«Í³µÄRamdiskµÄ²»Í¬Ö®´¦Ö÷ÒªÔÚÓÚ£º²»Äܸñʽ»¯£¬Îļþϵͳ´óС¿ÉËæËùº¬ÎļþÄÚÈÝ´óС±ä»¯¡£
¡¡¡¡TmpfsµÄÒ»¸öȱµãÊǵ±ÏµÍ³ÖØÐÂÒýµ¼Ê±»á¶ªÊ§ËùÓÐÊý¾Ý¡£
¡¡¡¡3. ÍøÂçÎļþϵͳNFS (Network File System)
¡¡¡¡NFSÊÇÓÉSun¿ª·¢²¢·¢Õ¹ÆðÀ´µÄÒ»ÏîÔÚ²»Í¬»úÆ÷¡¢²»Í¬²Ù×÷ϵͳ֮¼äͨ¹ýÍøÂç¹²ÏíÎļþµÄ¼¼Êõ¡£ÔÚǶÈëʽLinuxϵͳµÄ¿ª·¢µ÷ÊԽ׶Σ¬¿ÉÒÔÀûÓøü¼ÊõÔÚÖ÷»úÉϽ¨Á¢»ùÓÚNFSµÄ¸ùÎļþϵͳ£¬¹ÒÔØµ½Ç¶ÈëʽÉ豸£¬¿ÉÒԺܷ½±ãµØÐ޸ĸùÎļþϵͳµÄÄÚÈÝ¡£
¡¡¡¡ÒÔÉÏÌÖÂ۵ͼÊÇ»ùÓÚ´æ´¢É豸µÄÎļþϵͳ(memory-based file system)£¬ËüÃǶ¼¿ÉÓÃ×÷LinuxµÄ¸ùÎļþϵͳ¡£Êµ¼ÊÉÏ£¬Linux»¹Ö§³ÖÂß¼µÄ»òαÎļþϵͳ(logical or pseudo file system)£¬ÀýÈçprocfs(procÎļþϵͳ)£¬ÓÃÓÚ»ñȡϵͳÐÅÏ¢£¬ÒÔ¼°devfs(É豸Îļþϵͳ)ºÍsysfs£¬ÓÃÓÚά»¤É豸Îļþ¡£
chongee ÓÚ 2011-10-24 16:47:56·¢±í:
ºÜÇåÎú£¬Á˽â
ycm0560 ÓÚ 2010-01-22 19:22:19·¢±í:
xiexie
13916224047 ÓÚ 2010-01-22 16:28:12·¢±í:
ÎÒÔõôֻÓÐÃüÁîÐÐ Á¬½çÃæÒ²Ã»ÓРҪװ×ÀÃæÏµÍ³Ôõôװ°¡
13916224047 ÓÚ 2010-01-22 16:27:40·¢±í:
- - ѧϰ
ÒäÍøÇéÉî ÓÚ 2010-01-22 13:59:03·¢±í:
лл·ÖÏí
bingwzi ÓÚ 2009-12-23 16:10:59·¢±í:
ÊÕ²Ø
sherwinwang ÓÚ 2009-12-20 14:47:58·¢±í:
ÕýÔÚѧϰ
liang33264113 ÓÚ 2009-12-11 16:42:53·¢±í:
o
otwett ÓÚ 2009-12-06 23:55:11·¢±í:
{:2_93:}
ÕųÉÃú ÓÚ 2009-04-10 10:01:12·¢±í:
лÁË£¬ÕýÔÚÕÒÄÄ