Francais | English | Espanõl

Ext2

From Wikipedia, the free encyclopedia

Jump to: navigation, search
The correct title of this article is ext2. The initial letter is shown capitalized due to technical restrictions.
ext2
Developer Rémy Card
Full name Second extended file system
Introduced January 1993 (Linux)
Partition identifier Apple_UNIX_SVR2 (Apple Partition Map)
0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Structures
Directory contents
File allocation I-nodes
Bad blocks
Limits
Max file size 2 TiB
Max number of files 1018
Max filename size 255 characters
Max volume size 16 TiB
Allowed characters in filenames Any byte except NUL and '/'
Features
Dates recorded
Date range
Forks yes
Attributes
File system permissions POSIX
Transparent compression Yes (optional)
Transparent encryption No
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 the Red Hat Linux, Fedora Core and Debian Linux distributions until supplanted more recently by ext3.


Contents

[edit] 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.

[edit] EXT2 Files

The space in EXT2FS is split up in BLOCKS, and within each block is many block groups. The rationale behind this is to reduce internal fragmentation and minimizing the amount of head seeking when reading a large amount of consecutive data.

Inside each block group, there are the SUPERBLOCK, GROUP DESCRIPTOR, BLOCK BITMAP, INODE BITMAP, followed lastly by the data.

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.

[edit] See also

[edit] References

[edit] Further reading

[edit] External links

da:Ext2 de:Ext2 es:Ext2 eo:Ext2 eu:Ext2 fr:Ext2 gl:Ext2 it:Ext2 he:EXT2 lt:EXT2 ms:Ext2 nl:Ext2 ja:Ext2 pl:Ext2 pt:Ext2 ru:Ext2 sk:Ext2 sv:Ext2 tr:Ext2

Personal tools