Introduction to the Linux File System
A file system is a collection of operations that regulates the manner, location, and timing of data storage and retrieval from a storage medium. For routine system operations, an effective Introduction to the Linux File System is essential.
The ext4 file system is the most widely used of the many file systems that the Linux kernel supports.
You will discover more about the evolution of Linux file systems and the key components of the ext4 system in this article.
Journaling Linux File System Evolution
Let’s take a closer look at the Introduction to the Linux File System:
1: File System for MINIX
The Minix operating system was compatible with the Minix file system. Andrew S. Tanenbaum made the initial presentation of it in 1987.
For instructional coding purposes, the Minix operating system and file system were mostly employed. At the time, the file system’s performance wasn’t up to par. Filenames could only be fourteen characters long, and partitions could only be 64MB in size. Hard drives could accommodate partitions of up to 140MB at the time.
Minix was generally abandoned by 1992 as a result of poor performance and the advent of the ext file system.
2: File System for Ext
Ext stands for “Extended File System,” or file system. It was the first file system created with the Linux kernel in mind.
The ext file system made use of the Virtual File System (VFS). Its main objective was to make the ext file system accessible to the Linux kernel. Filenames could only be 255 characters long and partitions up to 2GB in size were supported by the ext file system.
Even though it was able to fix the Minix file system’s problems, timestamping remained a significant shortcoming. The ext file system only permitted one timestamp per file, in contrast to the three timestamps that each Linux file has today (access timestamp, updated timestamp, and changed timestamp).
The ext2 file system was released in January 1993. All users eventually changed from ext to ext2 over time.
3: File System ext2
Less than a year after developing the ext file system, Remi Card designed and launched the ext2 file system.
The ext2 file system made it possible to maintain the internal organizations while extending file system capabilities. Data from files were stored in blocks of data that were all the same size. The ext2 file system supported files up to 2TiB in size. The maximum length of a filename was 255 bytes, not characters. Journaling was not supported by it.
Introduction to the Linux File System was widely employed, although it still had two significant problems:
- Corruption of files – If data were written to the disc at the time of a power outage or system crash, this occurrence would take place.
- Performance decline – When a single file is divided up and dispersed across numerous areas on the disc, disc fragmentation occurs. As a result, performance suffers because reading and writing files take longer.
Up until the ext3 file system was introduced in the early 2000s, the ext2 system was primarily in use. Today, due to the fact that it does not support the journaling system, it is only seldom utilized for USB devices.
4: File System ext3
The ext3 file system is the creation of Stephen Tweedie (Third Extended File System). With Linux kernel 2.4.15, it made its debut in November 2001. Today, people still use it.
A better variant of the ext2 file system is the ext3 file system. Similar to the ext2 file system, it allows files up to 2TiB in size and has a 255-byte maximum filename length restriction. The journaling shows improvement.
All pending data structure modifications are recorded in a “journal” by the journaling system. The danger of data loss or corruption is decreased when logs stored using the journaling system quickly return data in the event of a power outage or system crash. When the log is updated, the system writes the data to the appropriate places in the file system.
Three levels of journaling are supported by the Linux kernel:
- A Journal – Before modifications are performed to the primary file system, metadata and file contents are recorded in a journal. In the event of a power outage or system crash, this preserves data. This level of journaling has the drawback of making the system operate worse.
- Ordered – While file contents are automatically stored in the primary file system at this level of journaling, just the metadata is written to the journal. The steps are carried out in a particular order. The info is first entered into the journal. The contents of the file are then written to the primary file system. The metadata eventually makes a connection to the primary file system. As a result, in the event of a system crash, the primary file system is not damaged. Only files that are actually being written when a crash occurs can get corrupted.
- Writing back – Only metadata is written to the notebook at this level of journaling. Only when the journal has been updated are file contents written to the main file system. Metadata and file content are not synchronized, therefore if the system crashes, the file system is probably corrupted.
5: File System ext4
The default file system of the most recent Linux kernel is ext4. It debuted in October 2008 alongside the 2.6.28 Linux kernel.
The ext4 file system limits the maximum filename length to 255 bytes and supports files up to a maximum size of 16TiB.
Limitation ext4 Linux File Systems
Despite being the finest file system for Linux distributions, the ext4 file system has some drawbacks that should be taken into account when the system is developed further:
- Damaged data recovery – Corrupted data that has already been written to the disc cannot be found or recovered by the ext4 file system.
- The largest possible volume – 1 EiB is the configured maximum volume size. The file system, however, is unable to handle more than 100 TiB of data without suffering a considerable performance hit and increasing disc fragmentation.
Years of development gave the Introduction of the Linux File System its current level of capability and complexity. Each new feature fixed a problem that existed in the system’s out-of-date iterations.
You have to know more about the Linux file system and how it works after reading this article.