최근 수정 시각 : 2022-07-22 18:55:21

MS-DOS

운영 체제
{{{#!wiki style="word-break: keep-all; margin: -16px -11px" Linux UNIX Windows
DOS DR-DOS · MS-DOS · FreeDOS · K-DOS
기타 RTOS · Fuchsia · TempleOS · ReactOS · BeOS · 하이쿠 · OS/2(eCS, ArcaOS) · CP/M · Mac OS · 모바일 운영체제 }}}

파일:Microsoft 로고.svg
{{{#!wiki style="margin:0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
{{{#000,#e5e5e5
산하 계열사 및 사업부
GitHub · .NET Foundation · Xbox Game Studios · LinkedIn
제품군
하드웨어 Surface · Xbox · HoloLens · PixelSense · Zune
소프트웨어 Windows · Office · Edge · Media Player · Hyper-V · Microsoft Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft PowerToys · Internet Explorer · MS-DOS · Windows Movie Maker · Autoruns
서비스 Microsoft Azure · OneDrive · Skype · MSN · Bing · LinkedIn · Cortana · 테이 · Xbox network · 정품 인증 · MSDN
관련 기술 ASF · ASP · Blazor · COM · DCOM · DirectX · 파일 시스템( FAT · NTFS · ReFS) · MFC · .NET( .NET Core · .NET Standard · C# · F# · Visual Basic .NET · Windows Forms · WPF · Universal Windows Platform · ASP.NET · ML.NET) · OLE · Silverlight · Visual Basic · VBA · WASAPI · Windows 커널 · Windows 디자인 · Windows API · Windows Runtime · WMA · WMV · Xamarin · XNA
관련 인물
빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 사티아 나델라 · 필 스펜서
기타
Microsoft의 제니맥스 미디어 인수 · Microsoft의 액티비전 블리자드 인수 · 빌 게이츠의 굴욕
관련 틀
365 제품군 · 하드웨어 제품군 · Surface 제품군 · Windows 제품군
}}}}}}}}}}}} ||

파일:Windows 로고 화이트.svg
{{{#!wiki style="margin:0 -10px -5px; min-height: 26px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
비 NT Desktop(A) Mobile/ Embedded (CE)
(1996~2013)
DOS
(1985~2000)
9x
(1995~2000)
1.x
2.x
3.x
95
Nashville
98
Me
CE 1.0
CE 2.0
CE 3.0( Pocket PC 2000, 2002)
CE 4.x( Mobile 2003, 2003 SE)
CE 5.x( Mobile 2005, 6, 6.1, 6.5)
CE 6.0( Phone 7)
Embedded Compact 7(7.0)
Embedded Compact 2013(8.0)
NT 버전 Desktop(A) Server Mobile/ Embedded
4.0 이전
(1993~1996)
NT 3.1
NT 3.5
NT 3.51
NT 4.0
NT 3.1
NT 3.5
NT 3.51
NT 4.0
NT 4.0 Embedded
5.x
(2000~2009)
2000
Neptune
XP
2000
Server 2003
Server 2003 R2
Home Server
Powered
Embedded( XP, Standard, POSReady)
6.x
(2007~2014)
Vista
7
8
8.1
Server 2008
Server 2008 R2
Home Server 2011
Server 2012
Server 2012 R2
Embedded( 7, Standard, POSReady)
Phone( 8, 8.1)
10.x
(2015~현재)
10
10X
11
Server 2016( 반기 채널)
Hyper-V Server
Server 2019
Server 2022
10 Mobile
10 IoT
11 IoT
11.x
(개발 중)
Windows Core OS
(A) Laptop 및 Tablet도 포함된다.
}}}}}}}}} ||

1. 개요2. 상세3. 커널 구조4. 역사5. 특징6. 버전7. Windows 시대의 MS-DOS8. 파생/호환 버전
8.1. 영향을 받은 운영 체제
9. 기타10. 관련 문서

1. 개요

파일:external/blogfiles.naver.net/Windows_3.1-2015-08-07-00-22-38.png
한글 MS-DOS 6.2 구동 화면
파일:Msdos 아이콘.svg
Windows 3.1에서부터 사용한 MS-DOS 아이콘.
로고 자체는 MS-DOS 6.0 시절에도 있었으며(제품의 패키지 박스에 로고로 박혀 있는 등), 도스 관련 각종 출판물에 저 로고가 사용되는 경우가 왕왕 있었다. 해당 아이콘은 그것을 윈도우 3.1의 16색 저해상도로 디더링한 것.
Windows XP의 WINDOWS 폴더나 windows\\System32\\nlsfunc.exe의 속성에서도 볼 수 있다.
Windows 7은 아이콘 변경 창에서 PIFMGR.DLL를 입력하면 볼 수 있으며, MORICONS.DLL에도 도스 관련 아이콘들이 많이 있다.

MS-DOS( Microsoft Disk Operating System, 마이크로소프트 디스크 운영 체제)는 Microsoft 운영 체제 데뷔작으로 시애틀 컴퓨터사에서 개발한 Q-DOS의 차기작이다.

2. 상세

일반적으로 '엠에스 도스'라고 읽는다. 'DOS'란 원래 System/360이나 PDP-11 같은 메인프레임 시절부터 일반 명사처럼 사용했고 Apple II의 운영 체제도 DOS라는 이름을 사용하나(Apple DOS 3.3, ProDOS 등), 이 MS-DOS가 워낙 대박을 쳐서 DOS라고만 하면 문맥상 이 MS-DOS를 가리키는 경우가 대부분이다. 처음에는 IBM에 납품하기 위해 개발했으나 이후 IBM PC 관련 기술을 공개하면서 우후죽순처럼 생겨난 PC 제조사들이 전부 MS-DOS를 사용하면서 마이크로소프트를 지금의 대기업으로 성장시켜 준 1등 공신이다. Windows에게 자리를 물려주기 전까지 IBM PC와 그 호환 기종의 운영 체제 시장을 점령하고 있었다. 초기에는 CP/M-86, 나중에는 DR-DOS같은 경쟁자가 있기는 했지만 큰 의미는 없었다.

