Ответы:
Это относится ко времени самого первого издания Unix , где все стандартные имена файлов были длиной не более 6 символов (подумайте passwd), хотя эта версия поддерживала 8 символов в имени файла . У большинства команд был связанный исходный файл, оканчивающийся на .c(например umount.c), который оставлял только 6 символов для базового имени.
6-символьное ограничение могло также быть пережитком более ранней версии разработки или унаследовано от текущей системы IBM, которая имела 6-символьное ограничение. (Ранние реализации C имели ограничение в 6 символов на идентификаторы - более длинные идентификаторы были приняты, но компилятор просматривал только первые 6 символов, поэтому foobar1и foobar2представлял собой одну и ту же переменную.)
(Мне показалось, что я запомнил umountстраницу руководства, в которой правописание указывалось как ошибка неизвестного происхождения, но сейчас я не могу его найти.)
directory, которая еще не подошла бы). Так что мне интересно, почему passwdбыло усечено до 6 символов (просто еще не было passwdкоманды /etc/passwd).
urandom
Кажется, здесь какое-то время была какая-то неверная информация.
Наиболее вероятная причина umountкоманды , имеющая сокращенное название, потому что это следует из названия системного вызова , который он использует: umount().
Вероятная причина, по которой системный вызов «unmount» имеет имя, umount()заключается в том, что ранние компоновщики ограничивали длину внешних идентификаторов всего лишь 6 символами (только одного случая) в некоторых типах систем (и имело смысл поддерживать совместимость с такими инструментами в то время), и «umount» является логической формой сокращения для «unmount». См. Страницу 179 первого издания языка программирования C для получения списка характеристик внешнего идентификатора различных систем, представляющих интерес на момент публикации.
Также обратите внимание, что ранние компиляторы C обрабатывали первые 8 символов идентификатора как значимые, но позволяли идентификаторам быть длиннее. (K & R стр. 33)
Обратите внимание, что длина идентификаторов в таблицах символов не имеет никакого отношения к длине имени файла, по крайней мере, в Unix (таблицы символов Unix, начиная с V1, имеют 8 символов для идентификаторов, хотя в руководстве по V1 отмечено, что ассемблер " генерирует символы не более 7 байтов " ).
По той же причине creatсистемный вызов не пишется create?
.c(или.s) расширение = ограничение имени файла до 8 символов.