IBMBIO.COM

IBM PC DOS 1.0에서의 IBMBIO.COM (COM 파일 목록의 상단).

IBMBIO.COM은 여러 DOS 운영 체제에 존재하는 시스템 파일이다. 이 파일은 시스템 초기화 코드와 모든 내장 장치 드라이버를 포함하고 있다. 또한 도스 커널(IBMDOS.COM)과 선택적으로 미리 로드 가능한 시스템 구성 요소(예: 디스크 압축이나 보안용)를 로드하며, 부트 메뉴를 표시하고, 구성 파일(예: CONFIG.SYS)을 처리하며, 셸(예: COMMAND.COM)을 실행한다.

이 파일은 IBM의 PC DOS (모든 버전)뿐만 아니라 DR DOS 5.0 이상(예외적으로 DR-DOS 7.06 제외)의 일부이다. 이는 MS-DOS의 IO.SYS 파일이나, DR DOS 3.31부터 3.41까지의 DRBIOS.SYS와 동일한 목적을 수행한다. (일부 도스 애플리케이션과의 호환성을 위해 IBMBIO.COM 파일명은 마이크로소프트가 사용한 OS2BIO.COM 파일과 유사했던 OS/2 1.0의 IBM 버전에서도 잠시 사용된 적이 있다.)

이 파일은 부팅 가능한 FAT 형식 드라이브/파티션의 루트 디렉토리(일반적으로 C:\)에 위치하며, 통상적으로 시스템, 숨김, 그리고 (도스 2.0 이후) 읽기 전용 파일 특성이 설정되어 있다. DR-DOS에서 이 파일은 선택적으로 암호 보호를 할 수 있다. PC DOS에서는 파일을 이동할 수 없도록 표시하기 위해 시스템 특성이 설정되는데, 이는 DR-DOS에서는 기술적으로 불필요한 제한이다. IBMBIO.COM은 실제 COM 파일 방식의 프로그램이라기보다 실행 코드를 포함한 바이너리 이미지이므로, 명령 프롬프트에서 실수로 실행되어 충돌을 일으키지 않도록 숨김 특성이 설정되어 있다. DR-DOS 7.02 이상에서는 이 조치가 더 이상 필요하지 않은데, 해당 시스템에서는 이 파일이 부트 섹터에 의해 로드되지 않을 경우 간단한 버전 정보를 표시하고 정상적으로 종료하는 작은 COM 스타일의 스텁(stub)을 포함한 fat binary이기 때문이다.

PC 부팅 시퀀스에서, 부트 볼륨의 첫 번째 섹터는 볼륨 부트 레코드(VBR)라는 부트 로더를 포함하고 있으며, 이는 메모리에 로드되어 실행된다.

만약 이것이 3.3 이전의 PC DOS VBR이라면, 자체적으로 두 시스템 파일을 모두 메모리에 로드한다. PC DOS VBR은 FAT 파일 시스템을 마운트할 수 없기 때문에, 시스템 파일은 디스크의 첫 번째 디렉토리 항목에 저장되어야 하며 디스크상의 고정된 물리적 위치인 연속된 섹터에 위치해야 한다. 이러한 조건은 SYS 유틸리티가 처리해야 한다.

만약 로드된 부트 섹터가 PC DOS 3.3(또는 그 이후) VBR이라면, 요구 사항이 다소 완화된다. 시스템 파일은 여전히 디스크의 첫 두 루트 디렉토리 항목에 저장되어야 하지만, VBR은 첫 번째 항목만을 사용하여 IBMBIO.COM의 처음 세 섹터를 메모리로 로드하고 제어권을 넘긴다. IBMBIO.COM의 이 부분에는 다음과 같은 약간 더 큰 부트 로더가 포함되어 있다.

  1. 나머지 자신을 메모리에 로드한다. PC DOS 5.0 이전에는 시스템 파일이 여전히 디스크의 고정된 물리적 위치와 연속된 섹터에 저장되어야 했다. PC DOS 5.0(및 그 이상)부터 이 요구 사항은 IBMBIO.COM의 처음 세 섹터로만 축소되었다.
  2. 도스 커널을 로드한다. 커널은 IBMDOS.COM에 저장되어 있다.
  3. 각 기본 장치 드라이버(콘솔, 디스크, 직렬 포트 등)를 차례로 초기화한다. 이 시점에서 기본 장치들을 사용할 수 있게 된다.
  4. 도스 커널의 초기화 루틴을 호출한다.

