부트로더

Bootloader
GNU GRUB, 인기 있는 오픈 소스 부트로더
Windows 부트로더

부트 로더(boot[1][2] loader) 또는 부트[2] 매니저 및 부트스트랩 로더(boot strap loader)라고도 하는 부트로더는 컴퓨터 부팅을 담당하는 컴퓨터 프로그램입니다.

컴퓨터의 전원이 꺼지면 운영 체제, 응용 프로그램 코드 및 데이터를 포함한 소프트웨어는 비휘발성 메모리에 저장된 상태로 유지됩니다.컴퓨터의 전원이 켜지면 일반적으로 RAM(Random-Access Memory)에 운영 체제나 로더가 없습니다.컴퓨터는 먼저 일부 필요한 데이터와 함께 읽기 전용 메모리에 저장된 비교적 작은 프로그램(ROM, 이후 EEPROM, NOR 플래시)을 실행하여 RAM(특히 x86 시스템에서)을 초기화하고 비휘발성 장치(일반적으로 블록 장치, NAND 플래시 등) 또는 운영 체제 프로그램과 데이터를 RAM에 로드할 수 있는 장치에 액세스합니다.

이전의 일부 컴퓨터 시스템은 인간 오퍼레이터 또는 주변기기로부터 부팅 신호를 수신하면 특정 위치에 있는 메모리에 매우 적은 수의 고정 명령을 로드하여 최소 1개의 CPU를 초기화하고 CPU를 해당 명령을 가리키고 실행을 시작할 수 있습니다.이러한 순서는, 통상, 일부의 페리페럴 디바이스로부터 입력 조작을 개시합니다(오퍼레이터에 의해서 스위치 선택 가능).다른 시스템에서는 하드웨어 명령어를 주변기기 또는 I/O컨트롤러에 직접 전송하여 매우 간단한 입력 조작(예를 들어 "시스템 디바이스의 섹터 0을 메모리에 읽기" 등)을 실행하여 소수의 부트로더 명령을 메모리에 효과적으로 로드하는 경우가 있습니다.이것은, 로부터의 완료 신호입니다.그런 다음 I/O 장치를 사용하여 CPU에 의한 명령 실행을 시작할 수 있습니다.

소형 컴퓨터에서는 유연성은 떨어지지만 자동 부트 로더 메커니즘을 사용하여 컴퓨터가 미리 정해진 소프트웨어 구성으로 빠르게 부팅되도록 하는 경우가 많습니다.예를 들어 많은 데스크톱 컴퓨터에서 부트스트랩 프로세스는 CPU가 ROM에 포함된 소프트웨어(예를 들어 IBM PC 또는 IBM PC 호환 BIOS)를 미리 정의된 주소로 실행하는 것으로 시작됩니다(인텔 x86 시리즈를 포함한 일부 CPU는 외부의 도움 없이 이 소프트웨어를 리셋한 후 실행하도록 설계되어 있습니다).이 소프트웨어에는 부팅에 참여할 수 있는 디바이스를 검색하고 가장 유망한 디바이스의 특수 섹션(일반적으로 부팅 섹터)에서 작은 프로그램을 로드하는 기본적인 기능이 포함되어 있습니다.일반적으로 섹터의 시작점 등 고정 엔트리 포인트에서 시작합니다.

1단계 부트로더

부트 로더는, 특히 사이즈의 제약에 직면할 가능성이 있습니다.예를 들어, 이전의 IBM PC나 호환기기에서 부트 섹터는 일반적으로 32KiB[3][4](나중에 64KiB로[5] 완화)의 시스템 메모리만으로 동작하고, 원래의 8088/8086 프로세서에서 서포트되고 있는 명령어만을 사용합니다.고정 디스크 이동식 드라이브에 있는 PC 부트 로더의 첫 번째 스테이지(FSBL, 첫 번째 스테이지 부트 로더)는 4개의 파티션 엔트리와 2바이트 부트 시그니처가 포함된 기본 64바이트 파티션 테이블을 위한 공간을 확보하기 위해 마스터 부트 레코드의 첫 번째 446바이트에 들어가 있어야 합니다.또는 BIOS에서 적절한 부트 로더를 위해 필요합니다.게다가 4개 이상의 파티션 엔트리(각각 최대 16바이트), 디스크 시그니처(6바이트), 디스크 타임스탬프(6바이트), 어드밴스드 액티브 파티션(18바이트), 특수 멀티 부트 로더 등의 추가 기능도 일부 환경에서 지원해야 합니다.플로피 및 슈퍼플로피 볼륨 부트레코드에서는 DOS 4.0 이후 FAT12FAT16 볼륨에서 확장 BIOS 파라미터 블록에 최대 59바이트가 사용되는데 반해 DOS 7.1에서 도입된 FAT32 EBPB는 섹터 크기를 512바이트로 가정할 때 부트로더에 필요한 바이트는 불과 423바이트입니다.따라서 Microsoft 부트 섹터는 전통적으로 부트 프로세스에 일정한 제한을 가했습니다.예를 들어 부트 파일은 파일시스템의 루트 디렉토리의 고정 위치에 배치되어 연속되는 [6][7]섹터로 저장되어야 합니다.이러한 조건에서는,SYS명령어 및 DOS의 최신 버전의 [7][nb 1]DOS에서는 약간 완화됩니다.그 후 부트로더는 파일의 처음 3개의 섹터를 메모리에 로드할 수 있게 되었습니다.이 [7]섹터에는 나머지 파일을 메모리에 로드할 수 있는 다른 내장 부트 로더가 포함되어 있었습니다.Microsoft는 LBA 및 FAT32 지원을 추가했을 때 크기를 이유로 두 개 이상의 물리 섹터에 도달하고 386 명령을 사용하는 부트 로더로 전환하기도 했습니다.동시에 다른 벤더는 최소한의 메모리(32KiB)와 프로세서 지원(8088/8086)[nb 2]만으로 기존의 제약을 완화하지 않고 하나의 부트 섹터에 훨씬 더 많은 기능을 집약할 수 있었습니다.예를 들어 DR-DOS 부트 섹터는 FAT12, FAT16 및 FAT32 파일 시스템에서 부트 파일을 찾아 CHS 또는 LBA를 통해 전체적으로 메모리에 로드할 수 있습니다.이 파일은 고정 위치나 연속되는 [8][3][9][10][11][nb 3][nb 2]섹터에 저장되지 않은 경우에도 마찬가지입니다.

BIOSUEFI는 비휘발성 장치에서 운영 체제를 로드할 뿐만 아니라 운영 체제용 시스템 하드웨어도 초기화합니다.

1단계 부트 로더의 로는 BIOS, 코어 부트, Libreboot 및 Das U-Boot 등이 있습니다.

2단계 부트로더

GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR, iBoot 의 2단계 부트 로더는 그 자체가 운영체제는 아니지만 운영체제를 올바르게 로드하고 실행을 전송할 수 있습니다.이후 운영체제는 자신을 초기화하여 추가 디바이스 드라이버를 로드할 수 있습니다.2단계 부트 로더는 자체 동작에 드라이버가 필요 없습니다.대신 BIOS나 Open Firmware 등의 시스템 펌웨어에 의해 제공되는 범용 스토리지 액세스 방식을 사용할 수 있습니다.단, 일반적으로 하드웨어 기능이 제한되고 성능이 [12]저하됩니다.

많은 부트 로더를 설정하여 사용자에게 여러 부팅 옵션을 제공할 수 있습니다.이러한 옵션에는 다른 운영 체제(다른 파티션 또는 드라이브에서 듀얼 또는 멀티 부팅하는 경우), 같은 운영 체제의 다른 버전(새로운 버전에서 예기치 않은 문제가 발생할 경우), 다른 운영 체제 로드 옵션(예: rescue 또는 safe 모드로 부팅) 및 기능하는 일부 독립 실행형 프로그램이 포함됩니다.메모리 테스터(예를 들어 memtest86+), 기본 셸(GNU GRUB와 같은) 또는 심지어 게임(PC [13]부터 게임 목록 참조)과 같은 운영 체제가 없습니다.일부 부트 로더는 다른 부트 로더도 로드할 수 있습니다.예를 들어 GRUB은 Windows를 직접 로드하지 않고 BOOTMGR을 로드합니다.통상 디폴트 선택은 사용자가 키를 눌러 선택을 변경할 수 있는 시간 지연과 함께 미리 선택됩니다.이 지연이 지나면 기본 선택이 자동으로 실행되므로 대화 없이 일반 부팅이 가능합니다.

기동 프로세스는, 컴퓨터가 유저와 대화할 수 있는 상태가 되어 있는 경우나, operating system이 시스템 프로그램 또는 애플리케이션 프로그램을 실행할 수 있는 경우에 완료되는 것으로 간주할 수 있습니다.

많은 임베디드 시스템은 즉시 부팅해야 합니다.예를 들어 디지털 텔레비전이나 GPS 내비게이션 장치가 시작될 때까지 1분 동안 기다리는 것은 일반적으로 허용되지 않습니다.따라서 이러한 디바이스는 ROM 또는 플래시 메모리에 소프트웨어 시스템을 탑재하고 있기 때문에 디바이스는 즉시 기능을 시작할 수 있습니다.로드가 사전에 계산되어 ROM에 저장되기 때문에 로딩이 거의 필요하지 않습니다.