2018년 9월 21일, 마이크로소프트에서 MS-DOS 1.25와 2.0의 소스 코드를 MIT 라이선스 아래로 GitHub에 공개했다. #

3. 커널 구조

파일:DOS구조도.jpg

4. 역사

1980년, IBM이 최초의 IBM PC Model 5150을 개발하면서 IBM은 이 새로운 16비트 시스템의 운영 체제를 자체개발하는 것이 아닌 외주를 통해 개발하는 것으로 결정했다. IBM은 메인프레임으로 먹고 사는 회사답게 이전까지 하드웨어와 소프트웨어 모두 자사가 개발하는 정책을 취하고 있었으나 IBM PC에서는 예외로 하드웨어, 소프트웨어 모두 최대한 시장에 나와있는 기술을 이용하는 것으로 정책을 바꾸었다. 일설에는 그다지 성공할 가능성을 높게 보지 않고 비용을 줄이기 위한 수단으로 그랬다는 이야기가 있다.

이미 이전에 IBM 방식(관료제)로 개인 목적 컴퓨터를 내놓았다가 말아먹은 IBM은 이번엔 독립적인 그룹을 조직해서 아웃소싱과 개방형 구조를 채택하기로 결정했다. IBM 대표단은 처음에 메인프레임 운영 체제, XENIX를 납품한 실적이 있던 마이크로소프트와 접촉했으나[1] 당시의 마이크로소프트의 개인용 컴퓨터 부문은 BASIC 인터프리터 및 오피스 소프트웨어를 주력으로 하고 있었고, (자사 BASIC 인터프리터를 얹어 돌리기 위한) CP/M 운영 체제 개발사인 디지털 리서치를 IBM 담당자들과 연결시켜 줬다. IBM과의 계약 당시의 마이크로소프트가 운영 체제와 인연이 없었던 것은 아니다. 당시 마이크로소프트는 유닉스를 개인용 컴퓨터 기종으로 컨버전한 'Xenix'라는 운영 체제를 개발해서 판매하고 있었다. 하지만 유닉스 파생인 이상 벨 연구소(이후 AT&T)에서 라이선스를 얻어야 했고, 유닉스처럼 Xenix 또한 일반 사용자들을 위한 제품은 아니었기 때문에 IBM PC의 운영 체제로 밀어붙지지 않은 듯하다. 어쨌든 IBM PC 출시 이후에는 IBM PC용 Xenix도 출시했다.

그러나 실리콘 밸리 개척자였던 게리 킬달에게 IBM의 제안과 협상에 임하는 딱딱한 태도는 별 흥미를 끌지 못했고, 그래서 처음엔 아내이면서 공동 설립자였던 도로시 맥윈 킬달 부사장에게 맡겼는데 (대기업이 으레 첫 단계로 진행하는) NDA(비밀 보호 계약)에 먼저 사인할 것인지 여부를 두고 시작부터 충돌했다. 보통 NDA에는 정보 비밀에 대한 의무를 어겼을 때 몇 배까지 탈탈 털어먹을 것인지에 대한 대기업 측의 무시무시한 계약 사항들이 가득하다. 심지어는 게리 킬달이 개인용 경비행기 타고 놀러 가느라 IBM과의 계약 현장에 안 나타났다는 소문도 있었는데 사실이 아니다. 킬달이 자가용 경비행기를 몰고 있느라 계약 현장에 없었던 것은 일부 맞지만 회사 업무로 이동한 것이었을 뿐이었으며, 오후에 IBM 협상단을 직접 만나 협상을 벌였다. 그 이후에도 IBM과 디지털 리서치는 Microsoft를 중재자로 해서 수 차례 접촉을 가지긴 했지만 디지털 리서치는 이미 큰 성공을 거두어서 성장 가도를 타고 있는 중이었기 때문에 IBM 측의 요구에 약하게 나갈 필요가 없었다고 판단했던 것 같다. 한편 IBM이 먼저 디지털 리서치와 회담을 했지만 대표 게리 킬달의 태도로 돌아섰고, 이 때 마이크로소프트가 낚아챘다는 널리 퍼진 소문이 있지만 이것 역시 사실이 아니다.[2] Chapman, Merrill R.의 저서 'In Search of Stupidity'에서 이에 대해 다루고 있으며, 국내에도 '초난감 기업의 조건'이라는 제목으로 번역해 출간했다.

