최근 수정 시각 : 2024-11-29 21:08:01

MS-DOS

운영 체제
{{{#!wiki style="word-break: keep-all; margin: -16px -11px" UNIX 파일:Linux 로고.svg Linux 파일:Windows 아이콘 2021_화이트.svg Windows
DOS DR-DOS · 파일:MS-DOS 아이콘.svg MS-DOS · 파일:FreeDOS 로고.svg FreeDOS · K-DOS
기타 RTOS · 파일:퓨시아 아이콘.svg파일:퓨시아 아이콘 화이트.svg Fuchsia · TempleOS · ReactOS · BeOS · 하이쿠 · 파일:Mac OS 로고.svg Mac OS · 파일:attachment/OS/2/os2_logo.png OS/2 · CP/M · 모바일 운영 체제 · OpenVMS }}}
취소선 처리된 배포판은 개발 중단된 배포판.

파일:Microsoft 로고.svg파일:Microsoft 로고 화이트.svg
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); word-break:keep-all"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
<colbgcolor=#393939,#737373><colcolor=#fff>제품군
하드​웨어Surface · Xbox · HoloLens · PixelSense · Zune · Pluton · IVAS
소프트​웨어Windows · Office · Edge · Media Player · Hyper-V · Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft Store · Xbox App · PowerToys · Internet Explorer · MS-DOS · Windows Movie Maker · Autoruns · Clipchamp
서비스Microsoft Azure · OneDrive · Microsoft Copilot · Bing · LinkedIn · Microsoft Docs · Skype · MSN · 정품인증 · Xbox Game Pass · Xbox Cloud Gaming · Xbox network
관련 기술ASF · ASP · Blazor · COM · DCOM · DirectX · 파일 시스템(FAT · NTFS · ReFS) · MFC · .NET(.NET Core · .NET Standard · C# · F# · Visual Basic .NET · Windows Forms · WPF · UWP · .NET MAUI · ASP.NET · ML.NET) · OLE · Q# · Silverlight · Visual Basic · VBA · WASAPI · Windows 커널 · Windows 디자인 · Windows API · Windows Runtime(UWP · WinUI 3) · WMA · WMV · Xamarin · XNA · 하복 엔진 · SAMI · PowerShell · Windows Modern Standby
산하 계열사 및 사업부GitHub · .NET Foundation · Microsoft Gaming · LinkedIn
관련 인물빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 마이크 이바라(퇴사)
사티아 나델라 · 필 스펜서 · 브래드 스미스
기타제니맥스 미디어 인수 · 액티비전 블리자드 인수 · 시작 메뉴 · 빌 게이츠의 굴욕
관련 틀365 제품군 · 하드웨어 제품군 · Surface 제품군 · Windows 제품군}}}}}}}}}

파일:Windows 로고 화이트.svg 버전 일람
{{{#!wiki style="margin:0 -10px -5px; min-height: 26px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
파일:MS-DOS 아이콘.svg
DOS 커널
클라이언트 워크스테이션 서버 {{{#!wiki style="margin:0 -10px -5px; min-height: 26px"
{{{#!folding [ 임베디드/모바일 ]
{{{#!wiki style="margin:-6px -1px -11px"
SKU
임베디드 에디션
파일:Windows CE 아이콘_화이트.png CE 커널
1996 CE 1.0
1997 CE 2.x
Poket PC 2000/2002 (CE 3.0)
2002 Mobile 2003/SE (CE 4.x)
2004 Mobile 5.0/SE/6.x (CE 5.x)
2006 CE 6.0
2011 Embedded Compact 7
Embedded Compact 2013 (CE 8.0)
1999 NT 4.0 Embedded
2000 Powered
2002 XP Embedded(FLP 2006)
2005 Embedded for POS
2009 Embedded Standard/POSReady
2010/2011 Embedded Standard 7/POSReady 7(Thin PC)
2012/2013 Windows Embedded 8/Standard 8(Industry)
2013 Embedded 8.1 Industry
파일:silverlight-f9eea009c90bbdf966eb62abee29092a.png Silverlight 프레임워크
2010 Phone 7
파일:Windows 아이콘 2012_화이트.svg NT 커널
2012 Phone 8
2014 Phone 8.1
파일:Windows 아이콘 2012_화이트.svg One 코어
<rowcolor=#212529,#e0e0e0> 2015 10 IoT
2021 11 IoT
2015 10 Mobile }}}}}}}}}
1985 1.x
1987 2.x
1990 3.x
파일:Windows 95.png
9x 기반
1995 (4.0)
1996 Nashville (4.1)
1998(SE 1999) (4.1)
2000 Me (4.9)
파일:Windows 아이콘 1992_화이트.svg
NT 커널
1993 NT 3.1
1994 NT 3.5
1995 NT 3.51
1996 Cairo (NT 4.0)
1996 NT 4.0
파일:Windows 아이콘 2001_화이트.svg
NT 커널
2000 Neptune (NT 5.5) 1999 2000 (NT 5.0)
2001 XP (NT 5.1)
2005 (x64) (NT 5.2)
2006 Vista (NT 6.0)
2009 7 (NT 6.1)
2012 8(RT) (NT 6.2)
2013 8.1(RT) (NT 6.3)
Server 2003(R2 2005) (NT 5.2)
2007 Home Server (NT 6.0)
Server 2008 (NT 6.0)
2009 (R2) (NT 6.1)
Home Server 2011 (NT 6.1)
Server 2012 (NT 6.2)
2013 (R2) (NT 6.3)
파일:Windows 아이콘 2012_화이트.svg
One 코어

(NT 10.0)
2015 10(버전, X 2021)
2018 (Polaris OS, Andromeda OS)
2021 11(버전)
(Factory OS)
Server 2016(Hyper-V)
2017 (반기 채널)
2018 Server 2019(Hyper-V)
2021 Server 2022
2023 (연간 채널)
Server 2025
파일:Windows_Insider_logo.webp
개발 중
shhh...
2025? vNext 2028? Server vNext
파일:Windows 365 아이콘.svg Windows 365 파일:Windows Insider Program.png Windows Insider Program
}}}}}}}}} ||

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