DR-DOS 5.0 이상에서는 첫 번째 단계가 생략되는데, DR-DOS VBR은 FAT 파일 시스템을 마운트하고, 루트 디렉토리 내 어디에 있든 IBMBIO.COM(또는 DRBIOS.SYS) 파일을 찾아 자체적으로 메모리에 로드할 수 있기 때문이다. 부트 섹터에 의해 로드될 IBMBIO.COM 파일의 파일명은 반드시 첫 번째 루트 디렉토리 항목에 있을 필요 없이 부트 섹터 자체에 저장되며, 마찬가지로 IBMBIO.COM에 의해 로드될 IBMDOS.COM의 파일명도 반드시 두 번째 디렉토리 항목에 있을 필요 없이 IBMBIO.COM 내부에 저장된다. 또한 VBR 내의 IBMBIO.COM 로더와 유사하게, IBMBIO.COM 내의 IBMDOS.COM 로더도 파일 시스템을 기초적으로 마운트할 수 있으므로, 시스템 파일이 처음 두 디렉토리 항목에 저장되거나 고정된 물리적 위치에 상주하거나 연속된 섹터에 저장될 필요가 없다. 결과적으로 시스템 특성을 설정할 필요도 더 이상 없다. 대신 DR-DOS 부트 섹터가 이미 디스크에 있다면 시스템 파일을 (SYS 없이) 디스크에 단순히 복사하기만 하면 된다.

마이크로소프트는 이 구성 요소를 때때로 I/O 시스템이라 부르지만, 일반적으로는 도스 바이오스(DOS BIOS, 기본 입출력 시스템의 도스 관련 부분)로 알려져 있다. BIOS라는 용어는 원래 1975년 게리 킬달이 CP/M을 위해 만든 것이지만, 디지털 리서치, IBM, 마이크로소프트 등 다른 운영 체제에서 유사한 구성 요소나 계층을 설명하는 데에도 사용된다.

더 포괄적인 의미에서, 일부 제조사는 이를 기계의 내장 ROM BIOS와 대조하기 위해 DOS나 CP/M과 같은 운영 체제의 RAM BIOS라고 부른다.

같이 보기

내용주

  1. ↑ 읽기 전용 특성이 설정되는 것 외에도, 시스템 파일은 DR-DOS에서 PASSWORD 명령이나 일부 SYS 명령에서 사용 가능한 /R[:password] 옵션을 사용하여 선택적으로 암호 보호를 할 수 있다.[a] 부트 로더는 파일을 로드할 때 설정된 파일 암호를 단순히 무시하지만, 일단 시스템이 부팅되면 암호를 알지 못하면 시스템 파일에 접근할 수 없어, 시스템 파일을 삭제하거나 수정하려는 우발적인 시도로부터 추가적인 보호 수준을 제공한다. (이 파일 암호 기능은 특정 구성에서 DR-DOS가 제공하는 볼륨 또는 부트 암호와는 독립적이다.)
  2. 1 2 PC DOS 5.0 설명서는 시스템 파일이 더 이상 연속적일 필요가 없다고 잘못 명시하고 있다. 그러나 부팅 과정이 작동하려면 시스템 파일이 여전히 처음 두 디렉토리 항목을 점유해야 하며, IBMBIO.COM의 처음 세 섹터는 여전히 연속적으로 저장되어야 한다.[b] SYS는 이러한 요구 사항을 계속 처리한다.
  3. ↑ DR-DOS VBR이 IBMBIO.COM 파일 전체를 메모리에 로드한다는 규칙에는 한 가지 예외가 있다. IBMBIO.COM 파일이 29 KB보다 크면, 파일 전체를 메모리에 로드하려는 시도가 부트 로더의 콜 스택과 재배치된 디스크 파라미터 테이블(DPT/FDPB)을 덮어쓰는 결과를 초래할 수 있다. 따라서 DR-DOS 7.07 VBR은 파일의 처음 29 KB만 메모리에 로드하며, 필요할 경우 나머지 파일을 메모리에 로드할 수 있도록 IBMBIO.COM의 첫 부분에 내장된 또 다른 로더에 의존한다. 내부 압축[c][d] 덕분에 이전 버전에서는 이 로더 없이도 IBMBIO.COM의 크기가 이 제한을 넘지 않았으므로 호환성 문제는 발생하지 않는다. 이중 항목 구조와 결합하여 이는 또한 PC DOS VBR에 의해 시스템이 로드될 수 있게 하는데, PC DOS VBR은 파일의 처음 세 섹터만 메모리에 로드할 것이다.
  4. ↑ CHS를 통해 FAT12 및 FAT16 파일 시스템을 마운트하고, 부트 파일 IBMBIO.COM을 검색하여 파일 전체를 메모리에 로드하는 DR-DOS 볼륨 부트 레코드의 확장된 기능은, 고정된 위치나 연속적인 섹터에 저장되지 않은 경우에도 작동하며,[e][f][g][h][i][j] 8088/8086 프로세서만 있는 32 KB 메모리 시스템의 최소 요구 사항을 유지하고 더 큰 섹터 크기와 SYS /DR:ext 멀티 부트 기능을 계속 지원하면서도 어셈블리어의 통상적인 명령 코드 최적화 기법을 활용하여 7.05까지 포함될 수 있었다.[f] 대체 부트 유닛, LBA, FAT32, 그리고 DR-DOS 외에도 PC DOS/MS-DOS를 부팅할 수 있는 선택적 시설을 추가하기 위해, 7.07 섹터는 코드에 사용 가능한 512바이트 중 423 바이트 내에 모든 것을 짜 넣기 위해 자체 수정 코드, 기계어 수준의 명령 코드 프로그래밍, (문서화된) 부작용의 통제된 활용, 다중 레벨 데이터/코드 중첩 및 알고리즘적 폴딩 기법에 의존해야 했다. 이는 멀티 부트 및 체인 로드 시나리오에서 다른 운영 체제와의 하위 호환성 및 교차 호환성을 위한 요구 사항이었기 때문이다.

