Les nouveauté Kernel 6.9 et 6.10

Durée: None

Date de sortie: 04/10/2024

Voir sur Youtube Animé par Julien Durillon - @juuduuavec la participation de : Arnaud Lefebvre - @blackyoup Agathe - @agathe Adrien Mahieux - @saruspete Épisode enregistré le 25 septembre 2024 Chapitrage et Liens 00:00:16 : Introduction et présentation des participants 6.900:02:14 Les nouveautés de BPFArenas : yet another partage de mémoire entre le programme BPF et le userspace. Plus sympa à utiliser que les rings et les mapsTokens : ça simplifie le fait de donner des accès à des fonctionnalités BPF à d’autres softs. On n’a pas très bien compris l’usage, faites-vous inviter au prochain épisode pour nous l’expliquer 00:09:06 Deprecation d’ext2Sera cassé en 2038, vous savez pourquoiPour le UEFI, on utilise fat32 qui devrait tenir jusqu’à 2107cf. https://cscie92.dce.harvard.edu/spring2024/slides/FAT32%20File%20Structure.pdf p37 00:16:23 Support AMD Secure Nested PagingChiffrement des “shadow page tables” directement dans le proc 00:22:14 Fuse bypass dans certains casFUSE (Filesystem in Userspace) permet de monter des FS non supportés par le kernelÇa fonctionne en lançant un “serveur” fuseLa modif en question permet dans certains cas de bypass le serveur et d’écrire directement dans les fichiers visés en mmap 6.1000:25:29 msealOn peut définir des bouts de la ram comme étant readonly. En cas de stack overflow, l’attaquant ne pourra pas aller écrire dedansUtilisé par chrome pour le sandboxingTant que le process tourne, la mémoire reste bloquée 00:30:46 integrity and security to tpm2 supportTrusted Platform Module : du hardware qui permet de faire du chiffrement / stockage de clé ou certifsOn ne peut plus trop écouter ce qui passe électroniquement sur le bus. 00:36:36 Faster io_uring zerocopy perf 00:41:15 numaMigration des huge pages entre nœuds 00:50:11 : Musique de fin - Lipps Inc. - Funky town - https://www.youtube.com/watch?v=uhzy7JaU2Zc