1. 개요

Microsoft Disk Operating System
(마이크로소프트 디스크 운영 체제)
MS-DOS
파일:external/blogfiles.naver.net/Windows_3.1-2015-08-07-00-22-38.png
한글 MS-DOS 6.2 구동 화면
파일:MS-DOS 아이콘.svg
Windows 3.1부터 사용한 MS-DOS 아이콘[1]

Microsoft운영체제 데뷔작으로 시애틀 컴퓨터사에서 개발한 Q-DOS의 차기작이다.

2. 상세

"Microsoft에서 개발한 Disk OS"라는 단어를 줄여서 공식적으로 대문자 이니셜의 형태가 되었으며, 일반적으로 '엠에스 도스'라고 읽는다. 'DOS'란 원래 System/360이나 PDP-11 같은 메인프레임 시절부터 일반 명사처럼 사용했고 Apple II의 운영 체제도 DOS라는 이름을 사용하지만(Apple DOS 3.3, ProDOS 등), 이 MS-DOS가 워낙 대박을 친 이후로 DOS라고만 하면 문맥상 이 특정한 회사의 특정한 제품인 MS-DOS를 가리키는 경우가 대부분이다.

처음에는 하드웨어 회사인 IBM에 납품하기 위해 그 하청업체인 소프트웨어 회사 Microsoft에서 텍스트 기반 소프트웨어 OS를 개발한 것인데, 이후 IBMPC 관련 기술을 공개하면서 우후죽순처럼 생겨난 PC 제조사들이 전부 IBM과 마찬가지로 MS-DOS를 OS로 채택하면서 마이크로소프트를 지금의 대기업으로 성장시켜 준 1등 공신이 되었다. Windows에게 OS 자리를 물려주기 전까지 IBM PC와 그 호환 기종의 운영 체제 시장을 점령하고 있었다. 초기에는 CP/M-86, 나중에는 DR-DOS같은 경쟁자가 있기는 했지만 큰 의미는 없었다.

2018년 9월 21일, 마이크로소프트에서 MS-DOS 1.25와 2.0의 소스 코드를 MIT 라이선스 하에 GitHub에 공개했다. 2024년 4월 26일에는 MS-DOS 4.0의 소스 코드를 같은 라이선스로 공개했다. #

3. 커널 구조

파일:DOS구조도.jpg

4. 역사

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

이미 이전에 IBM 방식(관료제)로 개인 목적 컴퓨터를 내놓았다가 말아먹은 IBM은 이번엔 독립적인 그룹을 조직해서 아웃소싱과 개방형 구조를 채택하기로 결정했다. IBM 대표단은 처음에 마이크로컴퓨터유닉스 운영 체제인 Xenix를 개발하여 납품한 실적이 있던 마이크로소프트와 접촉했으나[2] 당시의 마이크로소프트의 개인용 컴퓨터 부문은 BASIC 인터프리터 및 오피스 소프트웨어를 주력으로 하고 있었고, (자사 BASIC 인터프리터를 얹어 돌리기 위한) CP/M 운영 체제 개발사인 디지털 리서치를 IBM 담당자들과 연결시켜 줬다.[3]

