도스

DOS
MS-DOS 6의 부트 화면, 명령줄 인터페이스 및 디렉터리 구조를 보여주는 스크린샷
FreeDOS의 부팅 화면, 명령줄 인터페이스, 버전 정보 및 디렉토리 구조를 보여주는 스크린샷

DOS(/dds/, /ddɔs/)[1]는 나중에 IBM PC 호환성에 있는 디스크 기반 운영 체제의 일반적인 속기가 된 디스크 운영 체제의 플랫폼 독립 약어다.[2]DOS는 주로 마이크로소프트MS-DOSIBM PC DOS라는 이름으로 리브랜딩된 버전으로 구성되어 있는데, 둘 다 1981년에 도입되었다.나중에 다른 제조업체에서 호환되는 시스템으로는 DR DOS(1988), ROM-DOS(1989), PTS-DOS(1993), FreeDOS(1998) 등이 있다.MS-DOS는 1981년과 1995년 사이에 IBM PC 호환 시장을 지배했다.

수십 개의 다른 운영 체제도 1966년부터 메인프레임 DOS/360을 시작으로 하여 "DOS"라는 약자를 사용한다.그 밖에 Apple DOS, Apple ProDOS, Atari DOS, Commodore DOS, TRSDOS, AmigaDOS 등이 있다.

역사

오리진스

Apple II용 Z-80 SoftCard에 Digital Research Apple CP/M이 표시된 스크린샷

IBM PC DOS(및 별도로 판매되는 MS-DOS)와 그 전신86-DOS는 8비트 Intel 8080 및 Zilog Z80 마이크로컴퓨터의 지배적인 디스크 운영 체제인 디지털 리서치의 CP/M을 기반으로 하였으나, 대신 Intel 8086 16비트 프로세서에서 실행되었다.

IBM이 인텔 8088 마이크로프로세서로 구축된 IBM PC를 소개했을 때, 그들은 운영 체제가 필요했다.8088과 호환되는 CP/M 빌드를 구하면서, IBM은 처음에 마이크로소프트 CEO 빌 게이츠에게 접근했다(아마도 마이크로소프트가 CP/M을 소유했다고 믿는 이유는 마이크로소프트 Z-80 SoftCard가 애플 II에서 CP/M을 실행하도록 허용했기 때문일 것이다).[3]IBM은 디지털 리서치에 파견되었고, 회의가 준비되었다.그러나, 초기 CP/M 사용 협상은 결렬되었다. 디지털 리서치는 CP/M을 로열티 단위로 판매하기를 원했고, IBM은 단일 라이선스를 찾고, 명칭을 "PC DOS"로 바꾸기를 원했다.디지털 리서치 설립자 게리 킬달은 거절했고 IBM은 철수했다.[3][4]

샘플 SCP86-DOS 세션(시뮬레이션)

IBM은 다시 빌 게이츠에게 접근했다.게이츠는 차례로 시애틀 컴퓨터 프로덕츠에 접근했다.그곳에서 프로그래머 팀 패터슨S-100 버스용 SCP의 새로운 16비트 Intel 8086 CPU 카드를 테스트하기 위한 내부 제품으로 의도된 CP/M-80의 변종을 개발했다.이 시스템은 처음에는 QDOS(Quick and Dirty Operating System)로 명명되었다가 86-DOS로 상용화되었다.마이크로소프트는 미화 5만 달러에 86-DOS를 구입했다.이것은 1981년에 도입된 MS-DOS라는 마이크로소프트 디스크 운영체제가 되었다.[5]1년 안에 마이크로소프트는 70개 이상의 다른 회사에 MS-DOS를 허가했는데,[6] MS-DOS는 때때로 그들 자신의 이름으로 자체 하드웨어용 운영 체제를 공급했다.마이크로소프트는 나중에 IBM 변형을 제외하고 MS-DOS 이름을 사용할 것을 요구했다.IBM은 IBM PC용 PC DOS 버전을 계속 개발했다.[5]디지탈리서치는 CP/M과 유사한 운영체제를 IBM(IBM이 CP/M을 위해 주장했던 것과 동일한 이름으로)에 의해 판매되고 있다는 사실을 인지하고 법적 대응을 위협했다.IBM은 PC 소비자에게 PC DOS 또는 CP/M-86 버전, Kildall의 8086 버전 중에서 선택권을 주겠다는 합의서를 제시하며 대응했다.나란히 CP/M은 PC DOS보다 미화 200달러가 더 들었고, 매출도 저조했다.MS-DOS와 PC DOS가 PC와 PC 호환성을 위한 시장 운영체제가 되면서 CP/M은 희미해졌다.[3]

마이크로소프트는 원래 MS-DOS를 오리지널 장비 제조업체(OEM)에만 판매했다.그 이유 중 하나는 초기 PC가 100% IBM PC와 호환되는 것은 아니라는 점이었다.DOS는 시스템별 장치 드라이버 코드(IO)가 분리되도록 구성되었다.SYS) 및 DOS 커널(MSDOS)SYS. Microsoft는 OEM이 특정 시스템에 장치 드라이버 코드를 사용자 지정할 수 있는 OEM 적응 키트(OAK)를 제공했다.1990년대 초까지는 대부분의 PC가 IBM PC 표준을 준수했기 때문에 마이크로소프트는 MS-DOS 5.0과 함께 MS-DOS를 소매로 판매하기 시작했다.

1980년대 중반 마이크로소프트는 DOS의 멀티태스킹 버전을 개발했다.[7][8]이 버전의 DOS는 ICL용으로 개발되어 여러 유럽 회사에 라이선스되었기 때문에 일반적으로 "유럽 MS-DOS 4"라고 불린다.이 버전의 DOS는 사전 예방적 멀티태스킹, 공유 메모리, 장치 도우미 서비스 및 새 실행 파일("NE") 형식 실행 파일을 지원한다.이러한 기능들 중 어느 것도 이후 버전의 DOS에서는 사용되지 않았지만 OS/2 1.0 커널의 기초를 형성하는 데 사용되었다.이 버전의 DOS는 IBM이 개발하여 DOS 3.3에 근거한 널리 출시된 PC DOS 4.0과는 구별된다.

