IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation d'OS Assembleur Discussion :

[NASM] Kernel CPCDOS : boot, multitâche et exécution d'un programme type .EXE


Sujet :

Programmation d'OS Assembleur

  1. #1
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut [NASM] Kernel CPCDOS : boot, multitâche et exécution d'un programme type .EXE
    Bonsoir
    Je voudrai reprendre à zéro la base d'uns de mes projets, il s'agit de cpcdos osx
    plus particulièrement le boot, le multitâche et l'exécution d'un programme type .EXE

    Pour commencer j'ai seulement 4 questions, m'envoyez pas un manuel complet en vrac en réponse svp,
    j'aimerai bien être structuré dans mon travail et voir les possibilités que je garde la motivation

    Tout en utilisant NASM

    • Es-ce possible en bootant mon mini kernel fait maison, d'avoir un module tout fait qui permettrait d'émuler toutes les fonctions DOS ?
    • Si oui, peut-on exécuter un .EXE 16Bit avec cette fameuse entête «MZ» ?
    • Si oui, comment fait-on du multitasking qui me permettrai d'exécuter ces .EXE indépendamment ? (Même principe que DesQview)
    • Si oui, peut-on "tronquer le système" en se faisant passer pour le «MS-DOS version 7» afin d'avoir la compatibilité des programmes ?


    Merci.
    FAVIER Sébastien

    PS: J'ai bien feuilleté ce site
    et je connais bien FreeDos
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  2. #2
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    première réponse: non il n'existe pas de module tout fait pour faire la liaision entre un exe et ton kernel maison a moins que tu le code toi même (ou si un des uttilisateurs de ton os l'as fait)

    deuxième réponse: les processeurs 32 bit ont un mode spéciale le "v86" qui permet d'emuler un processeur 8086, c'est ce qui permet aux os microsoft moderne qui fonctionnent en mode protégé d'utiliser des programmes qui fonctionnent en mode réel

    troisième réponse: desqview doit fonctionner en mode protégé et avoir une machine virtuelle dos v86 par tâche et les executer chaqun leurs tours pendant un temp très court

    quatrième réponse: je ne peut répondre car je ne comprend pas ce que tu entend par "tronquer le système"

  3. #3
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Bonsoir,

    Je vais répondre par une autre question : Pourquoi ne pas utiliser directement un DOS ?
    Pour faire du multitâches, il y a de petits utilitaires (j'avais un PCtools qui permettait ça, très pratique pour jouer au boulot )

  4. #4
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Merci pour vos réponses

    Pour la première question
    le créateur de ce site me dit que ce genre de projet "doit exister". Mais je peux comprendre qu'il sera pas forcément pour Nasm en particulier. Donc je suppose que quelqu'un l'a déjà fait.


    2eme question
    D'accord ça me répond à ma question, il me faudra juste qu'il puisse exécuter un exe


    3eme question
    Vous m’intéressez, je connais pas trop son utilisation, mais avec un noyau preemtif et en protégé, comment je pourrai utiliser la v86 pour des instruction DOS ?
    ( en particulier le fonctionnement du desqview !! )

    4eme question
    Je préfère laisser de coter cette question elle n'est pas importante


    Forthman:
    Par ce que j'aimerai me détacher des gros titre « FreeDos » ou « MS-DOS » que utilise mon projet comme boot
    je voudrai jouer leur rôle en gros. (Intégrer les fonctions DOS et le lecteur .exe comme le fait si bien freedos)
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  5. #5
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Alors tu vas devoir réécrire un DOS en entier, et gérer toutes les fonctions de l'interruption 21h ainsi que d'autre interruptions revectorisées par le DOS
    + créer un petit shell de commande comme COMMAND.COM (ou utiliser celui du DOS directement)

    Ca fait du boulot

  6. #6
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Désolé pour la réponse tardive !!!

    Merci pour vos réponses !
    Donc je me lance pour re-crée une v86
    il faut aussi que je code toutes les interruptions "physique" du 8086 ?
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 088
    Points
    43 088
    Par défaut
    Tu peux utiliser celles du BIOS, ça te facilitera le travail.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #8
    Membre chevronné
    Avatar de cpcdos
    Homme Profil pro
    Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Inscrit en
    Mai 2010
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingé/concepteur chez Capgemini. Alstom APTIS. Concepteur de Felly autonomous vehicle software.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 588
    Points : 1 770
    Points
    1 770
    Billets dans le blog
    1
    Par défaut
    Encore désolé pour la réponse tardive! J'ai oublié de m'abonner a la discutions par mail

    chrtophe : D'accord merci, c'est vrais que ça sera déjà moins de boulo

    A votre avis, il serai plus préférable de coder les interruptions en asm pur et dur ou d'utiliser le C (gcc) ?
    On dit souvent (grossièrement) qu'un compilateur écrit du code pleins de morve
    Sébastien FAVIER
    Felly-software Autonomous vehicle software for everyone.
    co-kernel Cpcdos OSx un noyau 32bits simplifié et complet.. ou presque - Le fofo officiel c'est par ici.
    Les cours sur les systèmes c'est par là

  9. #9
    Membre averti
    Avatar de LeoBeutel
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 139
    Points : 324
    Points
    324
    Par défaut
    Tien, mais qui voila ^^
    Léo BEUTEL

  10. #10
    Membre habitué Avatar de New World
    Homme Profil pro
    Commandant croisière
    Inscrit en
    Juillet 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Commandant croisière
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2015
    Messages : 132
    Points : 153
    Points
    153
    Par défaut
    Tien, mais qui voila ^^

  11. #11
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 446
    Points : 43 088
    Points
    43 088
    Par défaut
    A votre avis, il serai plus préférable de coder les interruptions en asm pur et dur ou d'utiliser le C (gcc) ?
    Si ton noyau est en C, tu peux continuer peut-être en C, de toute façon tu seras certainement obligé d'y include un peu d'assembleur.

    On dit souvent (grossièrement) qu'un compilateur écrit du code pleins de morve
    Les compilateurs modernes font du code optimum, tu pourras difficilement faire mieux qu'eux.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  12. #12
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Sinon tu peux aller regarder du côté de FreeDOS (réimplémentation de MS-DOS en libre), ou carrément le composant "ntvdm" de ReactOS qui utilise une bibliothèque qui émule un 486, lequel fait tourner une implémentation du DOS (qui doit être FreeDOS d'ailleurs) pour son émulation 16-bit.
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/05/2013, 08h16
  2. Réponses: 7
    Dernier message: 24/10/2005, 23h10
  3. Problème lors de l'exécution de mes programmes
    Par darkmalak01 dans le forum Langage
    Réponses: 7
    Dernier message: 27/09/2005, 18h35
  4. Réponses: 1
    Dernier message: 05/09/2005, 11h37
  5. Exécution d'un programme hors session
    Par skywaukers dans le forum Langage
    Réponses: 3
    Dernier message: 07/07/2005, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo