Commit 826a613d authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

docs: filesystems: convert sysv-fs.txt to ReST

- Add a SPDX header;
- Add a document title;
- Some whitespace fixes and new line breaks;
- Mark literal blocks as such;
- Add table markups;
- Add it to filesystems/index.rst.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/5b96a6efba95773af439ab25a7dbe4d0edf8c867.1581955849.git.mchehab+huawei@kernel.orgSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 86beb976
...@@ -88,5 +88,6 @@ Documentation for filesystem implementations. ...@@ -88,5 +88,6 @@ Documentation for filesystem implementations.
romfs romfs
squashfs squashfs
sysfs sysfs
sysv-fs
virtiofs virtiofs
vfat vfat
.. SPDX-License-Identifier: GPL-2.0
==================
SystemV Filesystem
==================
It implements all of It implements all of
- Xenix FS, - Xenix FS,
- SystemV/386 FS, - SystemV/386 FS,
- Coherent FS. - Coherent FS.
To install: To install:
* Answer the 'System V and Coherent filesystem support' question with 'y' * Answer the 'System V and Coherent filesystem support' question with 'y'
when configuring the kernel. when configuring the kernel.
* To mount a disk or a partition, use * To mount a disk or a partition, use::
mount [-r] -t sysv device mountpoint mount [-r] -t sysv device mountpoint
The file system type names
The file system type names::
-t sysv -t sysv
-t xenix -t xenix
-t coherent -t coherent
may be used interchangeably, but the last two will eventually disappear. may be used interchangeably, but the last two will eventually disappear.
Bugs in the present implementation: Bugs in the present implementation:
- Coherent FS: - Coherent FS:
- The "free list interleave" n:m is currently ignored. - The "free list interleave" n:m is currently ignored.
- Only file systems with no filesystem name and no pack name are recognized. - Only file systems with no filesystem name and no pack name are recognized.
(See Coherent "man mkfs" for a description of these features.) (See Coherent "man mkfs" for a description of these features.)
- SystemV Release 2 FS: - SystemV Release 2 FS:
The superblock is only searched in the blocks 9, 15, 18, which The superblock is only searched in the blocks 9, 15, 18, which
corresponds to the beginning of track 1 on floppy disks. No support corresponds to the beginning of track 1 on floppy disks. No support
for this FS on hard disk yet. for this FS on hard disk yet.
...@@ -28,12 +43,14 @@ Bugs in the present implementation: ...@@ -28,12 +43,14 @@ Bugs in the present implementation:
These filesystems are rather similar. Here is a comparison with Minix FS: These filesystems are rather similar. Here is a comparison with Minix FS:
* Linux fdisk reports on partitions * Linux fdisk reports on partitions
- Minix FS 0x81 Linux/Minix - Minix FS 0x81 Linux/Minix
- Xenix FS ?? - Xenix FS ??
- SystemV FS ?? - SystemV FS ??
- Coherent FS 0x08 AIX bootable - Coherent FS 0x08 AIX bootable
* Size of a block or zone (data allocation unit on disk) * Size of a block or zone (data allocation unit on disk)
- Minix FS 1024 - Minix FS 1024
- Xenix FS 1024 (also 512 ??) - Xenix FS 1024 (also 512 ??)
- SystemV FS 1024 (also 512 and 2048) - SystemV FS 1024 (also 512 and 2048)
...@@ -45,37 +62,51 @@ These filesystems are rather similar. Here is a comparison with Minix FS: ...@@ -45,37 +62,51 @@ These filesystems are rather similar. Here is a comparison with Minix FS:
all the block numbers (including the super block) are offset by one track. all the block numbers (including the super block) are offset by one track.
* Byte ordering of "short" (16 bit entities) on disk: * Byte ordering of "short" (16 bit entities) on disk:
- Minix FS little endian 0 1 - Minix FS little endian 0 1
- Xenix FS little endian 0 1 - Xenix FS little endian 0 1
- SystemV FS little endian 0 1 - SystemV FS little endian 0 1
- Coherent 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! Of course, this affects only the file system, not the data of files on it!
* Byte ordering of "long" (32 bit entities) on disk: * Byte ordering of "long" (32 bit entities) on disk:
- Minix FS little endian 0 1 2 3 - Minix FS little endian 0 1 2 3
- Xenix FS little endian 0 1 2 3 - Xenix FS little endian 0 1 2 3
- SystemV FS little endian 0 1 2 3 - SystemV FS little endian 0 1 2 3
- Coherent FS PDP-11 2 3 0 1 - Coherent FS PDP-11 2 3 0 1
Of course, this affects only the file system, not the data of files on it! 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: * Inode on disk: "short", 0 means non-existent, the root dir ino is:
- Minix FS 1
- Xenix FS, SystemV FS, Coherent FS 2 ================================= ==
Minix FS 1
Xenix FS, SystemV FS, Coherent FS 2
================================= ==
* Maximum number of hard links to a file: * Maximum number of hard links to a file:
- Minix FS 250
- Xenix FS ?? =========== =========
- SystemV FS ?? Minix FS 250
- Coherent FS >=10000 Xenix FS ??
SystemV FS ??
Coherent FS >=10000
=========== =========
* Free inode management: * Free inode management:
- Minix FS a bitmap
- Minix FS
a bitmap
- Xenix FS, SystemV FS, Coherent FS - Xenix FS, SystemV FS, Coherent FS
There is a cache of a certain number of free inodes in the super-block. 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. When it is exhausted, new free inodes are found using a linear search.
* Free block management: * Free block management:
- Minix FS a bitmap
- Minix FS
a bitmap
- Xenix FS, SystemV FS, Coherent FS - Xenix FS, SystemV FS, Coherent FS
Free blocks are organized in a "free list". Maybe a misleading term, 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 since it is not true that every free block contains a pointer to
...@@ -86,13 +117,18 @@ These filesystems are rather similar. Here is a comparison with Minix FS: ...@@ -86,13 +117,18 @@ These filesystems are rather similar. Here is a comparison with Minix FS:
0 on Xenix FS and SystemV FS, with a block zeroed out on Coherent FS. 0 on Xenix FS and SystemV FS, with a block zeroed out on Coherent FS.
* Super-block location: * Super-block location:
- Minix FS block 1 = bytes 1024..2047
- Xenix FS block 1 = bytes 1024..2047 =========== ==========================
- SystemV FS bytes 512..1023 Minix FS block 1 = bytes 1024..2047
- Coherent FS block 1 = bytes 512..1023 Xenix FS block 1 = bytes 1024..2047
SystemV FS bytes 512..1023
Coherent FS block 1 = bytes 512..1023
=========== ==========================
* Super-block layout: * Super-block layout:
- Minix FS
- Minix FS::
unsigned short s_ninodes; unsigned short s_ninodes;
unsigned short s_nzones; unsigned short s_nzones;
unsigned short s_imap_blocks; unsigned short s_imap_blocks;
...@@ -101,7 +137,9 @@ These filesystems are rather similar. Here is a comparison with Minix FS: ...@@ -101,7 +137,9 @@ These filesystems are rather similar. Here is a comparison with Minix FS:
unsigned short s_log_zone_size; unsigned short s_log_zone_size;
unsigned long s_max_size; unsigned long s_max_size;
unsigned short s_magic; unsigned short s_magic;
- Xenix FS, SystemV FS, Coherent FS
- Xenix FS, SystemV FS, Coherent FS::
unsigned short s_firstdatazone; unsigned short s_firstdatazone;
unsigned long s_nzones; unsigned long s_nzones;
unsigned short s_fzone_count; unsigned short s_fzone_count;
...@@ -120,23 +158,33 @@ These filesystems are rather similar. Here is a comparison with Minix FS: ...@@ -120,23 +158,33 @@ These filesystems are rather similar. Here is a comparison with Minix FS:
unsigned short s_interleave_m,s_interleave_n; -- Coherent FS only unsigned short s_interleave_m,s_interleave_n; -- Coherent FS only
char s_fname[6]; char s_fname[6];
char s_fpack[6]; char s_fpack[6];
then they differ considerably: then they differ considerably:
Xenix FS
Xenix FS::
char s_clean; char s_clean;
char s_fill[371]; char s_fill[371];
long s_magic; long s_magic;
long s_type; long s_type;
SystemV FS
SystemV FS::
long s_fill[12 or 14]; long s_fill[12 or 14];
long s_state; long s_state;
long s_magic; long s_magic;
long s_type; long s_type;
Coherent FS
Coherent FS::
unsigned long s_unique; unsigned long s_unique;
Note that Coherent FS has no magic. Note that Coherent FS has no magic.
* Inode layout: * Inode layout:
- Minix FS
- Minix FS::
unsigned short i_mode; unsigned short i_mode;
unsigned short i_uid; unsigned short i_uid;
unsigned long i_size; unsigned long i_size;
...@@ -144,7 +192,9 @@ These filesystems are rather similar. Here is a comparison with Minix FS: ...@@ -144,7 +192,9 @@ These filesystems are rather similar. Here is a comparison with Minix FS:
unsigned char i_gid; unsigned char i_gid;
unsigned char i_nlinks; unsigned char i_nlinks;
unsigned short i_zone[7+1+1]; unsigned short i_zone[7+1+1];
- Xenix FS, SystemV FS, Coherent FS
- Xenix FS, SystemV FS, Coherent FS::
unsigned short i_mode; unsigned short i_mode;
unsigned short i_nlink; unsigned short i_nlink;
unsigned short i_uid; unsigned short i_uid;
...@@ -155,38 +205,55 @@ These filesystems are rather similar. Here is a comparison with Minix FS: ...@@ -155,38 +205,55 @@ These filesystems are rather similar. Here is a comparison with Minix FS:
unsigned long i_mtime; unsigned long i_mtime;
unsigned long i_ctime; unsigned long i_ctime;
* Regular file data blocks are organized as * 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:
- Minix FS 32 32
- Xenix FS 64 16 - 7 direct blocks
- SystemV FS 64 16 - 1 indirect block (pointers to blocks)
- Coherent FS 64 8 - 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 * Directory entry on disk
- Minix FS
- Minix FS::
unsigned short inode; unsigned short inode;
char name[14/30]; char name[14/30];
- Xenix FS, SystemV FS, Coherent FS
- Xenix FS, SystemV FS, Coherent FS::
unsigned short inode; unsigned short inode;
char name[14]; char name[14];
* Dir entry size, dir entries per block =========== ============== =====================
- Minix FS 16/32 64/32 Dir entry size dir entries per block
- Xenix FS 16 64 =========== ============== =====================
- SystemV FS 16 64 Minix FS 16/32 64/32
- Coherent FS 16 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: * How to implement symbolic links such that the host fsck doesn't scream:
- Minix FS normal - Minix FS normal
- Xenix FS kludge: as regular files with chmod 1000 - Xenix FS kludge: as regular files with chmod 1000
- SystemV FS ?? - SystemV FS ??
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment