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

LinuxÎļþϵͳһÀÀ

·¢²¼Ê±¼ä:2007-10-24 14:48:47À´Ô´:ºìÁª×÷Õß:uprtystpk
¡¡¡¡LinuxÖ§³Ö¶àÖÖÎļþϵͳ£¬°üÀ¨ext2¡¢ext3¡¢vfat¡¢ntfs¡¢iso9660¡¢jffs¡¢romfsºÍnfsµÈ£¬ÎªÁ˶Ը÷ÀàÎļþϵͳ½øÐÐͳһ¹ÜÀí£¬LinuxÒýÈëÁËÐéÄâÎļþϵͳVFS(Virtual File System)£¬Îª¸÷ÀàÎļþϵͳÌṩһ¸öͳһµÄ²Ù×÷½çÃæºÍÓ¦Óñà³Ì½Ó¿Ú¡£

¡¡¡¡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£¬ÓÃÓÚά»¤É豸Îļþ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 10 ÌõÆÀÂÛ

  1. chongee ÓÚ 2011-10-24 16:47:56·¢±í:

    ºÜÇåÎú£¬Á˽â

  2. ycm0560 ÓÚ 2010-01-22 19:22:19·¢±í:

    xiexie

  3. 13916224047 ÓÚ 2010-01-22 16:28:12·¢±í:

    ÎÒÔõôֻÓÐÃüÁîÐÐ Á¬½çÃæÒ²Ã»ÓРҪװ×ÀÃæÏµÍ³Ôõôװ°¡

  4. 13916224047 ÓÚ 2010-01-22 16:27:40·¢±í:

    - - ѧϰ

  5. ÒäÍøÇéÉî ÓÚ 2010-01-22 13:59:03·¢±í:

    лл·ÖÏí

  6. bingwzi ÓÚ 2009-12-23 16:10:59·¢±í:

    ÊÕ²Ø

  7. sherwinwang ÓÚ 2009-12-20 14:47:58·¢±í:

    ÕýÔÚѧϰ

  8. liang33264113 ÓÚ 2009-12-11 16:42:53·¢±í:

    o

  9. otwett ÓÚ 2009-12-06 23:55:11·¢±í:

    {:2_93:}

  10. ÕųÉÃú ÓÚ 2009-04-10 10:01:12·¢±í:

    лÁË£¬ÕýÔÚÕÒÄÄ