IntermediateTopic 61 of 104Software & Computing
File systems
Organise data on disks with directories, inodes and journaling.
In depth
File systems organise persistent data in files and directories with metadata, allocation (inodes, extents) and journaling for crash consistency. Examples: ext4, NTFS, APFS, ZFS. Permissions, links, caching and fragmentation affect behaviour; SSDs add wear levelling.
Key points
- Inodes
- Hard vs symbolic links
- Journaling
Examplels -l shows owner, group and permission bits of files.
File systems organise data on disks, and their design determines reliability, speed and how well data survives crashes.
What is File systems?
Organise data on disks with directories, inodes and journaling.
Why is it important to understand file systems?
File systems organise data on disks, and their design determines reliability, speed and how well data survives crashes.
What is an inode?
A structure that stores a file's metadata and the locations of its data blocks, separate from the file name.
What is journaling?
Recording intended changes in a log before applying them, so the file system can recover a consistent state after a crash.
How is File systems used in practice?
Typical applications include recovering a disk after a power cut using a journal, finding how a file's blocks are located through inodes and choosing a file system for a server that stores many small files.
What should I learn before File systems?
Study "Virtual memory" first (topic 60 of 104 in Software & Computing). It covers the groundwork this topic builds on.
What are the key points of File systems?
Inodes. Hard vs symbolic links. Journaling.
Can you give an example of File systems?
ls -l shows owner, group and permission bits of files.
What comes after File systems?
The next topic is "Synchronisation primitives", which builds directly on this one.
How difficult is File systems?
It is classed as Intermediate in Software & Computing (topic 61 of 104). It is an intermediate topic. Work through the beginner topics in Software & Computing first.