docs: correction README.md, images

This commit is contained in:
Nicolas Hordé 2018-09-28 17:22:32 +02:00
parent 60bf48343f
commit c8d925b324
5 changed files with 134 additions and 11 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

142
README.md
View File

@ -1,4 +1,8 @@
![logo](https://github.com/dahut87/cos2000v2/raw/master/Graphisme/logo.png) # cos2000
![logo](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/logo.png)
ou Compatible Operating System 2000
## Présentation du projet ## Présentation du projet
@ -13,19 +17,19 @@ 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 tels que souris, clavier, écran, imprimante...etc; * Piloter des périphériques, 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 par plusieurs utilisateurs; * Coordonner l'accès aux ressources pour plusieurs usagers;
* Détection et récupération des dysfonctionnements; * Détection et récupération de 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 !
#### Comment utiliser COS2000 ? #### Comment utiliser COS2000 ?
COS2000 n'a pas pour but d'être utilisé en production. Il s'agit d'un système en cours de COS2000 n'a pas pour but d'être utilisé en exploitation, c'est un système en cours de
développement que vous pouvez néanmoins tester sur un ordinateur physique ou de préférence sur une machine virtuelle. développement. Vous pouvez néanmoins l'utiliser sur un ordinateur physique ou une machine virtuelle
Il est nécessaire de compiler le système avant de démarrer celui-ci à partir d'un périphérique amovible (clé usb). afin de voir le fonctionnement d'un système rudimentatire. Voir compilation de COS2000...
#### Sur quel ordinateur fonctionne t'il ? #### Sur quel ordinateur fonctionne t'il ?
@ -41,17 +45,135 @@ COS2000 est sous licence LGPL v3.0, en simplifiant un peu :
* REUTILISER - OUI en citant l'auteur * REUTILISER - OUI en citant l'auteur
* VENDRE - NON * VENDRE - NON
Les détails se trouvent dans le fichier `LICENSE.md` ### Compilation de COS2000
![logo](https://www.gnu.org/graphics/lgplv3-with-text-154x68.png) #### Avant la compilation
##### Logiciels utilisés
L'OS a été développé sous Linux afin de disposer d'un maximum d'outils. Je vous conseille donc
d'utiliser ce système afin de procéder à la compilation même si celle-ci peut fonctionner
depuis Cygwin. Des distributions "Live" existent si vous ne souhaitez pas installer sur votre
ordinateur (http://www.linuxmint.com/edition.php?id=259).
Les numéros de version des logiciels sont données à titre indicatif car il est fort probable que
cela fonctionne parfaitement avec d'autres versions antérieures.
Compilation:
* NASM version 2.11.08
* gcc version 5.4.0 20160609
* GNU Make version 4.1
* binutils version 2.26-8
Images disques, débogage & émulation:
* fuse-umfuse-ext2 version 0.4 29
* fusefat version 0.1a-1.1
* CGDB: a curses debugger version 0.6.7
* QEMU emulator version 2.5.0
* OVMF version 0~20160408.ffea0a2c-2
* hexdump (bsdmainutils version 9.0.6)
* dd (coreutils version 8.25-2)
* tar version 1.28-2.1
* GNU indent version 2.2.11
##### Téléchargement de COS2000
Afin de faciliter la mise à jour et le suivi des version de COS2000, GIT est utilisé.
Si vous n'avez pas GIT, installez le avec la commande suivante :
```sudo apt-get install git```
Puis cloner le source chez vous avec la commande :
```git clone https://github.com/dahut87/cos2000.git```
##### Installation des paquets nécessaires
Sous linux - Debian & Ubuntu like
```sudo apt-get install nasm gcc qemu fusefat fuseext2 cgdb ovmf bsdmainutils tar bsdmainutils indent binutils```
ou sinon, depuis un terminal disposé sur le répertoire cos2000
```make install```
#### Compilation
Commandes de compilation de COS2000
* ```make all``` compile tout le projet dans sa version disquette, disque dur et disque dur UEFI
* ```make floppy``` compile la version disquette
* ```make harddisk``` compile la version disque dur
* ```make uefi``` compile la version disque dur UEFI
* ```make floppytest``` lance l'émulation QEMU en 32 bits sur disquette
* ```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 clean``` supprime les fichers compilés
Pour tester fait donc un simple ```make test``` qui compilera et émulera le système directement.
#### Utilisation
Pour l'instant quelques commandes seulement sont disponibles:
* REBOOT redémarre le PC,
* CLEAR efface l'écran,
* MODE change le mode video,
* DETECTCPU detecte et affiche les informations CPU,
* TEST2D teste l'affichage graphique 2D,
* REGS affiche les registres CPU,
* GDT affiche la table des descripteurs,
* IDT affiche la table des interruptions,
* INFO affiche des informations issues de GRUB.
![COS2000 le 28-09-2018](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/28-09-2018.png)
#### Organisation du dépôt
* boot - fichiers source assembleur démarrage FAT12 - disquette
* debug - fichiers configuration débogueur
* final - img raw utilisables avec un émulateur des 3 versions
* * harddisk.img.final
* * harddiskuefi.img.final
* * floppy.img.final
* Graphisme - fichiers images
* * screenshot - screenshots de l'évolution du système
* * Thème - thème de démarrage COS2000 pour plymouth
* include - fichier d'entête C
* lib - librairies pour le noyau
* makefile - Makefile du projet
* programs - programme pour le domaine utilisateur (en cours)
* README.md - ce que vous lisez
* system - le noyau lui-même
### En savoir plus... ### En savoir plus...
#### Avancement du projet
* secteur de boot disquette (FAT12),
* démarrage autre support par GRUB (Disque dur/SSD, réseau...Etc),
* pilote souris, clavier, VGA,
* gestion des interruptions et de la segmentation GDT,
* interpréteur de commande,
* noyau avec fonctions minimales implémentées (printf, itoa, maths...),
* mode protégé limité à 4Go de mémoire vive.
#### A faire
* gestion du framebuffer,
* gestion de la mémoire paginée,
* espace utilisateur et appels systèmes,
* ordonnanceur de tâche,
* chargeur ELF32,
* pilote IDE/ATA et lecture/ecriture EXT2FS.
#### 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
* Version 2.1fr - C en mode protégé Abandon du projet * Version 2.1fr - C en mode protégé Abandon du projet
* Version 2.0 - C en mode protégé VGA text+pmode * Version 2.0 - C en mode protégé VGA text+pmode
* Version 1.x - Assembleur en mode réel * Version 1.x - Assembleur en mode réel (v1.0 - 1.4.2fr)
> “La connaissance s'acquiert par l'expérience, > “La connaissance s'acquiert par l'expérience,
> tout le reste n'est que de l'information.. > tout le reste n'est que de l'information..

View File

@ -1,4 +1,5 @@
![logo](https://github.com/dahut87/cos2000v2/raw/master/Graphisme/logo.png) ![logo](https://github.com/dahut87/cos2000v2/raw/master/Graphisme/logo.png)
## Copies d'écran de COS2000 ## Copies d'écran de COS2000
![screen](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/28-09-2018.png)
![screen](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/ansi.png) ![screen](https://github.com/dahut87/cos2000v2/raw/develop/Graphisme/screenshots/ansi.png)

View File

@ -16,7 +16,7 @@ harddisk: final/harddisk.img.final
uefi: final/harddiskuefi.img.final uefi: final/harddiskuefi.img.final
install: install:
(sudo apt-get install nasm gcc qemu fusefat fuseext2 cgdb) (sudo apt-get install nasm gcc qemu fusefat fuseext2 cgdb ovmf bsdmainutils tar bsdmainutils indent binutils)
clean: clean:
(cd system; make clean) (cd system; make clean)