239 points

i always thought /usr stood for “user”. Please tell me I’m not the only one

permalink
report
reply
81 points

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

permalink
report
parent
reply
19 points

THREE WHOLE MEGABYTES

Me in 2024 holding a 4TB NVMe stick: Still not enough (it’s never enough)

permalink
report
parent
reply
2 points

Same, but with a 22TB drive for /data loooool

permalink
report
parent
reply
10 points

This thread is 3 MB

permalink
report
parent
reply
64 points

You’re not the only one 😅 🙋

permalink
report
parent
reply
40 points

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/root

permalink
report
parent
reply
47 points

Mostly historical reasons, /home was often a network mounted directory, but /root must be local.

And only regular users have their home in /home

permalink
report
parent
reply
4 points

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.

permalink
report
parent
reply
24 points

/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.

permalink
report
parent
reply
10 points

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.

permalink
report
parent
reply
22 points

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.

permalink
report
parent
reply
2 points

Is there a reason to keep this structure other than „we’ve always been doing it like that“/backwards compatibility?

permalink
report
parent
reply
14 points

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

permalink
report
parent
reply
6 points

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?

permalink
report
parent
reply
3 points

Yeah, but why?
You can mount a hard drive anywhere, and why not put all the cdrom and thumbdrive folders in /mnt, too?

permalink
report
parent
reply
4 points

/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

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
20 points

I think it originally did under old Unix, it was what /home is nowadays; “Unix System Resources” is a backronym.

permalink
report
parent
reply
3 points
*

You are correct and this can be seen in some of the old AT&T demos from the '80s floating around on YouTube. There is even a chart that specifically labels a directory like /usr/bwk as the user’s home.

Plan 9 also uses this old convention; users live under /usr and there is no /home.

permalink
report
parent
reply
16 points

It’s always been for USeR binaries. It’s the first time I’ve seen this bizarre backronym (40 years of Unix here).

permalink
report
parent
reply
5 points

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.

permalink
report
parent
reply
4 points

Yup same. I always wondered why there was a user folder when we already have home.

permalink
report
parent
reply
4 points

Same. I actually feel like I remember the professor of my only unix class saying that. Hoping I’m wrong.

permalink
report
parent
reply
3 points

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

permalink
report
parent
reply

@FQQD @sag U So Rong 🙂

permalink
report
parent
reply
121 points

“Linux File Systems”

*List of root directories*

Uh, where are the file systems? EXT4… BTRFS… FAT32…

permalink
report
reply
48 points

That’s what I thought too. This is directory structure, not file systems.

permalink
report
parent
reply
2 points

Meanwhile the Linux Standards Base cries in a corner.

permalink
report
parent
reply
90 points
*

https://lemmy.world/post/9437525

My version of this with a bit more detail

permalink
report
reply
9 points
*

Thanks! I’ll save this, tell myself I’m going to strictly follow it this time and forget about it (again)

permalink
report
parent
reply
8 points

Cool. Thanks for sharing!

permalink
report
parent
reply
6 points

Much better, thanks!

permalink
report
parent
reply
3 points
*

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 :))

permalink
report
parent
reply
1 point

Look at the post behind the link. There is a dark mode version.

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
6 points

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.

permalink
report
parent
reply
1 point

It can fits as a desktop wallpaper.

permalink
report
parent
reply
83 points

I don’t get why this sort of picture always gets posted and upvoted when it’s wrong for most distros nowadays.

permalink
report
reply
12 points

Can you recommend one that is correct? I use pop_os (Ubuntu) and Arch. Kinda curious about either one

permalink
report
parent
reply
34 points
*

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.

permalink
report
parent
reply
5 points

Thanks for this. I’m always confused by the layout and this tend to stick to putting things in the same places, even if they’re wrong :)

permalink
report
parent
reply
3 points

On my distro(Bazzite), /mnt is only a symlink to /var/mnt. Not sure why, but only found out the other day.

permalink
report
parent
reply
6 points
7 points

It seems handy when you’re learning about stuff but only when you haven’t learned enough to realize it’s not correct.

permalink
report
parent
reply
63 points
*

wait /usr doesn’t mean user?

/etc has to be the worst name in there

permalink
report
reply
34 points

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.

permalink
report
parent
reply
16 points
*

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.

permalink
report
parent
reply
-2 points

Per the graphic, it means Unix System Resources…

permalink
report
parent
reply
12 points
*

I don’t trust a graphic which explains /boot as “system boot loader files”…

permalink
report
parent
reply
12 points

I wonder why that isn’t /cfg? Is there a historical reason?

permalink
report
parent
reply
22 points

According to this, it’s been around since the 70’s and was originally just a catch-all for files that didn’t fit in the other default directories, but over time has come to be mostly used for config files. I assume it would cause utter mayhem to try and change the name now so I guess it just sticks. Someone suggested “Edit To Configure” as a backronym to try and make it make more sense if that helps anyone lol.

permalink
report
parent
reply
7 points

I too expected it to be “et cetera”.

permalink
report
parent
reply
10 points

Is there a historical reason?

If you’re asking that in anything Linux related, it’s probably a Yes 99% of the time LMAO

permalink
report
parent
reply
8 points

Not just Linux… 99% of the time you see something weird in the computing world, the reason is going to be “because history.”

permalink
report
parent
reply
2 points

Try naming a folder “CON” in Windows and learn the magic of old spaghetti code by a multi billion dollar company.

permalink
report
parent
reply
1 point

It’s probably the standard in both POSIX and the Single UNIX Specification, so I guess ask Ken Thompson?

permalink
report
parent
reply
2 points

It meant user, as in user-installed programs and libraries for this system over the core system programs and libraries of the operating system in /bin and /lib.

Someone learned it wrong, but otherwise I think the image is right.

permalink
report
parent
reply
1 point
Deleted by creator
permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 7.7K

    Monthly active users

  • 6.5K

    Posts

  • 179K

    Comments