그러나 실리콘 밸리 개척자였던 게리 킬달에게 IBM의 제안과 협상에 임하는 딱딱한 태도는 별 흥미를 끌지 못했고, 그래서 처음엔 아내이면서 공동 설립자였던 도로시 맥윈 킬달 부사장에게 맡겼는데 (대기업이 으레 첫 단계로 진행하는) NDA(비밀 보호 계약)에 먼저 사인할 것인지 여부를 두고 시작부터 충돌했다. 보통 NDA에는 정보 비밀에 대한 의무를 어겼을 때 얼마까지 배상을 시킬지에 대한 대기업 측의 무시무시한 계약 사항들이 가득하다. 심지어는 게리 킬달이 개인용 경비행기를 타고 놀러 가느라 IBM과의 계약 현장에 안 나타났다는 소문도 있었는데 사실이 아니다. 킬달이 자가용 경비행기를 몰고 있느라 계약 현장에 없었던 것은 맞지만 회사 업무로 이동한 것이었을 뿐이었으며, 오후에 IBM 협상단을 직접 만나 협상을 벌였다. 그 이후에도 IBM과 디지털 리서치는 Microsoft를 중재자로 해서 수 차례 접촉을 가지긴 했지만 디지털 리서치는 이미 큰 성공을 거두어서 성장 가도를 타고 있는 중이었기 때문에 IBM 측의 요구에 약하게 나갈 필요가 없었다고 판단했던 것 같다. 한편 IBM이 먼저 디지털 리서치와 회담을 했지만 대표 게리 킬달의 태도로 인해 돌아섰고, 이 때 마이크로소프트가 낚아챘다는 널리 퍼진 소문이 있지만 이것 역시 사실이 아니다.[4] 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를 구입하려고 시도하는데, 여기서 빌 게이츠의 냉혹한 사업가의 면모가 발휘된다. 1981년 1월에 게이츠는 Q-DOS를 구입하려고 시도하는데 이 때 시애틀 컴퓨터에게 Q-DOS를 구입하려는 이유는 얘기하지 않았고, 시애틀 컴퓨터는 Microsoft의 뒤에 IBM이라는 거대한 공룡이 있다는 사실을 알지 못했다. 그래도 일단 시애틀 컴퓨터는 Microsoft에게 일시불에 Q-DOS의 모든 권리를 넘길 생각은 전혀 없었고, 이렇게 되면 나중에는 시애틀 컴퓨터가 IBM을 인지하고 직접 계약하게 되어 Microsoft는 운영 체제로 돈을 벌 수 없게 될 것이므로 빌 게이츠는 시애틀 컴퓨터와 교묘한 계약을 한다. 이는 Microsoft가 일종의 중개자의 역할을 하며 Q-DOS 라이센스를 판매하고 하나를 판매할때마다 $10000 를 지불하는 계약(소스 코드까지 포함하면 $15000)이었다. 그리고 계약금 $10000 을 선지불했다. 또한 이 계약에는 Microsoft가 라이센스를 판매한 고객의 정보를 시애틀 컴퓨터에게 알릴 의무가 없다는 조항도 있었다. 시애틀 컴퓨터 입장에서는 정말로 Microsoft가 여러 컴퓨터 제조 업체에 중개 역할을 하며 많은 라이센스를 판매할 것을 기대했겠지만 실상 고객은 IBM 하나뿐이었고, 결국 빌 게이츠는 1981년 1월부터 7월까지 6개월 동안 고작 하나의 라이센스만 팔았고 이에 대한 $15000 만 지불했다. 즉 계약금까지 합하면 $25000 만 지불한 것이다. 그리고 IBM은 Q-DOS에 대한 많은 변경을 요청했는데, 고객이 누구인지 알리지 않으면서 시애틀 컴퓨터에게 변경을 요청해야 하는 이상한 상황이 되자 그 대신 팀 패터슨을 설득해서 Microsoft로 영입했다. 그리고 IBM PC의 발표까지 고작 2주 남은 7월에 Microsoft는 "세기의 거래" 라고 불리는 게약을 하게 되는데, 그 시점에 시애틀 컴퓨터는 기대했던 라이센스 판매가 고작 1개뿐이라는 데에 실망했고 이미 소문이 알음알음 퍼져서 그 유일한 고객이 IBM이라는 것도 눈치채고 있었다. 그러나 이미 회사의 유일한 소프트웨어 담당자였던 팀 패터슨도 뺏겨서 OS에 대해 지원하는 것도 어려웠고 타이밍도 좋지 않아 현금도 부족한 상황이어서 결국 Q-DOS의 모든 권리를 인수할 회사를 찾았고 Microsoft가 여기에 잽싸게 응해서 $50000 에 모든 권리를 구매하는 계약을 맺었다. 독점 라이센스가 아닌 권리 자체를 구매했고 그 다음 시애틀 컴퓨터에 대해서 Microsoft가 라이센스를 부여하는 식으로 주체가 완전히 바뀌게 된다. 이 거래로 모두가 알다시피 Microsoft는 이후 엄청난 성공을 하게 된다.

