Journal idée : Un kernel qui boute plus vite

Posté par  .
Étiquettes : aucune
0
30
juin
2004
L'idée est :

posons nous en situation ou, un démarrage de noyau se fait avec le même matériel dans le meme état physique, ne serait-il pas possible de sauvegarder un état du noyau juste avant l'appel à init, pour raccourcir les temps de démarrage ?

Bon, est-ce une idée valable ?

Question/Obstacle 1: en fait le temps, c'est l'initialisation du matériel physique et non pas du noyau ?

Question 2 : est-ce que il n'y a pas des endroits ou ça reste valable comme idée ? genre, l'init de mapping bios, le bogomips, la console, la mémoire, .. ?

qu'est-ce que t'en pense journal ?
  • # idée : Un kernel qui boute plus vite

    Posté par  (site web personnel) . Évalué à 2.

    Il y a deja un projet qui consiste a faire executer les scripts de demarrage en parallele plutot qu'en serie.

    Par contre, je n'ai plus l'URL ...
    • [^] # Re: idée : Un kernel qui boute plus vite

      Posté par  . Évalué à 4.

      C'est pas ce que damande le monsieurs. Ton truc c'est simple-init, et beaucoup de distribution l'utilise deja.
      • [^] # Re: idée : Un kernel qui boute plus vite

        Posté par  . Évalué à 4.

        C'est passé inaperçu mais Fedora 2 a une solution élégante.
        Le boot en parallèle permet de gagner du temps mais il a le défaut d'avoir un moins bon contrôle sur l'ordre de lancement des services et être plus confus dans l'affichage détaillé.
        FC2 lance les script readahead_early readahead dès le début du boot. Ces scripts lancent en tache de fond le programme /usr/sbin/readahead. Sa fonction est simple : lire le début d'une liste de fichier. Ses fichiers sont normalement lu lors d'une séquence de boot et un login graphique.
        La liste des fichiers à lire est établie avec un noyau spécial (utilisé uniquement en phase de développement) qui loggue tous les fichiers accédés.
        Donc on a une boot séquenciel "classique" avec en parallèle des accès disques pour mettre en cache les prochains accès. Ça accélère significativement. Je gagne presque 10 secondes.
  • # Contre la montre....

    Posté par  . Évalué à 9.

    En fait le temps de demarrage d'un matos est tres variable.
    Voici quelque éléments de réponse.
    PB 1) Ton PC boot sur un bios qui fait deja sa vie et prend sont temps
    Soluc 1) le projet linuxbios consiste a mettre le bios minimal de linux

    PB 2) Lors de la phase de boot le kernel (et le systeme) est mono-thread par ecriture et par necessité (init du proc, du disq,puis de la video,du clavier...)
    Soluc 2) travail en cours dans le kernel et dans les drivers

    PB 3) Certains periph on besoin d'etre sortie de l'etat reset puis mette leur temps a demarrer (ex:disque scsi,ide....)
    Soluc 3) travail en cours sur le materiel destiné au application embarqué qui finiras bien par remonté au monde sur table

    PB 4) Les tonnes de truc inutiles qu'un Linux installé de distrib lance et qui servent a rien (en boot time en tout cas) et pourrais etre lancé manuellement quand le besoin est la.
    Soluc 4) le vieux devfs et le nouveau udev devrait servir de base a des evolutions possible pour les autres bus (pci, hyper transport). Les install LFS (linux from scratch) sont des monstres de rapidité en boot time dont bon courage a toi pour cette merveilleuse aventure :-)
  • # autre idée

    Posté par  . Évalué à 3.

    Je me suis posée une autre question
    Toutes les grandes distributions nous refilent un noyau tout compilé, tout beau, tout chaud.
    La plupart maintenant font de la détection de matériel à l'install, et nous chargent les modules correspondant
    Ne pourrait-ont pas "combiner" les 2, c a dire détecter le matériel, et recompiler un noyau avec les options spécifiques à notre matériel deja activées? Avec en + quelques questions (kernel préemptif...), et roule jeunesse? On aurait ainsi un noyau plus minimal, qui pourrait booter + vite (si on a pas tout mis en modules)

    Car meme en connaissant sa machine, il est parfois difficile de savoir si on a besoin de ca ou ca...

    Enfin bon, c juste une idée comme ca, c peut etre déjà implémenté ou y'a des problèmes que je ne vois pas du premier coup d'oeil
    • [^] # Re: autre idée

      Posté par  . Évalué à 5.

      Ce que tu explique sur la compilation du noyau pendant l'installation pourrait être possible....
      Cependant, l'installation de Linux doit être la plus simple possible et poser le moins de questions possibles pour un débutant.
      Imagine quelqu'un qui installe Linux pour la première fois, et l'installateur lui pose la question:
      << Bonjour petit gars, je vais compiler ton noyau; Est-ce que tu le veux préemptible ou pas? >>

      Et puis, cela rajouterait enormement de complexité dans le programme d'installation, et augmenterait le risque que l'installation foire et que le système ne marche pas au premier essai.

      De plus, Linus a bien fait son travail puisque le noyau est modulaire, et dans les distributions, le maximum de trucs sont en général compilés en modules. Ce qui fait que les noyaux des distributions ne sont pas vraiment plus lourd, ni plus lent qu'un noyau parfaitement adpaté à la machine.
      • [^] # Re: autre idée

        Posté par  (site web personnel) . Évalué à 2.

        Cependant, l'installation de Linux doit être la plus simple possible et poser le moins de questions possibles pour un débutant.
        Je ne suis pas d'accord, moi ce qui me plait dans linux, c'est de pouvoir avoir des distribs qui font ce que tu dit pour les débutants, et ceux qui ne veulent pas ce faire chier, mais moi je suis preneur d'un distrib qui recompile mon noyau, c'est d'ailleurs pour ca que j'utlise gentoo ou slack, on me fait pas chier, on me laisse faire.

        Bref : vive la diversité, des distribs simple d'autres plus complexes, et globalement toujours la possibilité de faire ce qu'on veut puisque derrière ca reste du linux ;)
        • [^] # Re: autre idée

          Posté par  . Évalué à 1.

          > on me fait pas chier, on me laisse faire.

          Prends n'importe qu'elle distribution rpm-based et on te fera pas chier, on te laisse faire et tu peux recompiler ton noyau.

          Il y a des tonnes et des tonnes de personnes qui savent parfaitement ce que leur "grosse" distribution fait et qui en font ce qu'ils veulent avec. La distinction avec Gentoo, sourcemage, etc n'est vraiment pas là.

          > globalement toujours la possibilité de faire ce qu'on veut

          là je suis d'accord :-)
    • [^] # Re: autre idée

      Posté par  . Évalué à 2.

      Gentoo propose un petit utilitaire (genkernel) qui fait ça justement. Il utilise la détection de matériel du livecd puis compile le kernel en complétant le reste par des options par défaut.
      Je ne sais pas par contre ce qu'il en est des performances, ne l'ayant jamais testé.
  • # Hibernation

    Posté par  . Évalué à 2.

    Sauvegarder un état du noyau ça s'appelle l'hibernation, comme sur les portables. Regarde du côté de ACPI et des états sleep machin (S1, S3... j'y connais pas grand chose).
    • [^] # Re: Hibernation

      Posté par  (site web personnel) . Évalué à 1.

      En fait il y a software suspend qui permet ça sur _tout_ les ordis, et pas seulement ceux qui on cette fonction acpi. c'est intégré dans le 2.6...
      • [^] # Re: Hibernation

        Posté par  . Évalué à 3.

        Heu sur tout les ordis c'est un peu la version optimiste. Dans l'etat actuel ca reste quand meme pas mal un truc "d'homme" avec casse possible.

        Y'a une machine que je n'ai jamais reussi a reveiller.

        Autrement si on fait un calcul rapide avec 1Go de RAM.

        1/ ca bouche 1Go de swap
        2/ 1000 / 50 = 20 sec pour faire le resume.

        Le gain est pas enorme par rapport au gain au temps de boot sur ma sourcemage en simpleinit. De plus le resume du reseau peu presenter quelque problemes pour les applis.

        Bref c'est utile mais pas super au point je trouve. Sur mon ibook sous OS X ca marche vraiment du tonere par contre il me senseble que c'est du suspend en RAM et non sur disque (donc tres rapide a la reprise).

        Pour l'optimisation OS X a un super truc (qui a l'air de se raprocher de ce dont 007 parlait sur FC) c'est de garder en memoire les access disque lors du boot. Et de precharger d'un coup ce dont on est presque sur d'etre utile. Plus tu boot plus ton boot est performant :-)
  • # Mise en veille

    Posté par  . Évalué à 1.

    posons nous en situation ou, un démarrage de noyau se fait avec le même matériel dans le meme état physique, ne serait-il pas possible de sauvegarder un état du noyau juste avant l'appel à init, pour raccourcir les temps de démarrage ?

    On peut carrément mettre la machine en veille (si on ne fait pas de multiboot). Mon dernier micro ne me le permet pas (ACPI encore mal géré), mais sur mon ancien, l'APM marchait parfaitement, et les réveils après mise en veille était très rapide.
  • # But where is the bottleneck ?

    Posté par  . Évalué à 0.

    J'en pense que sur la minute que j'attends à chaque boot de mon ordinateur avant de pouvoir l'utiliser, le gros consommateur de temps, c'est pas le boot du noyau ( 7 secs ).
    ( et oui j'utilise kde ... )
  • # precaching...

    Posté par  . Évalué à 2.

    Tu ne parlerais pas de ça : http://kerneltrap.org/node/view/2157(...) ?
  • # Mmmm

    Posté par  . Évalué à 2.

    Au démarrage, les périphériques sont dans un état indéterminé, donc je ne voit pas comment on pourrait sauvegarder l'état.
    Même dans le cas de l'hibernation, le noyau repasse par cette phase d'initialisation au réveil.
  • # Et un vrai système de boot plus rapide?

    Posté par  (site web personnel) . Évalué à 1.

    Je sais, je vais me faire taper, mais un système de boot entièrement python, ca devrait déjà être plus rapide que bash non (vu que c'est du byte code à partir du 2e boot...)?

    Ca demanderai de refaire les scripts des services(sans forcément en changer l'utilisation, quoiqu'on pourrait y remplacer par des sortes de plugin...), mais mis à part ça je vois pas de désavantage...
    • [^] # Re: Et un vrai système de boot plus rapide?

      Posté par  . Évalué à 0.

      La durée du boot est principalement lié au performance des disques.
      Donc pas de gain significatif à attendre avec python au-lieu de bash.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.