이때, 8086 기반으로 '시애틀 컴퓨터' 社의 프로그래머였던 팀 패터슨(Tim Paterson)이 제작한 CP/M의 클론 운영 체제인 '86-DOS', 통칭 'Q-DOS'(Quick and Dirty Operating System)라는 운영 체제가 시장에 나와 있었다. IBM PC용으로 나왔던 것은 아니고 8086 기반의 수제 컴퓨터 조립 키트용으로 나왔던 운영 체제였는데, 이 시절엔 이런 게 꽤 많았다. 그 당시 컴퓨터는 일반인들을 위해 만든 것이 아니었기 때문에 1970년 대까지 수제 컴퓨터 조립 키트 형태로 나오는 경우가 대부분이었는데, 대표적인 경우가 Apple I이다. 디지털 리서치와 IBM의 계약이 결렬된 것을 알아챈 빌 게이츠는 잽싸게 팀 패터슨으로부터 Q-DOS 1.10을 75,000달러에 구입했을 뿐 아니라, 팀 패터슨까지 영입해서 여러 번 수정하고 이름을 MS-DOS로 바꿔서 IBM과 계약을 체결했다고 한다. 이 때문에 MS-DOS도 초기 릴리즈 버전이 1.0이 아니라 1.10이다. 최근 세 운영 체제의 소스 코드를 분석하여 연구한 결과, Q-DOS는 CP/M을 베낀 것이 아니며, MS-DOS도 Q-DOS와는 다른 것이었다는 주장이 나오기도 했으나[삭제된_글] 이는 저자의 사업을 홍보하기 위한 수단이라고 비난받고 있으며 편집자 역시 저자가 마이크로소프트 사의 지원을 받고 있음을 명시하고 있다. 빌 게이츠의 저서인 '미래로 가는 길'에 시애틀 컴퓨터에서 초기 개발 단계였던 소프트웨어를 구입했고 그 회사의 선임 엔지니어 였던 팀 패터슨을 영입해 여러 번 수정한 결과 MS-DOS로 탈바꿈했다고 적혀 있으니 실 제품들은 큰 차이가 있을 수 있다. 사실 당시 빌 게이츠는 IBM에게 운영 체제 파는 것을 별로 중요하게 생각하지 않았다. 하지만 IBM에게 BASIC 인터프리터를 팔아야만 했으며, 그것을 구동하기 위해서는 CP/M이건 Q-DOS건 해당 운영 체제를 어떻게든 IBM이 쓰게 만들어야 했고, 이에 협상 결렬로 CP/M을 판매하지 않기로 한 이상 Q-DOS를 자신이 사서라도 IBM에 납품해야 했던 것이다. 결국 처음 계약했을 때에는 MS-DOS가 별로 중요한 것도 아니었고 BASIC 인터프리터를 팔기 위한 수단에 불과했다. 좀 더 구체적으로 말하자면 IBM PC 오리지널에는 OS 없이 부팅할 경우 ROM BASIC이 작동되었고, 그것은 당연히 MS의 제품이었기 때문에 빌 게이츠가 OS 판매에 그다지 우선권을 급하게 두지 않았던 것은 사실이지만, 당연하게도 이후 PC의 상당수는 OS가 번들되거나 추가적인 OS 판매를 동반할 것이 확실시되었고 그 OS상에 자사 BASIC이 추가로 번들되는 것은 마이크로소프트에 충분히 가치가 있는 일이었다. (아래에 언급되었다시피, MS의 OS가 번들된 모델은 IBM PC의 주력이 아니라 오히려 CP/M을 사서 끼워주는 제품 대비 저가 라인업으로서 기획되었다.)

그러나 이 Q-DOS의 일부에 CP/M의 지적 재산권을 침해하는 부분이 있음을 파악한 IBM에서는 디지털 리서치와 재접촉, 결국 IBM PC의 공식 운영 체제는 마이크로소프트의 MS-DOS와 디지털 리서치의 CP/M-86을 둘 다 사용하는 것으로 결정했다. 실제로 PC와 운영 체제는 세트가 아니었으며 구매자가 하드웨어와 운영 체제의 조합을 선택하는 방식이었고, IBM에서도 'IBM PC에는 운영 체제가 세 가지나 된다'는 점을 장점으로 내세웠다(CP/M-86, IBM PC DOS, UCSD p System). 언론과 기술업계 측에서도 완성도 높고 고급인 CP/M을 높게 쳤으며, 기존 핵심 응용 프로그램을 개발하던 업체들도 CP/M-86용 버전을 앞다퉈서 출시했기에 초반엔 CP/M이 잘 나갔다. 문제는 가격이었는데 CP/M-86의 가격은 250달러, MS-DOS는 40달러였고 결국 CP/M-86은 8비트 시장에서의 대성공과 달리 IBM PC에서는 그다지 팔리지 않았다. 원체 잘 나갔던 CP/M이었던지라 콧대를 좀 세웠던 모양이다. 이후 게리 킬달은 가격 차이를 IBM의 정책 탓으로 돌렸으나 실제로는 자신들의 제품을 '엔터프라이즈' 용으로 여겼으며, 1983년 CP/M 이스트 컨퍼런스에서도 가격 정책에 의문을 제기하는 참석자들에게 게리 킬달이 직접 '제 값이다' 라고 주장한 것으로 볼 때 디지털 리서치는 프리미엄을 놓칠 생각이 없었던 것으로 보인다.

어쨌거나 시애틀 컴퓨터의 Q-DOS 1.10은 MS-DOS 1.10 이라는 이름으로 일반 시장에 공급됐고 이는 다시 IBM에 OEM으로 공급되면서 PC-DOS라는 이름으로 들어갔다. 그런데 IBM과의 계약에서 마이크로소프트가 '운영 체제에 관한 모든 권리는 마이크로소프트가 가짐'이라는 조항을 계약서에 집어넣었다. 이 덕분에 IBM의 PC 기술 공개가 PC 산업은 크게 흥하게 했지만 정작 IBM의 하드웨어 매출은 급감시킨 반면 마이크로소프트는 크게 성장시켰고 이로 인한 이익은 IBM에겐 단 한 푼도 돌아가지 않았다. IBM은 그때서야 후회했지만 이미 운영 체제 시장은 마이크로소프트에게 점령당한 상태였고, OS/2를 개발해 운영 체제 시장을 되찾기 위해 노력하였지만 결국 윈도우에게 완전히 밀려 OS/2는 사라지고 말았다. 현재 IBM은 IBM PC 부문을 중국의 레노버에게 매각하고 메인프레임 시장 및 기업 컨설팅, 통합 솔루션으로 먹고 살고 있다. 이 아픈 과거 때문에 IBM의 노트북 ThinkPad에는 레노버에 IBM PC 사업이 팔리기 전까지 윈도우 키가 없었다.

이후 MS-DOS는 확대하는 IBM PC 시장의 주력 운영 체제로서 계속해서 버전 업데이트를 해 나갔으나, 1994년 버전 6.22를 끝으로 주력 운영 체제의 자리를 이듬해에 나온 Windows 95에 넘겨주었다. Windows 95 이후의 MS-DOS의 위상에 대해서는 하술하였다.