최근 세 운영 체제의 소스 코드를 분석하여 연구한 결과, Q-DOS는 CP/M을 베낀 것이 아니며, MS-DOS도 Q-DOS와는 다른 것이었다는 주장이 나오기도 했으나[삭제된_글] 이는 저자의 사업을 홍보하기 위한 수단이라고 비난받고 있으며 편집자 역시 저자가 마이크로소프트 사의 지원을 받고 있음을 명시하고 있다. 빌 게이츠의 저서인 '미래로 가는 길'에 시애틀 컴퓨터에서 초기 개발 단계였던 소프트웨어를 구입했고 그 회사의 선임 엔지니어 였던 팀 패터슨을 영입해 여러 번 수정한 결과 MS-DOS로 탈바꿈했다고 적혀 있으니 실 제품들은 큰 차이가 있을 수 있다. 사실 당시 빌 게이츠는 IBM에게 운영 체제 파는 것을 별로 중요하게 생각하지 않았다. 당시 Microsoft는 BASIC 뿐만 아니라 포트란 등 다양한 CP/M용 언어 소프트웨어들을 판매하고 있었고, BASIC의 경우 어차피 OS가 없어도 ROM에 기본으로 탑재되므로 상관이 없었으나 IBM에게 다른 소프트웨어들도 다 같이 팔아야만 했고, BASIC을 제외한 다른 소프트웨어들을 구동하기 위해서는 CP/M이건 Q-DOS건 일단 해당 운영 체제를 어떻게든 IBM이 쓰게 만들어야 했고, 이에 협상 결렬로 CP/M을 판매하지 않기로 한 이상 Q-DOS를 자신이 사서라도 IBM에 납품해야 했던 것이다.[6] 결국 처음 계약했을 때에는 MS-DOS가 별로 중요한 것도 아니었고 Microsoft의 BASIC을 제외한 다른 소프트웨어들을 같이 팔기 위한 수단에 불과했다.

그러나 이 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으로 제어권을 되돌려 주고(HDD 없이 플로피 드라이브 1개만 있는 컴퓨터에서, 부팅 후 게임 디스크로 갈아끼워 게임을 하다가 게임을 종료하면 COMMAND.COM이 없다면서 오류 메시지를 뜨는 이유가 이것이다) DOS보다 더 상위의 커널에서 동작하는 인터럽트 벡터에 모니터링 코드를 추가시켜 특정한 키를 입력하거나 하는 트리거 조건을 감지하면 원래의 프로그램을 실행하는 방식으로 멀티태스킹을 흉내내는 방법도 있었다.

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

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

6. 버전

출시일로부터 40년 이상 경과
출시일로부터 35년 이상 경과
출시일로부터 30년 이상 경과
출시일로부터 25년 이상 경과
출시일로부터 20년 이상 경과
0.1 1980년 8월
1.0 1981년 8월
1.1 1982년 5월
2.0 1983년 3월
2.1 1983년 11월
3.0 1984년 8월
3.1 1985년 4월
3.2 1986년 3월
3.3 1987년 4월
3.31 1987년 11월
4.0 1988년 7월
5.0 1991년 6월
6.0 1993년 5월
6.2 1993년 9월
6.21 1994년 2월
6.22 1994년 4월
7.0[8] 1995년 8월
7.1[9] 1996년 8월
8.0[10] 2000년 9월