Bonjour et bienvenue dans ce nouvel épisode de « Message à caractère informatique »
épisode numéro 117 donc le 118ème épisode. Nous sommes le 25 septembre 2024, je suis Julien
Arnaud Lefebvre. Bonjour Arnaud, que fais-tu dans la vie ? Bonjour, je travaille à
Clever Cloud et je m'occupe d'une partie de l'équipe Afra où on fait tout ce qui est
l'installation des systèmes sur les machines physiques. On s'amuse à les câber des trucs
dans les DC aussi, un peu de sécu, les images des clients, tout ce qui est en lien à l'Afra
en fait du S.A.P.S. Je suis aussi accompagné d'une personne mystère qui s'appelle Agat
et qui a décidé de ne pas montrer son visage et nous respectons cette décision dans cet
épisode. Bonjour Agat, qui es-tu et que fais-tu dans la vie ? Bonjour, moi c'est Agat, je travaille
actuellement chez Canon Equal, donc la main entreprise qui gère au Ubuntu et je suis dans
son équipe Kernel. Je m'occupe de tous les Kernels pour toutes les versions d'Obuntu vivantes
ou mort vivantes. Il y en a beaucoup. Merci. Est-ce que tu as un petit projet personnel
que tu as envie de faire ? Je travaille beaucoup sur des BIAN aussi. Un projet
actuellement, c'est de récrire un script Perl en Rust pour aller très, très vite.
Détest ce que j'ai fait, je passe de 150 secondes à une seconde. C'est pas fini, mais c'est
une profondeur, ces premiers-teurs on va dire. Merci beaucoup et je suis également accompagné
de Adrien Mailleux. Bonjour Adrien, qui es-tu et que fais-tu dans la vie ?
Bonjour, moi c'est Adrien, ça rôle spête pour ceux qui me connaissent parce que je râle beaucoup.
On crâle leur professionnel et pompiers de l'IT en général. C'est tout ce qui est
problématique d'infra, de structuration et de performance.
Ça marche. Est-ce que tu as un petit projet perso ou…
Il y en a beaucoup, mais encore rien de concret.
Bien concret, ça marche. On traînera un autre épisode, tu peux en parler.
Parfait. Et bien, ça fait super longtemps qu'on n'a pas fait d'épisodes carnelles. Et là,
avec la sortie de la 6.11, on s'est dit qu'on allait en parler. On s'est rendu compte,
vous verrez dans le deuxième épisode que la 6.11, il n'y a pas de temps,
de choses que ça, d'incroyable à raconter. Et donc, on s'est dit qu'on allait prendre
toutes les releases depuis la dernière version de Buntu pour faire plaisir à Agathe.
C'est ça, Nobel.
À l'employeur d'Agathe.
Nobel est arrivé avec 6.8, donc vous aurez toutes les différences entre ces deux versions.
Voilà. Donc, on va parler de la 6.9, de la 6.10 et de la 6.11.
Et, vous verrez en le deuxième épisode, il y aura des petites surprises.
Donc, revenez la semaine prochaine. Et bien, tu racontes directement les nouveautés du carnelles
avec dans la 6.9 encore des nouveautés de BPF. Et je crois que c'est moi qui en parle.
Et bien, je vais en parler.
Je fais donc.
Je fais, je fais.
Donc, côté BPF, BPF, Berkeley paquette filter qui à la base était un interpreter de code
dans le carnelles qui permettait à la base de faire du filtrage de paquet.
Maintenant, on peut faire beaucoup de choses avec BPF.
En gros, ça permet d'aller coder assez simplement,
enfin, relativement simplement des choses qui vont être exécutées par le carnelles,
mais qui ne vont, enfin, mais ça, vous n'avez pas besoin d'aller écrire un module carnelles.
Donc, BPF, ça vient avec, si je dis pas de bêtises, un certain nombre de sécurité,
du sandboxing, tout un tas de choses. Récemment, ils ont rajouté un Just-in-time compiler à la place
de l'interprèteur qui était juste un interprèteur de script.
Quand j'ai récemment, c'était l'année dernière.
C'est un bouton de jamais.
Ouais, tout le monde.
Il y a une notion.
Enfin, ils ont déprécié, en fait, ils me semblent...
Ils ont prévu de déprécier un truc un peu.
Il fallait d'activer explicitement avant et maintenant, tu peux...
Ouais, c'est ça. Maintenant, il est par défaut.
Donc voilà. Et donc, dans les nouveautés de BPF 2.9,
il y a un truc qui s'appelle Arenas, les arenes.
C'est une nouvelle façon de partager la mémoire entre le programme qui tourne dans le BPF
et le user space.
C'est tous les programmes que vous lancez sur votre machine en général,
qui en fait, c'est tout ce qui n'est pas le carnet.
Bon, faire simple.
Voilà. Il y avait déjà des choses qui existaient.
Il y avait des histoires de ring et différentes techniques de map.
Et sauf que ça posait des problèmes où vous pouvez écrire que dans un sens
ou lire que dans un sens.
Disons que ça répondait pas à la même problématique,
parce qu'en fait, c'est-à-dire que quand vous vous avez votre problème
en BPF, en 2 BPF, on vous extendit de Berkeley,
par qu'il y a des philtermes,
ils sont chauds avec le nomage.
Vous avez effectivement moyen de transper des infos avec des maps
ou des hlaps entre le user space et le programme.
Mais du coup, le user space doit à chaque fois faire un syscall
pour aller mettre la data là où il faut compter BPF.
Et donc, ça veut prendre un peu de temps.
Et donc, l'idée de l'Arenas, c'est de mapé directement de la mémoire
à quel le programme BPF a accès et le user space a accès.
Oui, les deux voient la même mémoire,
et donc, ils peuvent se parler facilement.
Sur le nomage, je pense que BPF, la base Bethlet Packet Filter,
c'était typiquement la sautaxe qu'on utilisait dans le TCP Dump.
Et après, ils ont dit qu'on va la récrire,
IBPF, Anans Packet Filter.
Et là, c'était carrément un langage, c'était une machine virtuelle.
Et on l'a écrit complètement, c'est un mot...
Je crois que le terme BPF n'existe plus du tout.
Enfin, genre, dans la doc, c'est écrit, on parle plus du tout de BPF,
on parle vraiment d'un temps que deux BPF.
Oui.
Mais voilà, les...
Ah, je me demandais parce que, du coup, si tu fais plus de six calls
quand tu as rempli ton buffer, en fait,
comment le kernel va aller se mettre à vider ton buffer ?
Enfin, je me sens qu'il y a des mécanismes en place.
Mais l'idée de IowRing, enfin, non, pas IowRing, excuse-moi, BPF.
Ah non, attends, je comprends.
Non, je ne comprends qu'IowRing, excuse-moi, avec...
Ce qu'on voyait avec Arno, c'était que sur les Arenas,
c'est juste la 4Ghz, je crois, que tu peux partager.
Oui, j'ai vu une histoire comme ça, t'as dit.
Il y avait un câlin.
Alors, du coup, t'as effectivement une histoire
où ça te permet aussi d'ajouter plus de mémoire à ton programme BPF,
apparemment, pour un BPF.
Donc, on va intervertir, on va te montrer sur BPF.
Parce qu'effectivement, t'es assez limité, en fait, en mémoire,
avec BPF, t'es assez contraint à ce qui est un très frais problème.
Et donc là, du coup, apparemment, tu peux allouer un peu plus d'espace sur la Ip, a priori.
Je ne savais pas que c'était vraiment possible avant,
à moins que les maps étaient là dans la Ip.
Mais oui, du coup, a priori, ça donne un peu plus d'espace mémoire,
et en plus, tu peux la partager avec le Space.
Donc, pas de copies, à l'heure.
A priori, il y a un peu de...
Ça a l'air d'assembler un petit peu à ce que fait Libirt, si vous connaissez,
pour la virtualisation, où en gros, on prend un bout de mémoire,
on prend deux bouts de mémoire,
il y en a qui va dans un sens, qui va dans l'autre.
Et en fait, au lieu de démuler une carte réseau,
ou un truc comme ça, avec Libirt,
on se parle juste via des buffers mémoires.
Et donc, le host et le guest ont accès à un truc.
Donc, ça ressemble beaucoup.
C'est Libirt spécifiquement, c'était la para-virtualisation en général ?
Non, la para-virtualisation, c'est un mot un peu général pour dire beaucoup de choses.
En fait, la para-virtualisation, c'est le fait d'avoir des drivers spécifiques d'un AVM,
qui permette de mieux discuter avec...
Donc, Virtio, par exemple, c'est tout ce qui est Virtio.
Pardon, j'ai dit Libirt, je voulais dire Virtio.
Ah, d'accord, c'est bon.
C'est bon.
On va pas ré-engréer ce qu'est l'épisode, mais...
C'est le même principe.
Donc, Virtio, effectivement, il y a des buffers qui discutent Libirt,
c'est le truc qui permet d'avoir du gros XML qui lance du camére.
Oui, d'accord.
Mais à la voir, c'est pas grave.
J'ai...
Voilà, j'ai bagué.
Dans les autres nouveautés de IBPF, du coup,
puis apparemment, il faut dire ça maintenant,
on est...
Mais c'est pro.
Il y a aussi une histoire de token qui permet de donner accès à des fonctions de IBPF,
à des softs qui sont dans le user space.
Et de limiter...
En fait, avant, il y avait une...
Alors, de Cisco qui permettait de le faire,
et maintenant, on peut avoir une fonction qui est directement lancée,
et avec une capacité de lui parler.
On n'a pas encore très bien compris comment ça s'utilisait.
Donc, si vous nous écoutez et que vous avez compris
comment ça marchait et à quoi ça servait,
faites-vous inviter pour le prochain épisode,
où on parlera probablement de Linux 6.12,
parce qu'elle a l'air d'avoir plein de choses.
Et donc, appelez-nous pour décembre,
et on vous invitera,
et vous pouvez réexpliquer les tokens de IBPF,
parce que là, on détère un peu l'arguer autour de la table.
Dans les choses un petit peu...
Enfin, dans les autres nouveautés,
il y a la dépréquation de X-T2,
et c'est Agat, qui va nous en parler.
Tout à fait.
Alors, X-T2, ça a souvent été utilisé
comme un système de fichier qui n'avait pas de journal,
et qui donc avait besoin de faire moins de choses en général.
Alors, le journal, c'était introduit pour réussir à éviter les corruptions
en cas d'arrêt très rapide, donc si on débranchait sa machine.
Mais, X-T2 était vraiment beaucoup plus simple,
et a souvent été utilisé pour le Slash Boot.
Donc, si vous avez déjà installé un Linux,
ça vous demandait où voulait vous mettre votre Slash Boot,
quel taille faire, etc.
Donc, c'est un système de fichier très simple,
qui a souvent été utilisé pour ça.
Parce que c'est très rare d'avoir une coupure de courant
quand on est en train de démarrer,
enfin, ce genre de clé d'usage.
Sauf que...
Oui, mais de toute façon, le Slash Boot,
c'est quasiment du Ridley.
On écrit dedans une fois toutes les deux semaines.
Tout à fait.
Donc, c'était surtout en cas d'écriture ou de pouvoir de la corruption,
tant que tu dis, a priori, tu as pas de problème.
Donc, il est effectivement valide.
Vraiment, pas avoir de chance quand tu écrisais ton nouveau noyau
pour avoir ce cas de corruption.
Donc, X-T2, c'était très bien.
Mais le problème de X-T2, c'est que ça utilise un timestamp.
Donc, c'est un nombre de secondes écoulés depuis 1970.
Et c'est un nombre stocké sur 32 bits.
Le problème avec ça, c'est qu'en 2038,
on va arriver à la limite des anti-30 bits.
Et donc, du coup, à partir de 2038,
on pourra plus stocker les dates de modification des fichiers
dans ce système de fichier.
Donc, on sera bloqué à une certaine date en 2038.
Donc, il y a eu un message sur les Scarnels
et donc, en mon avis, dans le driver,
qui demande d'arrêter d'utiliser ce système de fichier
parce que le temps que tous les gens arrêtent d'utiliser ça,
et bien, 2038 arrivera très vite avec les systèmes embarqués
qui utilisent peut-être X-T2 sur des cartes de flash
ou des cartes de paiement.
Ça va mettre beaucoup de temps à se propager.
Donc, il vaut mieux que, quand vous demandez maintenant
d'arrêter d'utiliser ce système de fichier.
Comme dit un certain Huber de chez Claver Claude, 2038, c'est demain.
2038, c'est demain.
On a eu le cas récemment dans les débiens.
On a migré toutes les timestamps de 32 bits vers 64 bits,
même pour les systèmes 32 bits.
Par exemple, ARM32, donc, des très vécures Raspberry Pi,
Raspberry Pi 2, tout ça,
utilisait encore des timestamps 32 bits.
Et on a réussi à faire une migration,
Canonico et les débiens,
pour pouvoir continuer à utiliser ces systèmes
jusqu'en 2038.
Donc, un autre système de fichier est connu,
qui est utilisé maintenant pour tout ce qui est boot EFI,
donc que dans les cartes de mer assez récentes,
il n'y a plus besoin d'utiliser de MBR,
qui était une technologie assez obscure.
Et maintenant, on a un EFI qui est un programme
qui va aller charger d'autres programmes.
Et donc, là, j'ai dû utiliser FAT32,
FAT32, un système de fichier qui est assez vieux,
qui existe depuis MSDo, je crois,
ou enfin, c'est des évolutions permanentes.
Et on pourrait se demander aussi,
est-ce que FAT32 va pas avoir le même problème
que XT2 et Finair en 2038 ?
Eh bien non, FAT32 en fait,
utilise quelque chose d'assez malin.
Au lieu d'aller stocker le nombre de secondes depuis 1970,
FAT32 va aller stocker dans différentes parties d'entiers
le nombre de jours, de mois et d'années écoulées.
Et donc, quand ils ont fait le choix,
ils ont réussi à optimiser l'usage de l'entier,
parce que la précision à la seconde près
est possible parce qu'on peut stocker,
je vois, les heures de 0 à 23,
les minutes de 0 à 59,
les secondes de 0 à 29.
Donc, on ne peut pas stocker,
à priori, plus que ça.
Et donc, ce qui est super intéressant,
FAT32, c'est que déjà, la date de départ
n'est plus 70 mais 1980.
Et en plus, on peut stocker les années passées
depuis 1980, 2, 0 à 127,
ça utilise 7 bits.
Et du coup, ça permet de stocker des dates de 1980 à 2070,
si on additionne 127 à 1980.
Donc, à priori, le FAT32 est encore utilisable jusqu'à 2070,
ce qui nous laisse un peu plus de temps.
C'est un peu moins de marre.
En fait, ça serait juste précis à deux secondes.
L'unité, c'est plus la seconde, c'est les deux secondes.
Voilà, j'ai l'impression que c'est précis à deux secondes près.
Oui, c'est à 2, 0 à 58,
donc, tu es précis à deux secondes près
quand tu crées un fichier sur FAT32.
Et encore, tu es avec le MBR,
maintenant, c'est simple, c'est qu'il n'y avait même plus de MBR
qui ne peut pas y tourner dans les BIOS, les AMD,
il y avait plus UF, plus CETU.
Oui, c'est ça, c'est UF.
Alors, le Slash Boot est quand même toujours séparé,
mais maintenant, les grubres récents sont capables de lire le X-T4 très bien.
Et il n'y a plus vraiment d'avantage à utiliser de le X-T2,
peut-être à l'époque, ça a été plus vite ou je ne sais quoi.
Mais là, de toute façon, quand on installe un bout de tour récent,
le Slash Boot sera mis en E-XT4.
Donc, ce genre d'optimisation qu'on faisait dans le passé
n'est déjà plus fait sur les installations récentes.
Sans moi, effectivement, que c'était le grubre de l'install
mettait les 512 1er BIIT dans le Stage 1, dans la MBR,
ensuite, ça se jumpait au Stage 2 et ensuite avait le reste.
Donc, c'était tout ce qu'on pouvait gagner.
Oui, mais du coup, le MBR a arrivé à tout qu'il y a un jump vers un système de fichiers, c'est ça ?
Oui, il y avait un truc minimaliste qui mettait le dore.
Un petit header, oui, c'était un petit header.
Il va juste lire les 512 1er BIIT de l'invise.
Et après, t'avais, je crois, plus de places, peut-être un cas pour aller ailleurs.
Alors, le Stage 2 ou un ennemi, ils aimaient le surpris exactement,
mais oui, t'avais 100 différents de ta part.
En bref, on a plus ses contraintes de place,
et donc du coup, on peut faire le X-T4 désormais.
Donc, si vous avez un système en E-XT2, attention, en 2035, vous allez avoir des surprises.
Attends, moi j'ai une petite question sur ton chaîne.
Tu parles, il y a un journal dans X-T4, toi ?
Oui, à partir de X-T3 en fait,
par terre de X-T3, qui a été une évolution de X-T2,
tu as un journal des opérations qui sont faites.
Alors, je ne sais plus trop comment ça marche,
mais c'est en roi à chaque fois que tu fais d'écriture,
c'est comme une base de données,
tu vas l'écrire dans un journal avant d'aller faire la modif.
Et si jamais ton système crash, pendant ce temps-là,
t'auras stocké les opérations que tu voulais faire avant que le système crash.
Et donc, tu peux essayer de restaurer le système,
soit avant le journal, soit après, mais dans un état.
Alors, c'est juste une très grosse vue du ciel,
mais ça a été interviewé justement pour prévenir des problèmes
quand tu écris lors d'une part de courant.
Et donc, c'est aussi ce qu'a introduit,
je me semble, NTFS sur Windows.
Et FAT32, par exemple, tu n'as pas de journal,
mais vu que ça joue comme une fête, c'est moins grave.
Exactement. Alors, pendant que Arnaud prépare
la bonne nouvelle suivante, je tiens quand même à vous montrer.
On a un collègue qui est actuellement dans la cuisine,
parce qu'il a décidé de nous faire un petit plateau de fromage et charcuterie.
Et comme il ne trouvait pas des plus typiques,
il a récupéré des spaghetti pour faire les petits piques.
Et le résultat est assez incroyable.
On n'a pas de plus de bons idées.
Sur la vidéo, on ne verra pas la vidéo.
On le remercie, il ne passera pas à la vidéo parce qu'il ne participe pas à l'épisode.
Mais on le remercie.
L'illusion est parfaite, on ne se rend pas compte de loin que c'est la cuisine.
Je ne l'avais pas vue.
Pour moi, c'était déchirant.
Oui, oui, pas mal.
Et donc, la news suivante sur 6.9,
c'est le support d'une secure nested paging dans AMD.
Donc, les processeurs AMD et c'est Arnaud qui nous en parle.
Je viens de passer un mois et demie dans le code de KVN
pour avoir un problème peut-être en parlant un autre jour.
Mais globalement, il y a le support pour AMD,
pour les processeurs AMD, du secure nested paging.
Quand vous faites de la nested virtualisation,
vous avez des machines virtuelles dans des machines virtuelles,
vous avez une problématique de comment est-ce que le guest L2,
la deuxième machine virtual,
peut donner ces pages de mémoire au hardware physique
pour que les translations de mémoire soient plus rapides
quand le guest essaie d'accéder à sa mémoire.
Plutôt que de passer à chaque fois par les perverseurs de niveau 1,
pour demander est-ce que je peux avoir tel accès de mémoire.
Normalement, c'est le cpu qui j'ai à cette partie-là.
Ça évite une partie de software qui ralentit énormément
les temps de réponse de la mémoire pour être tout à fait honnête.
On a eu un problème en prod,
où on a désactivé les accélérations à hardware
pour la mémoire pour les nested guests.
On avait un temps d'accès qui était 10 fois plus long
que pour la mémoire, ce qui était énorme.
Je pourrais faire un guide, un set d'oreilles 10,
pour que ça puisse être une catastrophe.
J'ai un gros but pour rappeler que si on a moins 90% de pervers,
c'est pas parce qu'on est repassés sur de la location software
et de la gestion software des pages mémoires.
C'est un rappel que la virtualisation,
c'est des fonctionnalités des processeurs
qui permettent de lancer une machine virtuelle.
C'est juste un programme à qui on a dit
ce programme a un full accès au processeur
grâce à ce système de virtualisation.
À chaque fois que tu exécutes des instructions de ce programme,
tu charges toute sa mémoire cache
en vidant la mémoire cache de l'autre machine virtuelle
ou du host, etc.
Tu cherches ça dans le processeur et ensuite, tu l'enlèves.
A force, il y a eu plein d'optimisation
et notamment sur cette histoire de pages de paging de la mémoire.
C'est aussi le processeur qui a ses fonctionnalités en direct.
Le problème, c'était que dans la naisse de virtualisation,
il y avait un problème de remettre les bonnes pages au bon endroit
quand on les remodifiait et c'est pour ça qu'on l'a désactivé.
C'est moins de 90% dans la page d'en-produit.
C'est d'ailleurs une option que tu as activée dans ton bureau,
c'est-à-dire que tu peux activer la virtualisation
qui, par défaut, de base sur les PC et consumer grade et des activés.
Et si tu fais pas ça, tu vas avoir des performances très très lentes
parce que tu vas émuler chaque instruction là
ou activer ces options, justement, pour permettre à les aplanquer.
Ça, c'est des options de la MMU, Mémory Management Unit,
qui en charge justement de toutes les traductions d'un reste mémoire
pour dire, alors là, je suis sur le contexte normal,
là je suis dans un virtu, donc ce qui me dit ici,
il faut le traduire avec telle adresse, etc.
Il peut aussi savoir si dans un style virtu,
c'est une histoire.
Le nombre d'options en le bon, je crois, c'est VTX ou VTD,
ça dépend si c'est AMD ou U-TEN, il y a deux noms d'options actives.
Tant de génériques, je crois que VTD en plus,
c'était pour le laio aussi.
Et du coup, pour en venir au cécur d'acide-paging,
c'était donc une implementation pour AMD
sur comment est-ce que tu chiffres,
enfin comment est-ce que aucun de tes hyper-liseurs
ne peut avoir accès au page mémoire de ton nestid guest,
puisque la nestid virtualisation rajoute tout de suite
une couche d'indirection assez complexe,
il y a la virtualisation, déjà qui est complexe,
il y a la nestid virtualisation qui est autrement plus complexe.
Donc là, du coup, on peut sécuriser les pages du guest
pour que les hyper-liseurs ne puissent pas y accéder
et tu puisses faire des machines nestid,
sécuriser entre guillemets,
tu peux faire tourner des workloads
avec de la donnée confidentielle par exemple, etc.
Tu n'as pas envie que ton hébergeur puisse voir
quand ce qu'il fait ?
C'est ça, c'est tout à fait ça.
Donc une feature plutôt intéressante.
Merci Arnaud, des réactions la suive.
Non, c'est une fécurité, c'est une plus en plus demandé d'ailleurs.
Ça s'appelle un nom, c'est le confidential computing je crois,
c'est quelque chose où les gens demandent vraiment
à ce que leur donnée ne soit pas accédée par les opérateurs de cloud
et pour moi le terme c'est confidentielle computing,
c'est de plus en plus demander du sang.
En tout cas si c'est pareil les gens, en tout cas c'est les gouvernements,
elle est...
Oui, voilà, voilà.
Tu as aussi des featureurs hardware qui arrivent dans les processeurs
pour permettre ce genre de choses.
Je ne sais pas si c'est pareil, mais tu as la 3 state zone sur ARM par exemple
qui permet d'être sûr d'avoir de contexte bien différent
sans avoir une possibilité d'accès.
Ça effectivement c'est rond du hardware qui fournit ces possibilités-là
parce qu'en fait juste le hardware ne l'exposera même pas à l'information
ou en tout cas refusera l'accès même à ton hyperlouiseur de niveau 0
ou de niveau 1.
Tout à fait.
Donc c'est encore plus bas que le ring 0, c'est le ring 23 je crois peut-être.
Après faut aussi faire gaffe avec le problème d'une de cachet niveau
parce que le spectre de l'un et l'autre on a vu les résultats
mais c'est pris en considération maintenant, je danse tout là
et c'est pas une mince affaire.
Mais bon pour rester sur le sujet de la sécurité parlons de Fuse.
Donc Fuse FUSF pour file system in user space.
C'est en gros, donc regarde c'est un support carnel et tout un tas de...
Par exemple, LibFuse qui permet en gros de monter des files system
qui sont soit pas gérés par le carnel, parce que le carnel ne passe
soit parce qu'on est sur un système
où les drivers n'ont pas été compilés et qu'on veut monter des files system
un peu ésotériques, c'est souvent utilisé pour faire du file system réseau.
Une sens c'est utilisé quand on branche une pièce USB.
Alors moi en enpartie je pense...
Plus maintenant dans CGVFS et comme ça...
En enpartie moi je pensais beaucoup c'est vu pour faire du squashfs par exemple
qui était pas supporté et il t'avait des outils en user space
pour créer des squashfs, s'envoyer sur une Raspberry Pi et démarrer avec
sans avoir besoin d'aller modifier ton carnel
ou alors des très vieux systèmes de fichier qui sont plus supportés
mais qui ont toujours une implementation user space
qui te permettent de au moins lire, pas forcément écrire mais au moins lire
ce qu'il y a dans une image.
Donc c'est pratique, tu veux dire...
Dans les exemples, Berriette avait DeepCore, l'FS
donc tu te balades sur un serveur web ou autre, ou un FTP,
MySQL, donc tu te balades dans une base donnée comme c'est un file système,
TAR maintenant si c'était bien...
Oui les archives TAR, S3...
Toutes les bonnes idées peuvent être réalisées avec une base...
Sur tous les obèses aussi...
Voilà, et puis fusée aussi de notre hormone connue
pour créer un peu d'effet de sécurité
là où c'est installé.
Mais voilà, par contre, dans les nouveautés du carnel Sys9
il y a une modif qui permet de bypass le serveur fuse
parce qu'en fait, fuse, ça fonctionne en un genre de serveur
qui va s'occuper de faire la translation où l'on veut
et en fait, il y a quelqu'un qui a rajouté dans le carnel
en fait, il s'est rendu compte qu'il y avait beaucoup de use cases de fuse
qui étaient juste pour monter un file système
dans une certaine version
mais pas forcément du file système réseau etc.
Et donc, l'idée c'est d'avoir une opti qui bypass le serveur fuse
et qui permet directement d'avoir du memo VMAB
pour aller écrire dans le fichier qu'on vise
qui vous ne comprenez, j'imagine
permet d'avoir des perches bien meilleures là-dessus.
En fait, ça évite que un process A écrive dans un fichier
qu'en fait, ce soit du coup, renvoyer au serveur fuse
entre lui et notre compétition d'implication qui implique le fuse
qui, elle-même, après, va aller écrire là où il faut.
En fait, tu évites tout un tas de copies de la donnée
et général, c'est ça qui est assez long.
Donc là, c'est quoi ? C'est fuse AIO direct ?
C'est fuse AIO, ouais, ouais, faster fuse AIO
ça s'appelle la news dans le truc, c'est du passe-fous.
C'est-à-dire que le serveur va directement mettre en place
un morceau de mémoire dans lequel le client va pouvoir écrire
et se prendre la tête.
On retrouve un peu l'idée du BFF aussi avec la mairez.
Ouais, bah ouais.
Je n'ai jamais eu moi, ouais.
Et encore une autre faille de sécurité.
D'ailleurs, en parlant de faille de sécurité,
on va peut-être boucher, passons-en au nouveauté du 6.10.
Et Arnaud va nous parler du MCIL,
qui n'est pas un foc qui se balade dans les mains.
Ouais, la 6.10, ça a été réussi, je crois,
à début juillet, comme ça ?
Ouais, peut-être mais...
Mais attends, je crois que c'est début juillet, si tu sais.
J'ai fin mai 2024 sur...
Ah, fin, c'est...
Non, non, non, c'était l'RC.
C'était l'RC, hein, 14 juillet.
Exact, ouais.
Merci, on va voir.
Donc MCIL, ouais, c'est donc un nouveau 6.10,
qui a été ajouté, donc en fait un moyen pour un programme
d'aller parler au kernel pour y faire des opérations différentes.
Globalement, son but dans la vie à ce 6.10,
c'est de...
Que notre programme puisse dire
que telle ou telle page mémoire...
Enfin, de fait, de set les permissions
de telle ou telle page mémoire,
read, write, execute, enlever ou ajouter,
ces permissions-là, soit du coup,
ces permissions sur ces pages,
et qui restent en fait toute la vie du processus.
A priori, du coup, c'est pas mal utilisé,
donc pour Chrome, pour Sound Boxing,
ou pour d'autres...
Ça pourrait tout y est pour d'autres implications de sécurité.
L'idée, là, c'est qu'en fait, si jamais un attaquant
arrive à trouver une file dans votre programme,
et donc, ouviens, un buffer overflow, quelconque,
arrive à écrire dans une zone mémoire qui est allouée,
et ensuite arrive à jump par un quelconque moyen
dans cette zone mémoire qui ne puisse pas en fait
exécuter le code, et qu'en fait, le kernel,
le disse-bannon n'a pas le droit d'exécuter.
En fait, ça prévient plutôt l'écriture que l'exécution,
c'est-à-dire que par défaut, tu as la zone.texte, par exemple,
ou est stockée tout ton code assembleur qui va être exécuté.
Et donc, là, avec M-SIL, tu peux dire,
la zone.texte, je veux qu'elle ne bouge jamais.
Donc, même si tu n'as jamais...
C'est un programme qui vous l'allait écrire dans cette zone
pour être exécuté après, parce que tu as les droits d'exécution
sur ces pages, tu préviens l'écriture.
Donc, en fait, même si il fait le jump,
il va aller jumper dans une zone de tout code
déjà existante, parce que tu l'as loqué.
Donc, il n'arrivera pas à faire ce qu'il voudrait faire.
Pour moi, c'est ça.
Alors, il me sent que...
Tu as raison, mais d'un autre côté, je me sens que j'avais vu
un truc qui dit que tu pouvais écrire
dans des pages et des rites de l'année, tu pouvais quand même écrire dedans.
D'accord.
C'était pas un problème.
En fait, je ne sais même plus.
Mais non, même si je ne sais pas juste pour relever la partie d'exécution.
Non, ça, c'est autre chose.
C'est le next bit.
Ce que j'avais compris, c'était peut-être encore autre chose,
mais il faudrait qu'on se mette d'accord.
Normalement, quand tu définis, tu n'es pas un memoire,
tu donnes les permissions que tu veux dedans.
Et il me semble que tu peux modifier à posteriori
les permissions.
Et ça, c'est plus le fait de dire,
OK, le CPU l'avait mis,
je t'utilise ce truc-là,
je peux, qui est ce bit d'exec ou d'écriture,
et je ne veux plus jamais que...
Mais si je te le demande, c'est que ce n'est pas moi.
Oui, parce que le problème, malveillant,
on va demander à reprendre les trois décritures.
Oui, justement, tu demandes au système,
ne me donnes plus jamais de droit, ne m'écoutes plus.
Voilà, s'il te plaît.
Si je te demande pour éclairer dedans,
c'est qu'il y a un problème ailleurs.
Ça, sans doute, c'est une apaque
qui va avoir réussi à écrire quelque part,
vous ne fallait pas.
Et du coup, c'est pas mal.
Mais du coup, la question, c'est...
Enfin, à partir du moment où on a fait ça,
le process pour supprimer le memoire,
il est obligé de s'arrêter,
parce qu'il n'y a plus rien qui peut bouger
dans la mémoire, tant que le process tourne.
Il faut pas que je lui ai demandé.
Il faut faire attention.
Enfin, voilà.
Il faut pas trop en abuser, peut-être.
Dans la doc du Kardel,
c'est écrit qu'il y a certains cas
où tu peux quand même aller écrire
dans la mémoire Ridley-Dominion.
Mais c'est a priori in a way by design.
Ok.
Ces cas ne sont pas couverts par MCL en par exemple.
Bon, a priori, il faut utiliser d'autres outils
de sandbox, si tu veux dire ça.
Je pense que c'est un outil de plus
à la ceinture pour éviter les attaques.
Par exemple, dans le cas de Chrome,
si jamais tu as un problème JavaScript
qui arrive à écrire de l'assemblure bar pour sauter,
au moins tu sais que tout Chrome,
dans sa zone point texte,
il a demandé au système de ne plus jamais l'écouter,
donc ça peut être pas mal.
Surtout si tu es un site en Google.com
et que tu accès à des fonctionnalités.
Ah oui, c'est vrai que ça.
Supplementaire de Google Chrome.
T'as plus de fonctionnalités.
Je sais pas si t'avais vu passer ça.
Si je l'avais vu passer.
Mais je repreçais un truc que j'avais vu aussi.
Par contre, du coup, et on avait discuté tout à l'heure,
il y a un petit problème aussi à utiliser
ce Cisco là, c'est que si jamais
tu saises en fait les permissions de ta page
et que tu n'as plus accès à la page,
tu peux plus la libérer.
En fait, ta mémoire reste bloquée
jusqu'à temps que ton process se ferme.
Donc, une fois que tu le fais,
il faut t'assurer que tu ne vas pas lire
ta mémoire.
Je pense qu'on ne va pas le faire
sur des trucs dynamiques que tu fais
sur ta zone que tu es sûr d'exécuter.
Par contre, si tu fais ça
sur quelque chose qui va faire des maloques
en cours d'exécution,
il faut faire attention parce que,
à mon avis, les fris n'ont aucun effet.
C'est la faible.
Je suppose que tu n'auras pas eu d'erreur.
Je ne veux pas commencer.
A tester.
Je suis en une faute.
C'est le bireux.
Et bien, en termes de transition,
on n'est que sur la sécurité pour l'instant.
Donc, on va rester sur les transitions
sur la sécurité.
Donc, Adrien voulait nous parler
dans les nouveautés de la 610
de meilleur support de TPM2.
Alors, de là, c'est quoi TPM2 ?
Alors, TPM2, c'est Trusted Platform Module.
C'est un petit enclave cryptographique
qui permet de mettre tes clés de chiffrement.
Typiquement, c'est ce qui fait que
ton laptop, quand tu as un Windows installé
avec BitLocker et différents trucs,
ils ne te demandent pas de mot de passe.
Ils te demandent parfois mapping
si tu le demandes en plus.
Mais, même sans qu'ils ne te demandent rien,
tu ne peux pas prendre le disque dur
et le mettre ailleurs.
En tout cas, tu ne peux pas te faire voler
ton laptop et on va te faire choper.
En fait, c'est parti chiffrement,
physique, où tu généras cette efficace,
tu le rendes dans l'enclave
et tu ne peux plus la sortir.
Parce que, non seulement en plus,
au niveau physique,
il y a du blindage.
Ils sont bien pour ces trucs quand même.
Du coup, tu pouvais,
tu pouvais justement lui demander
explicitement de chiffrer
et d'avoir le résultat.
Mais tu ne voyais pas les étapes
à la média.
Le problème qu'ils avaient,
c'est quand même quand tu avais
l'accès physiquement au matériel,
tu pouvais faire des probes
électroniques.
Et si je ne dis pas de chronique,
c'est aussi comme ça qu'ils avaient
réussi à trouver une PlayStation 3
ou 4, ou je ne sais plus quoi.
Ils avaient fait des leutons,
ils regardaient sur les étapes.
Le plus dur pour lui,
c'était de trouver à quel moment,
qu'est-ce qu'il se passait,
à quel endroit, etc.
Mais une fois qu'il avait,
il probait le bus
et puis il retrouvait les informations
et il pouvait en extraire la clé.
Donc les infos étaient stockés de manière
assez causée sur TPM,
mais les échanges étaient publiques.
Et du coup, en mettant
deux petites soumes,
tu pouvais aller voir
le signe électrique qui passait et…
Extraire le tout.
Extraire le certificat, par exemple.
Tu pouvais pas avoir le…
Alors le certificat,
le certificat,
le stocké.
Mais tu peux peut-être
voir la source
et peut-être dire,
t'inquiète et signe
alors qu'en fait,
pas vraiment quoi.
Générer, voir, reprendre
ou trouver la source.
Et donc là,
le but de vis-à-vis,
c'était de pouvoir
rajouter le chiffrement
sur ce bus,
une histoire que tu puisses plus
analyser le tout.
Tu peux plus voir
ce qu'il y a sur le bus.
Ok.
Ça me fait penser un peu
au Yubiki, en fait,
qui ont le même système.
C'est-à-dire que tes clés
sont stockés
de manière sécurisée
sur la clé.
Et enfin, tes clés,
oui, sur la clé,
c'est…
Mais tes clés…
En fait, les échanges,
ces échanges…
Tes clés, voilà.
Donc, ta clé privée,
chez ça,
tu as que le privé PGP.
Et du coup,
même si tu perds ta clé,
a priori,
tant que la personne
qui te l'a volé…
Tu perds ta clé physique.
Voilà, tu perds ta clé
physiquement dans un aéroport,
je ne sais pas,
dans un avion,
tu la fais tomber.
Et bien,
la clé est sécurisée
sur le device.
Et même si tu ouvres
le device que tu vas aller,
je ne sais pas,
moi,
prendre un microscope,
faire des trucs vraiment
vraiment très avancés
dessus,
tu ne pourras jamais
extraire la clé privée.
Alors oui,
dans ça,
c'est la théorie.
On l'a vu,
il y a deux semaines,
c'est possible.
Ah oui, ils ont réussi
à extraire une clé…
Sur le Mickey,
en tout cas,
ils avaient reçu…
Un Mickey,
oui,
enfin,
des…
Ah, c'est pas sur la 5C,
il y avait une annonce
de vulnérabilité
sur les clés
élyptiques,
il y avait un truc,
oui,
sur les courbes élyptiques.
Sur les courbes élyptiques,
oui,
RSA était…
Oui, c'est l'enploi,
moi je crois.
RSA était épargnée,
mais les courbes
élyptiques avaient eu un souci.
Mais c'était pas le hardware,
c'était l'enploi,
ma attention,
du chanel.
Alors tu te ramenais
comme un oscilloscope
qui va bien,
et que tu prenais la clé,
que tu l'as défoncée un peu,
d'après que tu la redonnais
la personne,
et qu'elle l'utilisait.
Ah oui, c'est ça.
La clé est toujours défoncée,
c'est pour rien d'avoir,
je crois,
un objectif de grand…
Tu pouvais effectivement,
oui,
modifier la clé,
et…
Oui,
c'est le plus grand oscilloscope
qui se balade,
enfin,
courait.
Oui,
mais il s'était quand même
qu'il avait été volé.

