docs: mise à jour du README.md

This commit is contained in:
Nicolas Hordé 2018-11-29 17:07:08 +01:00
parent ed4e577086
commit 5d22ec2d48
1 changed files with 59 additions and 22 deletions

View File

@ -13,10 +13,10 @@ Le système est développé essentiellement en langage C mais il comporte aussi
Il s'agit du logiciel principal qui anime votre ordinateur. Il a pour fonctions principales : Il s'agit du logiciel principal qui anime votre ordinateur. Il a pour fonctions principales :
* Piloter des périphériques, souris, clavier, écran, imprimante...etc; * Piloter des périphériques tels que souris, clavier, écran, imprimante...etc;
* Gérer des fichiers qui sont produit et exploités par des applications; * Gérer des fichiers qui sont produit et exploités par des applications;
* Coordonner l'accès aux ressources pour plusieurs usagers; * Coordonner l'accès aux ressources par plusieurs utilisateurs;
* Détection et récupération de dysfonctionnements; * Détection et récupération des dysfonctionnements;
* Surveiller les performances et assurer une gestion optimale des ressources systèmes. * Surveiller les performances et assurer une gestion optimale des ressources systèmes.
Sans système d'exploitation votre ordinateur est inopérant: c'est une boite vide ! Sans système d'exploitation votre ordinateur est inopérant: c'est une boite vide !
@ -73,6 +73,7 @@ Images disques, débogage & émulation:
* dd (coreutils version 8.25-2) * dd (coreutils version 8.25-2)
* tar version 1.28-2.1 * tar version 1.28-2.1
* GNU indent version 2.2.11 * GNU indent version 2.2.11
* Bochs (optionnel)
##### Téléchargement de COS2000 ##### Téléchargement de COS2000
@ -98,16 +99,20 @@ ou sinon, depuis un terminal disposé sur le répertoire cos2000
#### Compilation #### Compilation
Commandes de compilation de COS2000 Commande de compilation de base
* ```make all``` compile tout le projet dans sa version disquette, disque dur et disque dur UEFI * ```make all``` compile tout le projet dans sa version disque dur et disque dur en UEFI
* ```make floppy``` compile la version disquette
Autres commandes de compilation de COS2000
* ```make floppy``` compile la version disquette (SUPPRIMER SUR VERSION RECENTE)
* ```make harddisk``` compile la version disque dur * ```make harddisk``` compile la version disque dur
* ```make uefi``` compile la version disque dur UEFI * ```make uefi``` compile la version disque dur UEFI
* ```make floppytest``` lance l'émulation QEMU en 32 bits sur disquette * ```make bochstest``` lance l'émulation BOCHS en 32 bits sur disque dur
* ```make test``` lance l'émulation QEMU en 32 bits sur disque dur * ```make test``` lance l'émulation QEMU en 32 bits sur disque dur
* ```make test64``` lance l'émulation QEMU en 64 bits sur disque dur UEFI * ```make test64``` lance l'émulation QEMU en 64 bits sur disque dur en UEFI
* ```make clean``` supprime les fichers compilés * ```make clean``` supprime les fichers compilés
* ```VESA=no make test``` préfixe à utiliser (VESA=no) pour faire appel au pilote VGA et non pas VESA
#### Utilisation #### Utilisation
@ -117,12 +122,24 @@ Pour tester l'OS en émulation taper donc la commande ```make test``` qui compil
##### Sur un ordinateur physique ##### Sur un ordinateur physique
Il faut d'abord copier l'image sur une clé (Attention l'opération effacera le contenu de la clé) : Lancer une compilation du système COS2000
```make all```
Puis, il faut copier l'image sur une clé (Attention l'opération effacera le contenu de la clé) :
```sudo dd if=./final/harddisk.img.final of=/dev/sdx bs=1M``` (ou sdx est votre périphérique) ```sudo dd if=./final/harddisk.img.final of=/dev/sdx bs=1M``` (ou sdx est votre périphérique)
Bootez sur votre clé en mode bios (legacy). Bootez sur votre clé en mode bios (legacy).
Pour un boot en mode UEFI
```sudo dd if=./final/harddiskuefi.img.final of=/dev/sdx bs=1M``` (ou sdx est votre périphérique)
Pour connaitre le numéro de votre périphérique (clé)
```lsblk```
##### Usage de COS2000 ##### Usage de COS2000
Pour l'instant quelques commandes seulement sont disponibles: Pour l'instant quelques commandes seulement sont disponibles:
@ -131,18 +148,26 @@ Pour l'instant quelques commandes seulement sont disponibles:
* CLEAR efface l'écran, * CLEAR efface l'écran,
* MODE change le mode video, * MODE change le mode video,
* DETECTCPU detecte et affiche les informations CPU, * DETECTCPU detecte et affiche les informations CPU,
* DETECTPCI detecte et affiche les périphériques PCI,
* TEST2D teste l'affichage graphique 2D, * TEST2D teste l'affichage graphique 2D,
* TEST3D teste l'affichage graphique 2D,
* REGS affiche les registres CPU, * REGS affiche les registres CPU,
* GDT affiche la table des descripteurs, * GDT affiche la table des descripteurs,
* IDT affiche la table des interruptions, * IDT affiche la table des interruptions,
* INFO affiche des informations issues de GRUB. * INFO affiche des informations issues de GRUB,
* PAGEFAULT génère une erreur de pagination. * ERR génère une exception (ARGUMENTS),
* VIEW visionne la mémoire vive (ARGUMENTS),
* LOGO affiche le logo,
* FONT change la police d'affichage (ARGUMENTS),
* HELP affiche les commandes disponibles,
* BPSET met un point d'arrêt pour le débogueur (ARGUMENTS),
* BPCLR efface un point d'arrêt (ARGUMENTS),
* DISASM désassemble une portion de mémoire (ARGUMENTS),
![COS2000 le 28-09-2018](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/28-09-2018.png) ![COS2000 le 28-09-2018](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/28-09-2018.png)
#### Organisation du dépôt #### Organisation du dépôt
* boot - fichiers source assembleur démarrage FAT12 - disquette
* debug - fichiers configuration débogueur * debug - fichiers configuration débogueur
* final - img raw utilisables avec un émulateur des 3 versions * final - img raw utilisables avec un émulateur des 3 versions
* * harddisk.img.final * * harddisk.img.final
@ -162,21 +187,33 @@ Pour l'instant quelques commandes seulement sont disponibles:
#### Avancement du projet #### Avancement du projet
* secteur de boot disquette (FAT12), * démarrage tout support grâce à GRUB (disquette, disque dur/SSD, réseau...Etc),
* démarrage autre support par GRUB (Disque dur/SSD, réseau...Etc), * pilotes souris et clavier,
* pilote souris, clavier, VGA, * pilotes VGA et VESA (framebuffer),
* gestion des interruptions et de la segmentation GDT, * bibliothèque graphique 2D,
* bibliothèque graphique 3D,
* gestion des interruptions (IDT),
* gestion de la segmentation (GDT),
* gestion de la mémoire paginée,
* débogueur et désassembleur intégré,
* interpréteur de commande, * interpréteur de commande,
* noyau avec fonctions minimales implémentées (printf, itoa, maths...), * affichage de chaîne de caractères (prinfs,sprintf,vsprintf) avec type (bin,hexa,octal,float,double,string,char),
* mode protégé limité à 4Go de mémoire vive. * mode protégé limité à 4Go de mémoire vive (32 bits),
* gestion avancée de la mémoire (vmalloc).
#### A faire #### A faire
* gestion du framebuffer,
* gestion de la mémoire paginée,
* espace utilisateur et appels systèmes, * espace utilisateur et appels systèmes,
* ordonnanceur de tâche, * ordonnanceur de tâche (par TSS),
* chargeur ELF32, * chargeur ELF32,
* pilote IDE/ATA et lecture/ecriture EXT2FS. * pilote IDE/ATA (PIO mode),
* fonctions affichage image PNG,
* double buffering,
* gestion multiprocessing,
* virtualisation par VMX,
* Gestion du système de fichier EXT2FS.
![COS2000 le 28-09-2018](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/29-10-2018.png)
#### Historique du projet #### Historique du projet
* Version 2.2fr - C en mode protégé Reprise du projet * Version 2.2fr - C en mode protégé Reprise du projet