기존 메모리
Conventional memoryDOS 메모리 관리에서 기본 메모리라고도 하는 일반 메모리는 IBM PC 또는 호환 시스템에서 메모리의 최초 640 킬로바이트입니다.이것은, operating system이나 애플리케이션 프로그램에 사용하기 위해서, 프로세서가 직접 주소를 지정할 수 있는 읽기/쓰기 메모리입니다.메모리 가격이 급격히 하락함에 따라 이 설계 결정은 운영 체제와 프로세서가 등장하기 전까지 대용량 메모리 사용에 제한이 있었습니다.
640 KB 장벽
0블록 | 첫 번째 64KB | 일반 사용자 메모리 최대 64KB(저메모리 영역) |
1블록 | 2nd 64KB | 일반 사용자 메모리(최대 128KB) |
2블록 | 세 번째 64KB | 일반 사용자 메모리는 192KB |
3블록 | 4번째 64KB | 일반 사용자 메모리 (256KB) |
4블록 | 5번째 64KB | 일반 사용자 메모리 (320KB) |
5블록 | 6번째 64KB | 일반 사용자 메모리는 384KB |
6블록 | 7번째 64KB | 일반 사용자 메모리 최대 448KB |
일곱 블록 | 8번째 64KB | 일반 사용자 메모리는 512KB |
8블록 | 9번째 64KB | 일반 사용자 메모리 (576KB) |
9블록 | 10번째 64KB | 일반 사용자 메모리 (640KB) |
A블록 | 11번째 64KB | 확장 비디오 메모리(EGA) |
B블록 | 12번째 64KB | 표준 비디오 메모리(MDA/CGA) |
C블록 | 13번째 64KB | ROM 확장 (XT, EGA, 3270 PC) |
D블록 | 14번째 64KB | 기타 용도(PCjr 카트리지, LIM EMS) |
전자 블록 | 15번째 64KB | 기타 용도(PCjr 카트리지, LIM EMS) |
F블록 | 16번째 64KB | 시스템 ROM-BIOS 및 ROM-BASIC |
640KB 장벽은 IBM PC 호환 PC의 아키텍처 제한입니다.최초의 IBM PC에 사용된 인텔 8088 CPU는 칩이 20개의 주소 라인을 제공했기 때문에 1MB(2바이트)의20 주소를 지정할 수 있었습니다.PC 설계에서 640KB 미만의 메모리는 메인보드 또는 확장보드상의 랜덤 액세스 메모리용이며, 이를 기존의 메모리 영역이라고 부릅니다.기존 메모리 영역의 첫 번째 메모리 세그먼트(64KB)는 저메모리 또는 저메모리 영역이라고 불립니다.UMA(Upper Memory Area)라고 불리는 기존 메모리 영역 이외의 나머지 384KB는 시스템 및 옵션 디바이스용으로 예약되어 있습니다.UMA는 ROM BIOS, 추가 읽기 전용 메모리, 고정 디스크 드라이브 및 비디오 어댑터용 BIOS 확장, 비디오 어댑터 메모리 및 기타 메모리 매핑 입출력 장치에 사용되었습니다.원래의 IBM PC의 설계는 CGA(Color Graphics Adapter) 메모리 맵을 UMA에 배치했습니다.
예약된 주소를 사용하기 위한 하드웨어의 필요성보다 더 많은 RAM의 필요성이 더 빠르게 증가하였고, 결과적으로 RAM은 사용 가능한 주소 공간을 모두 활용하기 위해 사용되지 않는 상위 영역에 매핑되었습니다.이것에 의해, 임의의 데이터에 사용할 수 있는 하드웨어가 점유하고 있는 주소 세트에, 예약된 「홀」(또는 복수의 홀)이 도입되었습니다.이러한 구멍을 피하는 것은 어렵고 추한 일이며, DOS나 DOS에서 실행할 수 있는 대부분의 프로그램에서는 지원되지 않습니다.나중에 구멍 사이의 공간이 Upper Memory Block(UMB; 메모리 블록)으로 사용됩니다.
8086/8088을 인텔 80286 프로세서로 교체한 후에도 640KB의 장벽은 PC 설계의 일부로 남아 있어 보호 모드에서 최대 16MB의 메모리를 처리할 수 있습니다.1 MB 장벽은 286이 리얼 모드로 동작하고 있는 동안에도 유지되었습니다.이는 DOS가 세그먼트와 오프셋 레지스터를 중복하여 사용하는 리얼 모드를 필요로 했기 때문에 20비트 이상의 주소를 사용할 수 없기 때문입니다.DOS에서 사용하는 것과 같은 실제 모드에서 실행 중인 경우 오늘날에도 IBM PC 호환성에 있습니다.최신 인텔 PC에서도 640~1024KB의 용량이 [3][4]확보되어 있습니다.그러나 가상 메모리를 사용하는 최신 운영 체제(Windows, Linux 또는 Mac OS X 등)의 프로그램(또는 대부분의 운영 체제)에서는 물리적 메모리 주소를 전혀 인식하지 못하기 때문에 이 기능은 보이지 않습니다.대신 사용 가능한 RAM [5]주소와 독립적으로 정의된 가상 주소 공간 내에서 작동합니다.
일부 메인보드는 비디오 메모리에서 특정 1메가바이트에 대한 단독 액세스가 필요한 특정 VGA 비디오 카드에 필요한 "15메가바이트 메모리 홀" 옵션을 갖추고 있습니다.AGP(PCI 메모리 용량) 버스를 사용하는 이후의 비디오 카드에는, 256 MB의 메모리와 1 GB의 조리개 사이즈가 있습니다.
추가 메모리
초기 IBM XT 컴퓨터에 사용된 기술 중 하나는 비디오 메모리 주소 범위에 추가 RAM을 설치하고 MDA(Monochrome Display Adapter)의 시작 부분까지 제한을 적용하는 것이었습니다.경우에 따라서는, 소프트웨어나 커스텀 주소 디코더가 필요하게 됩니다.이것에 의해, 장벽이 704 KB(MDA/HGC의 경우) 또는 736 KB(CGA의 [6][7]경우)로 이동했습니다.
386 기반 시스템(DR-DOS의 QEMM 또는 MEMAX(+V) 등)의 메모리 매니저도 같은 효과를 얻을 수 있습니다.기존 메모리를 640KB로 추가하고 장벽을 704KB(세그먼트 B000까지, MDA/HGC의 시작은 736KB(세그먼트 B800까지)로 변경합니다.Enhanced Graphics Adapter(EGA; 확장 그래픽스 어댑터) 비디오메모리는 640KB 라인 아래의 기존 메모리 영역 바로 옆에 있기 때문에 이 상황에서는 CGA만 사용할 수 있습니다.동일한 메모리 영역을 비디오 카드의 프레임버퍼와 과도 프로그램의 양쪽 모두에 사용할 수 없습니다.
모든 컴퓨터의 피기백 애드온 메모리 관리 유닛인 AllCard for[8][9] XT- 및 Charge[10] Card for 286/386SX 클래스 컴퓨터 및 MicroWay의 ECM(Extended Conventional Memory) 애드온[11] 보드는 일반 메모리를 A000000-EFF(HEx KB2)에 매핑하여 주소 95KB2까지 제공비디오 메모리에 직접 액세스한 Lotus 1-2-3과 같은 프로그램은 이 메모리 레이아웃을 처리하기 위해 패치를 적용해야 했습니다.따라서 640KB 장벽은 하드웨어 [10]호환성을 희생하여 제거되었습니다.
또한 콘솔 리다이렉션을 사용할 수도 있습니다(처음 COMMAND를 호출할 때 AUX와 같은 대체 콘솔 장치를 지정함으로써).COM 또는 나중에 CTTY를 사용하여 덤 터미널 또는 터미널 에뮬레이터를 실행하는 다른 컴퓨터에 대한 출력과 입력을 지시합니다.시스템 BIOS가 머신의 기동을 허가하고 있는 경우(적어도 임베디드 PC의 BIOS에서는 많은 경우), 비디오 카드를 완전하게 떼어내, 합계 960 KB의 DOS 메모리를 연속해 프로그램 로딩에 사용할 수 있습니다.
8086 CPU 카드 CP-200B와 최대 16개의 SCP 110A 메모리 카드를 탑재한 SCP S-100 버스 시스템(각 시스템에 64KB RAM 포함, 콘솔 카드 사용 안 함)과 같이 비 조각 메모리 레이아웃을 갖춘 많은 DOS 호환 컴퓨터에서도 동일한 사용이 가능했습니다.부트/B 맵핑최대 896KB를 지원하는 Victor 9000/[12]Sirius 1 또는 커스텀 버전의 MS-DOS에서 사용하는 연속적인 DOS 메모리를 갖춘 Alibot PC).
DOS 드라이버 소프트웨어 및 TSR
DOS용으로 작성된 대부분의 표준 프로그램에는 640KB 이상의 메모리가 필요하지 않습니다.대신 표준 DOS 소프트웨어 외에 Terminate and Stay Resident(TSR) 프로그램이라고 불리는 드라이버 소프트웨어와 유틸리티를 사용할 수 있습니다.이러한 드라이버와 유틸리티는, 통상의 메모리를 영속적으로 사용하고 있기 때문에, 표준 DOS 프로그램에 사용할 수 있는 합계 용량이 감소합니다.
일반적인 DOS 드라이버와 일반 메모리를 사용하는 TSR에는 다음과 같은 것이 있습니다.
- ANSI.SYS - 컬러 텍스트 및 다양한 텍스트 해상도 지원
- ASPIxDOSSYS, ASPIDISK시스템, ASPICDSYS - Adaptec SCSI 드라이브와 CD-ROM이 작동하려면 모든 것을 로드해야 합니다.
- DOSKEY.EXE - 위 화살표를 사용하여 이전에 입력한 DOS 명령을 호출할 수 있습니다.
- LSL.EXE, E100BODI.EXE(또는 기타 네트워크 드라이버), IPXODI.EXE, NETX.EXE - NetWare 파일 서버 드라이브 문자 액세스를 위해 모든 파일을 로드해야 합니다.
- MOUSE.EXE - DOS 프로그램에서의 마우스 디바이스 지원
- MSCDEX.EXE - CD-ROM 드라이브의 액세스와 드라이브 문자를 서포트.다른 제조원 고유의 드라이버와 조합해 사용합니다.SCSI CD-ROM 디바이스에 액세스 하기 위해서, 상기의 SCSI 드라이버에 가세해 필요합니다.
- SBCONFIGEXE - Sound Blaster 16 오디오 디바이스 지원.기타 다양한 사운드 카드에는 다른 이름의 드라이버가 사용되었으며 기존 메모리에도 사용되고 있습니다.
- 스마트 디스크EXE - 디스크 읽기 및 쓰기 속도를 높이기 위해 드라이브 캐시를 설치합니다.드라이브 캐시에 640KB 이상의 메모리를 할당할 수 있지만, 기능하려면 기존 메모리의 일부분이 필요합니다.
상기와 같이, 이러한 드라이버와 TSR의 대부분은, 시스템의 풀 기능의 동작에 실질적으로 불가결한 것으로 간주됩니다.그러나 대부분의 경우 컴퓨터 사용자는 특정 표준 DOS 프로그램을 실행할 수 있는지, 아니면 그들이 좋아하는 드라이버와 TSR을 모두 로드할 수 있는지 결정해야 했습니다.사용자가 표준 DOS 프로그램도 실행하기를 원할 경우 위에 표시된 목록 전체를 로드하는 것은 실용적이지 않거나 불가능할 수 있습니다.
경우에 따라서는, 특정의 프로그램을 실행하기 위해서, 드라이버 또는 TSR 를 메모리에서 언로드 해, 프로그램을 실행한 후에 새로고침 할 필요가 있습니다.언로드할 수 없는 드라이버의 경우, 그 이후의 버전의 DOS 에는, 기동 메뉴 기능이 포함되어 있어 컴퓨터 유저는, 메모리 사용량이 많은 표준 DOS 프로그램을 실행하기 전에, 로드할 드라이버와 TSR 의 다양한 그룹을 선택할 수 있습니다.
메모리 블록의 상부와 부하가 높음
1980년대 후반과 1990년대 초반에 DOS 어플리케이션이 점점 더 크고 복잡해짐에 따라 어플리케이션에서 사용할 수 있는 기존 메모리를 최대한 활용하기 위해 부팅 시 디바이스 드라이버와 TSR 프로그램을 UMA(Upper Memory Area)의 UMB(Upper Memory Block)로 이동하여 기존 메모리를 해방하는 것이 일반적인 관례가 되었습니다.이를 통해 하드웨어 변경이 필요하지 않고 애플리케이션 호환성이 유지된다는 이점이 있었습니다.
이 기능은 1990년에 DR DOS 5.0에 내장되어 1991년에 MS-DOS 5.0에 내장되기 전에 QEMM과 같은 서드파티 제품에 의해 처음 제공되었습니다.대부분의 사용자는 함께 사용하는EMM386 드라이버는 MS-DOS 5에서 제공되지만 QEMM과 같은 서드파티 제품도 인기를 끌었다.
시작 시 "DEVICE HIGH=" 명령을 사용하여 드라이버를 높게 로드하는 반면 TSR은 "LOADHIGH", "LH" 또는 "HILOAD" 명령을 사용하여 높게 로드할 수 있습니다.조작에 실패했을 경우, 드라이버 또는 TSR은 그 대신에 통상의 메모리에 자동적으로 로드됩니다.
CONFIG.SYS, ANSI 로드 중.SYS에서 UMB로, EMS 지원이 활성화되지 않음:
DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE NOEMS DEVICE HIGH=C:\DOS\ANSI.시스템
자동 실행BAT, 가능한 경우 마우스, DOSKEY 및 SMARTDRV를 UMB에 로드합니다.
LH C:\DOS\MOUSE.EXE LH C:\DOS\DOSKEY.EXE LH C:\DOS\SMARTDRV.EXE
DOS 버전 5.0 이후에서는, DOS=HIGH 커맨드를 사용하고, 독자적인 시스템 코어 코드를 HMA(High Memory Area)로 이동할 수 있기 때문에, 메모리의 빈 용량이 한층 더 증가했습니다.
드라이버/TSR 최적화
하드웨어 확장 보드는 ROM 어드레싱을 위해 상부 메모리 영역 중 하나를 사용할 수 있습니다.따라서 상부 메모리 블록은 설치된 하드웨어에 따라 크기가 다양하며 컴퓨터마다 위치가 다릅니다.메모리 상위의 창에는 큰 창과 작은 창이 있습니다.드라이버와 TSR을 높게 로드하면 블록이 적합한 위치에 발견되거나 기존 메모리에 들어갈 때까지 블록이 선택되고 프로그램이 그 블록에 들어가려고 합니다.
드라이버와 TSR의 특이한 점은 로드된 순서에 따라 다른 양의 일반 메모리 및/또는 상위 메모리를 사용한다는 것입니다.이것은 프로그램이 다른 순서로 반복적으로 로드되고 각 순열 후에 사용 가능한 메모리의 양을 확인하는 경우에 도움이 됩니다.예를 들어 50KB UMB와 10KB UMB가 있고 8KB와 45KB가 필요한 프로그램이 로드된 경우 8KB가 50KB UMB에 들어가 두 번째 UMB가 로드되지 않을 수 있습니다.이후 버전의 DOS에서는 드라이버 또는 TSR에 특정 로드 주소를 사용하여 드라이버/TSR을 보다 긴밀하게 연결할 수 있었습니다.
MS-DOS 6.0에서 마이크로소프트는MEMMAKER
블록 매칭 프로세스를 자동화하여 서드파티 메모리 매니저가 제공하는 기능을 매칭합니다.이 자동 최적화는 여전히 손으로 하는 것과 같은 결과를 제공하지 않는 경우가 많으며, 이는 가장 큰 여유 메모리를 제공한다는 의미입니다.
또, 서드파티제의 기업에서는, 몇개의 표준 DOS 드라이버와 TSR 의 기능을 조합한 특수한 다기능 드라이버를, 몇킬로바이트의 메모리만을 사용하는 매우 컴팩트한 단일의 프로그램에 짜넣는 경우도 있었습니다.예를 들어 마우스 드라이버, CD-ROM 드라이버, ANSI 지원, DOSKEY 명령 호출 및 디스크 캐싱의 기능은 모두 하나의 프로그램으로 결합되어 일반 드라이버/인터럽트 액세스를 위해 1~2킬로바이트의 일반 메모리만 소비하고 나머지 다기능 프로그램 코드는 EMS 또는 XMS 메모리에 저장합니다.
DOS 익스텐더
이 장벽은 DOS 익스텐더의 등장으로 극복되어 DOS 어플리케이션이 16비트 또는 32비트 보호모드로 실행될 수 있게 되었지만 컴퓨터 게임 이외에서는 그다지 널리 사용되지 않았습니다.32비트 DOS 익스텐더를 사용하면 게임은 32비트 플랫 어드레스 공간과 66h/67h 오퍼랜드/주소 오버라이드 프리픽스가 없는 32비트 명령 세트를 이용할 수 있습니다.32비트 DOS 익스텐더에서는 컴파일러 지원(32비트 컴파일러)이 필요했지만 XMS와 EMS는 16비트 리얼 모드 DOS 애플리케이션을 대상으로 한 오래된 컴파일러로 동작했습니다.DOS 익스텐더의 가장 일반적인 두 가지 사양은 VCPI 및 그 이후의 DPMI 호환 Windows 3.x였습니다.
DPMI 준거 DOS 익스텐더는 Watcom에 부속된 DOS/4GW일 수 있습니다.이것은 DOS용 게임에서 매우 흔했습니다.이러한 게임은 DOS/4GW 32비트 커널 또는 경로 또는 동일한 디렉토리에 위치한 DOS/4GW 커널과 32비트 "선형 실행 파일"을 로드한 스터브로 구성됩니다.유틸리티는 이러한 프로그램에서 DOS/4GW를 제거하여 사용자가 DOS/4GW 클론 중 몇 가지 또는 개량된 클론 중 하나를 실험할 수 있도록 합니다.
DOS 익스텐더 이전에는 사용자가 추가 메모리를 설치하여 DOS에서 사용하려면 먼저 확장 메모리 사양(EMS) 또는 확장 메모리 사양(XMS)을 지원하는 드라이버를 설치 및 구성하고 이러한 사양 중 하나를 지원하는 프로그램을 실행해야 했습니다.
EMS는 인텔 8086 및 인텔 8088을 탑재한 PC를 포함한 모든 PC에서 사용할 수 있는 사양으로 애드온 하드웨어는 "리얼 모드" 주소 지정 공간(0x0400–0xFFF)의 작은 메모리 청크를 입력 및 출력(뱅크 스위칭)할 수 있습니다.이것에 의해, 16비트 리얼 모드 DOS 프로그램은, 통상, 리얼 메모리(0xE000-0xEFFF)의 구멍을 개입시켜 수메가바이트의 RAM 에 액세스 할 수 있게 되었습니다.그러면 프로그램은 페이지를 사용하기 전에 해당 페이지에 액세스할 것을 명시적으로 요청해야 합니다.이러한 메모리 위치는 다른 페이지로 대체될 때까지 임의로 사용할 수 있습니다.이것은 현대의 페이징된 가상 메모리와 매우 유사합니다.다만, 가상 메모리 시스템에서는, operating system이 모든 페이징 조작을 처리해, EMS 에서는 페이징이 명시되어 있습니다.
XMS는 16비트 DOS 프로그램이 80286 또는 80386 확장 메모리의 청크를 낮은 메모리(주소 0x0400-0xFFF)에 로드할 수 있도록 하는 기본 프로토콜을 제공했습니다.일반적인 XMS 드라이버는, 이 메모리를 로드하기 위해서 보호 모드로 전환할 필요가 있습니다.이 접근방식의 문제는 286 보호모드에서는 DOS 다이렉트콜을 발신할 수 없다는 것입니다.회피책은 콜백메커니즘을 실장하는 것으로, 286을 리셋 할 필요가 있습니다.286년에는 이것이 큰 문제였습니다."가상 8086 모드"를 도입한 인텔 80386에서는 게스트 커널이 8086을 에뮬레이트하여 실제로 프로세서를 "실제 모드"로 되돌릴 필요 없이 호스트 운영 체제를 실행할 수 있었습니다.HIMEM.SYS 2.03 이후에서는 80386 이상의 CPU에서 비현실 모드를 사용했지만 HIMEM에서는 그렇지 않았습니다.SYS 2.06 이후에서는 LOADALL을 사용하여 80286에서 문서화되어 있지 않은 내부 레지스터를 변경하였습니다.이를 통해 리얼 모드/[13]보호 모드 스위치의 반복을 회피함으로써 인터럽트 지연이 대폭 개선되었습니다.
Windows 는, 독자적인 버전의 HIMEM 을 인스톨 합니다.DOS[14] 3.3 이후의 SYS.Windows HIMEM.SYS는 Windows Virtual Machine Manager용 32비트 보호 모드 XMS(n.0) 서비스 공급자를 시작합니다.이것에 의해, DOS 박스와 16비트 Windows 머신(DOS 7 HIMEM 등)에 XMS(n-1) 서비스가 제공됩니다.SYS는 XMS 3.0이지만 Windows 95 DOS 창에서 'MEM' 명령을 실행하면 XMS 2.0 정보가 표시됩니다).
「 」를 참조해 주세요.
- 확장 메모리(EMS)
- 확장 메모리(XMS)
- 대용량 메모리 영역(HMA)
- DOS 보호 모드 서비스(DPMS)
- 부하가 높다
- 롱 모드
- RAM 제한
- 과도 프로그램 영역(TPA)
- 상부 메모리 영역(UMA)
- x86 메모리 세그멘테이션
- 3 GB 장벽
레퍼런스
- ^ Norton, Peter(1986)IBM PC 내부, 수정 및 확대, Brady. ISBN0-89303-583-1, 페이지 108.
- ^ 미국 특허 4,926,322 - 가상 DOS 모니터와 페이지 메모리 관리를 사용한 뱅크 교환 메모리의 소프트웨어 에뮬레이션 그림 1
- ^ Yao, Jiewen; Zimmer, Vincent J. (February 2015). "White Paper: A Tour beyond BIOS Memory Map Design in UEFI BIOS" (PDF). Intel Corporation. Archived from the original (PDF) on 2015-09-30. Retrieved 2016-08-25.
- ^ Russinovich, Mark Eugene; Solomon, David A.; Ionescu, Alex (2012). Windows Internals. Vol. Part 2 (6th ed.). Microsoft Press. p. 322.
Note the gap in the memory address range from page 9F000 to page 100000...
- ^ Richter, Jeffrey. Programming Applications for Microsoft Windows. pp. 435 ff.
- ^ Atkinson, Cy (2001). "What is High Memory, why do i care, and how can I use it?". San Jose, CA, USA. Archived from the original on 2016-03-03. Retrieved 2017-03-13.
- ^ a b 폴, 마티아스 R.(1997-07-30).NWDOS-TIPs — 팁을 &, Tricks rund)노벨 도스 7, mit Blick aufundokumentierte 자세한 내용은 벅스 und Workarounds[NWDOSTIPs — 팁을, 지금까지 알려지지 않은 세부 사항, 벌레와 워크 어라운드 그리고 설명에 특별한 것에 촛점을 둔 노벨 도스 7을 위한 속임수 &].MPDOSTIP.157(독일어로)(3판)를 해제한다.그 2016-06-06에 원래에서 Archived..(NB다. NWDOSTIP 2016-06-06 Retrieved.TXT는 Novell DOS 7 및 OpenDOS 7.01에 관한 포괄적인 작업이며, 문서화되어 있지 않은 많은 기능 및 내부 기능에 대한 설명을 포함합니다.저자의 더 큰 MPDOSTIP.Z의 일부입니다.IP 수집은 최대 2001년까지 유지되며 동시에 많은 사이트에 배포되었습니다.제공된 링크는 HTML 변환된 이전 버전의 NWDOSTIP를 가리키고 있습니다.TXT 파일).
- ^ Petzold, Charles (1986). "More Options For Enlarging the Dimensions of Memory". PC Magazine. Vol. 5, no. 11. ISSN 0888-8507.
- ^ "AllCard review". Personal Computer World. September 1986. p. 138.
- ^ a b Zerbe, Klaus (November 1987). Burgwitz, Andreas (ed.). "Speicher-Kredit - All Chargecard für ATs". c't - magazin für computertechnik. Prüfstand (in German). Vol. 1987, no. 11. Verlag Heinz Heise GmbH & Co. KG. pp. 58, 60. ISSN 0724-8679.
- ^ Petzold, Charles (1986-09-16). "Number Smasher/ECM". PC Magazine. Accelerator Boards. Vol. 5, no. 15. pp. 148, 150. ISSN 0888-8507. Archived from the original on 2020-03-03. Retrieved 2020-03-03.
- ^ Paterson, Tim (2007-11-24). "The First DOS Machine". DosMan Drivel. Archived from the original on 2021-09-18. Retrieved 2021-12-23.
IBM also reintroduced memory limitations that I had specifically avoided in designing the 8086 CPU [card]. For S-100 computers, a low-cost alternative to using a regular computer terminal was to use a video card. The video card, however, used up some of the memory address space. The boot ROM would normally use up address space as well. SCP systems were designed to be used with a terminal, and the boot ROM could be disabled after boot-up. This made the entire 1 MB of memory address space available for RAM. IBM, on the other hand, had limited the address space in their PC to 640 KB of RAM due to video and boot/BIOS ROM. This limitation has been called the "DOS 640K barrier", but it had nothing to do with DOS. Microsoft took full advantage of the SCP system capability. In 1988, years after SCP had shut down, they were still using the SCP system for one task only it could perform ("linking the linker"). Their machine was equipped with the full 1 MB of RAM – 16 of the 64 KB cards. That machine could not be retired until 32-bit software tools were developed for Intel's 386 microprocessor.
- ^ "HIMEM.SYS, unreal mode, and LOADALL OS/2 Museum".
- ^ "Overview of Memory-Management Functionality in MS-DOS". Support.microsoft.com. 2003-05-12. Retrieved 2012-08-13.
추가 정보
- Brenner, Rudolf (1986). "Mehr als 640 K in PCs". c't - magazin für computertechnik (in German). Vol. 1986, no. 11. Verlag Heinz Heise GmbH & Co. KG. p. 94. ISSN 0724-8679.
- Landenberger, Andreas (November 1987). Wilde, Michael (ed.). "Booten mit List - PC-Speicher über 640 KB voll genutzt". c't - magazin für computertechnik. Praxistip (in German). Vol. 1987, no. 11. Verlag Heinz Heise GmbH & Co. KG. pp. 154, 156. ISSN 0724-8679.