^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) SystemV Filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) It implements all of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) - Xenix FS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - SystemV/386 FS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Coherent FS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) To install:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * Answer the 'System V and Coherent filesystem support' question with 'y'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) when configuring the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * To mount a disk or a partition, use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) mount [-r] -t sysv device mountpoint
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) The file system type names::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) -t sysv
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) -t xenix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) -t coherent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) may be used interchangeably, but the last two will eventually disappear.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) Bugs in the present implementation:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - Coherent FS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - The "free list interleave" n:m is currently ignored.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - Only file systems with no filesystem name and no pack name are recognized.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) (See Coherent "man mkfs" for a description of these features.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - SystemV Release 2 FS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) The superblock is only searched in the blocks 9, 15, 18, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) corresponds to the beginning of track 1 on floppy disks. No support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) for this FS on hard disk yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) These filesystems are rather similar. Here is a comparison with Minix FS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) * Linux fdisk reports on partitions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - Minix FS 0x81 Linux/Minix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) - Xenix FS ??
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) - SystemV FS ??
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) - Coherent FS 0x08 AIX bootable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) * Size of a block or zone (data allocation unit on disk)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) - Minix FS 1024
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - Xenix FS 1024 (also 512 ??)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) - SystemV FS 1024 (also 512 and 2048)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) - Coherent FS 512
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) * General layout: all have one boot block, one super block and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) separate areas for inodes and for directories/data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) On SystemV Release 2 FS (e.g. Microport) the first track is reserved and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) all the block numbers (including the super block) are offset by one track.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) * Byte ordering of "short" (16 bit entities) on disk:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) - Minix FS little endian 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) - Xenix FS little endian 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) - SystemV FS little endian 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) - Coherent FS little endian 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) Of course, this affects only the file system, not the data of files on it!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) * Byte ordering of "long" (32 bit entities) on disk:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) - Minix FS little endian 0 1 2 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) - Xenix FS little endian 0 1 2 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) - SystemV FS little endian 0 1 2 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) - Coherent FS PDP-11 2 3 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Of course, this affects only the file system, not the data of files on it!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) * Inode on disk: "short", 0 means non-existent, the root dir ino is:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) ================================= ==
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) Minix FS 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) Xenix FS, SystemV FS, Coherent FS 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) ================================= ==
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) * Maximum number of hard links to a file:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) =========== =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) Minix FS 250
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) Xenix FS ??
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) SystemV FS ??
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) Coherent FS >=10000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) =========== =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) * Free inode management:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) - Minix FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) a bitmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) - Xenix FS, SystemV FS, Coherent FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) There is a cache of a certain number of free inodes in the super-block.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) When it is exhausted, new free inodes are found using a linear search.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) * Free block management:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) - Minix FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) a bitmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - Xenix FS, SystemV FS, Coherent FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) Free blocks are organized in a "free list". Maybe a misleading term,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) since it is not true that every free block contains a pointer to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) the next free block. Rather, the free blocks are organized in chunks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) of limited size, and every now and then a free block contains pointers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) to the free blocks pertaining to the next chunk; the first of these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) contains pointers and so on. The list terminates with a "block number"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 0 on Xenix FS and SystemV FS, with a block zeroed out on Coherent FS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) * Super-block location:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) =========== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) Minix FS block 1 = bytes 1024..2047
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) Xenix FS block 1 = bytes 1024..2047
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) SystemV FS bytes 512..1023
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) Coherent FS block 1 = bytes 512..1023
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) =========== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) * Super-block layout:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) - Minix FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) unsigned short s_ninodes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) unsigned short s_nzones;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) unsigned short s_imap_blocks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) unsigned short s_zmap_blocks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) unsigned short s_firstdatazone;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) unsigned short s_log_zone_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) unsigned long s_max_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) unsigned short s_magic;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) - Xenix FS, SystemV FS, Coherent FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) unsigned short s_firstdatazone;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) unsigned long s_nzones;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) unsigned short s_fzone_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) unsigned long s_fzones[NICFREE];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) unsigned short s_finode_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) unsigned short s_finodes[NICINOD];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) char s_flock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) char s_ilock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) char s_modified;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) char s_rdonly;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) unsigned long s_time;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) short s_dinfo[4]; -- SystemV FS only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) unsigned long s_free_zones;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) unsigned short s_free_inodes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) short s_dinfo[4]; -- Xenix FS only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) unsigned short s_interleave_m,s_interleave_n; -- Coherent FS only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) char s_fname[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) char s_fpack[6];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) then they differ considerably:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) Xenix FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) char s_clean;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) char s_fill[371];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) long s_magic;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) long s_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) SystemV FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) long s_fill[12 or 14];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) long s_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) long s_magic;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) long s_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) Coherent FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) unsigned long s_unique;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) Note that Coherent FS has no magic.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) * Inode layout:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) - Minix FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) unsigned short i_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) unsigned short i_uid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) unsigned long i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) unsigned long i_time;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) unsigned char i_gid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) unsigned char i_nlinks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) unsigned short i_zone[7+1+1];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) - Xenix FS, SystemV FS, Coherent FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) unsigned short i_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) unsigned short i_nlink;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) unsigned short i_uid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) unsigned short i_gid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) unsigned long i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) unsigned char i_zone[3*(10+1+1+1)];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) unsigned long i_atime;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) unsigned long i_mtime;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) unsigned long i_ctime;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) * Regular file data blocks are organized as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) - Minix FS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) - 7 direct blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) - 1 indirect block (pointers to blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) - 1 double-indirect block (pointer to pointers to blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) - Xenix FS, SystemV FS, Coherent FS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) - 10 direct blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) - 1 indirect block (pointers to blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) - 1 double-indirect block (pointer to pointers to blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) - 1 triple-indirect block (pointer to pointers to pointers to blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) =========== ========== ================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) Inode size inodes per block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) =========== ========== ================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) Minix FS 32 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) Xenix FS 64 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) SystemV FS 64 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) Coherent FS 64 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) =========== ========== ================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) * Directory entry on disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) - Minix FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) unsigned short inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) char name[14/30];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) - Xenix FS, SystemV FS, Coherent FS::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) unsigned short inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) char name[14];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) =========== ============== =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) Dir entry size dir entries per block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) =========== ============== =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) Minix FS 16/32 64/32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) Xenix FS 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) SystemV FS 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) Coherent FS 16 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) =========== ============== =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) * How to implement symbolic links such that the host fsck doesn't scream:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) - Minix FS normal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) - Xenix FS kludge: as regular files with chmod 1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) - SystemV FS ??
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) - Coherent FS kludge: as regular files with chmod 1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) Notation: We often speak of a "block" but mean a zone (the allocation unit)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) and not the disk driver's notion of "block".