6.1. 각 버전별 설명

  • 86-DOS 0.x
    • Q-DOS 0.10(1980년 8월): 시애틀 컴퓨터에서 제작한 CP/M 클론 운영 체제로, Microsoft에서 Q-DOS에 대한 지적 재산권을 사들이고 개발자 팀 패터슨까지 영입해 나온 후속 버전이 바로 MS-DOS이다. 출시된 적이 없으며 아직 발견되지 않았다.
    • 버전 0.11: 시애틀 컴퓨터에서 Q-DOS 명칭을 86-DOS로 수정하고 몇가지 기능을 추가하여 내놓은 버전. 2023년 12월 30일 사용자 f15sim이 여러 개의 플로피디스크 중에서 이 버전을 발견해 인터넷에 올렸다. #
    • 버전 0.34: 0.33에서 버그를 수정한 버전으로 1월 1일 f15sim이 발견해 인터넷에 올렸다. #
  • MS-DOS 1.x
    • 버전 1.00(1981년 8월): MS-DOS의 최초 버전이지만 개발용 버전이었기에 발매되지 않았다.
    • 버전 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부터 최초의 WindowsWindows 1.x을 지원한다. 물론 이때의 윈도우는 응용 프로그램이었다.
    • 버전 2.1(1983년 11월): 수많은 버그를 해결했다. 현재 두께의 드라이브 베이로 만들어진 플로피 디스크 드라이브를 지원하기 시작했다. 그 당시 플로피 디스크 드라이브는 지금보다 훨씬 두꺼웠고, 이 규격의 드라이브 베이를 Full-height 드라이브 베이라 부른다. 우리가 알고 있는 광 디스크 드라이브 두께를 Half-height 드라이브 베이라 부르는데, IBM PCjr 때 처음 등장했고, 이것을 지원한 것이다. IBM은 PC DOS 2.1로 발매했다.
    • 버전 2.11: IBM PC 호환 기종에 제공됐던 MS-DOS다. 큐닉스에서 1985년 5월 24일 한글 버전을 발표했는데, # 이는 최초로 발매된 한글 MS-DOS의 버전이다. #
    • 버전 2.25: 한국어와 일본어 지원이 확대된 버전으로, 1985년 10월에 나왔다고 알려져 있다.
  • 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.21: 여러 버그를 해결했으며, IBM PC 호환 기종에 제공했다.
    • 버전 3.3(1987년 4월): 3.5인치 2HD 플로피 디스크(1.44 MB)를 지원했고, XCOPY에 하위 디렉토리와 파일들까지 복사하는 기능이 추가되었다. IBM에서 PC DOS 3.3으로 발매했다. 세 번째로 발매된 MS-DOS 버전으로, 삼보, 삼성, 현대 등에서 한글화했다. 뒤에 나오는 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 플로피 디스크, CD-ROM 드라이브를 지원했다.

      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가 처음으로 등장했다.[11]
    • 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 7.0(1995년 8월): Windows 95의 VDM(Virtual DOS Machine: 가상 DOS 기기)
    • MS-DOS 7.1(1996년 8월): Windows 95 OSR2부터 Windows 98 Second Edition까지 쓰였던 VDM
  • MS-DOS 8.0(2000년 9월): Windows Me의 VDM이자 MS-DOS의 마지막 버전이다. Windows XP~Windows 8.1에서 시동 디스크를 만들면 이 버전의 MS-DOS가 포함되어 있다.

7. Windows 시대의 MS-DOS

Windows 3.1까지는 MS-DOS의 그래픽 프로그램으로 동작했다. MS-DOS를 기반으로 보호 모드를 통한 광대한 메모리, 그리고 램상주(TSR)와 같은 인터럽트 우회 방식이 아닌 제대로 된 멀티태스킹을 지원하며 Windows API를 통해 프로그래밍할 수 있는 환경을 제공했다. 아직 여기까지는 MS-DOS로 부터 하드웨어 제어권을 모두 빼앗아오는 구조가 되지는 못했기 때문에 많은 사람들이 셸 취급을 하고는 했다.

Windows 95부터는 부트 로더 및 DOS 응용 프로그램 호환 계층으로 관여했다.[12] 부팅 시퀀스가 POST(전원 ON 후 자가 점검) > MS-DOS 구동 > Windows 실행 순으로 진행한다. 이때 실행되는 윈도우는 이전 3.1까지의 윈도우와는 달리 모든 하드웨어 제어권을 MS-DOS로부터 빼앗아오고, 이후 DOS는 내부적으로 VDM을 통해 호환 계층으로만 수행한다. 이후 종료 버튼을 통해 MS-DOS로 다시 시작을 고르면 이 제어권을 다시 DOS로 넘겨주는 형태가 되지만, 그저 DOS에서 뜨는 하나의 프로세스로서의 WIN.COM이 수행 종료되던(그래서 DOS에서 HIMEM과 EMM386을 별도로 띄워야 했던) 이전 3.1까지의 윈도우와는 달리, DOS로 다시 웜부팅되는 방식을 취하므로 보호 모드가 아닌 실제 모드(real mode) 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 부팅이 불가능했다.

MS-DOS 7과 8은 단순히 상위 버전이면서 Windows에 포함된 것이 아니라, 해당 Windows에 맞게 부팅 방식과 시스템 최적화에 맞추어 변형이 되었기 때문에 이전 버전의 DOS보다 오히려 기능이 제한된 것도 있다.

MS-DOS 7은 윈도우 98 시스템 DLL 파일 안에 특수한 형태로 통째로 패키징되어 들어가 있다. 여기에는 특수한 사연이 있는데, Windows XP가 가정용 컴퓨터를 대체하기로 결정된 시점 (Windows ME가 DOS 기반 가정용 OS로 중간 단계로 개발되기로 결정) 이전, Windows 2000의 개발 초기에는 해당 버전이 Windows NT와 Windows 98을 계승해서 기업용과 가정용을 아우르는 버전이 되기를 목표로 했었다. 이 때문에 일부 초기버전의 Windows 2000은 Windows 98에서 업그레이드(그리고 파일시스템을 NTFS로 변환하지 않고 FAT 그대로 유지하는 옵션을 선택)하면 Windows 98에서 MS-DOS 7을 추출해서 C드라이브 밑에 별도의 디렉토리로 따로 보관하고, NT 방식(Windows 2000)과 DOS 방식(MS-DOS 7)의 듀얼 부팅 모드를 구성해주는 기능을 가지고 있었다. 그러나 윈도우 2000이 기업용으로 방향을 틀면서 해당 기능은 사장되었고, 정식 판매버전에서는 설치 단계에서 듀얼부팅 구성 같은 기능들이 제거되었다. 그래도 일부 흔적으로서 남은 것이 Windows 98에서 MS-DOS 7의 기능을 추출해서 압축을 풀어주는 기능이었고, 이것을 사람들이 발견해서 따로 빼낸 다음, 독립적으로 부팅을 할 수있도록 여러모로 손을 본 것이 인터넷에 돌아다니는 MS-DOS 7.0 또는 7.1 파일들이다.