각주

  1. ↑ Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [November 1993]. 《Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1》 2판. Reading, Massachusetts: Addison Wesley. ISBN 0-201-63287-X. (xviii+856+vi pages, 3.5"-floppy) Errata:
  2. 1 2 3 4 5 6 7 8 Paul, Matthias R. (1997년 10월 2일) [1997-09-29]. “Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted”. 2003년 10월 4일에 원본 문서에서 보존된 문서. 2009년 3월 29일에 확인함.
  3. 1 2 3 4 5 6 7 8 9 Paul, Matthias R. (2017년 8월 14일) [2017-08-07]. “The continuing saga of Windows 3.1 in enhanced mode on OmniBook 300”. 《MoHPC - the Museum of HP Calculators》. 2017년 10월 6일에 원본 문서에서 보존된 문서. 2017년 10월 6일에 확인함. […] the DR-DOS FDISK does not only partition a disk, but can also format the freshly created volumes and initialize their boot sectors in one go, so there's no risk to accidentally mess up the wrong volume and no need for FORMAT /S or SYS. Afterwards, you could just copy over the remaining DR-DOS files, including the system files. It is important to know that, in contrast to MS-DOS/PC DOS, DR-DOS has "smart" boot sectors which will actually "mount" the file-system to search for and load the system files in the root directory instead of expecting them to be placed at a certain location. Physically, the system files can be located anywhere and also can be fragmented. […]
  4. 1 2 3 4 Zbikowski, Mark; 폴 앨런, Paul; 스티브 발머, Steve; Borman, Reuben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Farmer, Rick; 빌 게이츠, Bill; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; King, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc; McKinney, Bruce; Martin, Pascal; Mathers, Estelle; Matthews, Bob; Melin, David; Mergentime, Charles; Nevin, Randy; Newell, Dan; Newell, Tani; Norris, David; O'Leary, Mike; O'Rear, Bob; Olsson, Mike; Osterman, Larry; Ostling, Ridge; Pai, Sunil; 팀 패터슨, Tim; Perez, Gary; Peters, Chris; Petzold, Charles; Pollock, John; Reynolds, Aaron; Rubin, Darryl; Ryan, Ralph; Schulmeisters, Karl; Shah, Rajen; Shaw, Barry; Short, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). 〈Technical advisors〉《The MS-DOS Encyclopedia: versions 1.0 through 3.2》 Completely rework판. By Duncan, Ray; Bostwick, Steve; Burgoyne, Keith; Byers, Robert A.; Hogan, Thom; Kyle, Jim; Letwin, Gordon; Petzold, Charles; Rabinowitz, Chip; Tomlin, Jim; Wilton, Richard; Wolverton, Van; Wong, William; Woodcock, JoAnne. Redmond, Washington, USA: 마이크로소프트 프레스. ISBN 1-55615-049-0. LCCN 87-21452. OCLC 16581341. (xix+1570 pages; 26 cm) (NB. This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors. )
  5. 1 2 3 4 5 6 7 8 Paul, Matthias R. (1997년 7월 30일) [1994-05-01]. 《NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds》 3판 (독일어). MPDOSTIP. 2016년 11월 5일에 원본 문서에서 보존된 문서. 2012년 1월 11일에 확인함. (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the file.)
  6. 1 2 3 4 Paul, Matthias R. (2001년 4월 9일). 《NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds》 3판 (독일어). MPDOSTIP.
  7. 1 2 3 Rosch, Winn L. (1991년 2월 12일). “DR DOS 5.0 - The better operating system?”. 《PC Magazine》. 10권 3호. 241–246, 257, 264, 266쪽. 2019년 7월 26일에 확인함. […] SYS has been improved under DR-DOS 5.0 so you don't have to worry about leaving the first cluster free on a disk that you want to make bootable. The DR-DOS system files can be located anywhere on the disk, so any disk with enough free space can be set to boot your system. […] (NB. The source attributes this to the SYS utility while in fact this is a feature of the advanced bootstrap loader in the boot sector. SYS just plants this sector onto the disk.)
  8. 1 2 3 4 Paul, Matthias R. (2002년 2월 20일). “Can't copy”. 《opendos@delorie》. 2017년 10월 6일에 원본 문서에서 보존된 문서. 2017년 10월 6일에 확인함. […] The DR-DOS boot sector loads the whole IBMBIO.COM file into memory before it executes it. It does not care at all about the IBMDOS.COM file, which is loaded by IBMBIO.COM. […] The DR-DOS boot sector […] will find the […] kernel files as long as they are logically stored in the root directory. Their physical location on the disk, and if they are fragmented or not, is don't care for the DR-DOS boot sector. Hence, you can just copy the kernel files to the disk (even with a simple COPY), and as soon as the boot sector is a DR-DOS sector, it will find and load them. Of course, it is difficult to put all this into just 512 bytes, the size of a single sector, but this is a major convenience improvement if you have to set up a DR-DOS system, and it is also the key for the DR-DOS multi-OS LOADER utility to work. The MS-DOS kernel files must reside on specific locations, but the DR-DOS files can be anywhere, so you don't have to physically swap them around each time you boot the other OS. Also, it allows to upgrade a DR-DOS system simply by copying the kernel files over the old ones, no need for SYS, no difficult setup procedures as required for MS-DOS/PC DOS. You can even have multiple DR-DOS kernel files under different file names stored on the same drive, and LOADER will switch between them according to the file names listed in the BOOT.LST file. […]
  9. ↑ 《DR-DOS 7.03 WHATSNEW.TXT - Changes from DR-DOS 7.02 to DR-DOS 7.03》. Caldera, Inc. 1998년 12월 24일. 2019년 4월 8일에 원본 문서에서 보존된 문서. 2019년 4월 8일에 확인함. […] Added a stub which displays the build info if COUNTRY.SYS was erroneously considered being an device driver (DEVICE=COUNTRY.SYS). Also displays the same info if started as .COM program. […] Added a second compression method to further decrease the size of IBMBIO.COM. […]
  10. 1 2 3 4 Chappell, Geoff (January 1994). 〈Chapter 2: The System Footprint〉 1 printing, 1판. Schulman, Andrew; Pedersen, Amorette (편집). 《DOS Internals》. The Andrew Schulman Programming Series. Addison Wesley Publishing Company. ISBN 978-0-201-60835-9. (xxvi+738+iv pages, 3.5"-floppy ) Errata:
  11. ↑ Paul, Matthias R. (2001년 1월 17일). “FAT32 in DR-DOS”. 《opendos@delorie》. 2017년 10월 6일에 원본 문서에서 보존된 문서. 2017년 10월 6일에 확인함. […] The DR-DOS boot sector […] searches for the IBMBIO.COM (DRBIOS.SYS) file and then loads the *whole* file into memory before it passes control to it. […]
  12. ↑ Poarch, Mad (April 1993). “Booting Multiple Operating Systems with the DR Multiuser DOS LOADER Utility”. 《Developer Support Bullets》 (Novell) 5 (4). 2012년 3월 22일에 원본 문서에서 보존된 문서. 2013년 6월 28일에 확인함.
  13. ↑ Paterson, 팀 패터슨 (1994년 10월 3일). “The Origins of DOS: DOS Creator Gives His View of Relationship Between CP/M, MS-DOS” (PDF). 《Microprocessor Report》 (MicroDesign Resources (MDR)) 8 (13). ISSN 0899-9341. 2012년 5월 31일에 원본 문서 (PDF)에서 보존된 문서.
  14. ↑ Paterson, 팀 패터슨 (2007년 9월 30일). “Design of DOS”. 《DosMan Drivel》. 2013년 1월 20일에 원본 문서에서 보존된 문서. 2011년 7월 4일에 확인함.
  15. ↑ 킬달, Gary Arlen (June 1975). 《CP/M 1.1 or 1.2 BIOS and BDOS for Lawrence Livermore Laboratories》. An excerpt of the BDOS.PLM file header in the PL/M source code of CP/M 1.1 or CP/M 1.2 for Lawrence Livermore Laboratories (LLL)
    […]
    /* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
                        COPYRIGHT (C) GARY A. KILDALL
                                 JUNE, 1975                   */
    […]
    /*  B A S I C   D I S K    O P E R A T I N G   S Y S T E M  (B D O S)
                        COPYRIGHT (C) GARY A. KILDALL
                                JUNE, 1975                          */
    […]
  16. ↑ 킬달, Gary Arlen (January 1980). “The History of CP/M, The Evolution of an Industry: One Person's Viewpoint”. 《Dr. Dobb's Journal of Computer Calisthenics & Orthodontia》 5 (1): 6–7. 2016년 11월 24일에 원본 문서에서 보존된 문서. 2013년 6월 3일에 확인함. […] The first commercial licensing of CP/M took place in 1975 with contracts between Digital Systems and Omron of America for use in their intelligent terminal, and with Lawrence Livermore Laboratories where CP/M was used to monitor programs in the Octopus network. Little attention was paid to CP/M for about a year. In my spare time, I worked to improve overall facilities […] By this time, CP/M had been adapted for four different controllers. […] In 1976, Glenn Ewing approached me with a problem: IMSAI, Incorporated, for whom Glenn consulted, had shipped a large number of disk subsystems with a promise that an operating system would follow. I was somewhat reluctant to adapt CP/M to yet another controller, and thus the notion of a separated Basic I/O System (BIOS) evolved. In principle, the hardware dependent portions of CP/M were concentrated in the BIOS, thus allowing Glenn, or anyone else, to adapt CP/M to the Imsai equipment. Imsai was subsequently licensed to distribute CP/M version 1.3, which eventually evolved into an operating system called IMDOS. […]
  17. ↑ Shustek, Len (2016년 8월 2일). “In His Own Words: Gary Kildall”. 《Remarkable People》. 컴퓨터 역사 박물관. 2020년 3월 24일에 원본 문서에서 보존된 문서. 2020년 2월 24일에 확인함.
  18. ↑ 킬달, Gary Arlen (2016년 8월 2일) [1993]. Kildall, Scott; Kildall, Kristin (편집). 《Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry》 (PDF) (Manuscript, part 1). Kildall Family. 2016년 11월 17일에 원본 문서에서 보존된 문서. 2016년 11월 17일에 확인함.
  19. ↑ Killian, A. Joseph "Joe" (2001). “Gary Kildall's CP/M: Some early CP/M history - 1976–1977”. Thomas "Todd" Fischer, IMSAI. 2020년 3월 24일에 원본 문서에서 보존된 문서. 2013년 6월 3일에 확인함. […] When we failed to produce an operating system in a timely manner, Glenn started talking with Gary about CPM […] It took several months of twisting Gary's arm to get Gary to port it to the 8080. The final success came when Glenn talked Gary into just separating the I/O from the rest of it, with Glenn promising to re-write the I/O module for the IMSAI 8080 (which he did). So CPM on the IMSAI was a joint effort between Glenn and Gary. […]
  20. ↑ Fraley, Bob; Spicer, Dag (2007년 1월 26일). “Oral History of Joseph Killian, Interviewed by: Bob Fraley, Edited by: Dag Spicer, Recorded: 2007-01-26” (PDF). Mountain View, California: 컴퓨터 역사 박물관. CHM Reference number: X3879.2007. 2014년 7월 14일에 원본 문서 (PDF)에서 보존된 문서. 2013년 6월 3일에 확인함. Killian: "[…] Glenn […] would be talking with Gary, and he started twisting Gary's arm. He said, "Hey Gary, why can't we run this in this IMSAI?" "The I/O's all different, won't run." But Glenn persists and finally makes a deal with Gary. He says, "Okay Gary, if you split out the I/O, I'll write the BIOS, basic I/O's system," and Glenn named it then. "We'll split it out separately. I'll write that part, as long as you can make a division in the program there." And he got Gary to do that and Glenn put those two pieces together and was running Gary's CP/M on an IMSAI. Glenn let us know that, and it wasn't too much later than Bill was down there making arrangements with Gary Kildall to license CP/M. […] Now that the BIOS is separated out, anybody could write a BIOS for their machine, if it was 8080-based, and run this, so he started selling that separately under the company 디지털 리서치 that he formed and did quite well."
  21. ↑ 《Apricot Portable - Technical Reference Manual》. Section 3: Software. ACT (International) Limited. 1984. 2020년 1월 13일에 확인함. (228 pages)