Developer(s) | Rémy Card |
---|---|
Full name | Second extended file system |
Introduced | January 1993 with Linux |
Partition identifier |
Apple_UNIX_SVR2 (Apple Partition Map) 0x83 (Master Boot Record) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT) |
Structures | |
Directory contents | Table |
File allocation | bitmap (free space), table (metadata) |
Bad blocks | Table |
Limits | |
Max. volume size | 2–32 TiB |
Max. file size | 16 GiB – 2 TiB |
Max. number of files | 1018 |
Max. filename length | 255 bytes |
Allowed characters in filenames | All bytes except NUL ('\0') and '/' |
Features | |
Dates recorded | modification (mtime), attribute modification (ctime), access (atime) |
Date range | December 14, 1901 - January 18, 2038 |
Date resolution | 1 s |
File system permissions | POSIX |
Transparent compression | No (Available through patches) |
Transparent encryption | No |
Other | |
Supported operating systems | Linux, BSD, ReactOS, Windows (through an IFS), macOS (through an IFS) |
The ext2 or second extended filesystem 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). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.
The canonical implementation of ext2 is the "ext2fs" filesystem driver in the Linux kernel. Other implementations (of varying quality and completeness) exist in GNU Hurd, MINIX 3, some BSD kernels, in MiNT, and as third-party Microsoft Windows and macOS drivers.
ext2 was the default filesystem in several Linux distributions, including Debian and Red Hat Linux, until supplanted more recently by ext3, which is almost completely compatible with ext2 and is a journaling file system. ext2 is still the filesystem of choice for flash-based storage media (such as SD cards and USB flash drives) because its lack of a journal increases performance and minimizes the number of writes, and flash devices have a limited number of write cycles. However, recentLinux kernels support a journal-less mode of ext4 which provides benefits not found with ext2.
The early development of the Linux kernel was made as a cross-development under the MINIX operating system. The MINIX file system was used as Linux's first file system. The Minix file system was mostly free of bugs, but used 16-bit offsets internally and thus had a maximum size limit of only 64 megabytes, and there was also a filename length limit of 14 characters. Because of these limitations, work began on a replacement native file system for Linux.