UNIX에서 "ls"와 DOS에서 "dir"의 이름이 다른 이유는 무엇입니까?


6

왜 같은 명령에 다른 이름을 가지고 디렉토리를 나열합니까? 분명히, 그들은 서로 대화하고 예를 들어 cd유닉스와 도스에 대해 동일한 하나의 공통 이름에 동의 할 수있었습니다 .

서로 다른 이름을 갖기로 한이 결정은 개발자와 사용자에게 많은 골치 거리를 주며 두 시스템 간의 비 호환성을 증가 시켰습니다. 그들은 의도적으로 그것을 했습니까? 그렇다면 "cd"는 어떻게 같은가요?


Windows 용 새로운 선호하는 명령 행 - - 그 PowerShell을 참고 모두 정의 lsdir별칭 등의 기본 Get-ChildItem(파일 시스템에 추가 레지스트리 및 기타 (아마도 사용자가 인스톨 된 프로 바이더)를 작동 할 수있는).
Richard

답변:


17

유닉스가 먼저 나왔다는 점에 유의하십시오 (질문의 표현은 다른 방식으로 보입니다).

DOS dirCP / M 에서 명령을 상속했으며 VMS 에서 얻었습니다 . /문자 (디렉토리가 도입 된 디렉토리 분리와 같은 다른 문자를 채택 DOS를 강제) 같은 기원을 가지고 옵션을 소개합니다.

VMS 설계자가 Unix를 따르지 않은 이유는 무엇입니까? VMS가 설계되었을 때 Unix는 여전히 젊었 고 나중에 POSIX 표준화 노력으로 인해 사실상의 표준이되지 않았습니다 . VMS와 Unix는 여러 측면에서 서로 다른 디자인을 가지고있었습니다. 나는 양립 할 수 없도록 의도적으로 노력한 것이 의심 스럽다. CP / M 및 DOS와 초기 Windows 버전은 VMS를 따랐습니다. 당시 VMS보다 Unix를 선택해야 할 이유가 없었기 때문입니다. Windows NT수석 디자이너이전에 VMS에서 일한 적이 있는데 이는 Unix가 아닌 VMS에 Windows에 영향을 미쳤습니다. 나중에 Unix가 서버의 표준 운영 체제로 나왔을 때 Windows는 변화하기에 너무 견고했습니다. 그럼에도 불구하고 Windows는 일부 제한된 양의 POSIX 호환성 (때로는 타사 소프트웨어를 통해)을 얻었습니다. 예를 들어 내부 API는 /경로 구분 기호로 사용됩니다.


제쳐두고 : 분명히 모든 MS-DOS 시스템 콜 /은 경로 구분자로 받아 들여졌지만 명령 은 그렇지 않았습니다. (MS-DOS v2에는 많은 개발자들이 Xenix에 익숙하기 때문에 명령 줄 경로 구분 기호를 /옵션 접두어 로 변경 하고 옵션 접두어를 로 변경하는 옵션이 -있었습니다.
grawity

1
Unix는 1969 년으로 거슬러 올라가고 1971 년에 첫 번째로 출판 된 문서가 발표되었습니다. MSDOS는 Seattle Computer Product의 QDOS (Quick and Dirty OS)로 시작하여 1980 년에 개발을 시작했습니다. 그 후 대부분의 새로운 프로그래머는 대학에서 Unix에 노출되었습니다. 다른 사람들은 그것을 알고있었습니다. SCP, MS 및 IBM (물론 MSDOS를 위임 한)이 Unix 표준으로 전환 할 수있는 여러 기회가 있었지만 (아마도 이틀 정도 걸렸을 것임) 불행히도 발생하지 않았습니다. 나는 그것이 무지와 오만의 조합이라고 생각합니다.
Daniel R은

@DanH 그리 많지 않습니다. 당시 IBM 외부에서 완전히 잊어 버린 VMS 및 기타 운영 체제는 여전히 심각한 경쟁자였습니다.
Gilles

70 년대 후반, 유닉스는 다른 곳이 여전히 남아 있었지만 "현재 있었던 곳"이었습니다. 확실히 1 년이 지난 후에도 DOS가 만들어 졌다면, UNIX는 의심의 여지없이 사실상의 표준이었을 것입니다. (아마도 더 자극적 인 것은 나중에 추가 된 많은 내부 요소가 유닉스 패러다임을 복사하는 대신 "전체 천"으로 만들어 졌다는 것입니다.)
Daniel R Hicks

1
VMS는 77 년까지 사용할 수 없었으며 CP / M은 73/74 년에 개발되었습니다. 그러나 DEC 영향의 원천이 있습니다. CP / M은 TOPS-10 및 PDP-10 (MS 초기 제품과 동일)에서 개발되었습니다. TOPS-10에는 DIRECT 명령이 있습니다. TOPS-20 (또 다른 PDP-10 OS)은 DIRECTORY 명령을 가지며 DIR로 축약 될 수 있습니다. ISTR은 DEP가 PDP-11 (커터에 의한 VMS 흡인기 RSX-11도 포함)에 사용되며 동일한 명명법 (따라서 DIRECTORY에 기반한 명령 이름)도 사용합니다. 유닉스에 대하여, 유닉스가 1974/1975 년 이전에 벨에서 퍼지지 않았으며 아마도 CP / M에 영향을 미치기까지 늦었다는 ISTR.
AProgrammer

4

명령은 상호 작용없이 거의 병렬로 개발 되었기 때문에 다릅니다. DOS 명령은 일반적으로 QDOS에서 파생 된 것으로, 그 자체는 CP / M에서 파생되었으며, Gary Kildall의 마이크로 컴퓨터 제어 프로그램은 원래 Intel 마이크로 프로세서를위한 최초의 운영 체제였으며 원래는 Intel의 8080 CPU 용으로 만들어졌으며, 대부분의 부분에서 작성되었습니다. 플로피 디스크 드라이브를 제어하는 ​​PL / M 이 모든 것은 1970 년대 초에 일어났습니다.

Linux는 대부분 Unix에서 파생 된 것으로, 동일한 이름을 가진 많은 명령이 동일하거나 매우 유사한 기능을 수행합니다. Unix는 1969 년부터 개발되어 왔으며, 초기 명령 명명의 상당 부분이 CP / M과 동시에 발생했습니다.

CP / M은 개인용 컴퓨터를 목표로했으며, Unix는 일반적으로 기업 실험실 또는 대학 연구 센터의 소형 컴퓨터를 대상으로했으며 두 노력 간에는 아무런 협력이 없었습니다.

이제는 다른 쪽의 명명 규칙을 인정할 의향이없는 쪽에서 차별화를 보장하는 방식이 크게 유지되었습니다.

그러나 두 시스템 모두 명령 별명을 허용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.