5. 특징

개인용 컴퓨터의 컴퓨팅 파워가 미약했던 1980년대 초에 등장한 운영 체제이니만큼 멀티 태스킹을 지원하지 못하기 때문에 싱글 태스킹 & 싱글 유저로만 작업을 진행하며 현재 실행하는 프로그램이 시스템 자원을 독점하는 형태이다. 나중에 인텔 80286이 나오면서 하드웨어 환경은 멀티 태스킹을 지원할 수 있게 되었지만 IBM PC 호환 기종 컴퓨터들은 Windows 95가 나오기 직전까지 MS-DOS를 주로 사용했기 때문에 이를 제대로 활용하지 않는 경우가 많았다. IBM에서 만든 Topview나 쿼터덱(Quaterdeck)에서 만든 DESQview 같은 멀티 태스킹을 지원하는 셸 응용 프로그램들을 사용해야만 했다. 또 '램 상주 프로그램(Terminate and Stay Resident, TSR)'이라는 개념이 있었다. 원래 MS-DOS에서는 프로그램을 한 번에 하나 밖에 실행하지 못하기 때문에 평소에 커맨드 셸인 COMMAND.COM을 실행하다가 응용 프로그램을 실행하면 제어권을 응용 프로그램에게 넘겨 주고 응용 프로그램을 종료할 때 COMMAND.COM에 제어권을 되돌려 주는 식으로 운용하는데, 이를 약간 비틀어 프로그램을 종료하지 않고 램의 일부분에 남겨둔 채 COMMAND.COM으로 제어권을 되돌려 주고(일부 게임에서 플로피 디스크로 게임을 하다가 게임을 종료하면 COMMAND.COM이 없다면서 오류 메시지를 뜨는 이유가 이것이다) 특정한 키를 입력하거나 하는 트리거 조건을 감지하면 원래의 프로그램을 실행하는 방식으로 멀티태스킹을 흉내내는 방법도 있었다.

유저 인터페이스는 CLI(Command Line Interface)만 지원한다. 명령 프롬프트에 직접 명령어를 기술하여 파일 복사, 삭제, 실행 등의 작업을 하게 되는데 윈도우 같은 GUI 운영 체제부터 컴퓨터를 접하기 시작한 세대는 프로그래머가 아닌 이상 볼 일이 거의 없을 것이다. 아이콘은 하나도 안 보이고 칠흑의 우주 같은 화면에 투박한 영문 글씨만 떠서 커서 하나만 깜박인다. 이러한 어려움을 해결하기 위해 소프트웨어 회사들은 복잡한 DOS 명령어를 풀다운 메뉴 방식으로 쉽게 실행할 수 있게 만든 프로그램인 셸 응용 프로그램들, 예를 들어 센트럴 포인트의 PC Tools나 피터 노턴 컴퓨팅의 노턴 유틸리티, Norton Commander 등이 나왔다. 한 개의 셸 프로그램 안에 여러 명령어가 들어있는 PC툴스와 달리 노턴 유틸리티는 각각의 유틸리티가 1개의 프로그램이었다. 한국에서는 최정한씨가 Mdir이라는 셸 응용 프로그램을 만들었는데 매우 유명했다. 만약 DOS를 다시 설치해서 가지고 놀려면 DOS Navigator를 추천한다. Microsoft도 1988년에 내놓은 MS-DOS 4.0부터는 'DOS Shell'이라는 셸 응용 프로그램을 내장하기도 했다.

MS-DOS 본체의 용량은 독립형 최종 버전 6.22에서조차 6 MB 미만이지만, 기능과 명령어에 대해 해설하는 서적의 두께는 웬만한 Windows 운영 체제 해설 서적보다 두껍다. Windows에서는 보조 프로그램이라고 불리는 부가 유틸리티 프로그램에 대한 설명 때문에 그렇고, 난해한 명령어가 산적해 있기 때문이다. 다만 이런 명령어 입력 체계는 한 가지 장점이 있는데, DOS 명령어만으로도 개발할 수 있는 범위가 넓기 때문이다. 일괄 처리(batch) 파일을 작성해서 간단한 게임까지도 만들 수 있다.

