﻿﻿{"id":2631,"date":"2026-03-29T14:29:16","date_gmt":"2026-03-29T12:29:16","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/le-scheduler-linux-qui-consulte-les-astres\/"},"modified":"2026-03-29T14:29:16","modified_gmt":"2026-03-29T12:29:16","slug":"le-scheduler-linux-qui-consulte-les-astres","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/le-scheduler-linux-qui-consulte-les-astres\/","title":{"rendered":"Le scheduler Linux qui consulte les astres"},"content":{"rendered":"<p>Et si je vous disais qu&#8217;il existe un scheduler Linux qui prend ses d\u00e9cisions en fonction de l&#8217;astrologie. Non, c&#8217;est pas une blague, le premier avril c&#8217;est pas avant quelques jours. Ce scheduler s&#8217;appelle<br \/>\n<a href=\"https:\/\/github.com\/zampierilucas\/scx_horoscope\">scx_horoscope<\/a><br \/>\net c&#8217;est un vrai module BPF qui se charge dans le noyau et qui d\u00e9cide quel processus a droit au CPU selon la position des plan\u00e8tes dans le zodiaque. Et \u00e7a fonctionne pour de vrai !<\/p>\n<p>En gros, le principe c&#8217;est \u00e7a : <strong>chaque plan\u00e8te du syst\u00e8me solaire se voit attribuer un domaine<\/strong>. Le Soleil g\u00e8re les processus critiques (PID 1, init), la Lune s&#8217;occupe de vos shells et \u00e9diteurs de texte, Mars prend en charge la compilation et l&#8217;encodage vid\u00e9o, et Jupiter veille sur vos bases de donn\u00e9es. Les positions sont alors calcul\u00e9es en temps r\u00e9el gr\u00e2ce au crate Rust <code>astro<\/code>, donc oui, c&#8217;est de la vraie m\u00e9canique c\u00e9leste, pas un random(). En fait, le binaire calcule les \u00e9ph\u00e9m\u00e9rides g\u00e9ocentriques pour d\u00e9terminer dans quel signe se trouve chaque plan\u00e8te \u00e0 l&#8217;instant T.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/scx-horoscope-scheduler-linux\/scx-horoscope-scheduler-linux-1.gif\" alt=\"\" loading=\"lazy\"><\/p>\n<p><em>L&#8217;outil en train de d\u00e9terminer le bulletin m\u00e9t\u00e9o cosmique de votre CPU<\/em><\/p>\n<p>Et c&#8217;est l\u00e0 que \u00e7a devient franchement tordu car chaque signe du zodiaque est associ\u00e9 \u00e0 un \u00e9l\u00e9ment (Feu, Air, Eau, Terre) qui modifie les priorit\u00e9s CPU. Votre compilateur tourne pendant que le Soleil est dans le B\u00e9lier ? Hop, boost x1.5 pour les t\u00e2ches CPU-intensive. Par contre, si c&#8217;est un signe d&#8217;Eau qui domine&#8230; 0.6x sur la compilation. Pas de bol ! Et si en plus une plan\u00e8te est en r\u00e9trograde (genre elle recule dans le ciel), tous les time slices sont divis\u00e9s par deux. Votre <code>make -j8<\/code> se fera par exemple interrompre deux fois plus souvent, parce que V\u00e9nus fait sa diva.<\/p>\n<p>Le module utilise sched_ext, le framework du kernel Linux (6.12 minimum) qui permet de coder des ordonnanceurs en espace utilisateur via eBPF. Et c&#8217;est pas un proof-of-concept bidon, car \u00e7a charge vraiment dans le noyau. Un <code>cargo build --release<\/code>, un <code>sudo<\/code> devant, et hop votre machine tourne au rythme des astres. Y&#8217;a m\u00eame un mode <code>--cosmic-weather<\/code> qui affiche un bulletin m\u00e9t\u00e9o cosmique avec les phases de la Lune et les positions plan\u00e9taires du moment.<\/p>\n<p>Notez par exemple que la pleine lune booste les t\u00e2ches interactives de 40%. Donc si vous tapez du code \u00e0 3h du mat&#8217; un soir de pleine lune, votre terminal sera techniquement plus r\u00e9actif. Co\u00efncidence ? Bah non, c&#8217;est Cyber Madame Soleil qui g\u00e8re !<\/p>\n<p>Le projet propose aussi un flag <code>--ophiuchus<\/code> pour activer le 13e signe du zodiaque (celui que l&#8217;Union Astronomique Internationale reconna\u00eet mais que les astrologues ignorent royalement qui s&#8217;appelle en fran\u00e7ais Serpentaire).<\/p>\n<p>Ce projet est donc clairement \u00e0 classer dans la cat\u00e9gorie &#8220;<em>parce qu&#8217;on peut<\/em>&#8221; mais le niveau technique est loin d&#8217;\u00eatre ridicule puisque c&#8217;est cod\u00e9 en Rust, en C pour la partie BPF, que \u00e7a embarque de vrais calculs d&#8217;\u00e9ph\u00e9m\u00e9rides, et une int\u00e9gration kernel qui tient la route. Et les issues sur le Github sont un festival&#8230; quelqu&#8217;un a par exemple demand\u00e9 le support des \u00e9clipses solaires, tandis qu&#8217;un autre veut du chaos pendant les \u00e9ruptions solaires. Internet \u00e0 son meilleur ! Top of the top de l&#8217;indispensable inutile !<\/p>\n<p>Bref, si vous voulez que Jupiter booste vos bases de donn\u00e9es ou votre g\u00e9n\u00e9ration de site statique,<br \/>\n<a href=\"https:\/\/github.com\/zampierilucas\/scx_horoscope\">foncez<\/a><br \/>\n. Et merci \u00e0<br \/>\n<a href=\"https:\/\/www.camilleroux.com\/\">Camille Roux<\/a><br \/>\npour le partage !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Et si je vous disais qu&#8217;il existe un scheduler Linux qui prend ses d\u00e9cisions en fonction de l&#8217;astrologie. Non, c&#8217;est pas une blague, le premier avril c&#8217;est pas avant quelques jours. Ce scheduler s&#8217;appelle scx_horoscope et c&#8217;est un vrai module BPF qui se charge dans le noyau et qui d\u00e9cide quel processus a droit au CPU selon la position des plan\u00e8tes dans le zodiaque. Et \u00e7a fonctionne pour de vrai ! En gros, le principe c&#8217;est \u00e7a : chaque plan\u00e8te du syst\u00e8me solaire se voit attribuer un domaine. Le Soleil g\u00e8re les processus critiques (PID 1, init), la Lune s&#8217;occupe de vos shells et \u00e9diteurs de texte, Mars prend en charge la compilation et l&#8217;encodage vid\u00e9o, et Jupiter veille sur vos bases de donn\u00e9es. Les positions sont alors calcul\u00e9es en temps r\u00e9el gr\u00e2ce au crate Rust astro, donc oui, c&#8217;est de la vraie m\u00e9canique c\u00e9leste, pas un random(). En fait, le binaire calcule les \u00e9ph\u00e9m\u00e9rides g\u00e9ocentriques pour d\u00e9terminer dans quel signe se trouve chaque plan\u00e8te \u00e0 l&#8217;instant T. L&#8217;outil en train de d\u00e9terminer le bulletin m\u00e9t\u00e9o cosmique de votre CPU Et c&#8217;est l\u00e0 que \u00e7a devient franchement tordu car chaque signe du zodiaque est associ\u00e9 \u00e0 un \u00e9l\u00e9ment (Feu, Air, Eau, Terre) qui modifie les priorit\u00e9s CPU. Votre compilateur tourne pendant que le Soleil est dans le B\u00e9lier ? Hop, boost x1.5 pour les t\u00e2ches CPU-intensive. Par contre, si c&#8217;est un signe d&#8217;Eau qui domine&#8230; 0.6x sur la compilation. Pas de bol ! Et si en plus une plan\u00e8te est en r\u00e9trograde (genre elle recule dans le ciel), tous les time slices sont divis\u00e9s par deux. Votre make -j8 se fera par exemple interrompre deux fois plus souvent, parce que V\u00e9nus fait sa diva. Le module utilise sched_ext, le framework du kernel Linux (6.12 minimum) qui permet de coder des ordonnanceurs en espace utilisateur via eBPF. Et c&#8217;est pas un proof-of-concept bidon, car \u00e7a charge vraiment dans le noyau. Un cargo build &#8211;release, un sudo devant, et hop votre machine tourne au rythme des astres. Y&#8217;a m\u00eame un mode &#8211;cosmic-weather qui affiche un bulletin m\u00e9t\u00e9o cosmique avec les phases de la Lune et les positions plan\u00e9taires du moment. Notez par exemple que la pleine lune booste les t\u00e2ches interactives de 40%. Donc si vous tapez du code \u00e0 3h du mat&#8217; un soir de pleine lune, votre terminal sera techniquement plus r\u00e9actif. Co\u00efncidence ? Bah non, c&#8217;est Cyber Madame Soleil qui g\u00e8re ! Le projet propose aussi un flag &#8211;ophiuchus pour activer le 13e signe du zodiaque (celui que l&#8217;Union Astronomique Internationale reconna\u00eet mais que les astrologues ignorent royalement qui s&#8217;appelle en fran\u00e7ais Serpentaire). Ce projet est donc clairement \u00e0 classer dans la cat\u00e9gorie &#8220;parce qu&#8217;on peut&#8221; mais le niveau technique est loin d&#8217;\u00eatre ridicule puisque c&#8217;est cod\u00e9 en Rust, en C pour la partie BPF, que \u00e7a embarque de vrais calculs d&#8217;\u00e9ph\u00e9m\u00e9rides, et une int\u00e9gration kernel qui tient la route. Et les issues sur le Github sont un festival&#8230; quelqu&#8217;un a par exemple demand\u00e9 le support des \u00e9clipses solaires, tandis qu&#8217;un autre veut du chaos pendant les \u00e9ruptions solaires. Internet \u00e0 son meilleur ! Top of the top de l&#8217;indispensable inutile ! Bref, si vous voulez que Jupiter booste vos bases de donn\u00e9es ou votre g\u00e9n\u00e9ration de site statique, foncez . Et merci \u00e0 Camille Roux pour le partage !<\/p>\n","protected":false},"author":1,"featured_media":2632,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2631","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2631"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2631\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2632"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}