Journal comment ça marche Knoppix

Posté par  (site web personnel) .
Étiquettes :
0
5
déc.
2003
Bonjour,
J'ai prêté ma knoppix a un ami qui a une petite config (je vais lui trouver un autre truc à base de morphix je pense....) et il me dit qu'il est trés content que ça fonctionne, mais OpenOffice a mis 20 minutes à se lancer (on peut en faire des choses pendant 20 minutes !) parce qu'il a 64Mo de RAM... normal quoi !

Mais je n'arrive pas à comprendre comment ça fonctionne... d'un coté vous avez le CD, de l'autre vous avez la RAM qui est trop petite pour contenir l'application et normalement, y'a pas de HD pour swapper... alors même en 20 minutes, comment qu'il fait pour rentrer 80Mo de données dans 64Mo de ram ?

Axel - 584
  • # Mako swap

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

    Au début n'éxistait que la gestion brute de la mémoire.
    Les ordinateurs n'avaient que 1024 octets de ram. Tout cela était géré comme une seule page.
    Personne ne pensait à un authentique système d'exploitation.

    Ensuite, sont apparus des systèmes d'exploitation, pour faire en sorte, que le programme en lui même ne s'occupe que de manipuler des données utiles, laissant la gestion de la mémoire disponible et du disque, des périphériques, au système d'exploitation dont c'est le métier.

    A un moment, même dans linux, il n'existait pas de mécanisme de gestion des librairies partagées. Et oui, 2 programmes en mémoire peuvent utiliser la même librairie, donc il est inutile que celle ci soit 2 fois en mémoire. Ca a été géré, et un jour 2 programmes ont pu partager la même librairie (chargée une seule fois, mais avec 2 environnements de variables, un pour chaque process (2 ou plus d'aillieurs))

    De la même façon, au début, s'il n'y avait que 4Mo de Ram, on ne pouvait lancer que 4Mo de programmes + données.

    On s'est rendu compte que en segmentant les programmes et les données en portions d'une taille donnée, ont pouvait suivre celles qui étaient utilisées et celles qui ne l'étaient pas.

    Alors, un mécanisme (le swap) s'est occupé de placer dans le swap des pages de mémoire allouées mais non utilisées tout de suite à cet instant précis. Le but du jeu est que le segment exécuté soit en mémoire à un instant donné. Une fois arrivé au bout, on en change, et s'il est sur le disque, et bien on colle sur le disque une portion non utilisée, on prend des notes pour pas se perdre, et on recopie le segment suivant depuis le disque vers la mémoire (re prise de notes). Et ainsi de suite....

    Si tu n'as pas assez de mémoire pour assumer ton train de vie de besoins de mémoire, le swap va échanger les pages sans fin entre ta mémoire et ton disque, un peu comme du crédit revolving. Tu payes par le ralentissement.

    On comprend que si les besoins sont très supérieurs à la mémoire dispo, le système passe son temps à swapper comme un fou. Tant qu'on reste dans une certaine limite, ça ne plante pas, mais ça va pas vite... Aussi, si l'on prend beaucoup de mémoire, on recule le seuil de déclenchement de ce mécanisme. La machine est plus fluide, plus longtemps.


    Si tu ne sais pas cela, je t'invite à te plonger dans
    http://www.commentcamarche.net/(...) pour de longues heures de lectures passionnantes.

    Rafael, vieux dino.
    • [^] # Re: Mako swap

      Posté par  . Évalué à 6.

      Si tu avais fait attention à ce que dit la news, tu aurais vu la mention « pas de HD pour swapper ». Autant ton historique de la gestion de la mémoire et du swap est intéressant, autant il n'est pas adapté dans ce cas.

      Cela dit, ça m'intrigue aussi. Ce qui est possible, c'est que Linux ne chargeant que les pages de code (programme binaire) qui sont nécessaires à l'exécution du logiciel à un moment donné (donc pas tout le binaire d'un coup), si je me souviens bien, a pu exécuter tout ce qui est nécessaire en chargeant/déchargeant les pages nécessaires à un moment donné. Mais c'est pure spéculation de ma part.
      • [^] # Re: Mako swap

        Posté par  . Évalué à 1.

        c'est la pagination / segmentation
      • [^] # Re: Mako swap

        Posté par  . Évalué à 8.

        Pour Knoppix, si on n'utilise pas de partition swap présente sur le disque dur, le système est simple. En gros, c'est :

        Quand on manque de page, on libère celles des portions de programme les moins utilisées. Pour OOo, par exemple, si tu n'utilises pas les présentations, elles sont tout simplement effacées de la mémoire, et cette portion de mémoire est utilisée pour autre chose (enregistrer tes données, par ex, ou un autre programme).

        Quand on a à nouveau besoin du code d'une page effacée, on va simplement le rechercher à nouveau sur le CD. D'où une certaine lenteur pour les gros programmes, où des bouts de code bien éparpillés sont utilisés.

        On n'efface pas les pages contenant des données écrites par l'utilisateur. Ce sont les pages ont le flag "write". On ne vire que les pages ayant le flag "read" or "execute", qui proviennent du CD.

        Quelqu'un pour tester ce qui se passe quand l'utilisateur a écrit plus de données qu'on ne peut en stocker en mémoire vive ? ;-)
    • [^] # Re: Mako swap

      Posté par  . Évalué à 2.

      Je crois que tu n'as pas compris sa question.

      Sa question était (en gros) : comment se fait-il qu'un programme de 80Mo puisse s'éxecuter sur un PC ne disposant que de 64Mo alors qu'il n'y a pas de disque dur pour héberger la swap ?

      D'où ton hors-sujet.

      De plus, je trouves que tu as pris la question sur un ton quelque peu hautain. Lorsqu'on s'apprête à écrire une longue réponse de cette manière, on prend au moins la peine de faire l'effort de bien comprendre la question.
      • [^] # 20'

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

        Dis moi donc ce que j'ai commis comme ton hautain ?
        A la relecture, je ne vois que la "saine lecture de commencamarche.net" mais de toutes les façons je dis toujours comme ça.

        J'ai d'abord cherché une page expliquant le fonctionnement de la pagination et du swap, mais je n'ai pas trouvé. Donc, j'ai tenté d'expliquer ça de façon aussi didactique que possible.

        Si tu veux, j'écris kom ca 6 C + facile a lir
        J'ai la faiblesse de penser que si j'ai 3 minutes, rien ne m'empêche d'écrire comme je parle, ça ne mange pas de pain, et je reste lisible.

        Il n'y a rien de dévalorisant à RTFM, je le fais tous les jours.

        Enfin, mettons nous dans la situation de ce kernel obligé à faire tenir 80Mo dans 64Mo.

        S'il garde les segments de données en RAM, et utilise les segment de programme sur le disque, les segments de programme étant immuables et présents sur le disque, s'il envoie les segments de programme à swapper vers /dev/null, il retombe sur ses pattes, car ils resteront lisibles la prochaine fois qu'il en aura besoin.

        Dans l'évolution de linux, ce cas s'est forcément présenté, et a manifestement été géré, la preuve le noyau s'en sort. Tout le monde l'a oublié car tout le monde reboote sa machine bien avant les 20'.

        Rafael (vieux tout court à force)
        • [^] # "normalement" il n'y a pas de disque

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

          "Normalement", ça veut dire que tu l'as vu booter avec ou sans.

          Parce que si c'est un truc non vérifié, il est inutile de disserter sur le sexe des anges...
          La knoppix swappe sur disque si besoin à ce que je sais, en demandant (ça je ne sais pas).
    • [^] # Re: Mako swap

      Posté par  . Évalué à 2.

      putain j'hésite là : c'est intéressant mais c'est complètement à coté de la plaque... alors, [+] ou [-] ? :-)
  • # Re: comment ça marche Knoppix

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

    Mais je n'arrive pas à comprendre comment ça fonctionne... d'un coté vous avez le CD, de l'autre vous avez la RAM qui est trop petite pour contenir l'application et normalement, y'a pas de HD pour swapper...

    Normallement ?
    Pourquoi n'imaginerait-on pas que Knoppix est capable, à un moment ou un autre, de voir si il y a un disque dur, puisque d'ailleurs on peut y lister le contenu des disques, de lire la table d'allocation, et d'utiliser comme un swap une partie vierge d'un disque dur ?
    • [^] # Re: comment ça marche Knoppix

      Posté par  . Évalué à 3.

      Cela me paraît

      1/ hasardeux
      2/ peu probable
      3/ assez dangereux

      Mais ça n'engage que moi :)
    • [^] # Re: comment ça marche Knoppix

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

      c'est ce qui se passe quand il y a une partition de type 82 (linux swap)...mais d'après ce que j'ai compris, ça n'est pas le cas ici
    • [^] # Re: comment ça marche Knoppix

      Posté par  . Évalué à 1.

      Ce point est a vérifier parceque c'est effectivement facile à faire mais peut-être un peu cavalier non (au moins souligner l'utilisation temporaire du disque trouvé sur la machine) ?
    • [^] # Re: comment ça marche Knoppix

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

      J'ai essayé la dernière Knoppix (3.3 il me semble) sur une machine qui était équipée de Windows (FS en FAT32) et qui disposait de moins de 128MB de RAM.

      Lors du lancement, Knoppix nous avertis du manque de RAM est propose la création d'un fichier de swap sur le disque-dur (ce n'est donc pas obligatoire).

      Lorsque l'on retire la Knoppix et que l'on reboot la machine "normalement" sous Windows il y a, à la racine de C:, un fichier (dont j'ai oublié le nom) qui était utilisé juste avant par Knoppix pour le swap.

      Mais, si Axel R. nous dis qu'aucun swap n'a été créé lors de l'exécution de knoppix (apparemment, la machine n'a pas de HDD), alors... Je ne pourrais répondre à sa question :).
      • [^] # Re: comment ça marche Knoppix

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

        Si y a pas de swap, alors c'est de la magie, c'est tout. Les gens de Knoppix sont des magiciens. Comme ça c'est clair.
      • [^] # Re: comment ça marche Knoppix

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

        Mais, si Axel R. nous dis qu'aucun swap n'a été créé lors de l'exécution de knoppix (apparemment, la machine n'a pas de HDD), alors... Je ne pourrais répondre à sa question :).

        Non, Axel R. avait dit qu'il avait prété sa knoppix a un ami, il est possible que l'ami en question ai dit "oui" à la création de swap.

        J'étais perplexe sur le "comment ça marche" et j'ai eu ma réponse.

        Merci à Rafael Pinilla, qui malgré son hors sujet m'a rappeller avec plaisir mes cours de licence d'informatique :-)

        Donc, on peut bien mettre 80 cl dans un verre de 64 cl :-)

        C'est surtout que l'ami en question n'a pas linux qui me surprenait et j'aurais compris que knoppix utilise une partition de swap s'il en trouvait une...

        On sait donc maintenant que windows sert à quelque chose : du swap pour la knoppix :-)

        Axel
    • [^] # Re: comment ça marche Knoppix

      Posté par  . Évalué à 2.

      Ca serait bien trop dangereux.
      Un partie inutilisee d'un HD a pour but de rester.... inutilisee !
      Sauf si bien sur le proprietaire donne la permission.

      Pourquoi ? Parce que si le proprio vient de virer une partition tout en prenant soin de noter son secteur de debut et de fin, et bien il peut la recreer par la suite s'en rien perdre.

      Tandis que si on ecrit dessus entre temps, exit les donnees.

      Cela doit etre situation vraiment tres rare mais la proba qu'elle survienne n'est pas nulle, donc...
    • [^] # Re: comment ça marche Knoppix

      Posté par  (Mastodon) . Évalué à 1.

      Une bête suveillance de la LED d'activité du disque dur ne permettrait-elle pas de verifier cela ?
      Se peut-il que Knoppix soit capable d'identifier le système résident sur un disque dur et y créé un fichier régulier qui sert de swap ?
      • [^] # Re: comment ça marche Knoppix

        Posté par  . Évalué à 1.

        C'est ce qu'il fait: il cree un fichier de swap sur une partition FAT ou FAT32 s'il en trouve une, et si on le lui a autorisé.

Suivre le flux des commentaires

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