6. 버전

  • Q-DOS 1.0: 시애틀 컴퓨터에서 제작한 CP/M 클론 운영 체제로, Microsoft에서 Q-DOS에 대한 지적 재산권을 사들이고 개발자 팀 패터슨까지 영입해 나온 후속 버전이 바로 MS-DOS이다.
  • MS-DOS 1.x
    • 버전 1.10(1982년 5월): 최초 발매 버전으로, 5.25인치 2D 단면 플로피 디스크(160 kB)에 들어 있었다. 아직 파이프라인, 리다이렉션, 장치 드라이버나 디렉토리 기능도 없었던 시절이다. IBM은 PC DOS 1.0으로 발매했다.
    • 버전 1.25: IBM PC 호환 기종에 제공됐던 최초의 MS-DOS이다.
  • MS-DOS 2.x
    • 버전 2.0(1983년 3월): 최대 10 MB의 하드 디스크를 지원했으며, 또한 5.25인치 2D 양면 플로피 디스크(360 kB)를 지원하기 시작했다. 디렉토리와 장치 드라이버 기능도 추가했다. IBM은 PC DOS 2.0으로 발매했다. 이 버전의 DOS부터 최초의 Windows Windows 1.x을 지원한다. 물론 이때의 윈도우는 응용 프로그램이었다.
    • 버전 2.1(1983년 11월): 수많은 버그를 해결했다. 현재 두께의 드라이브 베이로 만들어진 플로피 디스크 드라이브를 지원하기 시작했다. 그 당시 플로피 디스크 드라이브는 지금보다 훨씬 두꺼웠고, 이 규격의 드라이브 베이를 Full-height 드라이브 베이라 부른다. 우리가 알고 있는 광 디스크 드라이브 두께를 Half-height 드라이브 베이라 부르는데, IBM PCjr 때 처음 등장했고, 이것을 지원한 것이다. IBM은 PC DOS 2.1로 발매했다.
    • 버전 2.11: IBM PC 호환 기종에 제공됐던 MS-DOS이다. 또한 최초로 발매된 한글 MS-DOS의 버전이다.
  • MS-DOS 3.x
    • 버전 3.0(1984년 8월): FAT16 파일 시스템을 처음으로 넣으면서 최대 32 MB의 하드 디스크를 지원했고, 5.25인치 2HD 플로피 디스크(1.2 MB)를 지원했다. IBM은 PC DOS 3.0으로 발매했다.
    • 버전 3.1(1985년 4월): LAN을 지원했으며, IBM 네트워크와 Microsoft 네트워크를 지원했다. IBM은 PC DOS 3.1로 발매했다.
    • 버전 3.2(1986년 3월): 3.5인치 2DD 플로피 디스크(720 kB)를 지원했다. XCOPY가 처음 등장했다. IBM은 PC DOS 3.2로 발매했다. 두번째로 발매된 한글 MS-DOS도 3.20 버전이다.
    • 버전 3.21: 여러 버그를 해결하였으며, IBM PC 호환 기종에 제공했다.
    • 버전 3.3(1987년 4월): 3.5인치 2HD 플로피 디스크(1.44 MB)를 지원했고, XCOPY에 하위 디렉토리와 파일들까지 복사하는 기능이 추가되었다. IBM에서 PC DOS 3.3으로 발매했다. 뒤에 나오는 MS-DOS 4.0 문제 때문에 5.0이 등장할 때까지 가장 사랑받은 MS-DOS였다.
    • 버전 3.31(1987년 11월): 컴팩에 제공한 것이며, 32 MB 이상의 하드 디스크를 지원하기 위한 것이었다. 최대 512 MB의 하드 디스크를 지원했다.
  • MS-DOS 4.0(Microsoft 개발, 멀티 태스킹 버전, 1986년): 80386의 보호 모드를 십분 활용한, 선점형 멀티 태스킹을 지원한 진보적인 운영 체제였으나 IBM의 무관심으로 얼마 팔리지 못한 채 금방 판매가 중단되었다.
  • MS-DOS 4.x(IBM 개발)
    • 버전 4.00(PC DOS 4.00, 1988년 7월): 최대 2 GB의 하드 디스크와 마우스를 지원했다. 중첩 확장 메모리(EMS, Expanded Memory Specification) 관리 프로그램, EMM386 등이 추가되었고, 텍스트 기반 셸 응용 프로그램인 DOSShell도 추가되었다. 그러나 로우 레벨 포맷에서 버그가 있었고, 기본 메모리(640 kB)를 3.3보다 더 많이 잡아 먹는 문제가 있어 인기가 좋지는 않았다. IBM은 PC DOS 4.00으로 발매했다.
    • 버전 4.01(MS-DOS 4.01): 마이크로소프트가 다시 주도권을 잡고 개발한 것이다. 버전 4.00의 버그를 해결하였다. 드라이브에 디스크를 식별할 수 있는 볼륨 시리얼 번호(Volume Serial Number)를 도입하였다. 세번째로 발매된 한글 MS-DOS의 버전이다.
  • MS-DOS 5.x
    • MS-DOS 5.0(1991년 6월): 텍스트 파일을 편집하려면 줄 단위 편집기 EDLIN을 써야 했으나, 좀 더 편집하기 편한 전체 화면 텍스트 편집기 EDIT를 도입하였다. Quick BASIC도 도입했다. 3.5인치 2.88 MB 플로피 디스크를 지원하였다.

      MS-DOS 5.0으로 들어오면서 비약적으로 발전한 것은 메모리 관리이다. 1987년 Windows 2.01에 도입한 HIMEM.SYS을 MS-DOS에도 넣어, 1 MB 이상의 메모리 영역을 연속 확장 메모리(XMS, eXtended Memory Specification)로서 관리가 가능해졌다. 또한 고위 메모리 영역(HMA, High Memory Area)과 상위 메모리 영역(Upper Memory Area)이 등장해 MS-DOS와 장치 드라이버를 이곳에 올릴 수 있게 됐고, 그래서 기본 메모리 영역(640 kB)을 좀 더 알뜰하게 쓸 수 있게 되었다. 발매 즉시 큰 인기를 얻었다. IBM은 PC DOS 5.0으로 발매했다.

      마이크로소프트는 MS-DOS 5.0부터 컴퓨터 제조사 뿐만 아니라 일반인들에게도 운영 체제를 판매하기 시작했다.
    • MS-DOS 5.50: Windows NT의 NTVDM(NT Virtual DOS Machine)
  • MS-DOS 6.x
    • MS-DOS 6.0(1993년 5월): 유틸리티 응용 프로그램으로 있었던 것들이 잔뜩 운영 체제 내에 포함되었다. 주로 시만텍과 센트럴 포인트의 유틸리티들을 라이선스 받아 넣었다. 예를 들어 DEFRAG는 시만텍의 SPEEDISK를 라이선스 받은 것이고, MSAV와 MWAV, VSAFE는 센트럴 포인트의 백신 응용 프로그램들을 라이선스 받은 것이다. 기본 메모리 최적화 프로그램 MEMMAKER를 넣었다. 디스크 압축 프로그램인 DBLSPACE를 도입했다. IBM은 PC DOS 6.1로 발매했다. 여담으로 이 때 이후부터 IBM은 DOS 운영 체제를 독자적으로 개발하기 시작했다.
    • MS-DOS 6.2(1993년 9월): 많은 버그를 해결했으며 특히 디스크 압축 프로그램인 DBLSPACE가 데이터를 손실하는 치명적인 버그를 수정했다. IBM의 PC DOS 6.1과 헷갈리지 않도록 6.2로 정했다고 한다. 따라서 6.1 버전은 없다. CHKDSK에서 더욱 고급 기능으로 무장한 SCANDISK가 처음으로 등장했다.
    • MS-DOS 6.21(1994년 2월): Microsoft가 Stac Electronics의 디스크 압축 프로그램, Stacker를 베껴 DBLSPACE를 만들었음이 들통났다. Stac Electronics는 마이크로소프트에 특허 침해 소송을 걸었고, 법원에서 이를 인정해 1억 2천만 달러를 배상하고 Microsoft에 MS-DOS에서 제거할 것을 명령했다. 그렇게 등장한 버전이다.
    • MS-DOS 6.22(1994년 4월): 마지막으로 단품 발매한 MS-DOS이다. Microsoft는 디스크 압축 프로그램을 DRVSPACE로 대체했다. Stac Electronics의 소송으로 법원이 MS-DOS 6.21 출시 뿐만 아니라 모든 MS-DOS 6.x가 설치된 컴퓨터에 DBLSPACE를 제거할 것 명령하자, Microsoft는 Stac Electronics와 정식 라이선스 계약을 맺어 디스크 압축 프로그램을 설치할 수 있게 됐다. 또한, DOSSHELL이 기본 설치에서 빠졌다. 업그레이드 팩엔 없지만 Enhanced Tools 패키지에 동봉된 Supplemental Disk에 선택 설치해야 했다. 참고로 한글 MS-DOS는 6.2부터 기본 설치에서 빠졌다.
  • MS-DOS 7.x
  • MS-DOS 8.0(2000년 9월): Windows Me의 VDM이자 MS-DOS의 마지막 버전이다. Windows XP에서 시동 디스크를 만들면 이 버전의 MS-DOS가 포함되어 있다.

