Qu'est ce que le DOS ?

Bonjour,

Je voudrais savoir ce qu'est réellement le DOS...

En effet, j'ai créé une disquette de boot qui affiche "Hello World!", le tout en assembleur (donc ce qui est sur la disquette n'est QUE le programme, rien d'autre n'est inclus).

Et pour afficher "Hello World!" j'utilise une interruption (une fonction en quelques sortes) "du DOS".

Ca m'indigne beaucoup parce que je pensais que le DOS était un système d'exploitation... (c'est ce qu'il y a écrit sur le site d'ailleurs) Mais si je boote à partir de la disquette il ne peut pas y avoir de système d'exploitation lancé !

Merci d'avance

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    "Mais si je boote à partir de la disquette il ne peut pas y avoir de système d'exploitation lancé ! "
    -> Il ya des systemes d'exploitation qui tiennent sur 1 disquette :)
    -> On peut démarrer sur une disquette a condition que certains fichiers soient présents sur la disquette: il n'y a vraiment rien d'autre que ton prog sur cette disquette?

    a+
    dje-dje
    1. Bonjour,

      Il y a quoi sur ta disquette à part ton programme ? Qu'est ce qui la fait booter ?

      Le DOS est bel et bien un OS... :)
      1. Voici le contenu de la disquette :

        jmp debut
        db "BOOT", 0, 0, 0, 0
        dw 512
        db 1
        dw 1
        db 2
        dw 224
        dw 2880
        db 0xF0
        dw 9
        dw 18
        dw 2
        dw 0
        dw 0
        db 0
        db 0
        db 0x29
        
        debut:
        cli
        mov ax, 0x6000
        mov ss, ax
        mov ax, 0x07C0
        mov ds, ax
        mov es, ax
        mov fs, ax
        mov gs, ax
        mov sp, 0xFFFF
        mov ax, 0012h
        int 10h
        sti
        
        mov cx, 12
        boucle:
        mov di, 12
        sub di, cx
        mov ah, 0Eh
        mov al, [helloworld + di]
        mov bh, 0
        mov bl, 0FFh
        int 10h
        loop boucle
        infini:
        jmp infini
        
        helloworld db "Hello World!"
        
        times 510 - ($-$$) db 0
        
        db 0x55
        db 0xAA
        


        Une disquette est bootable si les octets 511 et 512 contiennent un code spécial (55AA en hexa, ce sont les deux dernières lignes du code que j'ai mis)
        Il n'y a pas besoin spécialement de fichiers supplémentaires : pour une disquette de démarrage c'est le premier segment (là où ça boote) qui démarre les autres fichiers, dans mon cas tout se fait directement dans le premier segment
        La preuve c'est que ça marche et que windows me dit que 0 octets sont utilisés sur la disquette
        1. Désolé, il semblerait que j'ai fait une erreur : ce que j'utilise c'est en fait une interruption du BIOS (il y a les deux)
          Je viens de trouver un site disant que c'est impossible que ce soit du DOS (justement puisqu'il n'est pas là) et en approfondissant j'ai trouvé que ce que j'utilisais n'était pas du DOS

          Merci quand même