IBM Personal Computer 버전 1.0용 디지털 연구 CP/M-86

디지털 리서치는 처음에는 Concurrent DOS, FlexOS, DOS Plus(둘 다 MS-DOS와 CP/M-86 소프트웨어와 호환됨)로 CP/M-86에서 손실된 시장을 탈환하려고 시도했다(MS-DOS와 CP/M-86 소프트웨어 모두 호환됨), 이후 Multiuser DOS(MS-DOS 소프트웨어와 호환됨)와 DR DOS(MS-DOS와 호환됨.디지털 리서치는 Novell에 의해 구매되었고, DR DOS는 Palm이 되었다.DOSNovell DOS; 나중에 Caldera(OpenDOSDR-DOS 7.02/7.03), LineoDeviceLogics의 일부였다.

Gordon Letwin은 1995년에 "DOS는, 우리가 처음 그것을 썼을 때, 일회성 폐기물로 IBM이 우리의 언어를 살 수 있도록 하기 위한 것이었습니다."[9]라고 썼다.마이크로소프트는 Xenix 이전의 중간 해결책이 될 것으로 기대했다.이 회사는 MS-DOS를 시간이 지남에 따라 개선하여 모토로라 68000, 질로그 Z-8000, LSI-11에서도 실행되는 단일 사용자 Xenix 또는 XEDOS와 거의 구별할 수 없도록 할 계획이었다; 그것들은 1983년에 BYTE가 "미래 다중 사용자 MS-DOS"[10][11]라고 설명한 Xenix와 상향 호환될 것이다.

OS/2 1.0은 MS-DOS와 유사한 텍스트 모드 인터페이스를 특징으로 했다.

그러나 IBM은 DOS를 대체하고 싶지 않았다.[12]AT&T가 유닉스 판매를 시작한 후 마이크로소프트와 IBM은 대안으로 OS/2를 개발하기 시작했다.[9]이후 두 회사는 도스, OS/2, 윈도 등 2개의 후속 운영체제를 놓고 이견을 거듭했다.[13]그들은 결과적으로 DOS 시스템의 개발을 분할했다.[14]MS-DOS의 마지막 소매 버전은 MS-DOS 6.22였으며, 이후 MS-DOS는 Windows 95, 98 및 Me의 일부가 되었다.PC DOS의 마지막 소매 버전은 PC DOS 2000(PC DOS 7 개정판 1이라고도 함)이었는데, IBM은 나중에 OEM과 내부 용도를 위한 PC DOS 7.10을 개발했다.

FreeDOS 프로젝트는 마이크로소프트가 MS-DOS를 더 이상 판매하거나 지원하지 않겠다고 발표했던 1994년 6월 26일에 시작되었다. 짐 은 그 후 오픈소스 대체물의 개발을 제안하는 선언문을 게시했다.몇 주 안에 팻 빌라니와 팀 노먼을 포함한 다른 프로그래머들이 이 프로젝트에 참여했다.커널, 명령어.COM 명령줄 인터프리터(shell)와 핵심 유틸리티는 작성했거나 사용 가능한 것으로 찾은 코드를 풀링하여 생성되었다.2006년 9월 3일 FreeDOS 1.0 배포가 발표되기 전에는 FreeDOS의 공식 출시 전 배포가 여러 차례 있었다.GNU General Public License(GPL)에 따라 제공되는 FreeDOS는 라이센스 수수료나 로열티를 요구하지 않는다.[15][16]

사양

Microsoft Windows의 초기 버전은 MS-DOS의 별도 버전에서 실행되었다. [17]1990년대 초까지 Windows 그래픽 셸은 새로운 DOS 시스템에서 많이 사용되었다.1995년 윈도 95는 별도의 DOS 라이선스가 필요 없는 독립형 운영체제로 번들로 제공되었다.MS-DOS 구성요소가 호환성을 위해 남아 있기는 하지만 윈도 95(및 그 뒤를 이은 윈도 98과 ME)가 기본 OS 커널로 자리를 잡았다.ME가 아닌 윈도 95와 98로 MS-DOS 구성요소를 윈도 시작 없이 실행할 수 있었다.[18][19][20]DOS가 더 이상 윈도우를 사용할 필요가 없기 때문에, 대다수의 사용자들은 윈도우를 직접 사용하는 것을 중단했다.

계속 사용

2012년에[needs update] 사용 가능한 호환 시스템은 FreeDOS, DR-DOS, ROM-DOS, PTS-DOS, RxDOS[21]REAL/32이다.DellHP를 포함한 일부 컴퓨터 제조업체는 FreeDOS와 DR-DOS를 OEM 운영 체제로 판매한다.[22][23]

임베디드 시스템

하드웨어에 직접 접속하는 DOS의 구조는 임베디드 기기에서 사용할 수 있게 한다.DR-DOS의 최종 버전은 여전히 이 시장을 겨냥하고 있다.[24]ROM-DOS는 캐논 파워샷 프로 70의 운영체제로 사용된다.[25]

에뮬레이션

Linux에서는 DOS 프로그램을 네이티브에 가까운 속도로 실행하기 위한 Linux 네이티브 가상 머신인 DOXMU를 실행할 수 있다.DOSBox와 같은 Unix와 Microsoft Windows의 다양한 버전에서 DOS를 실행하기 위한 많은 다른 에뮬레이터가 있다.[26][27] DOSBox는 현대 운영 체제에서 레거시 게임(예: King's Quest, Doom)을 위해 설계되었다.[17][26]

디자인

MS-DOS 및 IBM PC DOS 관련 운영 체제는 일반적으로 Intel x86 또는 호환 가능한 CPU를 사용하는 기계, 주로 IBM PC 호환성을 사용한다.MS-DOS의 기계 의존적 버전은 제조자 명의의 마이크로소프트 배포판 라벨링에서 비 IBM-PC 호환 하드웨어와 함께 작동하도록 특별히 설계된 버전에 이르기까지 많은 비 IBM 호환 x86 기반 기계용으로 제작되었다.애플리케이션 프로그램이 직접 하드웨어 액세스 대신 DOS API를 사용하는 한, IBM-PC 호환 및 호환되지 않는 컴퓨터 모두에서 실행될 수 있다.원래의 FreeDOS 커널인 DOS-C는 1990년대 초 모토로라 68000 시리즈 CPU의 DOS/NT에서 파생되었다.이들 시스템은 DOS 아키텍처를 느슨하게 닮았지만, 비 x86-CPU의 호환되지 않는 명령 집합 때문에 애플리케이션들은 이진 호환성이 없었다.그러나 고급 언어로 작성된 애플리케이션은 쉽게 포팅될 수 있다.

DOS는 기본 커널 함수가 비반복적인 단일 사용자 단일 태스크 운영체제로, 한 번에 한 프로그램만 사용할 수 있으며, DOS 자체는 한 번에 두 개 이상의 프로그램을 실행할 수 있는 기능이 없다.DOS 커널은 문자 I/O, 파일 관리, 메모리 관리, 프로그램 로딩 및 종료와 같은 프로그램에 대한 다양한 기능을 제공한다.

DOS는 배치 파일을 통한 셸 스크립팅 기능 제공(파일 이름 확장명 포함) .BAT배치 파일의 각 행은 실행할 프로그램으로 해석된다.배치 파일은 또한 GOTO조건문과 같은 내부 명령을 사용할 수 있다.[28]

운영체제는 캐릭터 기반 애플리케이션의 개발이 가능하지만 그래픽 카드, 프린터 또는 마우스와 같은 대부분의 하드웨어에 접근하는 것은 가능하지 않은 애플리케이션 프로그래밍 인터페이스를 제공한다.이것은 프로그래머가 하드웨어에 직접 접근할 것을 요구하였고, 그 결과 대개 각 애플리케이션은 각 하드웨어 주변장치용 장치 드라이버 세트를 보유하게 되었다.하드웨어 제조업체는 널리 사용되는 애플리케이션의 장치 드라이버를 사용할 수 있도록 하기 위해 사양을 공개할 것이다.[29]

부팅 순서

  • 마스터 부트 레코드인 PC 호환 컴퓨터의 부트스트랩 로더는 부트 디스크의 첫 번째 트랙(트랙 0)의 첫 번째 섹터인 부트 섹터에서 시작하여 위치한다.ROM BIOS가 이 섹터를 주소의 메모리로 로드함0000h:7C00h이며, 일반적으로 오프셋 +1FEh에서 서명 "55h AAh"를 확인하십시오.섹터가 유효하지 않은 것으로 간주되는 경우, ROM BIOS는 행의 다음 물리적 디스크를 시도하고, 그렇지 않으면 특정 레지스터가 설정된 로드 주소로 점프한다.
  • 로드된 부트 섹터가 분할 미디어에서 발견되는 마스터 부트 레코드(MBR)인 경우, 메모리 0000h:0600h로 이동하며 그렇지 않으면 이 단계를 건너뛰게 된다.[30]The MBR code will scan the partition table, which is located within this sector, for an active partition (modern MBRs check if bit 7 is set at offset +1BEh+10h*n, whereas old MBRs simply check for a value of 80h), and, if found, load the first sector of the corresponding partition, which holds the Volume Boot Record (VBR) of that volume, into memo0000h:7C00h에서 ROM BIOS 자체에 의해 로드된 것과 유사한 방식으로.그런 다음 MBR은 특정 레지스터가 설정된 로드 부분에 실행을 전달한다.
  • 0000h:7C00h에서 로드된 섹터 콘텐츠는 현재 VBR을 구성한다.VBR은 운영 체제에 따라 다르며, DOS 버전마다 정확한 동작이 다르기 때문에 일반적으로 다른 DOS 버전 간에 교환할 수 없다.DOS 1.x와 같은 매우 오래된 버전의 DOS에서는 VBR이 전체 IO를 로드할 것이다.SYS/IBMBIO.0000h:0600h에서 COM 파일을 메모리에 저장하십시오.[31]이를 위해 이들 섹터는 SYS가 디스크에 연속적으로 저장해야 했다.이후 문제에서는 0000h:0500h의 루트 디렉토리에서 처음 두 항목의 내용을 찾아 저장하며, 이러한 항목이 VBR에 기록된 올바른 부팅 파일을 반영할 경우 VBR은 처음 3개의 IO 섹터를 연속 로드하게 된다.SYS/IBMBIO.0070h:0000h에 COM 파일을 메모리에 저장하십시오.또한 VBR은 DPT(Disk Parameter Table)의 내용을 보존하기 위해 주의를 기울여야 한다.마지막으로, 특정 레지스터가 설정된 상태로 진입점으로 점프하여 부하 부분에 대한 제어권을 전달한다(다양한 DOS 버전 간의 상당한 차이).
  • 이후[clarification needed] DOS 버전에서는 VBR이 IO의 처음 3개 섹터만 로드한 경우.SYS/IBMBIO.COM 파일을 메모리에 저장하면 로드된 부분0000h:0500h에 저장된 루트 디렉터리 정보를 사용하여 나머지 부트 로더가 메모리로 로드된다.대부분의 버전에서 파일 내용은 여전히 디스크에 연속적으로 저장되어야 한다.전체적으로 로딩된 이전 버전의 DOS에서는 이 단계를 건너뛰었다.
  • DOS 시스템 초기화 코드는 내장된 장치 드라이버를 초기화한 다음 MSDOS에 위치한 DOS 커널을 로드한다.MS-DOS 시스템의 SYS도 메모리로.윈도 9x에서는 DOS 시스템 초기화 코드와 내장형 디바이스 드라이버와 DOS 커널이 하나의 IO로 결합된다.MSDOS 중 SYS 파일.SYS는 텍스트 구성 파일로 사용된다.
  • CONFIG.그런 다음 SYS 파일을 읽고 구성 매개 변수를 구문 분석하십시오.CHELL 변수는 COMMAND로 기본 설정되는 Shell의 위치를 지정한다.COM.
  • 포탄이 장전되어 실행된다.
  • 시작 배치 파일 AUTOEXEC.그리고 나서 BAT는 껍질에 의해 운영된다.[32][33]

부트 섹터에 의해 로드된 DOS 시스템 파일은 연속적이고 처음 두 개의 디렉터리 항목이어야 한다.[34]따라서 이 파일을 제거 및 추가하면 미디어를 부팅할 수 없게 될 수 있다.그러나 전용 어플리케이션의 실행을 더 빨리 시작하는 데 사용할 수 있는 방법인 쉘을 마음대로 대체할 수 있다.이러한 제한은 시스템 파일이 루트 디렉터리의 아무 곳에나 위치할 수 있고 연속적일 필요가 없는 DR DOS의 어떤 버전에도 적용되지 않는다.따라서 부팅 섹터가 이미 DR DOS 호환성이라면 시스템 파일을 디스크에 간단히 복사할 수 있다.

PC DOS 및 DR DOS 5.0 이상에서 DOS 시스템 파일의 이름은 IBMB이다.IO 대신 IO.COM.SYSIBMDOS.MSDOS 대신 COM.SYS. 이전 버전의 DR DOS는 DRBIOS를 사용했다.SYS와 DRBDOS.대신 SYS.

MS-DOS 7.0부터 시작하여 이진 시스템 파일 IO.SYS와 MSDOS.SYS는 단일 파일 IO로 결합되었다.MSDOS 중 SYS.SYS는 CONFIG와 유사한 구성 파일이 되었다.SYS 및 AUTOEXEC.BAT. MSDOS라면.SYS BootGUI 명령은0, 명령 프로세서와 함께 부팅 프로세스가 중지됨(일반적으로 COMMAND).WIN을 실행하는 대신 COM)이 로드됨.COM 자동.

파일 시스템

DOS는 8.3 파일 이름을 지원하는 파일 시스템을 사용한다. 파일 이름은 8자, 확장자는 3자.DOS 2로 시작하는 계층형 디렉토리가 지원된다.각 디렉토리 이름 역시 8.3 형식이지만 DOS가 유지하는 내부 현재 디렉토리 구조(CDS) 테이블로 인해 최대 디렉토리 경로 길이는 64자로 되어 있다.드라이브 이름을 포함하여 DOS가 지원하는 정규화된 파일 이름의 최대 길이는 드라이브 형식:\path\filename을 사용하여 80자 입니다.null 바이트 뒤에 익스텐트가 표시됨.

DOS는 FAT(파일 할당 테이블) 파일 시스템을 사용한다.이것은 원래 드라이브당 최대 4078개의 클러스터를 지원하는 FAT12이었습니다.DOS 3.0은 16비트 할당 항목을 사용하고 드라이브당 최대 65518개의 클러스터를 지원하는 FAT16에 대한 지원을 추가했다.Compaq MS-DOS 3.31은 32#8209를 제거한 FAT16B에 대한 지원을 추가했다.MB 드라이브 제한 및 최대 512MB까지 지원 가능. 마지막으로 MS-DOS 7.1(Windows 9x의 DOS 구성 요소)은 32비트 할당 항목을 사용하고 최대 137 GB 이상의 하드 드라이브를 지원할 수 있는 FAT32에 대한 지원을 추가했다.

DOS 3.1부터는 파일 리디렉터 지원이 DOS에 추가되었다.이것은 처음에는 네트워킹을 지원하기 위해 사용되었지만 나중에 MSCDEX를 포함한 CD-ROM 드라이브를 지원하기 위해 사용되었다.IBM PC DOS 4.0도 예비 설치 가능 파일 시스템(IFS)을 지원했지만 DOS 5.0에서는 사용되지 않고 제거되었다. DOS는 CONFIG에서 로드된 블록 장치("Disk Drive" 장치)도 지원했다.네트워크 장치를 지원하기 위해 DOS 파일 시스템에서 사용될 수 있는 SYS.

드라이브 이름 지정 체계

DOS에서는 문자를 식별하여 드라이브를 참조한다.플로피 드라이브에 대해 "A"와 "B"를 예약하는 것이 표준 관행이다.플로피 드라이브가 하나만 있는 시스템에서 DOS는 드라이브에 두 문자를 모두 할당하여 프로그램이 서로 다른 액세스 권한을 가질 때 사용자가 디스크를 교환하도록 한다.이것은 플로피에서 플로피로 복사하거나 다른 플로피에서 데이터에 액세스하는 동안 한 플로피에서 프로그램을 실행하도록 하는 것을 용이하게 한다.하드 드라이브에는 원래 "C"와 "D"라는 문자가 할당되었다. DOS는 드라이브당 하나의 활성 파티션만 지원할 수 있었다.더 많은 하드 드라이브에 대한 지원이 가능해지면서, 이것은 먼저 각 드라이브의 활성 기본 파티션에 드라이브 문자를 할당하고, 확장 파티션의 논리 드라이브에 문자를 할당하기 위해 드라이브를 두 번째 통과시킨 다음, 다른 비활성 기본 파티션의 이름을 지정하기 위해 세 번째 통과로 발전했다(이러한 추가 기능).l 파티션은 존재했고 DOS 지원 파일 시스템을 포함했다).마지막으로 DOS는 광 디스크 드라이브, RAM 디스크 및 기타 하드웨어에 문자를 할당한다.문자 할당은 대개 드라이버가 적재된 순서대로 이루어지지만, 드라이버는 DOS에게 다른 문자를 할당하도록 지시할 수 있다. 예를 들어, 네트워크 드라이브의 드라이버는 일반적으로 알파벳의 끝에 가까운 문자를 할당한다.[35]