7. Windows 시대의 MS-DOS

Windows 3.1까지는 MS-DOS의 그래픽 프로그램으로 동작했다. Windows 95부터는 부트 로더 및 DOS 응용 프로그램 호환 계층으로 관여했는데, 이를 VDM(Virtual DOS Machine)이라 불렀다. POST(전원 ON 후 자가 점검) > MS-DOS 구동 > Windows 실행 순으로 진행한다. 때문에 Windows의 시스템 종료 메뉴에서 MS-DOS 모드로 시스템 다시 시작을 선택하면 MS-DOS를 사용할 수도 있었다. MS-DOS에서 독립형 최종 버전은 6.22였지만 Windows 9x 계열에 상기의 이유로 MS-DOS가 있었는데, Windows 95에 7.0, 95 OSR2와 Windows 98, 98 SE에는 7.1, Windows Me에 8.0 버전의 MS-DOS가 들어갔다. 소비자가 마지막으로 (독립적으로) 본 최종판은 6.22였지만, 진짜 최종판은 Me에 포함한 8.0인 셈이다. 그래서 Windows Me 역시 숨김 속성 해제를 하면 MS-DOS 관련 파일들이 보였으며 이 파일들을 잘못 건드리면 Windows 부팅이 불가능했다.

Windows 포함 버전들 중 7의 경우엔 해커들이 독립적으로 설치, DOS로 직접 부팅할 수 있도록 추출한 버전이 있으나, 8.0의 경우엔 단독으로 설치하여 부팅하는 것이 불가능하다.

Windows NT는 MS-DOS와 무관하게 설계한 운영 체제였으나, 호환성을 보장하기 위해 NTVDM(NT Virtual DOS Machine)을 넣었다. 이는 Windows 10에까지 이어졌다. x86 CPU의 가상 8086 모드를 이용한 기능인데, 이 덕분에 완전하지는 않지만 MS-DOS 응용 프로그램과 16비트 윈도우 응용 프로그램은 WoW(Windows on Windows)의 도움까지 받아 어느 정도는 실행이 가능했다. 설정만 잘 만지면 게임도 어느 정도는 돌릴 수 있었을 정도였다. 그러나 Windows Vista 이후부터는 64비트 운영 체제가 등장했고, 이를 설치한 경우 AMD64의 롱 모드(64비트 모드)에서는 가상 8086 모드를 사용할 수 없기 때문에 NTVDM과 WoW를 제거할 수밖에 없었으며, 그래서 더 이상 MS-DOS를 비롯한 16비트 응용 프로그램을 사용할 수 없게 되었다. 64비트 운영 체제에 있는 WoW는 WoW 64로서 32비트 응용 프로그램의 실행을 돕고 있다. 32비트 운영 체제를 설치하면 Windows 7까지는 어느 정도 실행이 가능했으나, UEFI GOP 규격 드라이버가 들어가 있는 최신 그래픽 카드와 디스플레이 드라이버 모델이 WDDM(Windows Display Driver Model)으로 바뀐 Windows 8은 전체 화면 모드로 전환하는 DOS 응용 프로그램은 경고 메시지를 띄우며 실행이 되지 않는다. 이유는 UEFI GOP 규격 드라이버와 WDDM 1.2 규격의 디스플레이 장치 드라이버는 과거 VGA의 비디오 모드를 설정할 수 있었던 BIOS 인터럽트 호출, int 10H를 더 이상 지원하지 않기 때문이다.