Sachant que les gens
qui utilisent des Ubiqui,
ils sont quand même,
je parle,
sur la sécurité de base,
normalement,
parce qu'ils essaient
d'améliorer leur process.
Et ensuite,
il fallait qu'ils allaient
rebrancher une Ubiqui
qui avait potentiellement
été défoncée,
qui avait été…
Qui avait été connu
avec du scotch,
et voilà.
Et qui se disait,
« Oh, c'est normal,
ça m'a Ubiqui,
il y a du scotch autour,
et il n'y a pas de souci.
»
Mais effectivement,
il y a toujours
des failles à ce niveau-là.
Et bien,
autre chose à ajouter sur…
On est passé à 5G,
on ne pouvait pas passer
Windows 11 par des consoles.
Oui, c'est vrai.
C'est vrai, c'est vrai
que il me semble
que Windows 11 refuse
de s'installer
sur les systèmes Windows 10,
qui ont un TPM assez vieux,
donc ça peut être
une TPM1, je crois.
C'est un point deux,
on dirait un point deux.
Voilà, c'est ça.
Et donc,
Windows 11 demande d'avoir
un TPM2,
j'imagine pour BitLocker
mais aussi d'autres raisons,
parce que les gens n'utilisent pas
forcément BitLocker
sur Windows 11.
Et ça,
ça pose quand même
un problème de gaspillage,
parce qu'il y a plein d'ordinateurs
qui font ça encore très bien,
et qui ne peuvent pas
faire la mise à jour
à Windows 11.
Et en mode on est Windows 10,
le support va être tombé.
Donc,
une raison de plus
pour passer à Linux,
qui n'a pas ce besoin
de TPM2.
Même sur les VM,
tu peux le…
On demande aussi ça
durant les VMs,
mais tu peux l'installer
et ensuite le dégager.
Ah, donc tu peux installer
Windows 11 avec un TPM
et enlever le TPM
dans une solution.
Oui, c'est un peu bizarre.
C'est un TPM virtuel.
Il y a un virtuel.
Oui, en bas souvent,
typiquement d'un Proxmox,
c'est un peu chiant
parce que comme c'est un fichier haut,
pour l'état de la mémoire,
il dit,
« Tu peux pas faire Snapchat
parce que le RAW
ne gère pas les Snapchat.
»
Ça te bloque les Snap
parce que tu as un TPM.
Mais pour les gens
qui ont des machines physiques
sur Windows 10,
je me dis que ça sera très compliqué
de passer Windows 11,
sauf s'il peut changer
le processeur
dans le cadre d'un ordinateur fixe.
Dans un portable,
ça va créer pas mal de déchets
juste parce que les gens
qui n'ont pas passé Windows 11
et que le support de Windows 10
va finir par tomber un jour.
Donc, installer Linux.
Je pense que c'est
ce qu'il faut retenir
de tout ça.
En parlant d'un installer Linux,
je vais absolument pas
faire une transition de qualité
avec ce que je veux.
On se protège sur la sécurité.
Comment ?
On protège sur la sécurité.
On protège plus sur les perres.
Sur les perres plutôt, je...
Oui, mais Grign, je me dis.
Ah oui, alors...
C'est vrai qu'il y avait pas mal de fuite.
Pendant que la activé
connaissait, d'ailleurs...
Ah oui ?
Oui.
On croit que le support d'IoE Ring
était ce qu'il y avait trop de
de l'E-2.
Je pense que c'était
la jeunesse de IoE Ring,
mais effectivement,
d'accord, c'est encore...
ça encore on peut trouver, OK.
Bon, je te laisse faire
ta transition par ordinateur.
Non, non, tu l'as très bien faite.
Dans les nouveautés de la 610,
il y a des nouveautés
dans IoE Ring
au niveau de...
... les euros copis, je crois.

Je crois que, oui,
pour envoyer des messages
sur le réseau, après, oui,
je passe ça assez rapidement,
ce qu'on a vu ça.
C'est pas un gros changement
globalement.
Il y a maintenant une option
pour refaire des e-mails en copie,
en fait, quand on vous utilise...
enfin, quand on vous envoie des messages
sur le réseau, ce qui,
encore une fois, évite
de copier de la donnée
entre le user space et le kernel space.
C'est toujours très, très cher.
Donc, en fait, le user space
envoie directement la donnée,
on va dire la carte réseau, peut-être.
Non, mais c'est d'autant plus...
d'autant plus important
que les cartes réseaux
vont plus en plus vite.
Maintenant, on a des cartes réseaux
qui ont allé monter
à 800 gigabits en Ethernet.
C'est un truc de taré.
On est presque à l'inter à vite.
Et, bah, si on s'amuse
à copier des paquets...
... enfin, oui, oui, c'est ça.
Si on s'amuse à copier
le contenu des paquets
entre le kernel
et les users,
ça va prendre un temps fou.
Et du coup,
IoE ring de mémoire
permet...
Oui, c'est ça.
Donc, en fait, je pense que ça rajoute
le support des érocopies à IoE ring
qui évite...
Parce qu'à IoE ring, à la base,
le but, c'était de réduire
le nombre de syscalls qu'on faisait
en les groupant dans les buffers.
Et donc, cette histoire des érocopies,
ça devient intéressant
quand on fait du réseau
à très haute vitesse
parce qu'on va éviter
de copier les paquets
du kernel au user.
Et on va pouvoir
donc gagner un temps
assez non négligeable
quand on va très vite.
À partir de, je pense, 10 gigabits,
ça doit commencer à être
rentable de faire ce genre de mani.
Et donc, IoE ring va permettre
à la fois d'éviter les copies
et en plus de réduire
le nombre de syscalls
parce qu'on a les ring buffers
qui permettent
d'éviter les changements
de contexte entre le kernel
et l'user space.
Donc, cool, cool.
Je vais y aller parce que,
effectivement, IoE ring,
c'est une zone de mémoire partagée
entre le noyau et l'user space.
Donc, là, il n'y a pas
de copie entre les deux.
Mais après, elle a 4 réseaux.
Elle a son ring buffer
qui sert pour la réception
mais aussi pour le TX.
Et en général, c'est aussi ça
où tu ne fais pas de copie
entre ton user space et le kernel
et tu as quand même
le driver qui doit le faire
pour pouvoir le pousser.
Donc, tu vas aller en vis-à-vis
de la surface, ça va.
Il va y avoir
une zone plus ou moins unifiée
entre eux.
Alors, de mémoire,
c'est la carte réseau
qui va faire du DMA maintenant
pour aller copier
de ces buffers vers le kernel
pour pas avoir besoin
de demander au kernel
de copier ces buffers.
Mais tu te demandes
ce que ça a introduit
à un système
qui évite la copie
de la carte réseau.
Alors, le DMA,
il existait déjà
et il n'y avait déjà
utilisé plus très longtemps
sur la zone.
Sur la zone.
Mais en gros,
quand tu définis
un ring buffer,
c'est le driver
qui demande au kernel
de faire une zone mémoire
pour moi
pour que je puisse stocker
pour que je puisse configurer
ma carte réseau
pour dire, tiens,
quand tu reçois des paquets,
tu les copies
dans cet adresse-mémoire,
dans le noyau.
Donc, ça, c'est direct
en DMA.
Tu ne réveilles pas le CPU.
Donc, là, il va le mettre.
Et par contre,
ça reste dans la zone
spécifique du driver.
Oui, c'est ça.
Donc, ensuite, entre le driver,
il va te dépiler.
Tu as la stack réseau
Numa qui va dépiler,
voire si tu es CPU
parce que j'ai une application
qui écoute sur ce truc-là,
sur ce port-là.
Oui, OK.
Donc, je lui fais là
et je le réveille,
je lui mets en scan
et c'est l'application
qui va lire.
Il y a une petite copie
entre le driver,
entre les ring buffers
du driver
et la memory space
de l'application.
On n'a pas revient.
Donc, c'est pas vraiment...
De ce que je vous ai coupé,
de ce que le ring,
c'est entre user space
et la space.
Il y a un peu tout parce que
on va réduire le nombre
de Cisco en les groupant.
De batcher.
De batcher.
Tu batches tes Cisco, effectivement.
C'est une zone de mémoire
surtout qui est...
qu'on l'entourise à lire
comme les VDSO.
Oui.
Donc, tu n'as même pas de copie
du tout
entre le user space
et la space
entre le du applic.
Donc, ton brefeur de Cisco,
en fait,
est vraiment rempli.
Voilà, quoi.
Mais, oui.
Donc, ça doit rajouter des supports.
Je...
Je n'ai pas plus scrosé.
C'est vrai que...
Après, c'est...
Je pense que c'est un délice.
Ce n'est pas une grosse feature.
Je sens que j'avais pas l'impression
que c'était marquetté comme...
comme Intel.
C'est voilà
une addition
comme il y a beaucoup d'autres
dans les yôliréries.
De toute façon,
c'est plein de petits étapes,
je pense,
qui permettent d'avancer.
En parlant de petits étapes,
mais surtout en parlant
de coquiers de la mémoire,
il y a une des grandes nouveautés
autour de Numa.
Et est-ce que, Adrien,
tu veux nous parler
déjà de ce que c'est que Numa?
Oui.
Alors, Numa,
c'est revu à plein de sauts.
C'est de plus en plus utilisé.
Avant,
donc Numa pour non-uniforme
memory access.
Avant,
si vous souvenez du North Bridge,
tu avais du coup le CPU,
un North Bridge et la mémoire.
Et tu avais un North Bridge
qui gérait la mémoire et la RAM.
Et tu avais un South Bridge
qui gérait les I.O.,
le satin, le réseau et tout le temps.
Plus en le grand-meme,
plus en mesure qu'on a rajouté
les CPUs,
donc du coup les soquettes,
le North Bridge
devenait un goût étranglement.
Tu avais tout le monde
qui voulait accéder à la mémoire,
donc du coup,
il était passé par le North Bridge,
c'est-à-dire.
Donc du coup,
plus en faire un non-uniforme memory access,
c'est-à-dire que
chaque CPU va intégrer son contrôle
dans la mémoire,
donc chaque CPU va
son propre North Bridge,
qui va gérer sa RAM
et ils seront juste tout seul à la voie.
Donc c'est pratique parce que
ça simplifie pas mal de les choses.
Mais d'un autre côté,
ça veut dire que ton espace mémoire
qui est avant,
tu pouvais avoir beaucoup de RAM
et c'était en un seul morceau.
Maintenant,
si tu vas devoir soit l'étaler
entre tes différents soquettes
que tu peux avoir,
donc du coup,
ta RAM va être réclatée,
tu auras des access mémoires
qui sont plus uniformes, justement.
Donc pour les bases données,
c'était les premiers impacts
tessus parce qu'ils avaient quand même besoin
de beaucoup de place
et du coup,
ils étaient obligés
d'être syndés en deux
ou d'encer plus différents process
ou d'un différent politique.
Et non du coup,
quand tu tables,
justement, sur mémoire
qui est locale au CPU
sur lequel tu tournes,
c'est un numérique.
Quand tu tapes
sur la mémoire d'un autre CPU,
c'est un numérique mis.
Et t'es obligé de passer
par le bus, moi,
donc UPI,
UPI, enfin UPI maintenant,
pour les Intel,
pour les AMD, c'est quoi,
déjà, je sais plus.
Je sais plus, c'est l'interconnect,
mais sur ARM,
c'est encore trois choses,
mais c'est la connexion
entre chaque CPU,
du coup, c'est une connexion
qui est moins rapide
que de passer directement
sur la RAM.
Quand on lance un coût de numacité,
elle, pour afficher les trucs,
il nous font un joli tableau
avec les temps d'accès,
en général, on est à 10
quand on est en numarite.
Et ensuite, plus on s'éloigne,
ça passe à 20, 30, 40,
ça va être, ça,
si c'est vraiment 4,
le temps de...
Ce n'est pas des temps,
il n'y a pas de temps
de prendre un Tv
de quelque chose.
10, c'est le local,
11 en général,
c'est le local
sur le même socket physique.
Donc,
typiquement,
quand tu as un Skylake,
ou plus,
tu as deux contrôles de mémoire
sur le même socket.
Donc, tu filtes sur le premier truc,
tu as un 10,
on situe, tu tapes sur l'autre.
Et quand c'est un autre truc physique,
encore à côté,
là, c'est à 20,
ou plus,
quand tu es sur les AMD.
C'est informatif,
ça te dit juste,
tu as tapé en dehors,
après, ça ne sera pas
faisant mon 20,
je ne sais pas,
nanose,
mais...
Il n'y a pas de unité,
c'est juste que tu as tapé à côté,
ça te dit,
lors de grandeur,
dedans, attache.
Et donc,
du coup,
ça,
c'est un truc qui existe
plus très longtemps,
c'est bien géré.
Et le fait de gérer l'UNUMA,
ça fournit à l'OS,
c'est le hardware
qui va donner l'indication à l'OS.
Ce socket-là,
il est à tel emplacement physique,
donc,
il a un topologie NUMA
qui est remontée.
Et donc,
en fonction de ça,
les applis peuvent être
plus ou moins intelligents
dans leur placement,
dans ce qu'elles font.
Et on peut demander,
on peut dire, je lance,
par exemple,
cette machine virtuelle
sur tel coeur NUMA,
pendant tel...
T'as une main NUMA.
Je ne sais pas quoi,
NUMA, ouais.
Et a priori,
sa mémoire va être si possible
stockée
dans la rame
qui est de ce côté-là.
C'est aussi, ouais.
En gros,
si tu dis rien,
et selon les autres politici,
il va allouer la mémoire
sur le CPU,
sur lequel il est lancé.
Donc, du coup,
quand tu lances un truc,
et qu'ensuite,
tu le déplaces en chantant le pinning,
ta mémoire, encore là-bas,
et ton appilly est le tour de notre côté.
Donc, c'est un peu chiant.
J'imagine que la migration de ça
a déjà été faite,
de la mémoire de gauche à droite,
sauf pour les huge pages,
juste en ce jeu de patch.
Non, je suis...
J'avais pas vu tout le détail,
mais déjà,
tu avais ce problème.
Alors, peut-être qu'il commence
par les huge pages,
et ensuite, il fait...
En fait, les transports
de huge pages,
ça, c'est justement...
C'est les transports de huge pages.
Je le rappelle,
on n'a pas dit au début,
mais dans la news,
dans les nouveautés du carnet,
il y a le fait de pouvoir migrer
des transparentes huge pages
entre des nœuds numères.
THP, voilà,
les fameuses THP,
et le numéro qui rappelle
sur les...
Peut-être les huge pages,
les transports.
En gros,
tel en avait dit,
il y a la même U
qui fait beaucoup de traduction mémoire,
et l'unité de base,
c'est 4 kilos.
Donc, c'est pas qu'on n'aie qu'une page mémoire,
c'est 4K,
et donc, en tout cas,
c'est sur l'unité avec la cale de travail.
Quand tu as des basse-monnaies
qui se parlent en gigas,
ou en gigas,
ça fait beaucoup de fois du 4K.
Alors que derrière,
il dit,
moi, j'ai un seul espace mémoire,
ça sert à rien de faire de nous.
Ou 20 fois le calcul
pour aller un tout petit peu plus loin.
Donc, pour ça,
ils ont fait des huge pages.
Il dit,
pour cette zone-là spécifique,
ton unité,
ce n'est plus 4K,
parce qu'il est quand même bien,
parce que c'est pas un peu de réduire
la fragmentation
quand tu n'as pas de perte,
justement,
tu minises les pertes.
Il dit,
là, c'est une grosse appli,
elle va prendre plein de mémoire,
ça sert à rien de faire plein de fois 4K.
Tu mets 2 MHz,
enfin, dans le US 86,
2 MHz ou 1 GHz.
Et ça,
c'est ce qu'il y a pas les huge pages.
Du coup,
tu t'épargnes
1 GHz divisé par 4K,
le nombre de fois.