크고 복잡한 시스템에서는 운영체제 및 기타 프로그램이 로드되어 실행할 준비가 될 때까지 여러 단계로 진행되는 부팅 절차가 있을 수 있습니다.운영체제는 시작도 중지도 하지 않는 것처럼 설계되어 있기 때문에 부트 로더는 운영체제를 로드하고 그 시스템 내에서 단순한 프로세스로 자신을 구성한 후 제어권을 운영체제로 되돌릴 수 없게 이전할 수 있습니다.부트 로더는 다른 프로세스와 마찬가지로 정상적으로 종료됩니다.

네트워크 부팅

대부분의 컴퓨터는 컴퓨터 네트워크를 통해 부팅할 수도 있습니다.이 시나리오에서는 운영체제는 서버의 디스크에 저장되며 TFTP(Trivial File Transfer Protocol) 의 간단한 프로토콜을 사용하여 클라이언트에 전송됩니다.이러한 부품이 전송되면 OS가 부팅 프로세스의 제어를 이어받습니다.

2단계 부트 로더와 마찬가지로 네트워크 부팅은 네트워크 인터페이스의 부트 ROM에 의해 제공되는 범용 네트워크 액세스 방식을 사용하여 시작됩니다.이 방법에는 일반적으로 PXE(Preboot Execution Environment) 이미지가 포함되어 있습니다.드라이버는 필요 없습니다만, OS의 커널과 드라이버를 전송해 기동할 때까지, 시스템의 기능은 제한됩니다.그 결과, ROM 베이스의 기동이 완료하면, 네트워크 인터페이스를 사용할 수 없는 operating system에의 네트워크 기동이 완전하게 가능하게 됩니다.

「 」를 참조해 주세요.

메모들

  1. ^ PC DOS 5.0 매뉴얼에는 시스템파일을 연속할 필요가 없다고 잘못 기재되어 있습니다.단, 부트 프로세스가 동작하려면 시스템파일이 첫 번째 2개의 디렉토리 엔트리와 첫 번째 3개의 섹터를 점유해야 합니다.IBMBIO.COM여전히 인접하게 저장해야 합니다. SYS님은 이러한 요건에 계속 대응하고 있습니다.
  2. ^ a b 예를 들어, MS-DOS/PC DOS와 비교하여 DR-DOS MBR과 부트 섹터의 확장 기능은 여전히 기존의 코드 최적화 기술을 7.05까지 사용하여 달성될 수 있지만, LBA, FAT32 및 LOADER의 추가는 자체 수정, 운영 코드 수준프로그래밍에 의존해야 했다.다중 부트 및 체인 로드 시나리오에서 다른 운영 체제와의 역호환성 및 교차 호환성이 요구되었기 때문에 부작용, 다중 수준 데이터/코드 중첩 및 단일 물리적 섹터로 모든 것을 압축하는 알고리즘 폴딩 기술의 활용.
  3. ^ DR-DOSVBR이 전체를 로드하는 규칙에는 예외가 하나 있습니다.IBMBIO.COM파일로 메모리에 저장:IBMBIO.COM파일이 약 29KB보다 크면 전체 파일을 메모리에 로드하려고 하면 부트 로더가 스택 재배치된 Disk Parameter Table(DPT/FDPB)을 덮어씁니다.따라서 DR-DOS 7.07 VBR은 파일의 첫 번째 29KB만 메모리에 로드하고 첫 번째 부분에 내장된 다른 로더에 의존합니다.IBMBIO.COM이 상태를 확인하고 필요에 따라 나머지 파일을 메모리에 로드합니다.이로 인해 호환성 문제가 발생하지 않습니다.IBMBIO.COM이 로더가 없는 이전 버전에서는 의 크기가 이 제한을 초과한 적이 없습니다.듀얼 엔트리 구조와 조합하면 PC DOS VBR에 의해 시스템을 로드할 수 있습니다. VBR은 파일의 처음 3개의 섹터만 메모리에 로드합니다.

레퍼런스

  1. ^ "GNU GRUB - GNU Project - Free Software Foundation (FSF)". www.gnu.org. Retrieved 27 September 2021.
  2. ^ a b "systemd-boot". www.freedesktop.org. Retrieved 27 September 2021.
  3. ^ a b Paul, Matthias R. (2 October 1997) [29 September 1997]. "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT and BOOT.TXT - A short description of how OpenDOS is booted". Archived from the original on 4 October 2003. Retrieved 29 March 2009. [1]
  4. ^ Sakamoto, Masahiko (13 May 2010). "Why BIOS loads MBR into 7C00h in x86?". glamenv-septzen.net. Retrieved 22 August 2012.
  5. ^ Compaq computer corporation; Phoenix technologies ltd; Intel corporation (11 January 1996). "BIOS boot specification 1.01" (PDF). Retrieved 21 December 2017.
  6. ^ Zbikowski, 마크, 앨런, 폴, 발머, 스티브, 보먼 판사, 르우벤, 보먼 판사, 롭, 버틀러, 존은 캐롤, 척이며, 마크, 첼, 데이비드. Colee, 마이크, 코트니, 마이크;Dryfoos, 마이크, 던컨, 레이첼, Eckhardt, 커트, 에번스, 에릭, 농부, 릭, 게이츠, 빌, 기어리, 마이클 그리핀, 밥. 호가스, 더그. 존슨, 제임스 W.;Kermaani, Kaamel, 왕, Adrian은;. 코흐, 리드, 란도브스키, 제임스 라슨, 크리스, 레넌, 토머스, Lipkie, 댄, 맥도날드, 마크, 맥키니, 브루스, 마틴, 파스칼, Mathers가, 에스텔. Matthews, 밥, Melin, 데이비드. Mergentime, Charles:네빈, 랜디, 뉴웰, 댄, 뉴웰, 타니, 노리스, 데이비드, 있을 때 오리어리, 마이크;O'Rear, 밥, 올손, 마이크;Osterman, 래리, Ostling, 리지, 빠이, 선일. 패터슨, 팀;P.에레즈, 게리, 피터스, 크리스, 페쫄트, Charles:폴록, 존은 레이놀즈, 아론, 루빈은 대릴, 라이언, 랠프, Schulmeisters, 칼, 샤, Rajen, 쇼, 배리, 쇼트, 앤서니, Slivka, 벤, Smirl, 존, Stillmaker, 베티, 스토다드, 존은 틸먼, 데니스..휘튼, 그렉, Yount, 나탈리. Zeck, 스티브(1988년)."기술 고문".그 MS-DOS백과 사전:버전 1.03.2를 통해.덩컨, 레이, 보츠윅, 스티브, 버고인, 키스, 바이어스, 로버트 A.;까지.호건, 톰, 카일, 짐,. Letwin, 고든, 페쫄트, Charles:라비, 칩, 톰린, 짐, 윌턴 양탄자, 리처드, 울버 턴, 반, 웡은 윌리엄;우드콕. 도요목 도요과의 조류., JoAnne(완전히 교육 reworked.).워싱턴 주, 미국:MicrosoftPress.아이 에스비엔 1-55615-049-0. LCCN 87-21452.OCLC 16581341.(xix+1570 페이지, 26))(NB다.이 판은 다른 작가 팀에 의해 철회된 1986년 초판을 광범위하게 수정한 후 1988년에 출판되었다.[2])
  7. ^ a b c Chappell, Geoff (January 1994). "Chapter 2: The system footprint". In Schulman, Andrew; Pedersen, Amorette (eds.). DOS Internals. The Andrew Schulman programming series (1st printing, 1st ed.). Addison-Wesley. ISBN 978-0-201-60835-9. (xxvi+738+iv 페이지, 3.5" 플로피 [3][4]) 에라타: [5][6][7]
  8. ^ Rosch, 윈. L.(122월 1991년)."DRDOS5.0-더 나은 운영 시스템일까요?".PCMagazine.Vol10, 번호 3.를 대신하여 서명함. 241–246, 257년, 264,266.는 25일부터 2019년에 원래에서 Archived.7월 26일 2019년 Retrieved.[…]은 DRDOS5.0에 당신이 무료로 당신은 부팅 가능하도록 하기 원하는 디스크의 첫번째 클러스터를 옮기는 것에 관해 걱정할 필요가 없도록 개선하였다.DR은 도스 시스템 파일이 디스크에 충분한 자유 공간에 어떤 디스크 시스템 부팅하는 데 설정할 수 있으며 위치할 수 있다.[…](NB다.소식통은 이 특성을 가져옵니다.SYS이것은 부트 섹터에서의 고도의 부트스트랩 로더의 기능입니다. SYS이 섹터를 디스크에 심기만 하면 됩니다.)
  9. ^ Paul, Matthias R. (17 January 2001). "FAT32 in DR-DOS". opendos@delorie. Archived from the original on 6 October 2017. Retrieved 6 October 2017. […] 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. […]
  10. ^ Paul, Matthias R. (20 February 2002). "Can't copy". opendos@delorie. Archived from the original on 6 October 2017. Retrieved 9 October 2017. […] 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 simply 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. […]
  11. ^ Paul, Matthias R. (14 August 2017) [7 August 2017]. "The continuing saga of Windows 3.1 in enhanced mode on OmniBook 300". MoHPC - the museum of HP calculators. Archived from the original on 6 August 2017. Retrieved 6 October 2017. […] 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. […]
  12. ^ "Chapter 6 - Troubleshooting startup and disk problems". Windows NT server resource kit. Microsoft. Archived from the original on 15 May 2007.
  13. ^ "Tint". coreboot. Retrieved 20 November 2010.

외부 링크