One of the revolutionary ideas of the Unix operating system, on which Linux is based, was everything is a file which allows the same set of tools to be used on a wide range of resources. In some ways this has evolved into many things are filesystems. Communicating with the kernel via /sys/ and /proc/ are classic examples as is the /dev/ directory for talking to physical (and other) devices.LinuxSpring1 wrote: ↑Tue Aug 27, 2024 6:39 am I was just going through the mount points and found that there are about 17 mount points in a typical MX Linux. Please see the details given below. Why does MX need to have so many mount points in a running system? Can these be reduced? For example the portal, systemd, pstore, devpts, and a few tempfs should not even exist.
In addition, it is often extremely convenient to mount some directories as tmpfs which puts the file system in RAM. This is fast and prevents needless wear and tear on a physical device, but often just as important it greatly simplifies cleanup when the system or a complicated process shuts down.
There are also bind mounts which allow you to mount the same file system at multiple locations. This is another extremely powerful and useful tool. Union file systems, like aufs and overlayfs, are also useful. They allow you to combine two file systems into one. This is one of the primary tools that made Linux live cds and live usbs possible. I'm confident there are many other types.
The use of these different file systems has blossomed because they have been found to be both useful and efficient. I expect this trend to continue and for the number of mount points in a standard Linux distro to keep increasing over time. Since mounting things is so powerful, our intuition can lead us to think that it must be resource intensive. But it is actually extremely efficient.
Granted, the system is getting more and more complex as time goes by. In some ways, these many mount points allow designers a way to deal with the ever increasing complexity while providing some isolation and safe interoperability, which was one of the main goals of object oriented programming.
Ages ago (in the 1960s and 70s), the operating system for the IBM 360 was so complex that IBM decided to stop fixing bugs in it. They found that on average each time they patched it, they created more bugs than they fixed. So they stopped fixing bug and just published a list of known bugs. Modern tools, including the plethora of file systems, along with modern practices have allowed humans to create vastly more complicated operating systems. At some level, programming and system design are about managing complexity.