Creer un programme pour pc sans OS

Creer un programme pour pc sans OS - Divers - Programmation

Marsh Posté le 15-07-2007 à 16:47:07    

Bonjour à tous et à toute!
J'aimerais faire appel à vos connaissances car je souhaiterais savoir comment faut il procéder pour créer un programme qui se lancerait au boot du pc sur lequel il n'y aurait aucun OS d'installé! D'une part quel langage utiliser et d'une autre comment procéder? Il s'agit d'un programme simple tel qu'un menu permettant d'afficher diverses informations.  J'espère pouvoir profiter de vos lumières et de votre experience! J'espère pouvoir profiter de vos lumières!  :) Merci d'avance.


Message édité par anfalsh le 15-07-2007 à 16:50:17
Reply

Marsh Posté le 15-07-2007 à 16:47:07   

Reply

Marsh Posté le 15-07-2007 à 18:27:28    

Salut,
 
Il te faudra du C, de l'asm et quelques connaissances en matériel, ainsi qu'en secteur de boot etc... Car tu te retrouves à devoir programmer un OS en fait (même réduit au strict minimum, ça reste un OS).

Reply

Marsh Posté le 30-07-2007 à 13:25:10    

Oui il faut quand meme de solides connaissances au niveau matériel... A ta place je me baserai sur un Linux ultra minimaliste quand meme

Reply

Marsh Posté le 30-07-2007 à 14:05:39    

Ca ou programmer avec des raw sockets: bonne chance pour trouver un avis éclairé sur la question.
 
A ta place je m'inscrirais à une mailing liste de programmeurs fous asm compétents. Si t'as des profs à aller voir aussi, te prive pas.

Reply

Marsh Posté le 30-07-2007 à 15:13:09    

Ouais mais meme en Asm, faut aussi se démerder pour charger le premier secteur disque (vive l'hexa...) donc te faire un filesystem (bonjour la galere) puis gérer les entrées sorties (asm powa et pleure pour coder ca)...

Reply

Marsh Posté le 31-07-2007 à 17:20:39    

Tiens, un bon bouquin qui pourra t'aider : http://www.amazon.fr/Conception-sy [...] 201&sr=8-2

Reply

Marsh Posté le 31-07-2007 à 23:16:01    

Petite question anfalsh, tu as quel niveau en programmation/études ?

Reply

Marsh Posté le 01-08-2007 à 00:41:44    

C, asm c'est la meme chose à un niveau different!! faut juste trouver le compilo adequate et tu peux tout faire en C

Reply

Marsh Posté le 01-08-2007 à 01:37:06    

???
Quand tu programme un micro c'est toujour (ou presque) en C ou autre language haut niveau. tu ne fait plus sa en asm c'est inutile.
Tu peux faire la meme chose en C et en asm alors je vois pas ou est le probleme.

Message cité 2 fois
Message édité par Antidote95 le 01-08-2007 à 01:39:47
Reply

Marsh Posté le 01-08-2007 à 01:40:56    

source?

Reply

Marsh Posté le 01-08-2007 à 01:40:56   

Reply

Marsh Posté le 01-08-2007 à 01:41:46    

En c les registres et les I/O sont tout autant accessible qu'en asm...


Message édité par Antidote95 le 01-08-2007 à 01:41:57
Reply

Marsh Posté le 01-08-2007 à 02:02:37    

prck le faite d'utiliser de l'assembleur ammenera le pointeur directement peut etre!!??

Reply

Marsh Posté le 01-08-2007 à 02:09:42    

Montre nous ton boot sector qu'on constate directement; ça évitera des argumentations dans tout les sens...
Mais... tu ne passes pas beaucoup de temps à virer tout ce qu'il faut pour rentrer dans l'objectif de taille du binaire?

Reply

Marsh Posté le 01-08-2007 à 02:10:29    

Citation :


A bootstrap is loaded from the first sector on a disk, track zero, head zero, sector one. Which disk the bootstrap is loaded from is dependent upon the BIOS configuration saved in NVRAM (NonVolatile RAM). This single 512 byte sector is loaded into memory at physical address 0000:7C00. The BIOS will then examine the final two bytes of the bootstrap (offset 1FEh) for the value AA55h. This flags the bootsector as a valid, bootable disk instead of just storing disk information. A bootstrap must be exactly 512 bytes long because of the two byte check and the one sector limitation. After this verification, the BIOS will jump to 0000:7C00 and turn control over to the bootstrap.


le bios se charge de faire pointer au bon endroit.

Reply

Marsh Posté le 01-08-2007 à 02:11:34    

IrmatDen a écrit :

Montre nous ton boot sector qu'on constate directement; ça évitera des argumentations dans tout les sens...
Mais... tu ne passes pas beaucoup de temps à virer tout ce qu'il faut pour rentrer dans l'objectif de taille du binaire?


sa veux dire?

Reply

Marsh Posté le 01-08-2007 à 02:15:22    

je ne vois pas l'interet de la citation...
au passage vous avez deja developper en asm ou en c ?


Message édité par Antidote95 le 01-08-2007 à 02:17:41
Reply

Marsh Posté le 01-08-2007 à 02:18:24    

oui j'avais compris mais je vois pas ou est le rapport avec l'asm et le c

Reply

Marsh Posté le 01-08-2007 à 02:19:41    


Je crois que ça veut dire qu'il faut que tu te renseignes un minimum sur le sujet. Si tu ne sais pas la taille requise, je doute que tu comprennes la problématique. (Ceci dit, je n'en ai jamais codé non plus, je me suis juste intéressé à la question.)

Reply

Marsh Posté le 01-08-2007 à 02:23:10    

on parle de la taille de quoi la?
si vous croyer que le c donne un code plus gros que l'asm c'est a vous d'aller vous renseigner

Reply

Marsh Posté le 01-08-2007 à 02:25:10    

...
 
Y'a rien à faire :sweat:

Reply

Marsh Posté le 01-08-2007 à 02:27:07    

certes il doit faire moins de 512B mais un compilo correct ne rajoutera pas de ligne superflu...

Reply

Marsh Posté le 01-08-2007 à 02:34:20    

Des qu'il y a des desacords c'est un topic pourri ou alors c'est seulement si tu n'optient pas gain de cause??!!

Reply

Marsh Posté le 01-08-2007 à 02:51:09    

Il a en partie raison en disant que les compilo C sont très efficace maintenant et qu'effectivement pour des opérations complexes ils vont te pondre un code ASM en général plus optimisé que le programmeur lambda est capable de pondre.
 
Mais effectivement, aussi optimisé soit-il, j'ai jamais vu un bootloader, que ce soit sur x86, ARM ou SH écrit en C.

Reply

Marsh Posté le 01-08-2007 à 09:19:18    


 
Tu voulais pas plutôt dire "Un bootloader s'écrit pas en C"?

Reply

Marsh Posté le 01-08-2007 à 11:47:49    

Si je pense, mais de toute façon, 512 octets en C (Edit: quand bien même le code C serait optimisé par le compilo), on peut toujours courrir pour faire quelque chose de rééllement utile; même en asm c'est galère apparemment :D


Message édité par IrmatDen le 01-08-2007 à 11:48:24
Reply

Marsh Posté le 01-08-2007 à 13:55:45    

tu fais une diskette avec freedos/linux et ouala
 
ou tu prends juste un livecd

Reply

Marsh Posté le 01-08-2007 à 15:48:03    

Ouais au pire tu code un truc en quickbasic que tu lances avec freedos

Reply

Marsh Posté le 02-08-2007 à 02:20:09    

Antidote95 a écrit :

???
Quand tu programme un micro c'est toujour (ou presque) en C ou autre language haut niveau. tu ne fait plus sa en asm c'est inutile.
Tu peux faire la meme chose en C et en asm alors je vois pas ou est le probleme.


tiens, j'ai dormi 2 jours d'affilée ? on est déjà vendredi ?

Reply

Marsh Posté le 02-08-2007 à 09:42:18    

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed