Exécuter du code sans OS sur un i5-8250U - Processeur - Hardware
Marsh Posté le 10-10-2020 à 00:20:27
ReplyMarsh Posté le 10-10-2020 à 00:34:56
Et de toute façon il va falloir créer un boot d'une manière ou d'une autre.
Marsh Posté le 10-10-2020 à 01:01:47
ou un clustering, mais bon comme dit zonka, il faudra bien créer un boot quelque part ^^
Marsh Posté le 10-10-2020 à 02:47:54
J'ai eu l'idée en suivant un cours sur les microprocesseurs, juste charger un programme sur un disque dur qui, par exemple, allume la LED du bouton CAPS LOCK.
Marsh Posté le 10-10-2020 à 09:57:49
Alors ça tu vois, c'était le genre de choses 'pensables' sur ordi quand j'avais 14 ans en 1987, je programmais en assembleur sur Z80 ou 680x0, le code 'direct from boot' était 'simple'.
Maintenant, tu vas passer un temps infini à gérer comment booter avant d'exécuter tes 3 lignes d'assembleur.
Au vu de la formulation de ta demande, tu n'as pas idée de ce à quoi tu a affaire, je pense
Tu pourras faire ce genre de manip plus simplement sur une plate-forme prévue pour avec accès I/O 'direct' comme un raspberry Pi par exemple.
Marsh Posté le 10-10-2020 à 10:58:20
zonka a écrit : Alors ça tu vois, c'était le genre de choses 'pensables' sur ordi quand j'avais 14 ans en 1987, je programmais en assembleur sur Z80 ou 680x0, le code 'direct from boot' était 'simple'. |
Mode nostalgie [ON]
Lol , le bon temps du ld a,1 ;a=1
ou on faisait des piles a depiler par le haut qui s'écroulaient en faisant cracher le pov "ordinateur"
Marsh Posté le 10-10-2020 à 11:01:04
ReplyMarsh Posté le 10-10-2020 à 15:01:43
jaibesoindaide a écrit : J'ai eu l'idée en suivant un cours sur les microprocesseurs, juste charger un programme sur un disque dur qui, par exemple, allume la LED du bouton CAPS LOCK. |
si ton premier programme est un drivers pour le disque dur, oui et si ton deuxième programme et un File system...
Marsh Posté le 10-10-2020 à 15:02:55
enfin, d'autres ont deja fait ce que tu cherche a faire :
https://gist.github.com/XlogicX/820 [...] %20More%20
Marsh Posté le 10-10-2020 à 18:06:01
Je demande humblement parceque je suis jeune. De nos jours un ordinateur c'est un écran un clavier, une souris, des ports USBs, HDMI, VGA, Ethernet, SATA, PCI etc, alors que la définition de base d'un ordinateur c'est juste une machine à calculer. Y a une bonne quantité de trucs qui se sont ajoutées, et ces trucs là fonctionnent ensemble grâce au systême d'exploitation, mais la base d'un PC ça reste juste aller chercher des données en mémoire, les décoder et les exécuter, tant que c'est un PC x86 je vois pas pourquoi un programme écrit en 1980 fonctionnerait pas nativement sur un CPU de 2018.
Marsh Posté le 10-10-2020 à 20:09:40
Il y aurait tellement de choses à détailler sur la différence d'architecture, la gestion de la mémoire.... Mais le problème principal reste que pour démarrer, il faut un boot et un semblant de système d'exploitation, tu ne balances pas ton code comme ça en direct, de nos jours.
En 1980, tu faisais ton code que tu pouvais écrire directement sur ton secteur de démarrage sur la disquette et démarrer dessus. Maintenant c'est infiniment plus complexe.
Marsh Posté le 10-10-2020 à 20:40:50
jaibesoindaide a écrit : Je demande humblement parceque je suis jeune. De nos jours un ordinateur c'est un écran un clavier, une souris, des ports USBs, HDMI, VGA, Ethernet, SATA, PCI etc, alors que la définition de base d'un ordinateur c'est juste une machine à calculer. Y a une bonne quantité de trucs qui se sont ajoutées, et ces trucs là fonctionnent ensemble grâce au systême d'exploitation, mais la base d'un PC ça reste juste aller chercher des données en mémoire, les décoder et les exécuter, tant que c'est un PC x86 je vois pas pourquoi un programme écrit en 1980 fonctionnerait pas nativement sur un CPU de 2018. |
non, meme pas, il faut un programmes, des instructions pour effectuer une simple addition
Marsh Posté le 10-10-2020 à 22:00:34
zonka a écrit : Il y aurait tellement de choses à détailler sur la différence d'architecture, la gestion de la mémoire.... Mais le problème principal reste que pour démarrer, il faut un boot et un semblant de système d'exploitation, tu ne balances pas ton code comme ça en direct, de nos jours. |
Et on faisait des virus de boot ....
Si avant le processeur c'etait une "machine a calculer " Aujourd'hui le processeur c'est DES machines a calculer avec deja des paquets d'instructions gravées dans les circuits . ( du genre je suis un gros processeur recent et costaud et je REFUSE de me lancer sur une carte mere ou il n'y a pas au moins Windows 10 ) Re LOL on contourne
Aujourdh'ui tous les acces de bas niveau sont plus ou moins " verrouilles" sauf les failles et on ne "bidouille" plus comme avant si on n'a pas un tas d'infos sur l'architechture et le microcode et ces infos ne courrent pas le net .
Rabat toi sur un Rasbery c'est plus fun.
Marsh Posté le 11-10-2020 à 00:57:52
Ça a l'air compliqué. Mais en gros ils font comment pour verrouiller les accès au bas niveau ? Si l'OS y a accès c'est que l'utilisateur lambda devrait en être capable, si y a des clés cryptographiques ou un autre truc du genre suffit de fournir la clé valide.
Au final c'est juste un gros circuit, les gens auront beau refléchir autant qu'il le veulent à comment le rendre sécuritaire, ça reste juste un gros, gros circuit électrique
Marsh Posté le 11-10-2020 à 08:04:55
jaibesoindaide a écrit : Ça a l'air compliqué. |
oui et non, en gros, tu veux juste accéder a l'électronique au niveau le plus bas, c'est en gros ce que fait le le BIOS (Basic Input Outpout System). ca, les fabriquant de carte mere le font tous les jours, mais il faut en effet des connaissance bien solide dans ce domaine.
perso, j'ai appris a faire ca sur un 68000@Motorola bien que largement plus simple que nos X86 actuel, c'était deja bien arrachage de cheveux (heureusement avec un prof passionnant ca fini par passer)
Marsh Posté le 11-10-2020 à 08:14:14
jaibesoindaide a écrit : Ça a l'air compliqué. Mais en gros ils font comment pour verrouiller les accès au bas niveau ? Si l'OS y a accès c'est que l'utilisateur lambda devrait en être capable |
Ben justement non, l'utilisateur lambda n'en est pas capable sinon n'importe qui ferait n'importe quoi, c'est pour ça que les développeurs ont des années d'études supérieures derrière eux.
Un PC ce n'est pas un boulier.
Marsh Posté le 11-10-2020 à 08:43:53
jaibesoindaide a écrit : Ça a l'air compliqué. Mais en gros ils font comment pour verrouiller les accès au bas niveau ? Si l'OS y a accès c'est que l'utilisateur lambda devrait en être capable, si y a des clés cryptographiques ou un autre truc du genre suffit de fournir la clé valide. |
Comme tu dis il suffit de " fournir une clé valide" mais tu te doutes bien que les fabriquants de processeurs gardent precieusement ces informations et ne les distilent qu'au compte goute aux interessés et meme tes premiers concernés comme les fabriquants de carte mere essuient les platres de bugs ou informations non communiquées d'ou les innombrables versions de Bios .
C'est vrai que ca reste un gros gros gros circuit electrique mais concu par des équipes de développeurs aidés par des tas d'autres ordinateurs
Vu le nombre de hackers existants potentiels ( tu en fais deja partie par la pensee ) et les failles corrigées des utilisateurs en sont capables mais ils ne sont pas lambda
https://www.inpact-hardware.com/art [...] n-pleuvait
Marsh Posté le 11-10-2020 à 12:25:09
artouillassse a écrit : Un PC ce n'est pas un boulier. |
C'est pas un boulier.
Mais ce n'est rien de plus qu'un gros paquet de bouliers et un orgue de barbarie, dont les éléments sont reliées les uns aux autres suivant une architecture précise.
jaibesoindaide>
Si le fonctionnement d'un CPU et du code au plus bas niveau t'intéresse, je te conseille d'étudier le fonctionnement d'un microcontrôleur simple comme les AVR.
https://www.micahcarrick.com/getting-started.html
Ne perds pas ton temps avec les Arduino, qui "cachent" le plus important, pour être plus faciles d'accès.
Idem avec les Raspberry, qui ne sont que des petits systèmes sous Linux; installe le monstre sur un vieux portable.
Marsh Posté le 11-10-2020 à 14:41:41
404 Not Found a écrit : C'est pas un boulier. |
Voilà, ce n'est pas un boulier
Une multitude de bouliers avec un orgue de barbarie relié à diverses roues crantées et vases communiquants, qui permet à M Glandu d'afficher youporn chez lui, le progrès quoi
Dans l'absolu tu peux envoyer des commandes au CPU, mais il te faut d'autres périphériques pour communiquer avec et pour voir l'effet de tes commandes, et pour ce faire tu as besoin de connaitre des éléments d'une complexité telle que des ingénieurs et techniciens humains ont mis une cinquantaine d'années à développer ensemble.
Si l'informatique t'intéresse au point de vouloir faire ce que tu dis dans ton premier post tu devrais te rencarder sur l'histoire de l'informatique et ses débuts. La logique booléenne, les portes logiques et tout le tintouin, ou le fonctionnement d'un micro-controleur en suivant le lien de 404 Not found.
Celui qui veut dessiner commence par des bonhommes baton et fini, s'il a du talent, par La Joconde.
Tout comme tu ne peux pas t'improviser peintre, tu ne peux pas t'improviser "codeur".
Marsh Posté le 12-10-2020 à 09:41:40
404 Not Found a écrit : |
on pourrait remonter à plus loin et citer l'Antikythera
Marsh Posté le 10-10-2020 à 00:14:26
Bonjour.
Est-ce que c'est possible d'exécuter du code en dehors du systême d'exploitation sur un i5-8250U. Je comprends que c'est pas l'idée du siècle, je me demande juste si c'est possible.