While it may not be obvious to the casual user, Linux file systems have evolved significantly over the last decade or so to make them more resistant to corruption and performance problems.\nMost Linux systems today use a file system type called ext4. The \u201cext\u201d part stands for \u201cextended\u201d and the 4 indicates that this is the 4th generation of this file system type. Features added over time include the ability to provide increasingly larger file systems (currently as large as 1,000,000 TiB) and much larger files (up to 16 TiB), more resistance to system crashes and less fragmentation (scattering single files as chunks in multiple locations) which improves performance.\nThe ext4 file system type also came with other improvements to performance, scalability and capacity. Metadata and journal checksums were implemented for reliability. Timestamps now track changes down to nanoseconds for better file time-stamping (e.g., file creation and last updates). And, with two additional bits in the timestamp field, the year 2038 problem (when the digitally stored date\/time fields will roll over from maximum to zero) has been put off for more than 400 years (to 2446).\nFile system types\nTo determine the type of file system on a Linux system, use the df command. The T\u00a0option in the command shown below provides the file system type. The h makes the disk sizes \u201chuman-readable\u201d; in other words, adjusting the reported units (such as M and G) in a way that makes the most sense to the people reading them.\n$ df -hT | head -10\nFilesystem Type Size Used Avail Use% Mounted on\nudev devtmpfs 2.9G 0 2.9G 0% \/dev\ntmpfs tmpfs 596M 1.5M 595M 1% \/run\n\/dev\/sda1 ext4 110G 50G 55G 48% \/\n\/dev\/sdb2 ext4 457G 642M 434G 1% \/apps\ntmpfs tmpfs 3.0G 0 3.0G 0% \/dev\/shm\ntmpfs tmpfs 5.0M 4.0K 5.0M 1% \/run\/lock\ntmpfs tmpfs 3.0G 0 3.0G 0% \/sys\/fs\/cgroup\n\/dev\/loop0 squashfs 89M 89M 0 100% \/snap\/core\/7270\n\/dev\/loop2 squashfs 142M 142M 0 100% \/snap\/hexchat\/42\n\nNotice that the \/ (root) and \/apps file systems are both\u00a0ext4 file systems while \/dev is a devtmpfs file system \u2013 one with automated device nodes populated by the kernel. Some of the other file systems shown are tmpfs\u00a0\u2013 temporary file systems that reside in memory and\/or swap partitions and\u00a0squashfs\u00a0\u2013 file systems that are read-only compressed file systems and are used for snap packages.\nThere's also proc file systems that stores information on running processes.\n$ df -T \/proc\nFilesystem Type 1K-blocks Used Available Use% Mounted on\nproc proc 0 0 0 - \/proc\n\nThere are a number of other file system types that you might encounter as you're moving around the overall file system. When you've moved into a directory, for example, and want to ask about the related file system, you can run a command like this:\n$ cd \/dev\/mqueue; df -T .\nFilesystem Type 1K-blocks Used Available Use% Mounted on\nmqueue mqueue 0 0 0 - \/dev\/mqueue\n$ cd \/sys; df -T .\nFilesystem Type 1K-blocks Used Available Use% Mounted on\nsysfs sysfs 0 0 0 - \/sys\n$ cd \/sys\/kernel\/security; df -T .\nFilesystem Type 1K-blocks Used Available Use% Mounted on\nsecurityfs securityfs 0 0 0 - \/sys\/kernel\/security\n\nAs with other Linux commands, the . in these commands refers to the current location in the overall file system.\nThese and other unique file-system types provide some special functions. For example, securityfs provides file system support for security modules.\nLinux file systems need to be resistant to corruption, have the ability to survive system crashes and provide fast and reliable performance. The improvements provided by the generations of ext file systems and the new generation on purpose-specific file system types have made Linux systems easier to manage and more reliable.