NT 기반의 윈도우에서는 ' 명령 프롬프트'(cmd.exe)로 MS-DOS 비슷한 환경을 사용할 수 있다. 다만 cmd.exe는 명령어 환경을 MS-DOS처럼 흉내낸 프로그램이지 실제 MS-DOS는 아니다. 리눅스나 유닉스의 셸에서도 커스터마이징을 하면 MS-DOS 명령어를 쓸 수 있다. 예를 들어 리눅스에서 'dir'을 치면 'ls-l'를 실행한 것과 같게 만들 수 있다는 이야기이다. MS-DOS의 명령어를 거의 그대로 준용하지만 어떤 DOS 응용 프로그램도 실행할 수 없다. 명령 프롬프트에서만 먹히는 각종 고급 기능 때문에 아직도 사용하는 사람은 있는 편이다. 어쨌거나 아직도 cmd.exe의 존재로 인해 MS-DOS의 영향력은 완전히 사라지지는 않은 셈이다. 이후에 PowerShell이라는 것도 나왔는데 이건 MS-DOS와는 거리가 멀고 POSIX 호환에 가깝다.

NTVDMx64라는 NTVDM를 64비트 윈도우에 이식하는 프로젝트가 있다. 다만 마이크로소프트와의 저작권 분쟁 때문에 사용자가 직접 소스 코드를 받아서 컴파일해야 하지만 어떤 사람이 컴파일된 버전을 올렸다.[4] 참고로 다운받으면 백신 프로그램에서 바이러스로 진단하는데, 오진이므로 안심해도 된다.[5] 참고로 이 프로그램의 장점으로는 그래픽 모드 프로그램도 창에서 실행할 수 있다. 단점은 16비트 Windows용 실행파일은 사용 불가능하지만 16비트용 Windows 앱도 실행할수있는 OTVDM이 개발되었다.

MS-DOS에서는 윈도우 프로그램들을 실행할 수 없다. 실행하면 "This program cannot be run in DOS mode."라는 오류 메시지가 뜨면서 실행이 안 된다. 번역하면 "DOS 모드에서 이 프로그램을 실행할 수 없습니다."로, 이는 초기 윈도우 실행 파일의 확장자가 EXE로 MS-DOS와 동일하였고 윈도우에서도 DOS 응용 프로그램 호환성을 위하여 DOS 모드를 지원했기 때문에, 윈도우 프로그램을 MS-DOS 또는 DOS 모드에서 실행하는 실수를 대비하여 삽입한 오류 메시지이다(exe 프로그램의 확장자를 txt로 바꿔도 "This program cannot be run in DOS mode."가 그대로 나온다). 윈도우용 실행 파일을 16진수 편집 프로그램으로 열어보면, PE(Portable Executable) 헤더 앞에 짤막한 도스 프로그램이 붙어 있는 것을 볼 수 있는데, 바로 이 오류 메시지를 출력하는 프로그램이다. 한글 MS-DOS에서도 이 메시지가 영어로 뜬다. 16비트 윈도우 프로그램들은 "This program requires Microsoft Windows."라고 나오며, 직역하면 "이 프로그램은 Microsoft Windows가 필요합니다."이다. 그리고 16비트 윈도 프로그램들은 PE 파일 구조체가 아닌 NE(New Executable) 파일 구조체를 쓴다. 참고로 EXE 파일의 PE 헤더에는 DOS 헤더 및 스텁을 먼저 포함했으며 크기는 64 바이트(0x40)이다.

8. 파생/호환 버전

  • PC-DOS: MS-DOS의 IBM OEM 버전으로, 몇몇 시스템 파일의 이름이 일반 MS-DOS와 달랐지만(MSDOS.SYS, IO.SYS를 IBMDOS.COM, IBMBIO.COM으로 바꿈) 알맹이는 거의 같다. 그냥 같은 버전의 PC-DOS와 MS-DOS는 기본적으로 같은 물건이라고 생각해도 무방하다. Copyright도 Microsoft라고 적혀 있었다. 그러나 6.0 버전 이후로는 양사가 개별적으로 개발을 진행하면서 내용과 버전 넘버링이 MS-DOS와 다소 달라졌다.
  • DR-DOS: 디지털 리서치가 1988년 개발한 운영 체제이다. CP/M-86의 후신이라 할 수 있으나 MS-DOS와 호환성을 가지고 있었다. 나중에 Novell이 인수하면서 노벨 DOS가 되었다가 소스를 공개하면서 openDOS로 이름을 바꾸었다.
  • FreeDOS: 오픈 소스로 개발한 MS-DOS의 호환 운영 체제이다. 1998년부터 개발했다. 간혹 윈도우를 넣지 않은 저가형 컴퓨터의 기본 운영 체제로 들어가 있기도 하며 DOSBox에도 사용하는 등 의외로 많이 사용하고 있다.
  • DOS/V: 일본 IBM에서 IBM PC 호환 기종에 사용하기 위해 제작한 일본어/VGA 환경 전용 MS-DOS로, 국내에도 일본 게임을 위해 많이 사용했던 적이 있다.
  • K-DOS: 1988년부터 과학기술처 주관으로 개발한 한국형 운영 체제로, MS-DOS와 호환성을 가지고 있었으나 실패했다.

8.1. 영향을 받은 운영 체제

