Почему каталоги / usr и / tmp для Linux пропускают гласные в их написании?

34

Я часто начинал думать об этом, но так и не нашел хорошего ответа. Почему эти две директории Unix не /userи /tempвместо этого?

rootКажется, что все остальные каталоги в точности соответствуют тому, о чем можно было бы догадаться, но эти два кажутся странными, я бы всегда догадывался о них как userи temp.

Есть ли какая-то историческая причина написания?

Lazer
источник
2
Что-то говорит мне, что это перенос с Unix. Исходя из этого предположения, я предполагаю, что большинство таких усечений основано на выдающихся слогах.
Кен
17
Однажды Кена Томпсона спросили, будет ли он делать что-то другое, если бы он перепроектировал Unix, и он ответил: «Я
заклинал творить
3
«Все остальные каталоги под root кажутся именно такими, какими их можно догадаться» -> Мне это не кажется верным. За исключением boot, home, mediaи rootвсе остальное сокращается. mntтакже не хватает его гласных.
Phunehehe
7
Я думал, что ты был гласным ...
Мистер Шикаданс
1
@Мистер. Шикаданс: это так.
0xC0000022L

Ответы:

49

Да были причины. Они произносится как пользователь и темп. passwd аналогичен resolv.conf. Unix - дружественная к пользователю, антагонистическая операционная система.

Я был студентом, когда 300 бод модемов были нормой. Я был предметом зависти моих сокурсников, так как у меня был терминал Silent 700 от Control Data, где я работал. Вы могли видеть задержку от ввода каждого символа и ожидания его отображения. Каждый персонаж считается; Я также считаю, что это способствует началу речи.

У hjkl из vi есть история, о которой мало кто знает. vi был разработан Биллом Джоем, когда он был аспирантом в UCB в те же годы. Терминалы ADM 3a в Кори Холле имели над этими буквами клавиши со стрелками

Том Мерфи
источник
22
Я не думаю, что когда она была разработана, идея быть «дружественным к эксперту, антагонистичным для пользователя» была частью цели. Скорее, все пользователи были экспертами, поэтому не было значимого различия.
Mattdm
7
LOL "Опытный дружественный, пользовательский антагонист". Это сделало мой день. +1!
Нико
5
Просто небольшая заметка (никоим образом не исправление). Хотя иногда он произносится как «пользователь», / usr означает «универсальный системный ресурс» или «системный ресурс unix». Что бы это ни было, оно было потеряно в тумане древней истории Unix :)
luis.espinal
21
В то время, когда был придуман / usr, он имел в виду пользовательские и домашние каталоги. Unix / универсальный системный ресурс на самом деле является обратным.
Jlliagre
2
Когда вышел Unix, 300 бит / с было пышным . Было установлено соединение со скоростью 75 бит / с, которое обрабатывалось громоздкими, медленными электромеханическими телетайпами (часто Teletype® ASR-33).
Алексиос
20

Они являются пережитком Unix. Памяти и дискового пространства не хватало. Выделение нескольких гласных и других сокращений дало реальную экономию. Несколько дисковых блоков или несколько байтов могут означать разницу в возможности запуска программы или нет. (Однажды мне пришлось урезать программу на 24 байта, прежде чем она запустится.)

Также, как отметил Том, конечные скорости были низкими. 1200 бод был представлен как высокая скорость, и это было. Я работал с одной системой, в которой в качестве консоли использовался телетайп с половинной скоростью (55 бод или 5 с / с).

В системах с графическим интерфейсом это, как правило, не имеет большого значения, поскольку обычные пользователи не будут в них ковыряться. Каталоги обычно хорошо документированы на hierстранице руководства .

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

РЕДАКТИРОВАТЬ: PDP-7, на котором был разработан Unix, имел базовую конфигурацию 4KW памяти и максимум 32KW. Слова, где 18 бит в ширину. Ввод был телетайпом, поэтому скорость была, вероятно, 110 бод или 10 с, примерно 100 слов, что значительно медленнее, чем речь.

BillThor
источник
8
Я не покупаю mmory nd dsk spc, а медленные tltyps. Пока вы не знаете, почему бы и нет?
пользователь неизвестен
@ пользователь неизвестен: тогда вы молоды и вам никогда не приходилось беспокоиться о памяти или дисковом пространстве. Моему первому компьютеру сейчас 30 лет - поражаюсь спецификациям.
1
Я никогда не писал и не проверял файловую систему подробно, но занимает ли имя файла / каталога в файловой системе больше или меньше места, в зависимости от 1 символа? Сами файлы всегда занимают кратные некоторого размера - сегодня 4k. Поэтому большинство файлов, которые содержат путь к / usr или / tmp, не будут эффективно уменьшаться или уменьшаться в зависимости от одного e. Хорошо - иногда они будут, и тогда они растут на целый размер блока, но редко. А в оперативке? Я не знаю.
пользователь неизвестен
1
и это было бы более раздражающим, чтобы напечатать. "временный против tmp" тьфу ... почему кто-то хочет их дольше?
ксенотеррацид
4
Современные каталоги Unix имеют записи переменной длины. В Research Unix запись каталога была фиксированной 16 байтов: 14 для имени файла, 2 для номера индекса. И это может быть меньше, когда / usr и т. Д. Были канонизированы.
geekosaur
5

