⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intro

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻
字号:
This is the implementation of the SystemV/Coherent filesystem for Linux.It grew out of separate filesystem implementations    Xenix FS      Doug Evans <dje@cygnus.com>  June 1992    SystemV FS    Paul B. Monday <pmonday@eecs.wsu.edu> March-June 1993    Coherent FS   B. Haible <haible@ma2s2.mathematik.uni-karlsruhe.de> June 1993and was merged together in July 1993.These filesystems are rather similar. Here is a comparison with Minix FS:* Linux fdisk reports on partitions  - Minix FS     0x81 Linux/Minix  - Xenix FS     ??  - SystemV FS   ??  - Coherent FS  0x08 AIX bootable* Size of a block or zone (data allocation unit on disk)  - Minix FS     1024  - Xenix FS     1024 (also 512 ??)  - SystemV FS   1024 (also 512 and 2048)  - Coherent FS   512* General layout: all have one boot block, one super block and  separate areas for inodes and for directories/data.  On SystemV Release 2 FS (e.g. Microport) the first track is reserved and  all the block numbers (including the super block) are offset by one track.* Byte ordering of "short" (16 bit entities) on disk:  - Minix FS     little endian  0 1  - Xenix FS     little endian  0 1  - SystemV FS   little endian  0 1  - Coherent FS  little endian  0 1  Of course, this affects only the file system, not the data of files on it!* Byte ordering of "long" (32 bit entities) on disk:  - Minix FS     little endian  0 1 2 3  - Xenix FS     little endian  0 1 2 3  - SystemV FS   little endian  0 1 2 3  - Coherent FS  PDP-11         2 3 0 1  Of course, this affects only the file system, not the data of files on it!* Inode on disk: "short", 0 means non-existent, the root dir ino is:  - Minix FS                            1  - Xenix FS, SystemV FS, Coherent FS   2* Maximum number of hard links to a file:  - Minix FS     250  - Xenix FS     ??  - SystemV FS   ??  - Coherent FS  >=10000* Free inode management:  - Minix FS                             a bitmap  - Xenix FS, SystemV FS, Coherent FS      There is a cache of a certain number of free inodes in the super-block.      When it is exhausted, new free inodes are found using a linear search.* Free block management:  - Minix FS                             a bitmap  - Xenix FS, SystemV FS, Coherent FS      Free blocks are organized in a "free list". Maybe a misleading term,      since it is not true that every free block contains a pointer to      the next free block. Rather, the free blocks are organized in chunks      of limited size, and every now and then a free block contains pointers      to the free blocks pertaining to the next chunk; the first of these      contains pointers and so on. The list terminates with a "block number"      0 on Xenix FS and SystemV FS, with a block zeroed out on Coherent FS.* Super-block location:  - Minix FS     block 1 = bytes 1024..2047  - Xenix FS     block 1 = bytes 1024..2047  - SystemV FS   bytes 512..1023  - Coherent FS  block 1 = bytes 512..1023* Super-block layout:  - Minix FS                    unsigned short s_ninodes;                    unsigned short s_nzones;                    unsigned short s_imap_blocks;                    unsigned short s_zmap_blocks;                    unsigned short s_firstdatazone;                    unsigned short s_log_zone_size;                    unsigned long s_max_size;                    unsigned short s_magic;  - Xenix FS, SystemV FS, Coherent FS                    unsigned short s_firstdatazone;                    unsigned long  s_nzones;                    unsigned short s_fzone_count;                    unsigned long  s_fzones[NICFREE];                    unsigned short s_finode_count;                    unsigned short s_finodes[NICINOD];                    char           s_flock;                    char           s_ilock;                    char           s_modified;                    char           s_rdonly;                    unsigned long  s_time;                    short          s_dinfo[4]; -- SystemV FS only                    unsigned long  s_free_zones;                    unsigned short s_free_inodes;                    short          s_dinfo[4]; -- Xenix FS only                    unsigned short s_interleave_m,s_interleave_n; -- Coherent FS only                    char           s_fname[6];                    char           s_fpack[6];    then they differ considerably:        Xenix FS                    char           s_clean;                    char           s_fill[371];                    long           s_magic;                    long           s_type;        SystemV FS                    long           s_fill[12 or 14];                    long           s_state;                    long           s_magic;                    long           s_type;        Coherent FS                    unsigned long  s_unique;    Note that Coherent FS has no magic.* Inode layout:  - Minix FS                    unsigned short i_mode;                    unsigned short i_uid;                    unsigned long  i_size;                    unsigned long  i_time;                    unsigned char  i_gid;                    unsigned char  i_nlinks;                    unsigned short i_zone[7+1+1];  - Xenix FS, SystemV FS, Coherent FS                    unsigned short i_mode;                    unsigned short i_nlink;                    unsigned short i_uid;                    unsigned short i_gid;                    unsigned long  i_size;                    unsigned char  i_zone[3*(10+1+1+1)];                    unsigned long  i_atime;                    unsigned long  i_mtime;                    unsigned long  i_ctime;* Regular file data blocks are organized as  - Minix FS               7 direct blocks               1 indirect block (pointers to blocks)               1 double-indirect block (pointer to pointers to blocks)  - Xenix FS, SystemV FS, Coherent FS              10 direct blocks               1 indirect block (pointers to blocks)               1 double-indirect block (pointer to pointers to blocks)               1 triple-indirect block (pointer to pointers to pointers to blocks)* Inode size, inodes per block  - Minix FS        32   32  - Xenix FS        64   16  - SystemV FS      64   16  - Coherent FS     64    8* Directory entry on disk  - Minix FS                    unsigned short inode;                    char name[14/30];  - Xenix FS, SystemV FS, Coherent FS                    unsigned short inode;                    char name[14];* Dir entry size, dir entries per block  - Minix FS     16/32    64/32  - Xenix FS     16       64  - SystemV FS   16       64  - Coherent FS  16       32* How to implement symbolic links such that the host fsck doesn't scream:  - Minix FS     normal  - Xenix FS     kludge: as regular files with  chmod 1000  - SystemV FS   ??  - Coherent FS  kludge: as regular files with  chmod 1000Notation: We often speak of a "block" but mean a zone (the allocation unit)and not the disk driver's notion of "block".Bruno Haible  <haible@ma2s2.mathematik.uni-karlsruhe.de>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -