본문 바로가기

Fun,Fun,Fun

MS DOS의 기능과 역사


MS -DOS



개발처 기업 / 개발자 마이크로 소프트


MS- DOS는 마이크로 소프트가 개발, 판매하고 개인용 컴퓨터를위한 16비트 운영체제( OS )이다. IBM 에 OEM 공급 제품이었던 PC DOS ( IBM DOS )를 자사 버전으로 출시한 것으로, 버전 6이상은 PC DOS 에서 완전히 독립적으로 개발되었다.

MS- DOS와 PC DOS ( IBM DOS )는 개인용 컴퓨터를위한 16 비트 디스크 운영 체계 ( DOS )에서 그 이름 그대로한 디스크 관리하는 단일 태스킹 운영체제 ( OS )이다.


기본 사용 인터페이스는 문자 사용자 인터페이스( CUI )에서 명령줄 인터프리터 COMMAND.COM의 표시 명령 프롬프트에 명령을 주는 작업을 한다. 일부 제조 업체가 독자적으로 추가 하거나 나중에 버전으로 탑재된 그래픽 도구도 있다. UNIX를 추천한 계층적 파일 시스템을 가지고 있지만 파일 이름에 대한 제한이 엄격 기능은 낮다.


역사적으로 1981년에 IBM이 초대 IBM PC용으로 발매한 DOS가 'PC DOS'에서 1982년부터 마이크로 소프트가 IBM 이외의 메이커에 OEM 제공을 개시한 것이 'MS- DOS'였지만 Microsoft는 후에 1981년부터 'MS- DOS'라고 부르고있다.


양사는 버전 5.0 까지 OS 공동 개발 계약 ( OS 크로스 라이센스 계약 )을 체결하고 호환성이 유지 되었다. 당시는 8비트 시장에서 CP / M이 사실상의 표준이었지만, 16 비트 시장에서 PC DOS 및 MS- DOS 가 주류가 되었다.


특히 MS- DOS는 인텔의 x86 계열 프로세서를 탑재한 각사, 각 기종의 개인용 컴퓨터에 이식되어 세계적으로는 PC / AT 호환기 , 일본에서는 일본 전기( NEC )의 PC - 9800 시리즈, 후지쯔 FMR 시리즈, 도시바 다이나북등 각사 독점 아키텍처에 이식 되었다. 후에는 AX의 기본, 나아가 임베디드 기기등에 널리 보급 주류가 되었다.


그러나 MS- DOS ( PC DOS )를 탑재하고있는 PC도, 아키텍처가 다른 기종간에 응용 프로그램 소프트웨어 의 호환성은 거의 없었다. MS- DOS는 화면에 관련된 API가 없기 때문에, 그래픽 메모리를 조작하여 화면에 대한 응용 프로그램은 하드웨어를 직접 조작하지 않을 수 없어 기종에 의존하기 때문이다.


버전 6 에서는 IBM 과 마이크로 소프트의 OS 공동 개발 계약이 종료후 MS- DOS 와 PC DOS의 단체 판매 및 지원도 종료 되었기 때문에 현재는 오픈 소스를 포함한 호환 DOS 외에 Microsoft Windows의 명령 프롬프트 환경등의 DOS 호환 환경이 존재한다.


MS- DOS는 1995년 시점에서 전 세계적으로 1 억개를 출하 했다.




역사
개발의 경위
1980년 7 월경 IBM은 IBM PC가되는 개인용 컴퓨터의 개발에 착수 했다. 그러나 IBM의 주력 상품인 범용 컴퓨터에 비하면 극소수의 직원과 적은 예산밖에 주어지지 않았다. 프로젝트 리더 필립 돈 에스토릿지 (Don Estridge)는 가급적 신속하게 상품화가 나오기 위해 소프트웨어는 자체 개발하지 않고 모든 외부에서 조달할 방침을 세웠다.


당시 마이크로 소프트는 BASIC 인터프리터와 어셈블러 및 각종 언어 컴파일러등을 개발하고 그 제품의 대부분이 당시의 개인용 컴퓨터 시장에서 사실상의 표준 OS인 디지털 리서치의 CP / M 에서 작동하는 것이었다.


IBM은 마이크로 소프트에 대해 처음에는 BASIC 같은 언어 제품의 개발을 의뢰 했다. OS에 대해서도 8086 대응 버전의 CP / M 을 마이크로 소프트에 개발 주려고 했다. 그러나 그들은 CP / M 소스 권리를 갖고 있지 않았기 때문에 빌 게이츠의 조언에 따라 디지털 리서치와 협상 하기로 했다. 그러나 디지털 리서치와 협상은 잘되지 않고 결국 마이크로 소프트 자신이 OS를 개발 하기로 했다.


마이크로 소프트는 OS의 개발 경험은 없었기 때문에, 같은 무렵 CP / M 이 8086에 독자적으로 이식 작업을하고 있던 시애틀 컴퓨터 프로덕츠 (products)사의 QDOS를 인수하여 IBM PC 용으로 개조 한다.


각 메이커에 OEM 공급
IBM은 처음에는 'PC DOS' 이름으로 IBM에 공급을 주장하고 마이크로 소프트는 IBM 이외의 메이커에 OEM 공급을 주장한 결과 'IBM용은 PC DOS. Microsoft에서 각 메이커에 OEM 공급도 인정하고 보급을 도모'라는 역할 분담이 되었다( 이 역할 분담은 후 OS / 2 Ver. 1.X 에도 마찬가지가 된다).




위험을 경감화 하기 위해 매입을 피하고 IBM PC의 출하 대수에 사용료를 지불하는 라이센스 계약을한다. 그리고 마이크로 소프트에서 각 메이커에 자유로운 OEM 공급을 인정한일이 후 마이크로 소프트의 약진 의 원동력 이었다. MS- DOS ( 및 PC ​​DOS ) 대중성( 사실상의 표준화 )을 결정 지었다고 할 수있다.


마이크로 소프트에서 OEM 버전의 첫번째는 1982년 버전 1.25 제니스 데이터 시스템즈의 ZDOS를 말한다. 공급처 메이커도 명칭도 여러 있었다고 말한다. 1983년 버전 2.0부터 'MS- DOS' 명칭이 일원화 되었다. 그러나 여러 버전 이후에 'MS- DOS 1.0'등으로 총칭되는 경우가 많다. 'MS- DOS 백과 사전'에 따르면, IBM 이외의 각 메이커에 OEM 공급용으로 자사 상표 ( MS )를 붙여 'MS- DOS' 이름으로 했으며, OEM 대상 기업이 자신의 이름을 붙였기 때문에 혼동을 피하기 위해 정리한 것으로되어 있다.




DOS의 한계
DOS는 기본적으로 그래픽 사용자 인터페이스와 멀티 태스킹 기능과 가상 메모리를 가지지 않고, 80386 등의 32 비트 환경에서도 '빠른 8086'으로 밖에 사용할 수 없기 때문에 DOS의 확장과 차세대 OS가 대망 되었다.


1985년에는 DESQview 및 DOS에서 실행되는 운영체제로 Microsoft Windows가 등장 했다. 또한 1987 년에는 본격적인 DOS의 후속 OS로 IBM 과 마이크로 소프트에서 OS / 2 Ver. 1.0이 등장했다. OS / 2는 DOS와 마찬가지로 IBM에서 OS / 2 IBM 버전은 IBM 이외의 메이커에 OEM 버전으로 OS / 2 Microsoft 버전을 제공 하지만 성능이나 DOS 호환 환경 문제도 널리 대중 않았기 때문에 DOS는 계속 쓰였다.


1993년 버전 6는 IBM과 마이크로 소프트의 OS 공동 개발 계약( OS 크로스 라이선스 계약 )이 종료 되었기 때문에 이후는 IBM 또는 Microsoft 단독 개발이 기본 부분의 호환성은 유지되고 있지만 부속 유틸리티가 다르게 되었다. Microsoft는이 MS- DOS 6의 판매 최종 버전으로, 1995년 Microsoft Windows 95 이상 은 DOS도 불필요해졌다( 기술적으로 DOS는 내부적으로 존재하고 있지만, 제품의 번들이 되었다 ). IBM 은 DOS 개혁을 계속했지만 1998년 PC DOS 2000이 최종 버전이고 2002 년에는 지원도 종료 했다.



기능
MS- DOS 라는 이름 대로, 마이크로 소프트의 개인용 컴퓨터를위한 DOS ( 디스크 운영 체제 )이며, 주로 디스크 관리하는 단일 작업 OS였다. 멀티 태스킹 기능 메모리 보호 기능등은 OS 내부에는 없었다. 또한 그래픽 화면이나 사운드 작업 네트워크 기능등은 Microsoft Windows 및 LAN Manager 외에도 응용 프로그램이 직접 I / O 를 조작 하거나하는 장치 드라이버로 볼 수 있었다.


파일 관리
파일 관리는 FAT 및 클러스터로 구성된 파일 이름은 8.3 ( 8 문자 까지의 기본 이름과 3자의 확장자 총 11 자) 로 나타낸다. 알파벳의 대문자와 소문자는 구별하지 않는다 ( 모두 대문자로 간주 된다). 




부팅 순서
부팅 순서는 버전에 따라 약간 다르지만 대체로 다음과 같다.
컴퓨터의 ROM BIOS 나 디스크의 마스터 부트 레코드 디스크의 섹터 0에 부트 섹터를 로드하고 실행함.


디스크 에서 IO.SYS 와 MSDOS.SYS 가 메모리에 로드 된다.


IO.SYS 를 시작한 다음 MSDOS.SYS 로 제어를 전환 한다.


CONFIG.SYS 가 부팅 드라이브의 루트 디렉토리에 있으면 로드 작성된 장치 드라이버를 읽어 들인다.
일괄처리를 위한 명령 인터프리터인 표준 쉘 COMMAND.COM 을 시작 한다.


AUTOEXEC.BAT가 부팅 드라이브의 루트 디렉토리에 있으면 그 내용을 실행하여 환경 변수 설정 및 시작시 실행 해야 할 명령등의 호출 경우에 따라 응용 프로그램 시작등도 실시한다.


COMMAND.COM 에서 각 드라이브 A : 에서 최대 Z : ( 이것은 환경 변수 LASTDRIVE 에서 변경 가능) 까지의 드라이브 문자 관리하고 내부 명령은 파일 디렉토리 목록의 참조 파일 및 디렉터리 만들기, 사본 이름 컴퓨터의 시간 및 환경 변수 및 경로 설정 참조등이 가능하며, 외부 명령 또는 응용 프로그램의 실행 파일 의 시작이 가능 했다. 또한 Ver.2 부터 UNIX 를 의식한 입출력 리디렉션 및 파이프 기능등도 이용할 수 있었지만, MS- DOS 에서 파이프와 리디렉션은 모두 임시 파일을 통한 의사적인 구현에 머물고 있었다.


실행 파일
MS- DOS 에서 실행 파일 의 형식은 현재 UNIX 계열 환경 에서 말하는 쉘 스크립트 와 유사한 명령 일괄 처리를 기술하는 배치 파일 ( 확장자 는 BAT )와 CPU 가 직접 실행할 바이너리 파일 로 대별 할 수있다.
이 중 이진 파일 에는 하나의 세그먼트를 사용 COM 형식 여러 세그먼트 를 사용 하면 EXE 형식 , 장치 드라이버 로 SYS 형식 이 존재하며, 각각 동명 의 확장자를 가진다.


COM 형식 의 실행 파일은 바이너리 로드시 설정 되는 코드 데이터 엑스트라 스택 의 각 세그먼트 레지스터의 값이 동일한 주소로 설정 되고 프로그램 내부 에서 세그먼트 레지스터를 조작 하지 않으면 단일 세그먼트 최대 64KB 의 메모리 공간을 운영 한다. CP / M 80 용 으로 작성된 8080 용 어셈블리 언어 의 소스 코드를 8086 으로 변환 하는 경우 를 상정 한 메모리 모델 이지만, COM 형식 의 바이너리 도 프로그램 측 에서 제대로 세그먼트 레지스터를 조작 하는 것으로 64KB 의 공간 에 접근이 가능하다.


이 중 . SYS 형식 의 바이너리는 원칙적으로 시작할 때 한 번만 실행 되는 CONFIG.SYS 에 설명하는 다른 방법으로 는 직접 로드 할 수 없다. 그러나 NEC 의 PC - 9800 시리즈 버전 의 일부 에서 ADDDRV.EXE 및 등록 기술 한 파일 의 편성에 의해 등록 DELDRV.EXE 에서 제외 할 수 있게되었다 ( 문자 장치 뿐이며 CONFIG.SYS 한 번 등록한 장치 드라이버 는 제외 한다. IBM PC 용으로 는 여러 종류 타사 에서 유사한 프로그램 이 작성되고 있다).




시스템 호출
시스템 호출은 소프트웨어 인터럽트에서 호출 되지만, 8080 및 Z80등의 8비트 컴퓨터에서 존재였던 CP / M 과의 호환성 특히 8080용 어셈블리 언어로 작성된 소스코드를 8086 으로 변환하여 사용하는 경우를 상정해, call 5에서도 사용가능으로 CP / M 80의 전환을 촉구했다.


메모리 관리
MS- DOS 에서 DOS 자신의 커널을 포함한 프로그램의 실행에 확보 할 수있는 메모리 공간 ( 사용자 메모리, 기본 메모리 )은 8086 주소 공간의 최대 1MB이다. 대부분의 컴퓨터에서는 이 공간에 BIOS ROM 과 메모리 ​​매핑된 I / O , VRAM등의 공간도 존재하기 때문에 뱅크 전환 및 다양한 메모리 확장 수단등을 이용하지 않고 일시적으로 액세스 할 수있는 메모리 공간은 최대 로 640KB ( IBM PC 호환 컴퓨터 및 PC ​​- 9800 시리즈등 )에서 768KB ( PC - H98 과 FMR 시리즈 FM TOWNS 등 )정도 였다.


그러나 RAM 디스크 드라이브나 디스크 캐시등은 뱅크 메모리와 EMS, 보호메모리 (80286 / 386 이상) 등의 기본 메모리 이외의 영역, 수단의 이용이 일반화되어 있었기 때문에, '귀중한' 기본 메모리가 이러한 영역에 의해 압박되는 것은 없었다.


이러한 메모리에 할당 설정은 CONFIG.SYS 및 AUTOEXEC.BAT 를 기술하는 것으로 사실상 사용자에게 일임 되어 있었다.


버전 3 까지 이러한 설정을 하기 위해서는 타사 메모리 드라이버등을 사용할 필요가 있었지만, 버전 5에서는 표준 기능으로 OS에 내장 메모리 드라이버 및 장치 드라이버도 포함하게 되었다. 또한 이러한 환경 설정을 반자동적으로 설정하는 응용 프로그램도 첨부 되었다.



Windows 9x
Windows 9x 계열의 OS는 'DOS'를 필요로하지 않는 Windows 라는 'OS' 라고 칭하고 있지만, 내부적으로는 기존의 Windows 3.x 와 마찬가지로 MS- DOS 모듈에서 시작하여 보호 모드에서 실행 GUI와 멀티 태스킹을 제공하는 구조 (일종의 DOS 증량제 )를 하고 있었다. 그러나 Windows에서 사용하는 MS- DOS 시스템 호출은 극히 일부에 한정되어 VFAT등으로 파일 관리 방법이 확장 되고 있다. 또한 Windows 95.98 등 의 Windows 본체를 시작 하지 않는 MS- DOS 모드의 경우 VFAT 에서 긴 파일 이름에서도 8 문자 + 확장자 3자 짧은 파일 이름 형식의 파일 이름으로 표시 되었다.



버전 목록
1 1981년 PC DOS 1.0 ( MS- DOS ) 1.25 1981년 IBM PC 용으로 PC DOS가 등장. 1982년 마이크로 소프트가 IBM 이외에 1.25 이후의 OEM 공급을 시작 ( 명칭은 공급처에 따라 다름).


2 1983 년 PC DOS 2.0 MS- DOS 2.0 PC / XT 에 등장. Microsoft 버전의 명칭이 'MS- DOS'로 단일화.


3 1984 년 PC DOS 3.0 MS- DOS 3.0 PC / AT 에 등장, FAT16등. 사실상 표준. 같은시기에 DR DOS 4 도 발송한다.


4 1988 년 IBM DOS 4.0 MS- DOS 4.0 IBM 판이 명칭 변경. DOS 셸등.


5 1991 년 IBM DOS 5.0 MS- DOS 5.0 메모리 관리 기능 강화. IBM과 마이크로 소프트의 OS 공동 개발 의 최종 버전. Microsoft 버전은 처음 단체의 직접 판매가 시작 된다. 


6 1993 년 PC DOS 6.1
PC DOS 6.3 MS- DOS 6.0
MS- DOS 6.2 IBM판이 명칭 재변경 . PC DOS 와 MS- DOS는 부속 유틸리티의 차이가 확대. MS- DOS 는 단체 판매의 최종 버전. 같은시기에 Novell DOS ( DR DOS ) 7 출하.


7 1995 년 MS- DOS 7.0
MS- DOS 7.1 Windows 95/98/98SE 내부 버전. PC DOS 7과는 전혀 별개. 7.1은 Windows 95 OSR2 이상에서 FAT32에 대응했다.


1995 년 PC DOS 7 IBM. 스크립트 언어의 REXX를 지원한다. MS- DOS 7 과는 전혀 별개.


8 2000 년  MS- DOS 8 Windows Me의 내부 버전. MS- DOS의 최종 버전.
2000 1998 년 PC DOS 2000 유로 기호 2000년 문제 대응등. PC DOS의 최종 버전 2002 년 지원 종료 .





MS- DOS 와 호환되는 운영 체제
DR - DOS
PC - Engine ( PC - 88VA )
FM TOWNS # TownsOS TownsOS ( FM TOWNS )
FreeDOS
PTS - DOS ( 평가판 )
RxDOS



MS- DOS 의 영향을 받으면서도 바이너리 호환되지 않는 운영 체제
Human68k ( 허드슨, 샤프 ) - X68000 파일 시스템 FAT12/16의 일부를 채용, COMMAND.COM 와 흡사 한 명령 인터프리터를 탑재. 시스템 호출 기능도 INT21H 을 흉내낸 디자인을 볼 수있는 등 영향을 ( 주로 개발 공사 기간의 단축 등의 측면 에서 ) 강하게 받아 모방하고있는 것은 분명 하지만, 기타는 전혀 별개 의 구현 있으며, CPU 자체에도 호환 되지 않는다.



MSX - DOS ( 마이크로 소프트, 아스키 ) - MSX , FAT12의 부분 집합에 대응 하고 MS- DOS 의 COMMAND.COM 과 매우 흡사한 명령 인터프리터를 탑재한 CP / M 호환 OS. CDOS - II 와 마찬가지로 CP / M의 변형이며, MS- DOS용 바이너리는 작동하지 않습니다. 스프레드 시트 프로그램 Multiplan의 일부로 PC - 8800 시리즈, X1 시리즈, MZ - 2500 에도 일부 버전이 있다.
IDOS ( 소프트 뱅크 ) - PC - 8800 시리즈, PC - 8000 시리즈, 파일 시스템 만 FAT12 에 대응 한 CP / M 호환 OS.