t'épargnes le temps de lock-up,
parce que tu dois aller chercher
une, deux, trois fois,
parce que t'as un système
un peu d'arborécence,
tu dois aller chercher la...
La page suivante.
La page suivante,
enfin,
de plus en plus finement jusqu'à la page de 4K.
Donc,
t'épargnes ce triple lock-up,
parfois, quand t'as des pages de 4K.
Et en plus,
ça utilise moins de mémoire,
parce que le fait de stocker
toutes ces correspondances
entre page physique,
page virtuelle,
ça prend de la place en RAM.
Et ça,
c'est utilisé par exemple,
par exemple,
sur...
Si t'as de gros 2 Bats de données
qu'utilise, je sais pas,
30 Giga de RAM,
il peut peut-être avoir 1 Giga
qui va être utilisé par l'US
juste pour stocker
les correspondances
entre les pages
physique et virtuelle.
Et donc,
ça peut même aussi
réduire ces pages.
Oui, c'est souvent au niveau du cache.
Enfin,
c'est cette opération
de faire la traduction
de...
C'est surtout ça, ouais.
virtuelle vers physique.
Donc,
l'adresse mémoire telle qu'elle est
dans l'appli,
ça correspond à quoi
en termes physiques,
c'est ce qu'on appelle le
troncet...
Alors,
le page table walking,
c'est justement
un truc en 4 étapes.
Et ça t'épargne,
c'est 4 étapes,
à chaque fois à faire.
Et comme c'est lent,
il y a un buffer
qui va garder ses résultats,
qui s'appelle le TLB,
le troncetion lock-aside buffer.
Et il est tout petit,
parce que,
effectivement,
c'est un truc qui est vraiment
fait rapidement,
mais qui est utilisé,
qui est dans le CPU.
Et quand t'as,
justement,
la même chose,
ça t'épargne
de défoncer ton TLB
pour rien.
Donc, ça t'épargne
des cache-misses aussi,
sur ce...
Oui,
enfin,
du coup,
c'est juste la traduction
est directe,
l'offset est direct dedans.
Oui,
t'as pas besoin
de calculer,
effectivement,
trop à la fois.
Tu t'épargne le calcul,
tu t'épargne les placements
et moi,
comme je disais,
c'est pour
le page base
où on contient une adresse,

