Почему каталог /usr в Linux не является сокращением от User?

50 лет назад произошла «птичка» из-за аппаратной ошибки

Когда вы пользуетесь Linux или Unix, вы, вероятно, задумывались:

«Что же такое /usr? Это сокращение от User?»

На первый взгляд кажется, что это просто «User» без буквы «e». Но если бы так было, почему бы не писать /user? Почему же именно /usr?

  • Удобство печати?
  • Ограничение количества символов?
  • А ведь такие каталоги, как /boot, /home, /proc, тоже имеют четыре буквы.

Если бы /usr действительно означал «user», то, вероятно, он бы назывался /user. Существует скрытая история, которая объясняет, почему он называется именно так.

Сегодня мы разберём эту историю, которая заставит разработчиков задуматься: «А, так вот почему».

image


1. Вывод: современный /usr не означает «User»



В соответствии со стандартом файловой системы Linux (FHS, Filesystem Hierarchy Standard) каталог /usr определяется так:

«Область, где находятся программы, библиотеки и совместные данные, которые обычно доступны по всему системному окружению и в основном только для чтения»

Именно поэтому структура выглядит так:

  • /usr/bin – большинство пользовательских исполняемых файлов
  • /usr/sbin – системные утилиты
  • /usr/lib* – библиотеки, используемые этими программами
  • /usr/share – справка, иконки, локали и прочие архитектурно-независимые данные

Это далеко от «личных файлов пользователя». Все, что находится в домашнем каталоге (~/...), документах, фотографиях – это в /home.

Таким образом, современный взгляд на /usr можно свести к:

/usr = «Общее хранилище системных и приложенческих ресурсов»

Но почему же изначально он назывался «usr»? Это уже интересная часть истории.


2. Ранний Unix: /usr/имя_пользователя был домашним каталогом

Возвращаемся к началу 1970‑х. В ранних системах Unix:

  • Домашний каталог пользователя не был в /home, а находился прямо в /usr – например, /usr/alice.

Тогда /usr действительно был «каталогом, где находятся вещи пользователя».

Компьютеры того времени, как PDP‑11, имели диски, которые в наши дни казались ничтожными – десятки килобайт, иногда мегабайт.

  • Корневой диск (/) – узкое пространство, только для ядра
  • Второй диск (/usr) – более просторный, где размещались домашние каталоги

Эта структура была логична. Но Unix быстро рос, и новые команды и функции требовали больше места.


3. «Диск заполнен» → перенос системных файлов в /usr



Проблема заключалась в том, что размер корневого диска оставался неизменным, а потребность в новых программах росла.

Однажды разработчики решили:

«Диск / уже не хватает места для новых программ. Перенесём туда, что не критично для загрузки, а в /usr поместим всё остальное».

И так, изначально «домашний» каталог /usr постепенно заполнился программами, библиотеками и данными.

В итоге получилась структура, которую мы видим сегодня:

  • /bin – минимальный набор команд, необходимых для загрузки (ранее в /)
  • /usr/bin – остальные команды
  • Аналогично /lib и /usr/lib

Это был «переезд» из-за нехватки места на диске – простое решение, но оно стало историческим.


4. «Unix System Resources» – позднее придуманное объяснение

С течением времени кто‑то начал говорить:

«Теперь /usr – это Unix System Resources».

Это «backronym» – слово, придуманное после того, как оно уже существовало. В оригинальных документах Unix /usr действительно означал «user», но позже смысл изменился.

Такое объяснение стало популярным, но важно помнить, что это не официальное определение из первых лет Unix.


5. От 50‑летней истории к современному «Usr Merge»

Сегодня многие дистрибутивы Linux (Ubuntu, Fedora, Debian) работают над «Usr Merge» – объединением /bin, /sbin, /lib с /usr/bin, /usr/sbin, /usr/lib.

Пример:

$ ls -l /
lrwxrwxrwx 1 root root    7  ...  bin  -> usr/bin
lrwxrwxrwx 1 root root    7  ...  sbin -> usr/sbin
lrwxrwxrwx 1 root root    7  ...  lib  -> usr/lib

То есть /bin, /sbin, /lib теперь просто символические ссылки на /usr/bin, /usr/sbin, /usr/lib.

Почему это важно?

  • Упрощает управление пакетами
  • Упрощает работу с контейнерами и образами
  • Убирает необходимость поддерживать старую структуру, которая больше не оправдана

И всё это началось с того, что в 1970‑х пришлось «переехать» из-за маленького диска.


6. Как понимать /usr сегодня?

При работе с Linux полезно запомнить:

«/usr – место, где находятся общие программы, библиотеки и данные»

А вот:

  • Личные файлы и настройки – /home/имя
  • Часто меняющиеся данные (логи, кэш, БД) – /var
  • Приложения, установленные вручную – обычно в /opt или /usr/local

Таким образом, /usr – это «мир ОС и приложений», а /home – «мир пользователя».


Заключение: один каталог, но много компромиссов

Каталог /usr хранит в себе:

  • Историю нехватки места в раннем Unix
  • Традицию «переезда» и «переименования»
  • Современные стандарты и упрощения, как Usr Merge

Понимание этой истории делает работу с Linux более осознанной и помогает лучше ориентироваться в структуре файловой системы.

«А, так вот почему /usr – не «User», а «Unix System Resources»» – теперь вы знаете.