MS-DOS 8은 더욱 특수해서, 애초에 Windows ME가 개발되는 과정에서 컴퓨터의 부팅 성능을 최적화하기 위해 여러 시스템 파일들의 역할이나 구조를 상당히 많이 변경한 것이 반영되어 있다. 예를 들면 IO.SYS 파일이 단독 파일이 아니라 커널의 필수 시스템 드라이버들을 포함한 압축파일로 변경되어 윈도우 부팅시에 메모리에서 압축을 푼다던지, CONFIG.SYS와 AUTOEXEC.BAT 파일에서 SET가 아닌 모든 명령어를 스킵하여 모든 DOS 드라이버를 무시하고 최대한 빨리 윈도우로 진입하게 만들어져 있다든지 등등. 게다가 윈도우에서 새로 도입된 여러 가지 보호기능 때문에 여러 DOS 명령어의 시스템을 직접 건드리는 기능들 역시 필연적으로 수행이 불가능하도록 칼질이 가해졌다. 결과적으로 MS-DOS 8을 이전 버전들처럼 따로 떼어내어 사용하기 위해서는 단순히 파일을 복사하고 추출하는 수준이 아니라, 아예 대다수 시스템 파일들의 내용을 패치해서 동작을 바꾸고 없는 기능을 추가하는 등 대대적인 수정을 해야만 했다. 외국에는 실제로 이 방대한 작업을 해낸 사람들도 있지만, 원래부터 기능들이 많이 제외된 버전이기에 MS-DOS 6은 커녕 7보다도 기능이 없는, '부팅은 가능한' 정도의 물건이다.

Windows 포함 버전들 중 7.1의 경우엔 중국 해커집단인 CDU(China DOS Union)에서 독립적으로 설치, DOS로 직접 부팅할 수 있도록 추출한 버전이 있으나, 8.0의 경우엔 단독으로 설치하는 패키지는 따로 없다. Windows ME의 응급 복구 디스크를 작성하면 8.0으로 부팅하는 IO.SYS/MSDOS.SYS/COMMAND.COM을 입수할 수는 있다.

Windows NT는 MS-DOS와 무관하게 설계한 운영 체제였으나, 호환성을 보장하기 위해 NTVDM(NT Virtual DOS Machine)을 넣었다. [13] 이는 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비트 윈도우에 이식하는 프로젝트가 있다. 다만 유출된 Windows NT 4.0 소스 코드를 사용한거라서 저작권 문제로 사용자가 직접 소스 코드를 받아서 컴파일해야 하지만 누군가가 컴파일된 버전을 올렸다.[14] 참고로 다운받으면 백신 프로그램에서 바이러스로 진단하는데, 오진이므로 안심해도 된다.[15] 참고로 이 프로그램의 장점으로는 그래픽 모드 프로그램도 창에서 실행할 수 있다.[16] 16비트용 Windows 앱도 실행할 수 있는 OTVDM도 있다.

MS-DOS에서는 윈도우 프로그램들을 실행할 수 없다. 실행하면 "This program cannot be run in DOS mode."라는 오류 메시지가 뜨면서 실행이 안 된다. 번역하면 "DOS 모드에서 이 프로그램을 실행할 수 없습니다."로, 이는 초기 윈도우 실행 파일의 확장자가 EXE로 MS-DOS와 동일했고 윈도우에서도 DOS 응용 프로그램 호환성을 위해 DOS 모드를 지원했기 때문에, 윈도우 프로그램을 MS-DOS 또는 DOS 모드에서 실행하는 실수를 대비하여 Visual Studio 개발 툴에서 프로그램을 빌드하면 자동 추가되는 오류 메시지이다(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)이다. 여기가 프로그래밍 가능하며 실제 실행도 된다는 점을 이용한 해킹/보안 테크닉도 있었다.

