커널 이미지 간 제어 전송

커널 이미지 간 제어 전송

제목에서 알 수 있듯이 현재 멀티부트와 GRUB를 활용하는 기존 부트로더/커널 이미지가 있습니다. 내 사용자 정의 커널 이미지 끝에는 Linux bzImage 바이너리가 첨부되어 있습니다.

부팅 프로세스 중에 먼저 사용자 정의 부트로더/커널과 관련된 작업을 수행한 다음 Linux 부팅을 위해 실행을 bzImage로 전송하고 싶습니다.아니요시스템을 다시 시작하거나 GRUB 메뉴로 돌아갑니다.

주제에 대한 정보가 거의 또는 전혀 없으며 모든 리소스에서 듀얼 부팅 방법을 설명하는데 이는 내 목표가 아닙니다. 대신, 두 개의 커널을 함께 잼(하나는 내 사용자 정의 커널 이미지, 매우 기본)하고 순차적으로 실행하여 Linux 커널 이미지를 로드하지만 내 사용자 정의 커널/프로그램이 이전에 Loaded를 먼저 실행하는 동안에는 그렇지 않습니다.

이 주제에 대한 자료나 정보가 있으면 알려주시기 바랍니다. 감사합니다.

편집: 목표의 또 다른 부분은 두 커널을 별도의 엔터티로 로드하지 않고 Linux bzImage를 사용자 정의 커널/프로그램 끝에 추가한 다음 eipbzImage의 시작 주소로 이동하여 제어를 전송하는 것입니다.

답변1

다음과 매우 유사한 프로세스를 사용하면 목표를 달성할 수 있을 것 같습니다.kexec시스템 호출.최신 컴퓨터에는 여러 개의 독립 CPU 코어가 있는 경향이 있기 때문에 이 프로세스는 생각보다 더 복잡할 수 있습니다.

초기 커널이 단일 CPU 코어만 사용하도록 제한하지 않는 한, 사용자 정의 커널은 새 코어로 점프하기 전에 다른 코어가 중지되었는지 확인해야 합니다. 그렇지 않으면 서로 간섭하는 서로 다른 코어를 실행하는 서로 다른 코어가 발생할 수 있습니다.

Arch 위키에는 사용법에 대한 정보가 있습니다 kexec.

관련 정보