6

Почему они имеют разные имена для одной и той же команды, перечисляя каталог? Конечно, они могли бы поговорить друг с другом и договориться об одном общем имени, таком как, например, cd который одинаков как для unix, так и для dos.

Это решение иметь разные имена создало много головной боли для разработчиков и пользователей, а также увеличило несовместимость между двумя системами. Они сделали это нарочно? Тогда почему "CD" является таким же?

2 ответа2

17

Обратите внимание, что Unix появился первым (формулировка вашего вопроса выглядит так, как будто это было наоборот).

DOS унаследовал команду dir от CP/M, который получил от VMS. Символ / для ввода параметров (который заставлял DOS принимать другой символ в качестве разделителя каталогов, когда каталоги были введены) имел одинаковое происхождение.

Почему разработчики VMS не следовали Unix? Потому что, когда проектировался VMS, Unix был еще молодым и не стал де-факто стандартом, каким он станет позднее (отчасти благодаря усилиям по стандартизации POSIX ). VMS и Unix имели разные дизайны во многих отношениях; Я сомневаюсь, что были предприняты преднамеренные усилия, чтобы сделать их несовместимыми. CP/M и DOS, а также ранние версии Windows следовали за VMS, потому что в то время не было веской причины выбирать Unix вместо VMS; ведущий дизайнер Windows NT ранее работал над VMS, что еще больше повлияло на Windows, а не на Unix. Позже, когда Unix вышел в качестве стандартной операционной системы на серверах, Windows была слишком прочно укоренилась, чтобы измениться. Тем не менее, Windows действительно приобрела некоторую ограниченную совместимость с POSIX (иногда с помощью стороннего программного обеспечения); например, внутренние API принимают / в качестве разделителя пути.

4

Команды разные, потому что они разрабатывались параллельно, без взаимодействия. Команды DOS, как правило, являются производными от QDOS, которая сама была производной от CP/M, Программы управления микрокомпьютерами Гэри Килдалла, которая была в значительной степени первой операционной системой для микропроцессоров Intel, изначально предназначенной для процессора Intel 8080 и написанной в значительной степени для включения PL/M для управления дисководом. Все это произошло в начале 1970-х годов.

Linux в значительной степени является производной от Unix, причем многие команды с одинаковыми именами выполняют идентичные (или очень, очень похожие функции). Unix разрабатывался начиная с 1969 года, и большая часть первоначального именования команд происходила параллельно с CP/M.

CP/M был нацелен на персональные компьютеры, тогда как Unix был нацелен на миникомпьютеры, как правило, в корпоративных лабораториях или университетских исследовательских центрах, и между этими двумя усилиями действительно не было никакого сотрудничества.

Теперь он в значительной степени придерживается принципа обеспечения дифференциации, при этом ни одна из сторон не желает признать, что соглашение об именах другой стороны является превосходящим.

Обе системы допускают псевдонимы команд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .