Мне интересно, есть ли какая-либо историческая или практическая причина, почему umount
команда не является unmount
.
источник
Мне интересно, есть ли какая-либо историческая или практическая причина, почему umount
команда не является unmount
.
Это относится ко времени самого первого издания Unix , где все стандартные имена файлов были длиной не более 6 символов (подумайте passwd
), хотя эта версия поддерживала 8 символов в имени файла . У большинства команд был связанный исходный файл, оканчивающийся на .c
(например umount.c
), который оставлял только 6 символов для базового имени.
6-символьное ограничение могло также быть пережитком более ранней версии разработки или унаследовано от текущей системы IBM, которая имела 6-символьное ограничение. (Ранние реализации C имели ограничение в 6 символов на идентификаторы - более длинные идентификаторы были приняты, но компилятор просматривал только первые 6 символов, поэтому foobar1
и foobar2
представлял собой одну и ту же переменную.)
(Мне показалось, что я запомнил umount
страницу руководства, в которой правописание указывалось как ошибка неизвестного происхождения, но сейчас я не могу его найти.)
.c
(или.s
) расширение = ограничение имени файла до 8 символов.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
?https://stackoverflow.com/questions/1713457/what-did-ken-thompson-mean-when-he-said-id-spell-create-with-an-e
источник