Знание истории происхождения вещей и их названий, будь то простой карандаш, автомобиль или команда операционной системы, делает их повседневное использование намного интереснее. В этой заметке я постарался разобраться в причинах странного, казалось бы, наименования некоторых программ, используемых в операционной системе Unix и её родственниках: *BSD, Solaris, HP-UX, Linux и т.д.
Перепечатка моей статьи, написанной, в свою очередь, по мотивам страницы What does {some strange unix command name} stand for?
Aho, Weinberger, Kerninghan
Первые буквы фамилий разработчиков языка, сотрудников Центра Компьютерных Исследований Bell Labs: Альфред Ахо (руководитель исследований в этом центре с 1963 по 1991 и с 1997 по 2002 годы, сейчас — профессор Колумбийского университета в Нью-Йорке), Питер Вейнбергер (в 1985 году его стилизованный портрет стал своеобразным мемом исследовательского центра Bell Labs) и Брайан Керниган (известен прежде всего как соавтор одной из первых книг про язык C)
Global regular expression print
По одной из версий, название «grep» происходит от команды редактора
Fixed grep
Команда
Extended grep
Команда
Catenate
«Catenate», туманное слово, означающее «соединять в последовательности», то есть то, что команда
new roff, typesetter new roff
Система форматирования текстов roff является одной из центральных частей любой Unix системы. Именно благодаря ей происходит подготовка документации man к отображению на экране. Собственно, эволюция Unix неразрывна связана с развитием этой программы. Ее первая версия, под названием RUNOFF, была написана для CTSS (первой операционной системы с разделением машинного времени) в 60-х годах Джеромом Сальтцером, затем была переписана для Multics с ассемблера CTSS на BCPL, чуть позже — на PL/I. В 70-х годах её возможности перестали удовлетворять возросшим потребностям пользователей, поэтому функциональность программы runoff, уже портированной на первый Unix, была значительно расширена Джозефом Осанной, а название сокращено до roff. После этого Брайан Керниган портировал ее с ассемблера PDP-11 на C и в 1976 году выпустил в свет первую версию спецификации Troff User's Manual. Таким образом roff приобрел классический вид, во многом оставшийся неизменным до сих пор.
Само название «runoff» происходит от типографского термина «run off» — «печатать тираж».
Название команды
Программа biff использовалась в BSD-системах для срочного оповещения пользователя, работавшего в консоли, о пришедшей почте. Автором официальной версии происхождения названия является Эрик Купер:
По сведениям из книги «25 лет UNIX» Питера Салюса, выпущенной в 1994 году, пёс Бифф действительно существовал и дал своё имя программе, однако он не лаял на почтальона: Хейди утверждала, что это гнусный поклёп. Бифф был очень дружелюбной собакой и обожал гоняться за мячиками по коридорам общежития. Вместе с Хейди он посещал занятия и однажды даже получил там оценку «B»; его портрет висел на доске объявлений с пояснением, что он работает над dog'торской диссертацией. Бифф умер в 1993 году в возрасте 15 лет.
runcom
Сочетание «rc», используемое в названиях некоторых файлов и каталогов (~/.bashrc или /etc/rc.d), происходит от названия программы RUNCOM из вышеупомянутой системы CTSS. Эта программа запускала программы, перечисленные в файле; и такой файл также назывался runcom, сокращённо «rc».
Впоследствии от RUNCOM произошли многие современные шеллы. В частности, оболочка в Plan 9 так и называлась —
Bourne Again Shell
Игра слов, основанная на схожести звучания «Bourne» (фамилия автора оболочки
Цитата из отличной статьи DD: команда, которая не похожа на другие:
Кратчайшее недвусмысленное сокращение для команды перехода в визуальный режим (
Vi IMproved
Улучшенный vi.
Производное от «a patchy server» — на ранних стадиях разработки apache представлял собой набор патчей к NCSA HTTPd 1.3
Squid FAQ:
Традиционный бонус для дочитавших до этого места :)
Слово «карандаш» образовано от тюркского «karadas» — «сланец», «графит» (kara — «черный» и das — «камень»). Первые прототипы карандашей — палочки, изготовленные из смеси свинца с цинком, появились уже в XIV веке. В XVI веке в Англии был обнаружен графит, стержни из которого можно было использовать в качестве пишущего инструмента, обернув их в тряпочку; современный вид (смесь графита с глиной в разных пропорциях внутри деревянного корпуса) карандаш приобрёл в XVIII веке. Первые механические карандаши появились уже в 1869 году. Еще одной важной вехой в развитии карандашной промышленности была высказанная в конце XIX века мысль о том, что карандаши лучше делать многогранными для избежания их скатывания по наклонной поверхности. После этого карандаши больше не меняли свою форму.
Перепечатка моей статьи, написанной, в свою очередь, по мотивам страницы What does {some strange unix command name} stand for?
awk
Aho, Weinberger, Kerninghan
Первые буквы фамилий разработчиков языка, сотрудников Центра Компьютерных Исследований Bell Labs: Альфред Ахо (руководитель исследований в этом центре с 1963 по 1991 и с 1997 по 2002 годы, сейчас — профессор Колумбийского университета в Нью-Йорке), Питер Вейнбергер (в 1985 году его стилизованный портрет стал своеобразным мемом исследовательского центра Bell Labs) и Брайан Керниган (известен прежде всего как соавтор одной из первых книг про язык C)
grep
Global regular expression print
По одной из версий, название «grep» происходит от команды редактора
ed
для печати всех строк, соответствующих регулярному выражению (regular expression, re): g/re/p
fgrep
Fixed grep
Команда
fgrep
ищет заданные фиксированные строки в файлах; список этих строк может быть прочитан из другого файла. «F» означает «fixed». Распространено заблуждение, что «f» означает «fast». Это не так: fgrep
может работать медленнее egrep
, однако его использование может дать преимущество при поиске бОльшего количества фиксированных подстрок, чем egrep
может обработать.egrep
Extended grep
Команда
egrep
использует более мощные регулярные выражения, чем grep
, а также является самой быстрой из тройки grep
, fgrep
и egrep
.cat
Catenate
«Catenate», туманное слово, означающее «соединять в последовательности», то есть то, что команда
cat
делает с одним или несколькими файлами. Никакой связи с аббревиатурой C/A/T (Computer Aided Typesetter, компьютерная система верстки, весьма распространённое на западе сокращение) здесь нет.nroff, troff
new roff, typesetter new roff
Система форматирования текстов roff является одной из центральных частей любой Unix системы. Именно благодаря ей происходит подготовка документации man к отображению на экране. Собственно, эволюция Unix неразрывна связана с развитием этой программы. Ее первая версия, под названием RUNOFF, была написана для CTSS (первой операционной системы с разделением машинного времени) в 60-х годах Джеромом Сальтцером, затем была переписана для Multics с ассемблера CTSS на BCPL, чуть позже — на PL/I. В 70-х годах её возможности перестали удовлетворять возросшим потребностям пользователей, поэтому функциональность программы runoff, уже портированной на первый Unix, была значительно расширена Джозефом Осанной, а название сокращено до roff. После этого Брайан Керниган портировал ее с ассемблера PDP-11 на C и в 1976 году выпустил в свет первую версию спецификации Troff User's Manual. Таким образом roff приобрел классический вид, во многом оставшийся неизменным до сих пор.
Само название «runoff» происходит от типографского термина «run off» — «печатать тираж».
tee
Название команды
tee
происходит от термина «tee» — Т-образное сочленение труб. Эта программа копирует свой стандартный вход в указанный файл и в терминал пользователю, что очень напоминает поведение потока при проходе через такое сочленение.biff
Программа biff использовалась в BSD-системах для срочного оповещения пользователя, работавшего в консоли, о пришедшей почте. Автором официальной версии происхождения названия является Эрик Купер:
Могу рассказать о происхождении названия biff, если интересно. Бифф был собакой Хейди Стетнер, когда Хейди, я и Билл Джой (один из отцов BSD и сооснователь Sun Microsystems) были студентами в Беркли и ранние версии BSD еще разрабатывались. Бифф был весьма популярен среди обитателей Эванс Холла и прославился тем, что лаял на почтальона, отсюда и название команды
По сведениям из книги «25 лет UNIX» Питера Салюса, выпущенной в 1994 году, пёс Бифф действительно существовал и дал своё имя программе, однако он не лаял на почтальона: Хейди утверждала, что это гнусный поклёп. Бифф был очень дружелюбной собакой и обожал гоняться за мячиками по коридорам общежития. Вместе с Хейди он посещал занятия и однажды даже получил там оценку «B»; его портрет висел на доске объявлений с пояснением, что он работает над dog'торской диссертацией. Бифф умер в 1993 году в возрасте 15 лет.
rc
runcom
Сочетание «rc», используемое в названиях некоторых файлов и каталогов (~/.bashrc или /etc/rc.d), происходит от названия программы RUNCOM из вышеупомянутой системы CTSS. Эта программа запускала программы, перечисленные в файле; и такой файл также назывался runcom, сокращённо «rc».
Впоследствии от RUNCOM произошли многие современные шеллы. В частности, оболочка в Plan 9 так и называлась —
rc
.bash
Bourne Again Shell
Игра слов, основанная на схожести звучания «Bourne» (фамилия автора оболочки
sh
Стивена Борна), и «born» (рождённый). Словосочетание «born again» (рождённый заново, возрождённый), в свою очередь, имеет также и религиозную подоплёку: во многих протестантских конфессиях понятие духовного возрождения является ключевым, да и в православии и католицизме второе, духовное, рождение (более известное как крещение) играет не последнюю роль. Это словосочетание было на слуху благодаря разнообразным американским протестантским движениям и постоянно употреблялось к месту и не к месту. В частности, так называлась книга одного из фигурантов Вотергейтского скандала Чарльза Колсона, выпущенная в 1975 году.dd
Цитата из отличной статьи DD: команда, которая не похожа на другие:
Команда dd практически ровесник ОС Юникс. Днем рождения последней считается 1 января 1970, и точно известно, что уже в 1970 году утилита dd работала с ленточными накопителями, при помощи которых данные переносили с одной ЭВМ на другую, а также запускали и устанавливали ОС Юникс на популярные тогда мини-ЭВМ PDP/11.
Расшифровка названия команды тоже относится к этим давно ушедшим временам. В языке IBM System/360 JCL был оператор DD «Dataset Definition» (Определение набора данных), имя которого и получила вновь созданная команда.
Расшифровок приходилось встречать много, в частности в рунете популярна расшифровка Disk Dump (не то разгрузка, не то загрузка диска) — версия слабая, так как в описываемые времена ни дисков, ни дампов (что бы под ними не понимали) еще не было. Гораздо ближе к сути команды шутливые расшифровки: «data destroyer» или «delete data», что можно перевести как «Доконай Диск» или «Добей Данные», потому что при неправильном использовании команды раздел или выходной файл мгновенно превращаются в хлам.
vi
Кратчайшее недвусмысленное сокращение для команды перехода в визуальный режим (
:visual
) в строковом редакторе ex (команда :v
выполняет некую команду для строк, не соответствующих заданному шаблону)vim
Vi IMproved
Улучшенный vi.
apache
Производное от «a patchy server» — на ранних стадиях разработки apache представлял собой набор патчей к NCSA HTTPd 1.3
squid
Squid FAQ:
Жалоба Харриса гласит: «все хорошие уже заняты». Нам нужно было как-то отделить наше детище от программы Harvest. Кодовым именем новой разработки было «squid», так и привязалось.
Традиционный бонус для дочитавших до этого места :)
карандаш
Слово «карандаш» образовано от тюркского «karadas» — «сланец», «графит» (kara — «черный» и das — «камень»). Первые прототипы карандашей — палочки, изготовленные из смеси свинца с цинком, появились уже в XIV веке. В XVI веке в Англии был обнаружен графит, стержни из которого можно было использовать в качестве пишущего инструмента, обернув их в тряпочку; современный вид (смесь графита с глиной в разных пропорциях внутри деревянного корпуса) карандаш приобрёл в XVIII веке. Первые механические карандаши появились уже в 1869 году. Еще одной важной вехой в развитии карандашной промышленности была высказанная в конце XIX века мысль о том, что карандаши лучше делать многогранными для избежания их скатывания по наклонной поверхности. После этого карандаши больше не меняли свою форму.