부트 로더가 왜 필요한가요?


29

BIOS 또는 펌웨어로 사용되는 유사한 장치가 시작된 후 제어는 내가 아는 한 부트 로더로 전달됩니다.

BIOS가 OS 커널을 직접로드 할 수없는 이유는 무엇입니까?

또한 GRUB 매뉴얼은 다음과 같이 말합니다. 간단히 말하면 부트 로더는 컴퓨터가 시작될 때 실행되는 첫 번째 소프트웨어 프로그램입니다 . BIOS가 첫 번째로 실행되는 프로그램이 아닙니까?


답변:


28

BIOS는 커널을로드하는 방법을 알아야합니다. 그러면 BIOS가 지나치게 복잡해집니다. 사용 가능한 여러 운영 체제를로드하는 방법, 커널 매개 변수를 커널 매개 변수로 전달하는 방법 등을 알아야하는 BIOS를 상상해보십시오.

따라서 하드웨어 만 초기화하고 부트 로더가 저장된 알려진 위치로 이동합니다. 그런 다음 컨트롤이 전달됩니다.

에서 유닉스 및 인터넷 기본 HOWTO :

BIOS가 왜 커널을 직접로드하지 않는지 궁금 할 수 있습니다. 왜 부트 로더로 2 단계 프로세스를 수행해야합니까? 글쎄, BIOS는 그리 똑똑하지 않습니다. 사실 그것은 매우 어리 석고 리눅스는 부팅 후 전혀 사용하지 않습니다. 원래 작은 디스크를 가진 기본 8 비트 PC 용으로 작성되었으며 문자 그대로 커널을 직접로드하기에 충분한 디스크에 액세스 할 수 없습니다. 부트 로더 단계를 사용하면 유닉스가 충분하지 않은 경우에도 디스크의 다른 곳에서 여러 운영 체제 중 하나를 시작할 수 있습니다.

BIOS가 실행되는 첫 번째 프로그램은 다음과 같습니다. ( Wikipedia에서 )

BIOS 소프트웨어는 PC에 내장되어 있으며 전원이 켜질 때 ( '부트 펌웨어') PC가 실행하는 첫 번째 코드입니다.

그러나 펌웨어 소프트웨어입니다. 따라서 GRUB 매뉴얼은 적어도 그 부분에서 혼란스러워한다고 가정합니다. 부트 로더는 컴퓨터에서 실행 되는 최초의 사용자 정의 소프트웨어 로 볼 수 있습니다 .


10

그 이유는 유연성입니다. 하나의 하드 디스크 (Windows, Linux 등)에 여러 다른 OS가 있거나 동일한 OS의 여러 다른 버전이있을 수 있습니다. 따라서 하드 디스크에 설치된 각 OS가있는 위치, 각로드 방법,로드 방법,로드 여부, 메뉴 표시 여부 등을 알고있는 OS 독립적 인 코드를 사용하는 것이 좋습니다. 부트 로더.

BIOS는 하드 디스크 (제 1 섹터)의 사전 정의 된 위치에있는 코드를로드하고 실행합니다. 이 코드를 부트로 더라고하지만 기술적으로 Windows를 빈 하드 디스크에 설치 한 경우이 코드는 Windows에서도 설치되므로 Windows 부트 로더가 Windows 이외의 다른 OS를로드 할 수 없으므로 Windows의 일부로 호출 할 수 있습니다.

컴퓨터가 시작될 때 실행되는 첫 번째 소프트웨어 프로그램과 관련하여 : 펌웨어 / 소프트웨어 구별은 매우 얇으며 최신 컴퓨터의 시작 프로세스는 매우 복잡합니다. BIOS 자체도 모 놀리 식 프로그램이 아니라 서로 다른 여러 단계로 연결되어 있습니다. 그러나 부트 로더는 사용자가 변경할 수 있는 첫 번째 코드입니다. 이것은 사용자가 바이러스에 감염, 삭제, 감염시킬 수있는 첫 번째 코드입니다. 기술적으로 BIOS가 실행되는 첫 번째 소프트웨어 인 반면 부트 로더는 컴퓨터가 사용자를 부팅하지 않으면 괜찮은지 확인합니다.


1
경험상 사용자는 확실히 BIOS를 깰 수 있습니다.
모니카 해밍 중지

2

BIOS가 OS 커널을 직접로드 할 수없는 이유는 무엇입니까?

세 가지 이유 :

  • 1981 년에 도입 된 최초의 PC 플랫폼의 BIOS는 CP / M 운영 체제와 동일한 역할, 즉 몇 개의 장치를위한 얇은 추상화 계층과 간단한 디스크 부트 로더로 작동하도록되어있었습니다. CP / M에는 파일 시스템을 처리하는 "BDOS"라는 또 다른 계층이 있습니다. DOS는 당시 유행 한 운영 체제 였기 때문에 CP / M과 여러면에서 비슷했으며, 유사하게 구성되었습니다. BIOS는 플랫폼의 하드웨어 별 측면, 즉 OS의 드라이버가 현재 수행하는 역할을 처리하기위한 것입니다.

  • OS와 별개로 파일 시스템의 개념은 아직 실제로 채택되지 않았습니다.

  • 현재 RAM과 ROM은 비싸고 리소스가 부족했습니다. 원래 IBM 5150 PC는 최소 16K의 RAM ( 참조 ) 으로 얻을 수 있습니다 . 이 시스템의 ROM 크기는 48K이며 기본 인터프리터가 포함되어 있습니다. 당시에는 표준 파일 시스템과 같은 것이 없었습니다.

DOS가이 플랫폼에서 가장 널리 사용되는 OS가되었으며 이후이 설정으로 작동 한 Windows가 실제 부팅 로딩 기능을 포함하도록 BIOS를 이러한 방식으로 확장 할 생각은 없었습니다.

UEFI의 기능에 대해 잘 모르겠습니다. Windows가 어떤 이유로 든 사용하지 않는 실제 부트로드 기능이있을 수 있습니다 (Windows는 설치할 때 자체 부팅 관리자를 사용해야 함). U-Boot와 같은 다른 비 BIOS 펌웨어 및 많은 전화 및 라우터의 펌웨어는 커널을 직접로드하고 실행합니다. BIOS가 더 많은 일을 할 공간을 ROM에 갖기 시작한 이래로 기술적 인 이유는 없었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.