답변:
BIOS는 커널을로드하는 방법을 알아야합니다. 그러면 BIOS가 지나치게 복잡해집니다. 사용 가능한 여러 운영 체제를로드하는 방법, 커널 매개 변수를 커널 매개 변수로 전달하는 방법 등을 알아야하는 BIOS를 상상해보십시오.
따라서 하드웨어 만 초기화하고 부트 로더가 저장된 알려진 위치로 이동합니다. 그런 다음 컨트롤이 전달됩니다.
에서 유닉스 및 인터넷 기본 HOWTO :
BIOS가 왜 커널을 직접로드하지 않는지 궁금 할 수 있습니다. 왜 부트 로더로 2 단계 프로세스를 수행해야합니까? 글쎄, BIOS는 그리 똑똑하지 않습니다. 사실 그것은 매우 어리 석고 리눅스는 부팅 후 전혀 사용하지 않습니다. 원래 작은 디스크를 가진 기본 8 비트 PC 용으로 작성되었으며 문자 그대로 커널을 직접로드하기에 충분한 디스크에 액세스 할 수 없습니다. 부트 로더 단계를 사용하면 유닉스가 충분하지 않은 경우에도 디스크의 다른 곳에서 여러 운영 체제 중 하나를 시작할 수 있습니다.
BIOS가 실행되는 첫 번째 프로그램은 다음과 같습니다. ( Wikipedia에서 )
BIOS 소프트웨어는 PC에 내장되어 있으며 전원이 켜질 때 ( '부트 펌웨어') PC가 실행하는 첫 번째 코드입니다.
그러나 펌웨어 는 소프트웨어입니다. 따라서 GRUB 매뉴얼은 적어도 그 부분에서 혼란스러워한다고 가정합니다. 부트 로더는 컴퓨터에서 실행 되는 최초의 사용자 정의 소프트웨어 로 볼 수 있습니다 .
그 이유는 유연성입니다. 하나의 하드 디스크 (Windows, Linux 등)에 여러 다른 OS가 있거나 동일한 OS의 여러 다른 버전이있을 수 있습니다. 따라서 하드 디스크에 설치된 각 OS가있는 위치, 각로드 방법,로드 방법,로드 여부, 메뉴 표시 여부 등을 알고있는 OS 독립적 인 코드를 사용하는 것이 좋습니다. 부트 로더.
BIOS는 하드 디스크 (제 1 섹터)의 사전 정의 된 위치에있는 코드를로드하고 실행합니다. 이 코드를 부트로 더라고하지만 기술적으로 Windows를 빈 하드 디스크에 설치 한 경우이 코드는 Windows에서도 설치되므로 Windows 부트 로더가 Windows 이외의 다른 OS를로드 할 수 없으므로 Windows의 일부로 호출 할 수 있습니다.
컴퓨터가 시작될 때 실행되는 첫 번째 소프트웨어 프로그램과 관련하여 : 펌웨어 / 소프트웨어 구별은 매우 얇으며 최신 컴퓨터의 시작 프로세스는 매우 복잡합니다. BIOS 자체도 모 놀리 식 프로그램이 아니라 서로 다른 여러 단계로 연결되어 있습니다. 그러나 부트 로더는 사용자가 변경할 수 있는 첫 번째 코드입니다. 이것은 사용자가 바이러스에 감염, 삭제, 감염시킬 수있는 첫 번째 코드입니다. 기술적으로 BIOS가 실행되는 첫 번째 소프트웨어 인 반면 부트 로더는 컴퓨터가 사용자를 부팅하지 않으면 괜찮은지 확인합니다.
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에 갖기 시작한 이래로 기술적 인 이유는 없었습니다.