Por que “ls” no UNIX e “dir” no DOS possuem nomes diferentes?

6

Por que eles têm nomes diferentes para o mesmo comando, listando um diretório? Certamente, eles poderiam ter conversado um com o outro e concordado em um nome comum, como por exemplo cd , que é o mesmo tanto para unix quanto para dos.

Esta decisão de ter nomes diferentes criou muitas dores de cabeça para desenvolvedores e usuários e também aumentou a incompatibilidade entre os dois sistemas. Eles fizeram isso de propósito? Então como é que "cd" é o mesmo?

    
por siamii 06.11.2011 / 17:20

2 respostas

17

Note que o Unix veio primeiro (o texto da sua pergunta faz parecer que foi o contrário).

O DOS herdou o comando dir do CP / M , que obteve de VMS . O caractere / para introduzir opções (que forçaram o DOS a adotar um caractere diferente como o separador de diretório, quando os diretórios foram introduzidos) tinha a mesma origem.

Por que os designers do VMS não seguiram o Unix? Porque quando o VMS foi projetado, o Unix ainda era jovem, e não se tornou o padrão de fato que se tornaria mais tarde (em parte graças ao Esforço de padronização POSIX . O VMS e o Unix tinham designs diferentes em muitos aspectos; Duvido que tenha havido um esforço deliberado para torná-los incompatíveis. CP / M e DOS, e as primeiras versões do Windows seguiram o VMS porque não havia razão convincente para escolher o Unix sobre o VMS naquela época; o projetista líder do Windows NT já havia trabalhado no VMS, o que influenciou ainda mais o Windows em direção ao VMS em vez do Unix. Mais tarde, quando o Unix surgiu como o sistema operacional padrão nos servidores, o Windows estava muito firmemente estabelecido para mudar. No entanto, o Windows adquiriu uma quantidade limitada de compatibilidade POSIX (às vezes por meio de software de terceiros); Por exemplo, as APIs internas aceitam / como separador de caminho.

    
por 06.11.2011 / 17:44
4

Os comandos são diferentes porque foram desenvolvidos praticamente em paralelo, sem interação. Os comandos do DOS são geralmente derivados do QDOS, que é derivado do CP / M, Programa de Controle para Microcomputadores de Gary Kildall, que foi praticamente o primeiro sistema operacional para microprocessadores Intel, originalmente destinado ao CPU 8080 da Intel, e escrito em grande parte para permitir PL / M para controlar uma unidade de disquete. Tudo isso aconteceu no início dos anos 70.

O Linux é largamente derivado do Unix, com muitos dos comandos tendo nomes idênticos executando funções idênticas (ou muito, muito similares). O Unix estava sendo desenvolvido a partir de 1969, e muito do nome do comando inicial ocorreu em paralelo com o CP / M.

O CP / M era voltado para computadores pessoais, enquanto o Unix era voltado para minicomputadores, geralmente em laboratórios corporativos ou centros de pesquisa universitários, e realmente não havia colaboração entre os dois esforços.

Agora, é mantido em grande parte do jeito que é para garantir a diferenciação, com nenhum dos lados dispostos a admitir que a convenção de nomenclatura do outro é superior.

Ambos os sistemas permitem aliases de comando, no entanto.

    
por 06.11.2011 / 17:53