Я удивлен, что никто еще не прокомментировал /user. Это очевидно: поскольку это не «пользователь», это «Универсальные системные ресурсы».

Что касается /tmp, это просто короче и легче набирать. Программисты на Си имеют привычку использовать короткие имена, когда это возможно, потому что они в конечном итоге набирают их много раз в программе. Очень часто есть временная переменная с именем «tmp», а не «temp» по той же причине, вы используете «i» i для индекса в цикле for вместо «index» или «counter».

Шон Дж. Гофф
источник
22
В то время, когда был придуман / usr, он имел в виду пользовательские и домашние каталоги. Unix / универсальный системный ресурс на самом деле является обратным.
Jlliagre
3
@jlliagre Отлично. Я нашел другой поток, который на самом деле имеет авторитетный источник этого. us.generation-nt.com/answer/…
Шон Дж. Гофф
2
Самые ранние программисты на Си были первыми программистами на Фортране. Способ ввода целых чисел в Fortran IV состоял в том, чтобы начать идентификатор с символа от 'i' до 'n', все остальное было РЕАЛЬНЫМ числом. Таким образом, индексы цикла обычно были i, j или k; этого было достаточно для матриц, которые мы, научные программисты, искали тогда.
Том Мерфи
@ TomMurphy, большинство людей, которые начинали с C, были, вероятно, программистами на ассемблере или, возможно, пользователями BCPL или B. RATFOR был придуман для бедных душ, у которых не было приличного языка под рукой. А книга Кернигана и Плаугера "Программные инструменты" была написана (и содержит полный препроцессор) в RATFOR. Все еще очень стоит прочитать.
vonbrand
1
/usrэто не «Универсальные системные ресурсы», это действительно пользователь . См. Youtube: AT & T Archives: Операционная система UNIX (выпущенная примерно в 1982 году), где примерно через 13 минут 35 секунд /usr/bwkчетко произносится «user-bwk» и /usrпроизносится как «slash-user» Брайан У. Керниган . / usr также подразумевает местоположение, содержащее домашние каталоги на диаграмме в 13 минут 30 секунд. Я не думаю, что вы можете стать намного более авторитетным, чем это.
CVn
4

Фактор, который никто не упомянул, состоит в том, что, учитывая технологию клавиатуры того времени, было существенное преимущество в использовании коротких имен, которые легче вводить. Печать по userсравнению usrдаже с телетайпом со скоростью 110 бит / с, вероятно, не была огромной проблемой; необходимость печатать эту дополнительную букву была, вероятно, более значимой.

Кит Томпсон
источник
1

Все остальные каталоги под root кажутся именно такими, какими их можно догадаться,

Также есть / var, / mnt и / opt;)

но эти двое кажутся странными, я бы всегда угадывал их как user и temp.

Почти готово. Как сказал Шон, «пользователь» означает «Универсальные системные ресурсы» (хотя другие ресурсы, согласно Google, указывают, что это означает «Системные ресурсы Unix»).

Есть ли какая-то историческая причина написания?

Сокращения, сокращения. Помните, что команды в любой операционной системе предназначены для интерактивного и программного доступа. В частности, для системного администрирования, где быстрое создание сценариев является одной из основных задач, сокращения, мнемоника так же хороши (или даже лучше), что и слово / команда с полным написанием.

Кроме того, когда-нибудь, если вы подключались удаленно через медленный, как патока, модем, бритье пару гласных здесь и там сделало бы вашу жизнь проще (или менее несчастной, если бы вы были системным администратором, пытающимся выяснить, какого черта не так с удаленной коробкой.)

Как было сказано ранее, он не уникален для / usr и / tmp (см. / Var, / mnt и / opt).

Кроме того, он не уникален для Unix. Возьмем, к примеру, DOS (например, chkdsk). Мнемоника, в которой вы сбриваете гласные, - это мощная, удобная концепция.

Даже в естественных языках (таких как семитские языки) существует понятие (где корень слов универсально и почти однозначно идентифицируется 3-согласными группами). Это врожденный человеческий механизм управления информацией.

luis.espinal
источник
/ Var, / mnt и / opt появились НАМНОГО позже. Тем не менее, / bin, / dev и / etc были в очень ранней UNIX и по той же причине, по которой люди говорили - потому что ttys были медленными, а не все были CRT и дисковым пространством. Существовали загрузочные системы UNIX, использующие бумажную ленту, небольшие (по размеру) дорогие диски и даже 8-
дюймовые
1
Можно утверждать, что в семитских языках на самом деле используются не согласные, а слоги с неопределенными гласными. Таким образом, корневые слоги обеспечивают семантическое значение, в то время как определенные гласные добавляют грамматическое значение.
ниндзя