한글을 포함한 타 2바이트 언어판의 MS-DOS 창의 경우 일본어판과 다르게 8:5(16:10)비율[17]의 해상도가 기본으로 되어있지 않아 가독성이 너무 떨어진다. 이는 타 언어판들이 별도로 VGA를 강제하지 않던 것[18]과 달리, 일본어판 IBM 호환 DOS는 태생부터 한자 지원을 위해 VGA가 요구되었던[그래서] 사정에 따른 것으로 보인다. Windows NT에서는 명령플롬프트의 폰트가 VGA에 맞게 개선되었다.

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와 호환성을 가지고 있었다.
  • R-DOS, H-DOS: 각각 러시아와 이스라엘에서 만든 호환 운영체제로 키릴문자와 히브리어 문자 지원을 위해 만들어져서 동유럽과 이스라엘에서 잠깐 동안 널리 쓰였으나 그 후 운명은 일본의 DOS/V와 한국의 K-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와 바이너리 호환성은 없었다. 다만 이식은 비교적 용이했던 모양이다. 추가로 x86을 사용하지 않은 MSX에도 MS가 DOS를 제공하여 MSX-DOS라고 명명되었으나 MSX의 MS는 Microsoft의 약자가 아니다.
  • 3.x 버전까지는 명령 프롬프트 기본값이 $n$g라서 A>\식으로 드라이브 이름만 나타났다. 그 이후 버전에서는 기본값이 $p$g로 C:\\>식으로 드라이브 위치까지 나온다.
  • 명령 프롬프트 상에서 오류 메시지가 나오면 4가지 선택문이 나오고 그 선택을 단어의 첫 머리로 하고 있다. Abort, Retry, Fail, Ignore?인데 Ignore는 오류에 따라 나오지 않을 때도 있다. 가장 쉽게 이 메시지를 띄울 수 있는 사례는 플로피 디스크 드라이브에 플로피 디스크를 넣지 않고 해당 드라이브 진입을 시도할 경우인데, 이때 올바른 플로피 디스크를 넣고 R을 치면(다시 시도하면) 해당 드라이브에 진입할 수 있다.
  • USB 메모리는 FAT16(FAT), 2GB 이하를 인식한다. 엄밀히 말하면 도스 자체가 USB 드라이브를 인식하지는 않는다. 바이오스가 인식하여 특정 장치 형식으로 에뮬레이션하며, 바이오스가 가르쳐주는 타입을 도스는 있는 그대로 받아들인다.[20] MS-DOS는 하드웨어를 인식하고 제어하는 데 자체 드라이버 대신 바이오스에 많이 의존하기 때문에 최신 바이오스에서는 USB 메모리를 인식하므로 도스에서도 사용이 가능한 것이다. 비슷한 경우로 최신 바이오스를 사용 중이라면 도스에서 USB 마우스 및 키보드도 사용할 수 있다(재시동 필요). 최신 대용량 USB도 거기다가 MS-DOS를 깔면 설치 관리자가 USB를 2GB FAT로 포맷한다.
  • 현재 영문판은 WinWorld에서 1.25~7.1까지 모두 구할 수 있으며, 한글판은 BetaArchive에서 3.20부터 구할 수 있다. 7.0과 7.1은 CDU(China DOS Union)에서 Windows 95/98용 도스를 추출해 별도의 운영 체제로 패키징한 것이다. 부팅 화면도 나온다.
  • MSHBIOS의 경우 그래픽카드가 640×400 모드를 지원해야 제대로 출력되며 그렇지 않을 경우 화면이 아래로 늘어나면서 잘린다.
  • MS-DOS 6.22(또는 7.0)까지는 부팅 파티션은 2 GB, 나머지 FAT 파티션은 4 GB까지 인식한다. 설치 시 차지하는 용량이 적어서 요즘 컴퓨터에 설치하면 거의 저장공간이 무한대인 것처럼 느껴질 것이다. Windows 98에 내재된 MS-DOS 7.1부터는 FAT32도 인식한다.
  • Windows 9x과 마찬가지로 2010년대 이후 컴퓨터이면 드라이버 설치 없이 SATA AHCI 모드에서 부팅이 가능하다.
  • 2010년대 이후 최신 기기에서는 himem.sys 연속 확장 메모리 관리자가 제대로 동작하지 않기 때문에 Windows 98의 HIMEM.SYS를 가져오거나 HimemX, XMGR 등의 다른 서드파티 드라이버를 사용해야 한다.
  • 최신 윈도우 버전에서는 명령 프롬프트 (cmd)가 DOS 대신 역할을 하긴 하나, NTVDM이 32비트 버전에만 포함되어 있기 때문에 MS-DOS 편집기나 qBasic와 같은 DOS 전용 프로그램은 32비트에서만 할 수 있고, 64비트 이후 버전은 NTVDM x64를 이용해야 한다. 당연히 고전 도스 게임을 돌리기엔 무리일 것이다.

10. 관련 문서