DOS 애플리케이션은 이러한 드라이브 문자를 직접 사용하기 때문에(유닉스 유사 시스템의 /dev 디렉토리와는 달리), 드라이브 문자가 필요한 새로운 하드웨어를 추가하면 장애가 발생할 수 있다.예를 들어 기존 하드 드라이브에 확장 파티션의 논리 드라이브가 포함된 주 파티션이 있는 새 하드 드라이브를 추가하는 것이 그 예다. 새 드라이브에는 이전에 확장 파티션 논리 드라이브 중 하나에 할당된 문자가 할당된다.게다가 확장 파티션에 논리 드라이브만 있는 새 하드 드라이브를 추가한다고 해도 RAM 디스크와 광학 드라이브의 문자는 여전히 손상될 것이다.이 문제는 사용자가 기존 드라이브의 문자를 변경할 때까지 보존하는 NT 라인에 기반한 버전으로 교체될 때까지 Microsoft의 DOS 기반 9x 버전의 Windows를 통해 지속되었다.[35]DOS에서 이 문제는 SUPS 드라이브를 정의하고 이 논리 드라이브에 DOS 프로그램을 설치함으로써 해결할 수 있다.그러면 응용 프로그램이 시작될 때마다 배치 작업에서 이 드라이브의 할당이 변경된다.Concurrent DOS의 일부 버전뿐만 아니라 Multiuser DOS, System Manager 및 REAL/32에서는 애플리케이션이 시작될 때마다 예약된 드라이브 문자 L:가 해당 로드 드라이브에 자동으로 할당된다.

예약된 장치 이름

DOS에는 내장된 문자 기기가 점유하고 있어 확장에 관계없이 파일 이름으로 사용할 수 없는 예약된 기기 이름이 있다.이러한 제한사항은 또한 몇몇 Windows 버전에도 영향을 미치며, 경우에 따라 충돌 및 보안 취약성을 야기한다.[36]

예약된 이름은:

이러한 이름(NUL 제외)은 이후 MS-DOS, PC DOS, DR-DOS의 모든 버전에서 계속 지원되고 있다.[38] LSTMS-DOS 1.25의 일부 OEM 버전에서도 사용 가능했지만 MS-DOS 1.25의 다른 OEM 버전은 이미 사용되고 있다.LPT1(첫 번째 라인 프린터) 및COM1(첫 번째 시리얼 통신 장치) 대신에 PC DOS와 함께 도입되었다.에 더하여LPT1그리고LPT2게다가COM1COM3HP Portable Plus용 Hewlett-Packard의 MS-DOS 2.11도 지원됨LST의 가명으로LPT2그리고82164A의 가명으로COM2;[39][40] 그것은 또한 지원했다.PLT음모를 꾸미기 [39][40]위해그렇지 않으면COM2,LPT2,LPT3그리고CLOCK$(여전히 이름만 있음)CLOCKMS-DOS 2.11[41][39][40])의 일부 이슈에서는 DOS 2.0과 함께 시계 장치가 도입되었다.COM3그리고COM4DOS 3.3과 함께 추가되었다.[38]멀티태스킹 MS-DOS 4만 지원됨KEYBD$그리고SCREEN$. DR DOS 5.0 이상 및 Multiuser DOS 지원$IDLE$동적 유휴 감지를 위한 장치로서 전력 절약 및 멀티태스킹 개선. LPT47.02 이후 DR-DOS의 일부 버전에서 지원되는 4라인 프린터를 위한 선택적 내장 드라이버. CONFIG$ MS-DOS 7.0–8.0에서 실제 모드PnPnP 관리자를 구성한다.

AUX일반적으로 기본값:COM1그리고PRNLPT1(LST()[38] 그러나 이러한 기본값은 DOS 일부 버전에서 다른 직렬 또는 병렬 장치를 가리키도록 변경될 수 있다.[39][40][42] PLT재구성할 수도 있었다.[39][40]

파일 이름은 다음과 같은 콜론(:)으로 끝났다.NUL:일반적으로 장치 이름을 표시하지만 콜론은 실제로 내장된 장치 드라이버 이름의 일부가 아니다.콜론은 다음과 같은 경우에 입력할 필요가 없다.

ECO 이것은 아무것도 성취하지 않는다 > NUL

디스크 섹터의 디렉토리 데이터 구조를 직접 편집하는 것과 같이 이러한 예약된 장치 이름을 사용하여 파일이나 디렉토리를 만드는 것은 여전히 가능하다.공백으로 파일 이름을 시작하는 것과 같은 이러한 이름 지정은 바이러스나 해킹 프로그램에 의해 때때로 이러한 위치에 접근하는 방법을 모르는 사용자들로부터 파일을 모호하게 하는데 사용되었다.

메모리 관리

DOS는 최대 1MB의 RAM에만 직접 액세스할 수 있는 Intel 8088 프로세서를 위해 설계되었다.[43]IBM과 마이크로소프트 모두 640KB를 프로그램에서 사용할 수 있는 최대 메모리 양으로 선택했으며 나머지 384KB는 비디오 메모리, 일부 비디오 및 네트워크 주변기기의 어댑터에 대한 읽기 전용 메모리, 시스템 BIOS로 예약했다.마이크로소프트는 640KB 장벽에 결코 도달할 수 없을 것이라고 믿었다.[44]그러나 1985년까지 일부 DOS 애플리케이션은 이미 메모리 한계에 도달하고 있었고, 예약한 상당수는 기계의 사양에 따라 사용되지 않았다.[45]

추가 메모리에 접근할 수 있도록 사양이 개발되었다.첫 번째는 확장 메모리 사양(EMS)으로, 예약된 상위 메모리 영역의 64KB 페이지 프레임을 통해 추가 기능 카드의 메모리에 액세스할 수 있도록 설계되었다.[46]80386 이상 시스템은 EMM386과 같은 가상 8086 모드(V86) 메모리 관리자를 사용하여 추가 카드 없이도 확장 메모리로부터 확장 메모리를 만들 수 있다.[47]두 번째 사양은 80286 이상 시스템에 대한 확장 메모리 사양(XMS)이었다.이것은 확장된 메모리와 데이터를 복사하고, 첫 번째 메가바이트의 메모리 바로 위의 65,520바이트의 높은 메모리 영역[48] 상위 메모리 블록 영역에 접근할 수 있는 방법을 제공했다.일반적으로 XMS 지원은 HIMEM에 의해 제공되었다.또한 EMS를 지원했던 QEMM 또는 386MAX와 같은 SYS 또는 V86 모드 메모리 관리자.[49]

DOS 5부터 DOS는 커널 코드와 디스크 버퍼를 로딩하여 HMA를 직접 활용할 수 있었다.[50]DOS=HIGHCONFIG의 문.SYS. DOS 5+는 또한 다음을 통해 사용 가능한 상위 메모리 블록의 사용을 허용했다.DOS=UMBCONFIG의 문.SYS.[51]

OS/2 및 Windows에서 DOS 사용

OS/2와 Windows의 DOS 에뮬레이션은 기본 애플리케이션과 동일한 방식으로 실행된다.이들은 모든 드라이브와 서비스에 액세스할 수 있으며 심지어 호스트의 클립보드 서비스도 사용할 수 있다.파일 시스템 등의 드라이버가 호스트 시스템에 상주하기 때문에, DOS 에뮬레이션은 DOS 호출을 OS/2나 Windows 시스템 호출을 변환하는 DOS API 변환 계층만 제공하면 된다.변환 계층은 또한 일반적으로 BIOS 호출을 변환하고 많은 DOS 프로그램이 일반적으로 사용하는 공통 I/O 포트 액세스를 가상화한다.

윈도우즈 3.1과 9x에서는 도스 가상 머신이 WINOLDAP에 의해 제공된다.WinOldAp는 프로그램의 PIF 파일과 윈도우즈가 로드되었을 때의 시스템 상태를 기반으로 가상 시스템을 생성한다.캐릭터와 그래픽 모두 DOS 그래픽 모드를 캡처해 윈도우에서 실행할 수 있다.DOS 애플리케이션은 WinOldAp에서 게시된 추가 호출에 액세스하여 Windows 클립보드를 사용할 수 있으며, WinOldAp 그래픽을 통해 텍스트를 붙여넣을 수 있다.

OS/2와 Windows NT의 에뮬레이트된 DOS는 DOS 5를 기반으로 한다. 기본 구성(config.sys 및 autoexec.bat)이 있지만 세션별로 대체 파일을 사용할 수 있다.호스트 시스템에 액세스하기 위해 이러한 파일에 드라이버를 로드하는 것은 가능하지만, 일반적으로 타사인 경우에는 이러한 드라이버를 로드하는 것이 가능하다.

OS/2 2.x 이상에서는 DOS 에뮬레이션이 DOSKRNL에 의해 제공된다.이것은 결합된 IBMB를 나타내는 파일이다.IO.COM 및 IBMDOS.COM, 시스템 호출은 OS/2 윈도잉 서비스로 전달된다.DOS 프로그램은 자체 환경에서 실행되며, DOS 유틸리티의 대부분은 \OS2 디렉토리의 바인딩된 DOS/OS2 응용 프로그램에 의해 제공된다.OS/2는 수정된 Windows(Win-OS/2)를 사용하여 Windows 3.1 애플리케이션을 실행할 수 있다.수정 작업을 통해 Windows 3.1 프로그램이 OS/2 데스크톱에서 원활하게 실행되거나, DOS에서 Windows를 시작하는 것과 유사한 WinOS/2 데스크톱을 시작할 수 있다.

OS/2는 'DOS from Drive A:', (VMDISK)를 허용한다.MS-DOS 6.22 또는 PC DOS 5.00과 같은 실제 DOS 입니다.하나는 DOS의 부팅 플로피 디스크를 만들고 OS/2에서 많은 드라이버를 추가한 다음 특별한 이미지를 만든다.이 방식으로 부팅된 DOS는 시스템에 대한 완전한 액세스 권한을 가지지만 하드웨어에 대한 자체 드라이버를 제공한다.이러한 디스크를 사용하여 OS/2 드라이버가 없는 cdrom 드라이브에 액세스할 수 있다.

1993년 이후 윈도 NT 계열의 모든 32비트(IA-32) 버전에서 도스 에뮬레이션은 가상 도스머신(NTVDM)을 통해 제공된다. 64비트(IA-64) 버전의 윈도에서는 NTVDM을 지원하지 않으며 16비트 도스 애플리케이션을 직접 실행할 수 없으며, 도스박스 같은 타사 에뮬레이터를 사용하여 도스 프로그램을 실행할 수 있다.

사용자 인터페이스

DOS 시스템은 명령줄 인터페이스를 사용한다.프로그램은 명령 프롬프트에 파일 이름을 입력하여 시작한다.DOS 시스템은 유틸리티 프로그램을 포함하고 프로그램과 일치하지 않는 내부 명령을 제공한다.[52]

사용자 친화적인 환경을 제공하기 위해, 많은 소프트웨어 제조업체들은 사용자에게 메뉴 및/또는 아이콘 기반 인터페이스를 제공하는 파일 관리 프로그램을 작성했다.자급제 프로그램 로더가 되어 가장 많이 사용되는 PC 호환 프로그램 로더로서 DOS를 대체한다.텍스트 사용자 인터페이스 프로그램으로는 노턴 커맨더, 도스 네비게이터, 볼코프 커맨더, 쿼터데스크 DESQview, 사이드킥 등이 있었다.그래픽 사용자 인터페이스 프로그램에는 디지털 리서치의 GEM(원래 CP/M용으로 작성됨)과 GEOS가 포함되었다.

결국, 주요 DOS 시스템의 제조업체들은 그들 자신의 환경 관리자를 포함하기 시작했다.MS-DOS/IBM DOS 4에는 DOS Shell이 포함되었고,[53] 이듬해 출시된 DR DOS 5.0에는 View가 포함되었다.MAX, GEM 기준.[54]

종료 및 상주 유지

DOS는 멀티태스킹 운영체제가 아니다.그러나 DOS는 프로그램이 기억 속에 상주할 수 있도록 하는 종료 및 체류 레지던트(TSR) 기능을 제공했다.이러한 프로그램은 시스템 타이머 및/또는 키보드 인터럽트를 후크하여 백그라운드에서 작업을 실행하거나 현재 실행 중인 프로그램을 프로그램별로 효과적으로 구현하기 위해 언제든지 호출할 수 있다.PRINT 명령은 백그라운드 인쇄 스풀링을 구현하기 위해 이렇게 했다.팝업 개인정보관리자(PIM)인 볼랜드 사이드킥도 이 기법을 사용했다.

기본적으로 사용할 수 없는 추가 기능을 제공하기 위해 Terminate 및 Stay Locker 프로그램도 사용되었다.CED와 DOSKEY와 같은 프로그램들은 CHERVICE에서 이용할 수 있었던 것 이상의 명령줄 편집 기능을 제공했다.COM. MSCDEX(Microsoft CD-ROM Extensions)와 같은 프로그램은 CD-ROM 디스크의 파일에 대한 액세스를 제공했다.

일부 TSR은 기본적인 형태의 작업 전환도 수행할 수 있다.예를 들어 쉐어웨어 프로그램 앞뒤(1990년)[55]에는 현재 실행 중인 프로그램의 상태를 디스크에 저장하고, 다른 프로그램을 로드하고, 전환하기 위한 핫키가 있어 필요한 디스크 액세스 때문에 느리지만 프로그램 간에 "뒤로" 전환할 수 있었다.그러나 앞뒤로 백그라운드 처리를 할 수는 없었다. 즉, DESQview(적어도 386에 해당)가 필요했다.

소프트웨어

아라크네 웹 브라우저

개발 도구

참고 항목

참조

  1. ^ Dictionary.com 웨이백 머신2017-11-12년 보관
  2. ^ Murdock, Everett (1988). DOS the Easy Way. EasyWay Downloadable Books. ISBN 0-923178-00-7.
  3. ^ a b c Rolander, Tom. "The rest of the story: How Bill Gates beat Gary Kildall in OS war, Part 1". The Scoble Show (Interview). Interviewed by Scoble, Robert. Archived from the original on 2007-11-04.
  4. ^ Bove, Tony (2005). Just Say No to Microsoft. No Starch Press. pp. 9–11. ISBN 1-59327-064-X.
  5. ^ a b Bellis, Mary. "The Unusual History of MS-DOS The Microsoft Operating System". Retrieved 2008-09-02.
  6. ^ Freiberger, Paul (1982-08-23). "Bill Gates, Microsoft and the IBM Personal Computer". InfoWorld: 22. Archived from the original on 2015-03-18. Retrieved 2015-01-29.
  7. ^ "Did you know that OS/2 wasn't Microsoft's first non Unix multi-tasking operating system?". Archived from the original on 2012-11-04.
  8. ^ "Larry Osterman's Biography". Archived from the original on 2013-06-02.
  9. ^ a b Letwin, Gordon (1995-08-17). "What's happening to OS/2". Newsgroup: comp.os.os2.advocacy. Usenet: DDFvKo.G4M@lab.lwpi.com. Retrieved 2013-11-06.
  10. ^ Morgan, Chris (January 1982). "Of IBM, Operating Systems, and Rosetta Stones". BYTE: 6. Retrieved 2013-10-19.
  11. ^ Fiedler, Ryan (October 1983). "The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace". BYTE: 132. Retrieved 2015-01-30.
  12. ^ Howitt, Doran (1984-12-10). "Unix and the Single User". InfoWorld: 28. Archived from the original on 2018-01-29. Retrieved 2015-02-07.
  13. ^ Pollack, Andrew (1991-07-27). "Microsoft Widens Its Split With I.B.M. Over Software". The New York Times. Archived from the original on 2010-11-02. Retrieved 2008-09-02.
  14. ^ Brinkley, Joel (1999-05-28). "I.B.M. Executive Describes Price Pressure by Microsoft". New York Times. Archived from the original on 2008-12-11. Retrieved 2008-09-02.
  15. ^ Hall, Jim (2002-03-25). "The past, present, and future of the FreeDOS Project". Archived from the original on 2012-05-29. Retrieved 2008-06-14.
  16. ^ Hall, Jim (2006-09-23). "History of FreeDOS". freedos.org. Archived from the original on 2007-05-27. Retrieved 2007-05-28.
  17. ^ a b Bannan, James (2006-10-13). "HOW TO: Coax retro DOS games to play on Vista". Archived from the original on 2008-08-01. Retrieved 2008-07-03.
  18. ^ "Finding The DOS In Windows 95". Smart Computing. March 1996. Archived from the original on 2004-07-07. Retrieved 2008-07-12.
  19. ^ Chen, Raymond (2007-12-24). "What was the role of MS-DOS in Windows 95?". The Old New Thing - Site Home - MSDN Blogs. Archived from the original on 2014-02-05. Retrieved 2014-02-05.
  20. ^ "Description of Restarting Computer in MS-DOS Mode". support.microsoft.com. 2007-01-19. Archived from the original on 2014-02-05. Retrieved 2014-02-05.
  21. ^ http://rxdos.sourceforge.net/[bare URL]
  22. ^ Hall, Jim (2007-07-13). "Jim Hall's blog - 2007". Archived from the original on 2012-10-25. Retrieved 2008-06-12.
  23. ^ "Dell PCs Featuring FreeDOS". Archived from the original on 2008-03-19. Retrieved 2008-06-14.
  24. ^ "DR-DOS Embedded DOS". Archived from the original on 2008-12-21. Retrieved 2008-09-26.
  25. ^ "Datalight DOS Selected for Canon's New Line of Digital Still Cameras". Business Wire. 1999-08-24. Archived from the original on 2012-07-09. Retrieved 2008-09-26.
  26. ^ a b "DOSBox Information". Archived from the original on 2008-05-25. Retrieved 2008-05-18.
  27. ^ "DOSEMU Home". 2007-05-05. Archived from the original on 2008-07-23. Retrieved 2008-07-03.
  28. ^ "Batch File Help". computerhope.com. Archived from the original on 2008-09-07. Retrieved 2008-09-10.
  29. ^ Matczynski, Michael. "ZINGTECH - Guide to the New Game Programmer". Archived from the original on 2008-12-19. Retrieved 2008-09-02.
  30. ^ "The Master Boot Record (MBR) and What it Does". Archived from the original on 2013-05-27. 090912 dewassoc.com
  31. ^ "Reverse-Engineering DOS 1.0 – Part 1: The Boot Sector « pagetable.com". Archived from the original on 2009-05-11. 090912 pagetable.com
  32. ^ "CONFIG.SYS Commands". Archived from the original on 2009-05-02. 090913 academic.evergreen.edu
  33. ^ Kozierok, Charles (2001). "The DOS Boot Process". The PC Guide. Archived from the original on 2008-07-19. Retrieved 2008-09-02.
  34. ^ "misc.txt". Archived from the original on 2010-06-29. 090912 arl.wustl.edu
  35. ^ a b "Drive Letter Assignment and Choosing Primary vs. Logical Partitions". The PC Guide. 2001-04-17. Archived from the original on 2012-04-17. Retrieved 2012-04-04.
  36. ^ "Microsoft Windows MS-DOS Device Name DoS Vulnerability". Archived from the original on 2011-07-25. Retrieved 2008-09-02.
  37. ^ "DOS device names definition". PC Magazine. Archived from the original on 2008-09-29. Retrieved 2008-09-02.
  38. ^ a b c d "MS-DOS Device Driver Names Cannot be Used As File Names". Revision 2.0. Microsoft. 2003-05-12. KB74496, Q74496. Archived from the original on 2012-07-21.
  39. ^ a b c d e Hewlett-Packard - Technical Reference Manual - Portable PLUS (1 ed.). Corvallis, OR, USA: Hewlett-Packard Company, Portable Computer Division. August 1985. 45559-90001. Retrieved 2016-11-27.
  40. ^ a b c d e Hewlett-Packard - Technical Reference Manual - Portable PLUS (PDF) (2 ed.). Portable Computer Division, Corvallis, OR, USA: Hewlett-Packard Company. December 1986 [August 1985]. 45559-90006. Archived (PDF) from the original on 2016-11-28. Retrieved 2016-11-27.
  41. ^ 패터슨, 팀;마이크로 소프트[1983년](2013-12-19)."마이크로 소프트 도스 V1.1과 V2.0:/msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". 컴퓨터 역사 박물관, Microsoft.그 2014-03-26에 원래에서 Archived..(NB다. 출판사가 이 될 것 MS-DOS1.1및 2.0이라고 주장하고 있지만, 실제 SCPMS-DOS1.25과 알토스 MS-DOS2.11와 TeleVideo PCDOS2.11의 혼합물이다.)2014-03-25 Retrieved.
  42. ^ Paul, Matthias R. (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Archived from the original on 2003-10-04. Retrieved 2009-03-29. [1]
  43. ^ 베일리스 & 뮬러 1992 페이지 5
  44. ^ Cohen, Eli Boyd (Fall 1991). "Memory Management and Architecture on IBM Personal Computers: A Review of the Literature". Journal of Computer Information Systems. Taylor & Francis. 32 (1): 25. doi:10.1080/08874417.1991.11646433 (inactive 2022-02-28). Retrieved 2021-11-02.{{cite journal}}: CS1 maint : 2022년 2월 현재 DOI 비활성화(링크)
  45. ^ 베일리스 & 뮬러 1992 페이지 42-44.
  46. ^ 베일리스 & 뮬러 1992 페이지 67–68.
  47. ^ 뮬러 1998, 페이지 169.
  48. ^ 뮬러 1998, 페이지 243–244.
  49. ^ 베일리스 & 뮬러 1992 페이지 79–80.
  50. ^ 뮬러 1998년 페이지 243.
  51. ^ Bayes & Mueller 1992, 페이지 150–151.
  52. ^ Murdock, Everett (2008). DOS the Easy Way. EasyWay Downloadable Books. pp. 7–12. ISBN 978-0-923178-02-4.
  53. ^ Murdock, Everett (2008). DOS the Easy Way. EasyWay Downloadable Books. p. 71. ISBN 978-0-923178-02-4. Archived from the original on 2015-03-18.
  54. ^ Dvorak, John Charles; Anis, Nick (1991). Dvorak's Guide to DOS and PC Performance. Osborne McGraw-Hill. pp. 442–444.
  55. ^ 버전 1.47은 (C) 1990에 프로그레시브 솔루션 주식회사가 보관하고 있다.
  56. ^ Darrow, Barbara (2002-02-01). "Whatever Happened To Lotus 1-2-3?". Archived from the original on 2009-01-09. Retrieved 2008-07-12.

추가 읽기

  • IBM, IBM, (1984년 1월)"IBM DOS 릴리즈 2.10 천으로 묶인 소매 하드보드 상자"제1판IBM 주식회사품번6183946
  • IBM, IBM, (1984년 1월)"Disk Operating System User's guide(DOS 릴리스 2.10)" 1판.마이크로소프트(Microsoft, 컬러 일러스트 포함 100페이지)품번6183947
  • IBM, IBM, (1984년 1월)"Disk Operating System Manual(DOS 릴리스 2.10)" 1호.마이크로소프트(MS)(3링 폴더 내 574페이지)항목 번호 6183940
  • Mueller, Scott (1998). Upgrading and Repairing PCs (Eighth ed.). Que Publishing. ISBN 0-7897-1295-4. Retrieved 2021-11-02.
  • Bailes, Lenny; Mueller, John (1992). Memory Management and Multitasking Beyond 640K. McGraw-Hill. ISBN 0-8306-3476-2. Retrieved 2021-11-02.

외부 링크