Ext2: Difference between revisions
→File system limits: fix symbol | (if you are using IEC prefixes, use them everywhere that is appropriate) |
|||
Line 46: | Line 46: | ||
Each block group contains a superblock, the group block bitmap, inode bitmap, followed by the actual data blocks. |
Each block group contains a superblock, the group block bitmap, inode bitmap, followed by the actual data blocks. |
||
The superblock contains important information that is crucial to the booting of the [[operating system]], thus backup copies are made in every block group of each block in the file system. However, only the first copy of it, which is found at the first block of the file system, is used in the booting. |
The [[superblock]] contains important information that is crucial to the booting of the [[operating system]], thus backup copies are made in every block group of each block in the file system. However, only the first copy of it, which is found at the first block of the file system, is used in the booting. |
||
The group descriptor stores the value of the block bitmap, inode bitmap and the start of the inode table for every block group and these, in turn is stored in a group descriptor table. |
The group descriptor stores the value of the block bitmap, inode bitmap and the start of the inode table for every block group and these, in turn is stored in a group descriptor table. |
Revision as of 09:20, 24 April 2007
Developer(s) | Rémy Card |
---|---|
Full name | Second extended file system |
Introduced | January 1993 with Linux |
Partition IDs | Apple_UNIX_SVR2 (Apple Partition Map) 0x83 (Master Boot Record) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT) |
Structures | |
File allocation | I-nodes |
Limits | |
Max volume size | 16 TiB |
Max file size | 2 TiB |
Max no. of files | 1018 |
Max filename length | 255 characters |
Allowed filename characters | Any byte except NUL and '/' |
Features | |
Forks | yes |
File system permissions | POSIX |
Transparent compression | Yes (optional) |
Transparent encryption | No |
Other | |
Supported operating systems | Linux, BSD, Windows (through an IFS), MacOS X |
The ext2 or second extended file system is a file system for the Linux kernel. It was initially designed by Rémy Card as a replacement for the extended file system (ext). It is fast enough that it is used as the benchmarking standard. Although ext2 is not a journaling file system, its successor, ext3, provides journaling and is almost completely compatible with ext2.
The canonical implementation of ext2 is the ext2fs filesystem driver in the Linux kernel. Other implementations (of varying quality and completeness) exist in HURD, Mac OS X (third-party), Darwin (same third-party as Mac OS X but untested), some BSD kernels and as third-party Microsoft Windows drivers. ext2 was the default filesystem in several Linux distributions, including Red Hat Linux, Fedora Core and Debian, until supplanted more recently by ext3.
History
The early development of the Linux kernel was made as a cross-development under the Minix operating system. Naturally, it was obvious that the Minix file system would be used as Linux's first file system. The Minix file system was mostly free of bugs, but used 16-bit offsets internally and thus only had a maximum size limit of 64 megabytes. There was also a filename length limit of 14 characters. Because of these limitations, work began on a replacement native file system for Linux.
To ease the addition of new file systems and provide a generic file API, VFS, a virtual file system layer was added to the Linux kernel. The extended file system (ext), was released in April 1992 as the first file system using the VFS API and was included in Linux version 0.96c. The ext file system solved the two major problems in the Minix file system (maximum partition size and filename length limitation to 14 characters), and allowed 2 gigabytes of data and filenames of up to 255 characters. But it still had problems: there was no support for separate access, inode modification and data modification timestamps.
As a solution for these problems, two new filesystems were developed in January 1993: xiafs and the second extended file system (ext2), which was an overhaul of the extended file system incorporating many ideas from the Berkeley Fast File System. ext2 was also designed with extensibility in mind, with space left in many of its on-disk data structures for use by future versions.
Since then, ext2 has been a testbed for many of the new extensions to the VFS API. Features such as POSIX ACLs and extended attributes were generally implemented first on ext2 because it was relatively simple to extend and its internals were well-understood.
The ext2 file system has a maximum data size of 4 terabytes, maximum filename length of 255 characters, and has variable length block size. However, other operating system considerations may mean that this full size is often not realizable on any particular operating system. On Linux kernels prior to 2.6, for example, restrictions in the block driver mean that ext2 filesystems have a maximum data size of 2047 gigabytes (2 terabytes).
ext2 data structures
The space in ext2 is split up in blocks, and organized into block groups, analogous to cylinder groups in the Unix File System. This is done to reduce internal fragmentation and minimize the number of disk seeks when reading a large amount of consecutive data.
Each block group contains a superblock, the group block bitmap, inode bitmap, followed by the actual data blocks.
The superblock contains important information that is crucial to the booting of the operating system, thus backup copies are made in every block group of each block in the file system. However, only the first copy of it, which is found at the first block of the file system, is used in the booting.
The group descriptor stores the value of the block bitmap, inode bitmap and the start of the inode table for every block group and these, in turn is stored in a group descriptor table.
File system limits
Block size: | 1 KiB | 2 KiB | 4 KiB | 8 KiB |
---|---|---|---|---|
max. file size: | 16 GiB | 256 GiB | 2 TiB | 2 TiB |
max. filesystem size | 2 TiB | 8 TiB | 16 TiB | 32 TiB |
The reason for certain limits of the ext2-file system can be the file format of the data medium on one hand and the operating system's kernel on the other hand. Mostly these factors will be determined once when the file system is built. They basically depend on the block size and the ratio of the number of blocks and inodes. Block sizes of 8 KB are only possible on alpha-architectures by default. There are also many userspace-programs with a lack of being able to handle files with a size above 2 GB. The limit of sublevel-directories is about 32768. If the number of files in a directory exceeds 10000 to 15000 files, the user will normally be warned that operations can last for a long time. The actual limit of the number of files in a directory is very theoretical, because before reaching the limit of 1.3 × 1020 files it will become hard to find new well-defined file names.
See also
- List of file systems
- Comparison of file systems
- e2fsprogs
- ext3 : extended version of ext2
References
- Card, Rémy. & Ts’o, Theodore. & Tweedie, Stephen (1994). "Design and implementation of the second extended filesystem". Proceedings of the First Dutch International Symposium on Linux. ISBN 90-367-0385-9.
{{cite journal}}
: CS1 maint: multiple names: authors list (link)
Further reading
- John Newbigin. "John's spec of the second extended filesystem".
{{cite journal}}
: Cite journal requires|journal=
(help) - Dave Poirier (2001). "The Second Extended File System: Internal Layout".
{{cite journal}}
: Cite journal requires|journal=
(help) - Theodore Ts'o and Stephen Tweedie (June, 2002). "Planned Extensions to the Linux Ext2/Ext3 Filesystem". USENIX 2002 Annual Technical Conference.
{{cite conference}}
: Check date values in:|date=
(help); Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help)
External links
- ext2fs user-space tools
- ext2 driver for MacOS X
- ext2fsd for Win2000 & greater (read/write)
- Win2fs An open source ext2 File-system driver for Windows. Lets you mount and access (read,write) ext2 file-systems under Windows (NT/2000/XP).
- Ext2 Installable File System For Windows ext2/ext3 file system driver for MS Windows NT/2000/XP (x86 only, supports read & write). Freeware.
- WinExt2Fsd ext2 file system driver for MS Windows NT/2000/XP (x86 and x86_64, supports read & write)
- EXT2 IFS ext2/ext3 file system driver for MS Windows NT/2000/XP (open source, doesn't support writing)
- Explore2fs An explorer-like GUI tool for accessing ext2/ext3 filesystems under MS Windows. Free software (GNU License).
- e2compr transparent compression for the ext2 filesystem