MS-DOS와 직접적인 호환성은 없지만 영향을 많이 받은 운영 체제들이다. 대체로 일본계 컴퓨터에 많이 채용했다.
  • MSX-DOS: 8비트 컴퓨터였던 MSX의 운영 체제이다. 마이크로소프트가 MS-DOS 1.10을 바탕으로 제작하였는데 재미있게도 명령어나 기본 인터페이스, 파일 시스템 등은 MS-DOS에 준하지만 내부 시스템 호출은 CP/M과 호환성이 있어서, 응용 프로그램 호환성은 MS-DOS가 아닌 CP/M이 있는 특이한 물건. 요컨대 껍데기는 MS-DOS이고 알맹이는 CP/M이라는 이야기이다. 당시 8비트 PC 운영 체제 중에서 절대적인 위치를 점하고 있던 CP/M의 응용 프로그램을 그대로 사용하기 위한 조치였다고 한다. 나중에 아스키가 이를 대폭 강화한 MSX-DOS 2를 개발하였으나, 2.xx는 별도의 카트리지를 함께 꽂아야 하는 단점(MSXturboR 제외, 터보R 규격은 메인보드에 ROM이 삽입되어 있음)도 있거니와 MSX 자체가 끝물이 되어가던 시기라 그다지 널리 퍼지지 못하였다.
  • Carry C-DOS II: 통칭 'C-DOS II'로, NEC PC-8801과 샤프 X1용으로 나온 운영 체제이다. 개발한 회사는 Carry Lab으로서 게임도 만든 적이 있다. 한국에서는 웬만한 올드 게이머들도 기억을 못하는 듣보잡 취급이지만 당시 일본에서는 나름 알려진 제작사였다. 당시 유명했던 작품은 와이어프레임으로 3D 슈팅 게임을 구현했던 'JELDA' 시리즈인데, MSX로도 이 시리즈인 '리턴 오브 젤다'를 내놓았지만 별 재미를 못 봤다. 이것 역시 MSX-DOS와 마찬가지로 CP/M에 MS-DOS와 비슷한 명령 체계를 갖춘 운영 체제이다. 그러나 서드파티에서 나온 운영 체제라 널리 알려지진 못했다. 이 이전에는 Carry DOS(C-DOS)가 있었다고 한다. 이전 버전임에도 불구하고 호환성은 없다.
  • Towns OS: 후지쯔의 멀티미디어 컴퓨터 FM TOWNS용 운영 체제이다. MS-DOS를 기반으로 Phar Lap의 DOS extender를 이용해 보호 모드로 전환해 동작하는 GUI 운영 체제이다. 운영 체제의 일부는 매킨토시처럼 ROM에 내장했다.
  • Human68k: 샤프의 컴퓨터 X68000용 운영 체제로, 개발한 회사는 허드슨이다. CPU로 모토로라 68000을 채택했기 때문에 실행 바이너리 호환성이 없으며, 부트로더인 IO.SYS와 MS-DOS.SYS도 없다. MS-DOS의 영향을 대단히 많이 받아 구조도 매우 비슷하고 사용하는 명령어도 매우 흡사하다. 다만, 실행 파일의 확장자는 .EXE가 아니라 .X를 사용한다.

9. 기타

  • XMS 규약에 의하면 확장 메모리를 4GB까지 지원한다. 그러나 마이크로소프트에서 가장 마지막 MS-DOS 버전 6.22에서 제공했던 연속 확장 메모리 관리자, HIMEM.SYS가 관리할 수 있는 최대 메모리 용량은 64MB였다.
  • 일반적으로 MS-DOS는 IBM PC 호환 기종에서만 사용했다고 생각하기 쉬우나 의외로 x86 CPU를 사용하는 다른 기종으로 이식한 경우가 좀 있다. 주로 일본계 PC에서 많이 사용했는데, 일본의 국민 컴퓨터였던 PC-9801과 후지쯔의 FMR( FM TOWNS의 전신격인 모델)이 대표적이다. 두 기종 다 CPU가 인텔 x86 계열이었고 운영 체제도 MS-DOS였으나 IBM PC와 바이너리 호환성은 없었다. 다만 이식은 비교적 용이했던 모양이다.
  • 3.x 버전까지는 명령 프롬프트 기본값이 $n$g라서 A>\식으로 드라이브 이름만 나타났다.
  • 명령 프롬프트 상에서 오류 메시지가 나오면 4가지 선택문이 나오고 그 선택을 단어의 첫 머리로 하고 있다. Abort, Retry, Fail, Ignore?인데 Ignore는 오류에 따라 나오지 않을 때도 있다. 가장 쉽게 이 메시지를 띄울 수 있는 사례는 플로피 디스크 드라이브에 플로피 디스크를 넣지 않고 해당 드라이브 진입을 시도할 경우인데, 이때 올바른 플로피 디스크를 넣고 R을 치면(다시 시도하면) 해당 드라이브에 진입할 수 있다.
  • USB 메모리는 FAT16(FAT), 2GB 이하를 인식한다. 엄밀히 말하면 도스 자체가 USB 드라이브를 인식하지는 않는다. 바이오스가 인식하여 사용이 가능하게 되고, 도스가 이를 하드 디스크로 인식한다. MS-DOS나 Windows 95 등은 하드웨어를 인식하고 제어하는 데 자체 드라이버 대신 바이오스에 많이 의존하기 때문에 최신 바이오스에서는 USB 메모리를 인식하므로 도스에서도 사용이 가능한 것이다. 비슷한 경우로 최신 바이오스를 사용 중이라면 도스에서 USB 마우스 및 키보드도 사용할 수 있다(재시동 필요). 최신 대용량 USB도 거기다가 MS-DOS를 깔면 설치 관리자가 USB를 2GB FAT로 포맷한다.
  • 현재 영문판은 WinWorld에서 1.25~7.1까지 모두 구할 수 있으며, 한글판은 BetaArchive에서 3.20부터 구할 수 있다. 7.0과 7.1은 Windows 95/98용 도스를 별도의 운영 체제로 만든 것이다. 부팅 화면도 나온다.
  • MSHBIOS의 경우 그래픽카드가 640×400 모드를 지원해야 제대로 출력되며 그렇지 않을 경우 화면이 아래로 늘어나면서 잘린다.
  • MS-DOS는 부팅 파티션은 2 GB, 나머지 FAT 파티션은 4 GB까지 인식한다. 설치 시 차지하는 용량이 적어서 요즘 컴퓨터에 설치하면 거의 저장공간이 무한대인 것처럼 느껴질 것이다.

10. 관련 문서



[1] IBM의 John R. Opel이 빌 게이츠의 소개로 디지털 리서치를 찾아갔다는 교차 자료 [2] # [삭제된_글] # [4] # [5] 개발자 답변