Connexion Premium

T@LC : on développe notre système d’exploitation, avec moins de 10 lignes de code !

Parfait pour s’occuper cet été !

T@LC : on développe notre système d’exploitation, avec moins de 10 lignes de code !

Illustration : Flock

Et si pendant les mois d’été vous en profitiez pour découvrir un peu l’assembleur et créer votre propre OS ? Promis, cela prendra moins de 10 lignes de code (on pourrait même faire moins). Il marche certes, mais il est totalement inutile (et donc indispensable ? Pas sûr…).

Il y a quelques mois, nous vous avions proposé de créer et entrainer votre propre intelligence artificielle avec seulement 10 lignes de code. De quoi un peu démystifier les IA et surtout en comprendre les tenants et aboutissants.

Savez-vous qu’il est possible de développer un système d’exploitation avec encore moins de lignes de code ? Alors autant le dire tout de suite, il ne servira pas à grand-chose en l’état… mais n’est-ce pas un peu le but des « Tests à la con » (T@LC) ?

Un OS avec détection du clavier en 9 lignes ? Facile !

Cela permet par contre de toucher du bout des doigts un peu d’assembleur et de mieux comprendre comment fonctionne un OS. Rassurez-vous, Next ne va pas développer son propre système d’exploitation.

On y va doucement avec un OS minimaliste qui ne fait qu’afficher les touches pressées sur le clavier à l’écran. Le code fait moins d’une dizaine de lignes.

Il reste 81% de l'article à découvrir.

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (31)

votre avatar
Cool, ravi de l'avoir de l'assembleur ici. Prochain T@LC : écrire son compilateur C en 10 lignes de code :fumer:
votre avatar
import shutil
import os
import sys
if __name__ == '__main__':
command = [shutil.which('cc')] + sys.argv[1]
os.execve(command[0], command)
votre avatar
Et m..., l'indentation a disparu
votre avatar
Oui, on se croirait sur teams ...
votre avatar
NextOS, ca fait rêver
votre avatar
le nom est malheureusement déjà pris
votre avatar
"Rassurez-vous, Next ne va pas développer son propre système d’exploitation." ...

Rappelons tout de même que Linux ne devait être qu'un hobby et pas un projet professionnel. :-D
votre avatar
J’ai largement assez de hobby pour ne pas, en plus. faire de l’assembleur :D
votre avatar
nan, mais tu peux le faire en Rust :fume:
votre avatar
Merveilleux, de quoi nous replonger 40 ans en arrière.
Mon père avait écrit un gestionnaire de fichiers très puissant et réactif en assembleur, des milliers de lignes de code.
Mais il faut avouer que ce genre de codage optimisé n'a d'avenir que dans des domaines spécifiques : les firmwares ou l'aviation/l'embarqué.
Les micro-controleurs à la rigueur, ou on optimise chaque clock cycle.

PS: j'ai tenté d'utiliser le PIO des raspberry, sans succès.
L'idée était de récupérer un signal d'une telco RC, j'y arrive avec une boucle qui compte le temps passé pour le CPU, mais ça serait mieux d'utiliser ces contrôleurs.
Ca serait plus précis.
votre avatar
Pour l'aviation, je préfère qu'on évite l'assembleur et qu'on prenne plutôt de l'ADA...
votre avatar
Prochaine version en brainfuck. Ou même en Ook !
votre avatar
Alors je propose de lancer un modèle collaboratif9 sous la forme d’un jeu collectif. J’ai fait en assembleur, le prochain prend le langage qu’il veut (tant qu’il n’a pas encore été utilisé) pour faire un OS aussi inutile et, à la fin de l’été, je publie un récap
votre avatar
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook! Ook.
votre avatar
Bordel ca fait des années que je n'avais pas vu passer du Ook :transpi:
votre avatar
Bibliothécaire, sors de ce corps !
votre avatar
(pas sur qu'il passe celui là ^^)

[edit] il ne passe pas. Je l'avais fait en Whitespace :D
votre avatar
On se refait MINIX cet été ? 😂
https://www.minix3.org/
votre avatar
Oui enfin le bios c'est vieux... Le même en UEFI ? ;)

(spoiler : pas besoin d'ASM ou d'interruptions !)
votre avatar
ce serait intéressant, je connais plus ou moins le fonctionnement en mode bios avec les appels int etc mais l'UEFI je n'ai jamais pris le temps d'aller plus loin, next ????
votre avatar
C’est une bonne idée en effet, mais la je ne connais pas :) Je vais découvrir cela et faire un autre T@LC si c’est intéressant (et pas trop compliqué)
Merci :)
votre avatar
bientôt: "Plongée dans l'UEFI: Le format .elf" :D
votre avatar
Veux-tu dire .exe .efi ?

Le .elf, ça sera pour l'épisode encore après sur le bootloader. Ah, on me souffle qu'il existe déjà un PoC.
votre avatar
ah oui, anéfé... :smack:
votre avatar
Alors l'assembleur, c'est pour les barbus, et l'elf, c'est pour ceux avec de grandes oreilles pointues.
votre avatar
Pour résumer, autant le bios est "bas niveau" (appel int avec fonction par exemple dans ah) autant UEFI est de haut niveau.

https://uefi.org/specs/UEFI/2.10/08_Services_Runtime_Services.html

Et on compile un exécutable au format PE de mémoire, et non un bout de code machine à coller dans le secteur 0.
votre avatar
J'ai très vite fait regardé le lien que j'ai collé ("ça ressemble à la doc que j'ai lu y'a perpet"). Mais pour illustrer la différence, outre le côté extensible, UEFI supporte par exemple en natif le FAT32, là où le BIOS file l'int 13h......
votre avatar
Il est déconseillée d'avoir plus de 10 millions de caractères par ligne by the way.
votre avatar
Mon dieu ! Hebdogiciel est de retour. Je viens de rajeunir de 40 ans d'un coup !
votre avatar
En terme de développement d'os, j'avais suivi ce tutoriel
J'en avait même fait un article de blog ensuite, car certains point m'avait bien fait cogité.

C'est assez amusant comment faire un noyau est à la fois "pas tant un truc de fou" et en même temps terriblement compliqué, en particulier quand tu veut un truc "sérieux".
votre avatar
Faire semblant de quelque chose est généralement facile et peu coûteux en ressources, temps humain inclus.
Une véritable variante infiniment "plus", sur tous les aspects.

Valable pour tout, tout le temps.