7 points par xguru 2024-07-12 | 1 commentaires | Partager sur WhatsApp
  • L’équipe d’ingénierie des bootloaders de Red Hat développe une nouvelle approche pour remplacer le bootloader GRUB
  • Proposition de nmbl (no more boot loader), une solution en espace utilisateur basée sur Linux, rapide et sûre
  • Problèmes du bootloader GRUB
    • GRUB est un bootloader puissant et flexible, utilisé sur plusieurs architectures (x86_64, aarch64, ppc64le OpenFirmware)
    • Mais sa complexité fonctionnelle le rend difficile à maintenir, et il fait souvent doublon avec le noyau Linux ou accuse du retard par rapport à lui
    • Il est également à l’origine de nombreuses vulnérabilités de sécurité
  • Avantages du noyau Linux
    • Le noyau Linux bénéficie d’une vaste base de développeurs, ce qui permet un développement rapide des fonctionnalités et une réponse rapide aux vulnérabilités
    • Les revues globales y sont menées de manière plus approfondie
  • Nouvelle solution : utiliser le noyau comme bootloader
    • Chargé par l’EFI stub dans UEFI, puis empaqueté sous forme d’image noyau unifiée (UKI)
    • Le noyau, l’initramfs et la ligne de commande du noyau contiennent tout le nécessaire pour atteindre la cible de démarrage finale
    • Tous les pilotes, la prise en charge des systèmes de fichiers et le réseau nécessaires sont déjà intégrés, ce qui évite la duplication de code

1 commentaires

 
xguru 2024-07-12

Avis Hacker News

  • J’utilise l’UEFI depuis 10 ans. Le temps de démarrage est légèrement réduit, mais un bootloader présente plusieurs avantages

    • Il permet de configurer facilement un dual-boot avec Windows
    • On peut modifier la cmdline du noyau pour résoudre des problèmes de démarrage
    • On peut facilement choisir entre plusieurs noyaux et images initrd
    • On peut accéder facilement au menu de configuration UEFI
    • On peut démarrer d’autres applications EFI
  • Le bootloader de FreeBSD peut démarrer sans initramfs. Il faudrait un bootloader plus intelligent

    • Il peut comprendre ZFS et précharger les modules nécessaires
    • Il peut comprendre les dépendances entre modules et précharger tous les modules nécessaires
  • Il y a beaucoup de malentendus sur les capacités et les contraintes de l’environnement UEFI. Les gens comprennent mal l’objectif réel du projet

    • Le billet critique de Lennart soulève des inquiétudes plus intéressantes
  • Cela rappelle MILO, qui servait à démarrer Linux sur les systèmes DEC Alpha dans les années 90

    • Il faut un bootloader intermédiaire, avec un cycle de publication axé sur la stabilité
    • Il faut une couche de menu/configuration pilotée par les données
  • J’avais auparavant Linux+Coreboot sur un Chromebook. À cause de bugs de pilotes dans le BIOS UEFI de Tianocore, j’utilisais Linux directement

    • J’ai écrit une TUI en Rust pour monter toutes les partitions et lancer kexec sur l’image du noyau
    • Je ne pense pas qu’il soit nécessaire de dupliquer tous les pilotes
  • Il vaudrait mieux tirer davantage parti des fonctionnalités de l’UEFI et de Linux. ZFSBootMenu fournit une application EFI depuis 4 ans

    • Le démarrage du noyau de première étape prend environ 1,5 à 2 secondes
  • Il y a des inquiétudes concernant les problèmes de compatibilité avec kexec

    • Par exemple, les modules NVidia doivent être déchargés avant kexec
    • Il y a aussi des problèmes ACPI et d’autres incompatibilités
    • On suppose que le mécanisme kexec a été conçu pour prendre en charge différentes versions du noyau
  • L’EFI stub qui configure le multiboot, le noyau et l’initrd avant de transférer l’exécution est simple

    • Il n’est pas nécessaire que le chargeur intermédiaire devienne trop gros ou trop complexe
    • Inclure tout Linux juste pour éviter l’API UEFI et un autre environnement de programmation est inutile
  • Je me demande si la solution proposée pourra gérer le démarrage multi-OS

    • grub peut démarrer Linux, Windows et même un troisième OS
    • On craint que la solution de Red Hat ne soit limitée à un usage commercial
    • Il est difficile de comprendre quel problème cela résout sur des systèmes qui ne redémarrent qu’une ou deux fois par an
  • Je ne vois pas pourquoi utiliser cette solution plutôt qu’un simple EFISTUB

    • J’utilise EFISTUB sur Arch et j’emploie le menu du BIOS pour démarrer Windows
    • Je ne comprends pas l’intérêt d’un bootloader basé sur Linux