# nmbl(No More Boot Loader): 부트로더 대신 커널을 사용

> Clean Markdown view of GeekNews topic #15802. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15802](https://news.hada.io/topic?id=15802)
- GeekNews Markdown: [https://news.hada.io/topic/15802.md](https://news.hada.io/topic/15802.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-07-12T10:02:02+09:00
- Updated: 2024-07-12T10:02:02+09:00
- Original source: [pretalx.com](https://pretalx.com/devconf-cz-2024/talk/W3AVCT/)
- Points: 7
- Comments: 1

## Summary

Red Hat 부트로더 엔지니어링 팀은 GRUB 부트로더의 복잡성과 보안 취약점을 해결하기 위해 nmbl이라는 새로운 솔루션을 개발 중입니다.리눅스 커널을 부트로더로 사용하여 빠른 기능 개발과 취약점 대응이 가능하며, 코드 중복을 방지합니다. nmbl은 UEFI에서 로드되고 통합 커널 이미지로 패키징되어 사용자에게 더 안전하고 효율적인 부팅 환경을 제공합니다.

## Topic Body

- Red Hat 부트로더 엔지니어링 팀은 GRUB 부트로더를 대체할 새로운 방안을 개발 중임  
- nmbl (no more boot loader)이라는 빠르고 안전한 리눅스 기반 사용자 공간 솔루션을 제안  
- **GRUB 부트로더의 문제점**  
  - GRUB은 강력하고 유연한 부트로더로 여러 아키텍처에서 사용됨 (x86_64, aarch64, ppc64le OpenFirmware)  
  - 그러나 기능이 복잡하여 유지보수가 어렵고, 리눅스 커널과 중복되거나 뒤처지는 경우가 많음  
  - 또한 많은 보안 취약점을 야기함  
- **리눅스 커널의 장점**  
  - 리눅스 커널은 큰 개발자 기반을 가지고 있어 빠른 기능 개발과 취약점 대응이 가능함  
  - 전반적인 검토가 더 철저하게 이루어짐  
- **새로운 솔루션: 커널을 부트로더로 사용**  
  - EFI 스텁에 의해 UEFI에서 로드되고, 통합 커널 이미지(UKI)로 패키징됨  
  - 커널, initramfs, 커널 명령줄이 최종 부트 타겟에 도달하는 데 필요한 모든 것을 포함함  
  - 필요한 모든 드라이버, 파일 시스템 지원, 네트워킹이 이미 내장되어 있어 코드 중복이 방지됨

## Comments



### Comment 27169

- Author: xguru
- Created: 2024-07-12T10:03:01+09:00
- Points: 2

#### [Hacker News 의견](https://news.ycombinator.com/item?id=40907933)   
- 10년 전부터 UEFI를 사용해왔음. 부팅 시간은 약간 단축되지만, 부트로더는 여러 이점이 있음  
  - Windows와의 듀얼 부팅을 쉽게 할 수 있음  
  - 커널 cmdline을 편집하여 부팅 문제를 해결할 수 있음  
  - 여러 커널과 initrd 이미지를 쉽게 선택할 수 있음  
  - UEFI 설정 메뉴에 쉽게 접근할 수 있음  
  - 다른 EFI 애플리케이션을 부팅할 수 있음  
  
- FreeBSD의 부트로더는 initramfs 없이 부팅할 수 있음. 더 스마트한 부트로더가 필요함  
  - ZFS를 이해하고 필요한 모듈을 미리 로드할 수 있음  
  - 모듈 의존성을 이해하고 필요한 모든 모듈을 미리 로드할 수 있음  
  
- UEFI 환경의 기능과 제약에 대한 오해가 많음. 프로젝트의 실제 목표를 잘못 이해하고 있음  
  - Lennart의 비판 글이 더 흥미로운 우려를 제기함  
  
- 90년대 DEC Alpha 시스템에서 Linux를 부팅하던 MILO를 떠올리게 함  
  - 중간 부트로더가 필요하며, 안정성을 중시하는 릴리스 주기가 필요함  
  - 데이터 기반 메뉴/설정 레이어가 필요함  
  
- 이전에 Chromebook에서 Linux+Coreboot를 사용했음. Tianocore UEFI BIOS의 드라이버 버그로 인해 Linux를 직접 사용했음  
  - Rust TUI를 작성하여 모든 파티션을 마운트하고 커널 이미지를 kexec함  
  - 모든 드라이버를 중복할 필요가 없다고 생각함  
  
- UEFI와 Linux의 기능을 더 많이 수용하는 것이 좋음. ZFSBootMenu는 4년 동안 EFI 애플리케이션을 제공해왔음  
  - 첫 번째 단계 커널 부팅이 1.5~2초 정도 걸림  
  
- kexec와의 호환성 문제에 대한 우려가 있음  
  - 예를 들어, NVidia 모듈은 kexec 전에 언로드해야 함  
  - ACPI 문제와 호환성 문제도 있음  
  - kexec 메커니즘이 다양한 커널 버전을 지원하도록 설계되었을 것이라고 추측함  
  
- EFI 스텁이 멀티 부팅, 커널 및 initrd를 설정한 후 점프하는 것은 간단함  
  - 중간 로더가 너무 크고 복잡해질 필요가 없음  
  - UEFI API와 다른 프로그래밍 환경을 피하기 위해 Linux 전체를 포함하는 것은 불필요함  
  
- 제안된 솔루션이 멀티 OS 부팅을 처리할 수 있을지 궁금함  
  - grub은 Linux와 Windows, 그리고 세 번째 OS까지 부팅할 수 있음  
  - Red Hat의 솔루션이 상업적 용도로만 제한될까 우려됨  
  - 1년에 한두 번만 재부팅하는 시스템에 어떤 문제를 해결하는지 이해하기 어려움  
  
- plain EFISTUB보다 이 솔루션을 사용하는 이유를 모르겠음  
  - Arch에서 EFISTUB을 사용하고 있으며, Windows 부팅 시 BIOS 메뉴를 사용함  
  - Linux 기반 부트로더의 이점을 이해하지 못함