qui sert de calcul.
Et
tu t'épargnes du coup
de pourrir le cache.
Mais il me semble que t'as quand même le calcul,
parce que la page de 2Mega,
il faut quand même que t'ailles
la chercher,
c'est juste que tu descends
moins loin dans l'arbre.
Je sais pas
si c'est un changement direct.
Ou alors,
effectivement,
ça évite de tracher ton cache,
qui fait que
tu vas trouver ta page de 2Mega
beaucoup plus vite que si
c'était une page de 4K
cachée au fin fond.
En plus, c'est un buffer
à côté,
je sais pas.
Donc ça aide
beaucoup de points.
Et
donc ça c'est bien,
c'est pratique,
sauf que le problème,
c'est que c'est
chiant à configurer,
faut se préparer
l'administration et l'autre.
Les gars,
ils sont dis,
si on pouvait automatiser
la découverte de ces pages
qui sont identiques,
qui sont jetons
des grosses allocations
et campagnes,
du coup,
les gens auraient plus besoin
de gérer ça
derrière,
de faire la configuration
dans le noyau,
dans le CCTL, etc.
Et dans du coup,
c'est des transparents
huge pages
où ils vont scanner,
donc t'as un thread kernel,
qui va scanner
les différentes pages,
voir les allocations
qui sont identiques,
et ce qui peut l'émerger.
C'est un non-compacteur,
un compacteur,
et c'est immense.



Pourquoi vous pouvez le voir
dans vos process,
c'est le cas compact de Zéro,
c'est lui qui se lui dévise,
c'est un autre.
Effectivement.
Mais du coup,
la participation
du transparent huge page,
c'est une opération,
il va faire du traitement d'air,



et quand t'es sur des noeuds différents,
c'est encore plus compliqué
de trouver
ces pages
qui sont identiques.
Du coup,
il va essayer de
mériger les opérations,
les noirs,
déplacer pour pouvoir le faire.
De migrer les pages,
oui, les...
Parfait.
C'était
une explication
très intéressante
pour Fanny.
Merci beaucoup.
Merci.
On va essayer de chercher.
Je cherche les compagnies.
Et voilà.
Et donc, une fois que...
Donc, on arrive là,
au bout de l'épisode,
de ce premier épisode,
donc,
Carnell 611
et peut-être le futur,
dans le prochain épisode,
qui sera avec les mêmes personnes,
vous venez c'est le principe maintenant.
Et donc, maintenant que
Adrien a retrouvé son cas
compact D sur son système,
il va pouvoir
nous parler de la musique
de l'épisode.
Ça, c'est une musique
qui m'imite ça, le sonnerie,
et qui en général,
mais tout le monde d'accord.
Et qui donc, est ?
Ça va être funk itarn.
Funk itarn.
Et on est d'accord que c'est la musique
sur laquelle le père de Malcolm
danse en roller.
Moi, j'avais comme référence
la pub d'Arriva, mais oui.
Oui, aussi.
Ça va être une relation
de Malcolm, on lui danse.
Mais je crois que c'est avec Malcolm
que je découvre cette musique.
Enfin, en tout cas, voilà.
Il y a des années.
Et bien,
merci, en tout cas,
à vous trois
d'avoir participé à cet épisode.
Et on se voit
nous, dans deux minutes
et les
gens qui nous écoutent
dans une semaine
pour avoir la suite
des carnelles
juste avant de se quitter.
Ou est-ce qu'on peut
voir vous contacter
publiquement ?
Est-ce que vous avez un
Handel X
en ciment Twitter ?
Oui, c'est les gens
qui vont pour la suite.
Amis d'avant,
encore un copain d'avant,
comment dire ?
Donc, la QP pour...
La QP sur Twitter.
Sur Twitter.
Ça respecte sur Twitter aussi.
Ça respecte
avec un U,
comme... voilà.
Et je ne vais pas

Moi, je ne fais pas le Handel X,
mais les gens qui me connaissent
ou qui s'intéressent
seront,
trouvent à mon avis,
très très tôt.
Sur les Mélanies,
les Biens,
par exemple.
Quant à moi,
je crois que je m'appelle
juu-duu-jiu-diu
sur Twitter.
Et, voilà,
sur ce,
on vous dit
pour revoir
et à dans un bon temps.
Salut !
Salut !

Episode suivant:


Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

CleverCloud

Tags