Annotated edit history of FileSystem version 28, including all changes. View license author blame.
Rev Author # Line
21 AristotlePagaltzis 1 A FileSystem is basically a file format for a disk. In order to use the diskspace, you need a way to determine which parts are in use, and where files are located, how they're called and so on. This is what a FileSystem provides. FileSystems lists the many different kinds of [FileSystem]s currently in use.
22 CraigBox 3 If part of a FileSystem has been corrupted you need to be able to repair it. Under MicrosoftWindows the stock tool is called ~ScanDisk. Unix systems call their corresponding tool fsck(8). fsck is automatically run if the FileSystem wasn't properly unmounted or hasn't been checked in a long time (the SuperUser can specify what constitutes a long time).
21 AristotlePagaltzis 4
23 CraigBox 5 !! Microsoft file systems
21 AristotlePagaltzis 6
23 CraigBox 7 On a [MicrosoftWindows] system, [Partition]s are formatted with the old and aging [FAT] or the much more modern [NTFS] FileSystem. A list of Microsoft filesystems:
21 AristotlePagaltzis 8
23 CraigBox 9 <?plugin BackLinks page=CategoryMicrosoftFileSystem noheader=1 ?>
11 Linux has full read/write support for [FAT32], full read support for [NTFS], and limited write support. If you wish to format a file system so that Windows and Linux can both see it, choose FAT32.
13 !! Traditional Linux file systems
26 JohnBillings 15 In contrast, the traditional FileSystem of choice on Linux is [Ext2]. It is very trusty and rock solid - losing much data from an [Ext2] partition is nearly impossible short of a hardware failure. The only problem is that an fsck takes a very long time. On servers that don't get rebooted in months, this is not much of a headache, but Linux is making its way to the desktop, where machines get rebooted frequently. Therefore, a variant that supports journalling was created: [Ext3]. The next revision of this filesystem, [Ext4] is gaining wider acceptance and aims to increase performance when dealing with large files.
23 CraigBox 16
17 !! Journalling file systems
19 Journalling file systems keep a log of changes pending completion, so in the event of a crash, they can quickly finish up or undo changes as required to bring the FileSystem back to a consistent state. A full consistency check with fsck crawling the entire disk is then unnecessary. Nevertheless, you should fsck partitions at least every once in a blue moon to ensure that no inconsistencies creep in. The likelihood is low, but better to be safe than sorry.
21 <?plugin BackLinks page=CategoryJournallingFileSystem noheader=1 ?>
23 !! Network file systems
21 AristotlePagaltzis 24
25 [NetworkFileSystem]s are another class of FileSystem designed to operate across multiple machines on a network. [NFS] originally from [SunMicrosystems] is a very widely used NetworkFileSystem, but recents [AndrewFileSystem], [OpenAFS] and [Coda] have taken off, partly because of their [Kerberos] security.
23 CraigBox 26
27 <?plugin BackLinks page=CategoryNetworkFileSystem noheader=1 ?>
29 !! Other file systems
31 <?plugin BackLinks page=CategoryOtherFileSystem noheader=1 ?>
27 JohnBillings 32
23 CraigBox 33 !! Inodes
21 AristotlePagaltzis 34
35 Linux looks at its file-system in the way Unix does: it adopts the concepts of super-block, inode, directory and file in the way Unix uses them:
23 CraigBox 37 * The super-block owes its name to its historical heritage, from when the first data block of a disk or partition was used to hold meta-information about the partition itself. The super-block is now detached from the concept of data block, but still is the data structure that holds information about each mounted file-system. The actual data structure in Linux is called struct super_block and hosts various housekeeping information, like mount flags, mount time and device blocksize. The 2.0 kernel keeps a static array of such structures to handle up to 64 mounted file-systems.
21 AristotlePagaltzis 38
23 CraigBox 39 * An inode is associated to each file. Such an 'index node' encloses all the information about a named file except its name and its actual data. The owner, group, permissions and access times for a file are stored in its inode, as well as the size of the data it holds, the number of links and other information. The idea of detaching file information from filename and data is what allows to implement hard-links -- and to use the `dot' and `dot-dot' notations for directories without any need to treat them specially. An inode is described in the kernel by a struct inode.
21 AristotlePagaltzis 40
25 PerryLorier 41 * The directory is a file that associates filenames to inodes. The kernel has no special data strcture to represent a directory, which is treated like a normal file in most situations. Functions specific to each filesystem-type are used to read and modify the contents of a directory independently of the actual layout of its data.
21 AristotlePagaltzis 42
23 CraigBox 43 * The file itself is something that is associated to an inode. Usually files are data areas, but they can also be directories, devices, FIFO's or sockets. An 'open file' is described in the Linux kernel by a struct file item; the structure encloses a pointer to the inode representing the file. file structures are created by system calls like open, pipe and socket, and are shared by father and child across fork.
45 File system that use inodes:
47 <?plugin BackLinks page=CategoryInodeFileSystem noheader=1 ?>
49 !!B-Tree file systems
51 <?plugin BackLinks page=CategoryBtreeFileSystem noheader=1 ?>
53 ----
24 CraigBox 55 See also:
23 CraigBox 56
24 CraigBox 57 * [Mount] and mount(8)
58 * FileSystemHierarchy: standard directory layout for a Linux machine.
59 * FileSystemsComparison, for some experiences with these.
60 * [WikiPedia:Filesystem].
21 AristotlePagaltzis 61
62 ----
22 CraigBox 63 CategoryBeginners %%%
64 CategoryStorage

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach()