7 คะแนน โดย xguru 2024-07-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ทีมวิศวกรรมบูตโหลดเดอร์ของ Red Hat กำลังพัฒนาแนวทางใหม่เพื่อแทนที่บูตโหลดเดอร์ GRUB
  • เสนอ nmbl (no more boot loader) ซึ่งเป็นโซลูชัน user space บน Linux ที่รวดเร็วและปลอดภัย
  • ปัญหาของบูตโหลดเดอร์ GRUB
    • GRUB เป็นบูตโหลดเดอร์ที่ทรงพลังและยืดหยุ่น ใช้งานบนหลายสถาปัตยกรรม (x86_64, aarch64, ppc64le OpenFirmware)
    • อย่างไรก็ตาม ฟีเจอร์มีความซับซ้อน ทำให้ดูแลรักษายาก และหลายครั้งซ้ำซ้อนกับ Linux kernel หรือพัฒนาตามไม่ทัน
    • อีกทั้งยังก่อให้เกิดช่องโหว่ด้านความปลอดภัยจำนวนมาก
  • ข้อดีของ Linux kernel
    • Linux kernel มีฐานนักพัฒนาขนาดใหญ่ จึงสามารถพัฒนาฟีเจอร์และรับมือช่องโหว่ได้อย่างรวดเร็ว
    • การทบทวนโดยรวมทำได้อย่างเข้มงวดยิ่งกว่า
  • โซลูชันใหม่: ใช้เคอร์เนลเป็นบูตโหลดเดอร์
    • ถูกโหลดบน UEFI โดย EFI stub และแพ็กเกจเป็น Unified Kernel Image (UKI)
    • ประกอบด้วยเคอร์เนล, initramfs และ kernel command line พร้อมทุกอย่างที่จำเป็นเพื่อไปถึงเป้าหมายการบูตสุดท้าย
    • มีไดรเวอร์ การรองรับระบบไฟล์ และเครือข่ายที่จำเป็นทั้งหมดฝังมาแล้ว จึงป้องกันการซ้ำซ้อนของโค้ด

1 ความคิดเห็น

 
xguru 2024-07-12

ความคิดเห็นจาก Hacker News

  • ใช้ UEFI มาตั้งแต่ 10 ปีก่อน เวลาในการบูตสั้นลงเล็กน้อย แต่บูตโหลดเดอร์ก็มีข้อดีหลายอย่าง

    • ทำ dual boot กับ Windows ได้ง่าย
    • แก้ไข kernel cmdline เพื่อแก้ปัญหาการบูตได้
    • เลือก kernel และอิมเมจ initrd หลายตัวได้ง่าย
    • เข้าถึงเมนูตั้งค่า UEFI ได้ง่าย
    • บูตแอปพลิเคชัน EFI อื่น ๆ ได้
  • บูตโหลดเดอร์ของ FreeBSD สามารถบูตได้โดยไม่ต้องใช้ initramfs ต้องการบูตโหลดเดอร์ที่ฉลาดกว่านี้

    • เข้าใจ ZFS และโหลดโมดูลที่จำเป็นล่วงหน้าได้
    • เข้าใจ dependency ของโมดูลและโหลดโมดูลที่จำเป็นทั้งหมดล่วงหน้าได้
  • มีความเข้าใจผิดมากเกี่ยวกับความสามารถและข้อจำกัดของสภาพแวดล้อม UEFI และยังเข้าใจเป้าหมายที่แท้จริงของโปรเจ็กต์ผิดด้วย

    • บทวิจารณ์ของ Lennart ตั้งข้อกังวลที่น่าสนใจกว่า
  • ทำให้นึกถึง MILO ที่ใช้บูต Linux บนระบบ DEC Alpha ในยุค 90

    • จำเป็นต้องมีบูตโหลดเดอร์ตัวกลาง และต้องมีรอบการออกรุ่นที่ให้ความสำคัญกับเสถียรภาพ
    • ต้องมีเลเยอร์เมนู/การตั้งค่าที่ขับเคลื่อนด้วยข้อมูล
  • ก่อนหน้านี้เคยใช้ Linux+Coreboot บน Chromebook ใช้ Linux โดยตรงเพราะบั๊กของไดรเวอร์ใน Tianocore UEFI BIOS

    • เขียน Rust TUI เพื่อเมานต์ทุกพาร์ทิชันและ kexec อิมเมจเคอร์เนล
    • คิดว่าไม่จำเป็นต้องทำซ้ำไดรเวอร์ทั้งหมด
  • น่าจะดีกว่าถ้ายอมรับความสามารถของ UEFI และ Linux ให้มากขึ้น ZFSBootMenu ให้บริการแอปพลิเคชัน EFI มานาน 4 ปีแล้ว

    • การบูตเคอร์เนลในขั้นแรกใช้เวลาประมาณ 1.5~2 วินาที
  • มีความกังวลเรื่องปัญหาความเข้ากันได้กับ kexec

    • ตัวอย่างเช่น โมดูล NVidia ต้อง unload ก่อนทำ kexec
    • ยังมีปัญหาเรื่อง ACPI และความเข้ากันได้ด้วย
    • คาดว่ากลไก kexec น่าจะถูกออกแบบมาให้รองรับเคอร์เนลหลายเวอร์ชัน
  • EFI stub ที่ตั้งค่า multiboot, kernel และ initrd แล้วค่อยกระโดดไปทำงานนั้นเรียบง่าย

    • ไม่จำเป็นต้องมีตัวโหลดกลางที่ใหญ่และซับซ้อนเกินไป
    • การรวม Linux ทั้งก้อนเข้าไปเพื่อหลีกเลี่ยง UEFI API และสภาพแวดล้อมการเขียนโปรแกรมแบบอื่นเป็นสิ่งที่ไม่จำเป็น
  • สงสัยว่าโซลูชันที่เสนอจะจัดการการบูตหลาย OS ได้หรือไม่

    • grub สามารถบูต Linux, Windows และแม้แต่ OS ตัวที่สามได้
    • กังวลว่าโซลูชันของ Red Hat อาจถูกจำกัดไว้แค่การใช้งานเชิงพาณิชย์
    • สำหรับระบบที่รีบูตปีละแค่หนึ่งหรือสองครั้ง ก็ยากจะเข้าใจว่ากำลังแก้ปัญหาอะไร
  • ไม่เข้าใจว่าทำไมต้องใช้โซลูชันนี้แทน plain EFISTUB

    • ใช้ EFISTUB บน Arch อยู่ และเวลา boot Windows ก็ใช้เมนู BIOS
    • ไม่เข้าใจข้อดีของบูตโหลดเดอร์ที่อิงกับ Linux