Почему системы 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 символов для внешних имен.

  • API без системных вызовов
  • Команда для отслеживания rsh-сервера для проверки поведения конкретного системного вызова
  • Linux, где находятся системные вызовы sys_umount и sys_mount?
  • Псевдотерминалы против пары труб
  • Неоконченный системный вызов, сообщенный strace
  • Можете ли вы выполнять системные вызовы с терминала OSX?
  • Исходный код ядра: что такое parent_tidptr и child_tidptr в do_fork ()?
  • Захват информации о системном вызове
  • Невыполнение системного вызова
  • Как я могу найти реализации системных вызовов ядра Linux?
  • Отложить * все * записи диска, сохранить их в памяти
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.