Почему системы UNIX / POSIX называют так называемые namings?

В чем причина использования таких нерегулярных имен системных вызовов, как time и creat вместо getCurrentTimeSecs и createFile или, может быть, более подходящих для Unix get_current_time_secs и create_file . Это подводит меня к следующему пункту: почему кому-то нужно что-то вроде cfsetospeed без cfsetospeed верблюда или, по крайней мере, подчеркивания, чтобы сделать его доступным для чтения? Конечно, у вызовов будет больше символов, но мы все знаем, что читаемость кода важнее?

4 Solutions collect form web for “Почему системы UNIX / POSIX называют так называемые namings?”

Это связано с техническими ограничениями времени. Стандарт POSIX был создан в 1980-х годах и относится к UNIX, который родился в 1970 году. Несколько компиляторов C в то время были ограничены идентификаторами длиной 6 или 8 символов, поэтому он установил стандарт для длины переменной и функции имена.

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

Это означало, что даже в пределах 6-8 символов вы пытались максимально сократить свои команды. Вот почему у вас есть ls вместо list , а creat вместо create . Код с той эпохи полон переменных, таких как a , x и i – и, конечно же, x2 и друзей. Впечатывание было большой работой – сегодня вы менее listIndex вводить listIndex чем раньше, когда вы использовали «набрав» i – и это еще не все так медленно (особенно с дополнительными технологиями, такими как автозаполнение).

Реальный вопрос: почему так много идиом Unix сохраняются, хотя они больше не желательны?

В дополнение к другим ответам я хотел бы отметить, что Unix была разработана как реакция на Multics, CTSS и другие современные операционные системы, которые были значительно более подробными в отношении их соглашений об именах. Вы можете почувствовать эти ОС на http://www.multicians.org/devdoc.html . Например, http://www.multicians.org/mspm-bx-1-00.html дает change_name как команду для переименования файла; сравните Unix mv .

Кроме того, главная причина, по которой очень короткие имена системных вызовов сохраняются, – это обратная совместимость. Вы заметите, что более новые API, как правило, более явны; например gettimeofday и clock_gettime а не просто time .

(Даже сегодня, используя whateverIndex вместо i для индекса цикла, это автоматический сбой кода в моей книге 😉

Деннис Ритчи поставил себе ограничение с C, чтобы он не полагался на какие-либо функции компоновщика, которые также не требовались Fortran. Следовательно, ограничение на 6 символов для внешних имен.

  • Что такое значение NR_Syscalls?
  • Какой файл в ядре определяет fork (), vfork () ... для использования системного вызова sys_clone ()
  • Способы вызова системного вызова в новом ядре
  • Какой системный вызов предоставляет интерфейс для отправки сообщений на устройства?
  • Системное программирование: как собрать информацию?
  • Для чего я должен использовать `O_PATH` и как?
  • Неожиданный родительский идентификатор процесса на выходе
  • В чем разница между вызовом библиотеки и системным вызовом в Linux?
  • Как работает работа на дому?
  • Переписать системный вызов в пользовательском пространстве
  • Неоконченный системный вызов, сообщенный strace
  • Linux и Unix - лучшая ОС в мире.