https://lemmy.world/post/9437525
My version of this with a bit more detail
Much better, thanks!
Thanks! I’ll save this, tell myself I’m going to strictly follow it this time and forget about it (again) lol
Edit: Thank you, found it on your shared link ! 😄
Oh wow thank you ! Would it be to much to ask for a dark mode version? If there’s a one hit button to change into a more eye friendly color mode :)
Either way, thank your for sharing your work :))
Cool. Thanks for sharing!
I still have no clue where permanently attached USB SSDs are supposed to be mounted. I just shove them into LVM2 and put the mapper under /mnt since putting them under /home wouldn’t let other users access them.
permanently attached USB SSDs are supposed to be mounted
Just mount them somewhere under
/
device, so if a disk/mount fails the mounts depended on the path can´t also fail.I keep my permanent mounts at
/media/
and I have a udev rule, that all auto mounted media goes there, so/mnt
stays empty. A funny case is that my projects BTRFS sub-volume also is mounted this way, although it is technically on the same device.
i always thought /usr stood for “user”. Please tell me I’m not the only one
Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in 1969. Well around 1971 they upgraded to a PDP-11 with a pair of RK05 disk packs (1.5 megabytes each) for storage.
When the operating system grew too big to fit on the first RK05 disk pack (their root filesystem) they let it leak into the second one, which is where all the user home directories lived (which is why the mount was called /usr). They replicated all the OS directories under there (/bin, /sbin, /lib, /tmp…) and wrote files to those new directories because their original disk was out of space. When they got a third disk, they mounted it on /home and relocated all the user directories to there so the OS could consume all the space on both disks and grow to THREE WHOLE MEGABYTES. And thereafter /usr is used to store user programs while /home is used to store user data.
source: http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
THREE WHOLE MEGABYTES
Me in 2024 holding a 4TB NVMe stick: Still not enough (it’s never enough)
This thread is 3 MB
I was just about to post the same thing. I’ve been using Linux for almost 10 years. I never really understood the folder layout anyway into this detail. My reasoning always was that /lib was more system-wide and /usr/lib was for stuff installed for me only. That never made sense though, since there is only one /usr and not one for every user. But I never really thought further, I just let it be.
It’s always been for USeR binaries. It’s the first time I’ve seen this bizarre backronym (40 years of Unix here).
I think it originally did under old Unix, it was what /home is nowadays; “Unix System Resources” is a backronym.
deleted by creator
You’re not the only one 😅 🙋
I thought it was United System Resources.
And I still don’t know what’s the point in separating /bin, /sbin, /usr/bin and /usr/sbin.
Also /mnt and /media
Or why it’s /root and not /home/rootMostly historical reasons, /home was often a network mounted directory, but /root must be local.
And only regular users have their home in /home
Idk why I feel compelled to add this info, but / doesn’t have to be local as long as the necessary kernel modules for mounting it are available in the initrd or built into the kernel.
Yes, that is true. I was speaking in the context of very early Unix/Linux before initrd was a thing.
I think /mnt is where you manually mount a hard drive or other device if you’re just doing it temporarily, and /media has sub folders for stuff like cdrom drives or thumb drives?
Yeah, but why?
You can mount a hard drive anywhere, and why not put all the cdrom and thumbdrive folders in /mnt, too?/mnt is meant for volumes that you manually mount temporarily. This used to be basically the only way to use removable media back in the day.
/media came to be when the automatic mounting of removable media became a fashionable thing.
And it’s kind of the same to this day. /media is understood to be managed by automounters and /mnt is what you’re supposed to mess with as a user.
/media is for removable drives. If you mount something there, file managers like Gnome will show you the “eject” or “disconnect” button.
/mnt drives show up as regular network drives without that “eject” functionality.
I don’t know if I’m doing something wrong, but I have a secondary SSD in my laptop that I mount on
/mnt/elyssa
and in every DE and distro I tried it appeared as a removable drive with the “eject” button. Right now I use Fedora with Gnome and if I install this extension or enable the removable drives option in Dash to Dock, it shows me that drive. Maybe some mount option in Gnome Disks, but since it’s not that big of a problem, I haven’t looked too much into it.
It gets even more complicated nowadays because most DE will mount removable drives somewhere in folders like /run/$USER/
And I still don’t know what’s the point in separating /bin, /sbin, /usr/bin and /usr/sbin.
This goes back to the olden days when disk space was measured in kilo and megabytes. /sbin/ and /usr/sbin have the files needed to start a bare bone Unix/Linux system, so that you could boot from a 800kb floppy and mount all other directories via network or other storage devices as needed.
Is there a reason to keep this structure other than „we’ve always been doing it like that“/backwards compatibility?
The structure is changing, many distributions already are merging more and more of the duplicated subdirectories in /usr/ with the counterparts in / but it takes time to complete that and at the moment those subdirectories are often still there but as symlinks to be compatible with older software (and sysadmins).
/home is often on a separate volume. You’d want root to be available in a maintenance situation where /home may not be mounted.
I don’t recall the reasons for the addition but /media is newer than /mnt.
I don’t recall the reasons for the addition but /media is newer than /mnt.
Something to do with hard-coded mounts in
/etc/fstab
vs. dynamically-mounted removable media (USB drives etc.), I think.
They hold “system binaries” meant for root user. It’s not a hard distinction but many if not most Linux fundamentals have their roots in very early computing, mainframes, Bell and Xerox, and this good idea has been carried into the here&now. Not sure about the provenance of this one, but it makes sense. isn’t /mnt /media different between distros? These aren’t hard and fast rules - some distros choose to keep files elsewhere from the “standard”.
/bin and /usr/bin, one is typically a symbolic link to another - they used to be stored on disks of different size, cost, and speed.
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s16.html
https://unix.stackexchange.com/questions/5915/difference-between-bin-and-usr-bin
/sbin are system binaries, eg root only stuff, dunno the rest but I would guess there are some historical reasons for the bin usr/bin separation
I know the distinction between /bin and /sbin, I just don’t know what purpose it serves.
Historically, /bin contained binaries that were needed before /usr was mounted during the boot process (/usr was usually on a networked drive).
Nowadays that’s obsolete, and most distros go ahead and merge the directories.It’s easier to manage security that way.
Instead of having one binary folder full of stuff that’s intended to be run with privilege access and non-privilege access, all the privileged stuff goes in sbin and you don’t even see it in your path as a regular user. It also means that access rights can be controlled at the folder level instead of the individual file level.
Likewise.
It’s also only just now dawning on me /bin is short for /binaries. I always thought it was like… A bin. like a junk drawer hidden in a cupboard
I don’t get why this sort of picture always gets posted and upvoted when it’s wrong for most distros nowadays.
Can you recommend one that is correct? I use pop_os (Ubuntu) and Arch. Kinda curious about either one
Not aware of any correct pictures, but I can tell you what’s wrong with this one
- /usr: explaining it as “Unix System Resources” is a bit vague
- /bin: /bin is usually a symlink to /usr/bin
- /sbin: /sbin is usually a symlink to /usr/sbin, distros like Fedora are also looking into merging sbin into bin
- /opt: many, I’d say most, “add-on applications” put themselves in bin
- /media: /media is usually a symlink to /run/media, also weird to mention CD-ROMs when flash drives and other forms of storage get mounted here by default
- /mnt: i would disagree about the temporary part, as I mentioned before, stuff like flash drives are usually mounted in /run/media by default
- /root: the root user is usually not enabled on home systems
- /lib: /lib is usually a symlink to /usr/lib
I would also like the mention that the FHS standard wasn’t designed to be elegant, well thought out system. It mainly documents how the filesystem has been traditionally laid out. I forget which folder(s), but once a new folder has been made just because the main hard drive in a developer’s system filled up so they created a new folder named something different on a secondary hard drive.
“Linux File Systems”
*List of root directories*
Uh, where are the file systems? EXT4… BTRFS… FAT32…
That’s what I thought too. This is directory structure, not file systems.
Meanwhile the Linux Standards Base cries in a corner.
Distros should ship with this this under /readme.jpg
deleted by creator
Yes, you put the app in /opt, no not in /bin or /usr/bin
wait /usr doesn’t mean user?
/etc has to be the worst name in there
usr does mean user. It was the place for user managed stuff originally. The home directory used to be a sub directory of the usr directory.
The meaning and purpose of unix directories has very organically evolved. Heck, it’s still evolving. For example, the new .config directory in the home directory.
For example, the new .config directory in the home directory.
I hope slowly but surely no program will ever dump its config(s) as
~/.xyz.conf
(or even worse in a program specific~/.thisapp/
; The~/.config/
scheme works as long as the programs don’t repeat the bad way of dumping files as~/.config/thisconfig.txt
. (I’m looking at you kde folks…) A unique dir in .config directory should be mandatory.If I ever need to shed some cruft accumulated over the years in ~/.config/ this would make it a lot easier.
Per the graphic, it means Unix System Resources…
I don’t trust a graphic which explains /boot as “system boot loader files”…
Why? What’s inaccurate about it? I have no idea and would like to learn.
It’s not wrong, but it feels a bit like some tech articles you’ll see which are obviously just created to fluff up a CV. I wouldn’t say avyttring here is flat out wrong, just kinda… lacking.
But yeah, /boot holds “system boot loader files”, sure, but that’s a bit vague. It should contain your kernel and initramcpio and IIRC Grub also had its config here. That’s pretty much it. I would’ve rather said /boot contains the kernel.
“device files” it’s so vague that it’s almost wrong IMO. At first glaze I would’ve thought that it means drivers rather than, say, “interfaces to devices”
Just forwarded this pic to my dad. I’ll be guiding him in installing Mint on one of his old Windows desktops this coming Saturday! Wish us luck in the coming years 😂
deleted by creator
This needs some modernization and simplification, if Linux ever wants to make it to the mainstream.
This is a much better layout:
/system (contains /boot, /dev, /proc, /run, /sys, /tmp and /var, all the stuff no one ever looks at)
/config (/etc renamed to something sensible)
/apps (contains /bin, /sbin, /usr, /lib and /opt)
/server (renamed /srv, only gets created when needed)
/users (renamed /home, also contains /root now)That’s not POSIX
POSIX sounds like Po-sex which is German for buttsex.
This is truly an education forum. Danke!
/bin and /sbin are symlinks already from /usr, so that’s more than half of “apps”.
No one ever looks at /var? Isn’t that where my Apache dir lives? Sorry, I’ve been off Linux for a while. I think I put Git in there as well.
honestly /home should has never been created we should have kept user homes in /usr
why
Because housing prices are ridiculous.