[1] 로고 자체는 MS-DOS 5.0 시절부터 있었으며(제품의 패키지 박스에 로고로 박혀 있는 등), 도스 관련 각종 출판물에 저 로고가 사용되는 경우가 왕왕 있었다. 해당 아이콘은 그것을 윈도우 3.1의 16색 저해상도로 디더링한 것. Windows 95/98 시절에 MS-DOS 프로그램의 바로가기를 만들면 호환성 설정값을 저장하는 PIF 형식의 파일이 생겼는데, 이 바로가기의 아이콘이 이것으로 설정되었다. Windows XP의 WINDOWS 폴더나 windows\\System32\\nlsfunc.exe의 속성에서도 볼 수 있다. Windows 7은 아이콘 변경 창에서 PIFMGR.DLL를 입력하면 볼 수 있으며, MORICONS.DLL에도 도스 관련 아이콘들이 많이 있다.[2] IBM의 John R. Opel이 빌 게이츠의 소개로 디지털 리서치를 찾아갔다는 교차 자료[3] 당시의 마이크로소프트가 Xenix를 IBM PC의 운영 체제로 밀어붙히지 않은 것은 Xenix가 유닉스 파생인 이상 벨 연구소(이후 AT&T)에서 라이선스를 얻어야 했고, 유닉스와 마찬가지로 Xenix 또한 일반 사용자들을 위한 제품은 아니었기 때문인 듯하다. 어쨌든 IBM PC 출시 이후 마이크로소프트는 IBM PC용 Xenix도 출시했다.[4] #[삭제된_글] #[6] 정확히는 IBM은 뭐가 어찌됐든 OS를 탑재할 생각이었으므로, CP/M과 계약이 결렬되었다고 해도 어차피 OS없이 PC만 판매할 생각은 전혀 없었으니 딱히 Microsoft가 소프트웨어 판매 때문에 전전긍긍했던 것은 아니다. 다만 IBM은 PC 사업에 대해 그리 잘 알지 못했고, 따라서 Microsoft를 믿고 소프트웨어 부분은 거의 전권을 맡겼으므로 빌 게이츠가 Q-DOS를 소개하면서 IBM이 직접 구매할것인지 Microsoft가 구매할것인지 물어봤을 때도 Microsoft에게 구매를 맡겼다. 굳이 말하자면 운영 체제를 못 구하면 IBM PC 사업 자체가 무산될 가능성이 있었으므로 Microsoft 가 급했던 이유는 이 이유가 훨씬 크다.[7] 명령어는 'copy con prn' 즉 키보드에 입력하는 대로 프린트하란 뜻이다. 도트 프린터가 없는 현재는 삽질 중의 삽질이지만, 기능 자체는 copy라는 단순한 '복사' 기능 명령어의 확장이란 점에서 DOS 특유의 광범위한 기능을 알 수 있다.[8] Windows 95[9] Windows 95 OSR2 ~ 98 SE[10] Windows Me ~ XP(DOS 8.0 기반 시동 디스크)[11] 참고로, 도스의 chkdsk와 지금의 Windows에 있는 chkdsk는 다르다.[12] 윈도우 9x에서 열리는 CLI 쉘 창은 VDM(Virtual DOS Machine)이라 불렀으며, 실제로 높은 수준의 DOS 호환성을 가지고 있었다.[13] Windows 9x는 VxD라는 드라이버 모델을 통해 하드웨어가 VDM에서 DOS 호환성을 가지도록 하였으나 윈도우와 DOS 모두에게 인터페이스를 노출하는 VxD의 난해한 드라이버 모델은 저열한 드라이버를 양산하여 무수한 파란 화면을 띄우는 원인이 되었고 이에 따라 NT계열에서는 드라이버 모델로 WDM만 사용하도록 강제하게 되었다. 이로 인해 NTVDM에서는 사운드, 조이스틱, 미디와 같은 하드웨어와의 접근이 아예 안되는 수준으로 막히게 되었으며, 이를 극복하기 위해 VDMSound라는 프로그램이 만들어지기도 하였다.[14] #[15] 개발자 답변[16] 32비트 순수 NTVDM에서는 그래픽 모드 전환 시 강제로 전체 화면 모드로 전환된다. 참고로, Windows Vista와 Windows 7의 경우 VGA 호환 그래픽 드라이버를 사용해야만 도스나 콘솔 프로그램에서 전체 화면 모드 사용이 가능하다.[17] IBM PC 호환기종의 경우 1.42:1 비율.[18] 허큘리스/CGA/VGA를 지원했다.[그래서] DOS/V였던[20] 바이오스에 따라 지금 인식된 USB Mass Storage의 형식을 FDD/HDD/CDROM/ZIP드라이브들 중 무엇으로 에뮬레이션할 지 강제할 수 있는 옵션이 있는 경우도 있다. 대부분 바이오스가 자동으로 장치 타입을 인식하여 에뮬레이션한다.