-
Notifications
You must be signed in to change notification settings - Fork 2
Home
SEAC (Système d'Exploitation Approximativement Complet) est un système d'exploitation développé pour ordinateur de type "PC" par N-LG pour son usage personnel. c'est un systeme d'exploitation monolithique en 32bit. il n'y as pas de GUI, chaque application qui as besoin d'interfacer avec l'utilisateur utilise la totalité de l'écran. Le logiciel est écrit exclusivement en assembleur pour processeur x386 et compilable par le logiciel FASM 1.70.16 Cette documentation a été rédigé pour définir proprement les caractéristique du système et dans l'éventualité peu probable que quelqu'un d'autre souhaite utiliser ou modifier ce logiciel. l'intégralité du code source est en "osef* source" la version actuellement en cours de développement est la 0.9b
préparer le noyauinstaller
description de la phase d'amorçage
Installer Grub
fonctionnement
navigation entre les applications
terminal de commande principal
commande intégré
commande optionnelles
Script
termes Spéciaux
liste des codes d'erreurs
liste des codes services
le noyau est une archive constitué du noyau de base et de fichiers optionnels
simplement compiler le fichier SYST.ASM avec la commande fasm SYST.ASM SYST.BAZ
avec l'utilitaire AJARCH on peut ajouter d'autres fichier au noyau de base. tout les fichier ajouté au noyau de base seront mis dans le disque mémoire lors de l'initialisation. il faut veiller a ce que le noyau ne dépasse pas 256Ko car c'est la limite maximum que l'on peut utiliser durant la phase d'amorçage. une fois le noyau prêt il faut encore l'associer a un bootloader qui se chargera de copier le noyau au bon endroit et de l’exécuter. il n’y as aucune possibilité d'installer directement le système a partir d'un autre système d'exploitation il faut copier le noyau "SYST.BAZ" comme une simple image dans une partition de type 30h et en installant le programme de mbr "MBR_BIOS.BIN" pour ça vous devez utiliser le logiciel partd (disponible uniquement pour SeaC) Si vous effectuez une installation sur un disque amovible, mettez la partition 30h a la fin du disque car certains windows ne prennent en compte que la première partition il faut bien sûr que le partitionnement soit de type MBR et qu'il n'y ait qu'une partition de type 30h sur le disque on peut transformer le noyau en image multiboot 1 en utilisant le programme chargeur.asm (avec la commande fasm chargeur.asm CHARGEUR.IMB, après il faudra modifier la config de grub pour ajouter une possibilité de démarrer via cette image (voir plus bas)
on peut utiliser le noyau "SYST.BAZ" tel quel pour démarrer sur le réseau par bootp/pxe et tftp, j'ai créer le programme "bootnet.asm" pour effectuer les amorçage par réseau mais actuellement je le déconseille (trop compliqué a utiliser: le paramétrage se fait dans le fichier source) Si on souhaite utiliser le système sur une machine virtuelle, il suffit de générer une image de disquette 1.44Mo amorçable non formaté fat en utilisant le programme disquette.asm (avec la commande fasm disquette.asm disquette.img. et de créer une machine virtuelle qui démarre sur la disquette. fonctionne avec qemu et virtualbox
je recherche actuellement une méthode simple pour l'installer sous windows mais hélas j'ai pas encore trouvé, si vous avez des suggestions contactez moi
entrez la commande suivante sudo grub-install /dev/sdX en remplaçant sbX par le nom du lecteur sur lequel vous souhaitez l'installer, plus d'info sur la documentation Ubuntu
Grub utilise un fichier de configuration pour définir ce qui est présent dans le menu, celui se trouve dans le disque sur lequel est installé Grub a l'adresse "GRUB2/Grub.Cfg". ouvrez le fichier avec un editeur de texte pour y ajouter ces lignes:
menuentry "SeaC" {
multiboot /grub2/CHARGEUR.IMB
}
ajoutez cette ligne si vous souhaitez pouvoir Redémarrer l'ordinateur a partir de votre menu Grub:
menuentry "Redémarrer" {reboot}
ajoutez cette ligne si vous souhaitez pouvoir éteindre l'ordinateur a partir de votre menu Grub:
menuentry "Éteindre" {halt}
SeaC est un système multitâche préemptif, une tache principale est chargé de l'affichage et la gestion du TECOP (lorsque celle ci est affiché), de l’interprétation des commandes envoyé au système, de la mise a jour de l'écran, et de quelques travaux periodique (gestion moteur disquette, etc...). les autres taches sont créer lorsque que l'on exécute une commande associé a un fichier exécutable
le système utilise un journal ou chaque tache peut écrire le résultat de ces opérations
le système d'exploitation emploie le BIOS de l'ordinateur uniquement pour obtenir des informations sur les modes vidéo utilisables, pour changer le mode vidéo de la carte, et pour accéder a la mémoire vidéo en mode fenêtré par contre il s'avère que certains bios ont des effet de bord sur le fonctionnement du système, il est donc recommandé de limiter l'usage des fonction LV et MODV et de choisir des mode vidéo avec accès a la mémoire linéaire
une fois le système initialisé, le terminal de commande principale (TECOP, voir plus loin) s'affiche. la combinaison de touche alt+tab permettent de changer d'interface, et la touche list (entre la touche win et ctrl de droite) ou le placement du curseur de la souris en haut a gauche permettent de revenir a l'affichage du TECOPle TECOP est l'interface standard entre l'utilisateur et le système, l'écran s'organise de la façon suivante:
les première lignes sont réservé a l'affichage des interfaces disponibles (si existante)
les lignes suivante sont réservé à l'affichage du "journal"
deux lignes sont réservé a l'affichage du dossier en cours d’utilisation
deux lignes son réserve a l'affichage de la ligne de commande en cours de rédaction
les touches réserve sont:
les flèche gauche et droite déplace le curseur dans la ligne de commande
les flèche haut et bas font défiler le journal
la touche début fait visionner le début du journal
la touche fin permet de visualiser la fin du journal
la touche inser permet de réutiliser la dernière commande envoyé au systeme
les touches F1 à F12 permettent d'acceder directement a une des interfaces listé en au du tecop la souris permet d'acceder directement a une des interfaces listé en au du tecop simplement cliquant sur le nom de celle ci pour démarrer il faut charger le noyau a l'adresse 5000h:0000h et l'executer en mode réel.le noyau initalise alors le systeme (mode protégé, mémoire, périphériques de base, etc..), définis le disque mémoire comme disque de travail et systeme, puis execute 2 commande:
-ver pour afficher le numéros de version en cours dans le journal
-ex cfg.sh pour executer la liste de commande dans le fichier cfg.sh qui est dans le disque mémoire. si vous n'avez pas ajouté de fichier cfg.sh au noyau de base vous verrez alors un message d'erreur s'afficher
af XXX ajoute le texte XXX au journal
cd change de dossier, cd.. permet de revenir au dossier parent
ld Liste les partitions et cdrom qui ont été détecté par le système
lm Liste les espaces mémoires utilisé par le système
lt Liste les Taches en cours d’exécution sur le système
lv Liste les modes d'affichage reconnue par la carte vidéo
cop XXX YYY copie le fichier XXX dans le dossier YYY
dir Liste le contenue du dossier en cours d'utilisation
efj efface le contenue du journal système
fix fait enregistrer au système que le dossier en cours d’utilisation est le dossier système
mtt XXX YYY fixe le temps d’exécution de la tache XXX a la valeur YYY (unité de temps 2.5ms)
ren XXX YYY renomme le fichier XXX en YYY
sup XXX supprime le fichier XXX
ver affiche la version du système
modv XXX change le mode vidéo de l'écran pour le mode XXX
stop XXX arrête la tâche numéros XXX
nd XXX créer le dossier XXX
def XXX charge le fichier de définition XXX
lors de l’exécution d'une commande, le système vérifie d'abord si le premier mot de la commande correspond a une commande integré, ensuite le système cherche dans le dossier système puis dans le dossier de travail du TECOP si un fichier exécutable est du même nom que le verbe et si il est trouvé l’exécute. si aucun fichier n'est trouvé, on affiche un message d'erreur dans le journal
les commandes optionnelles sont tous les fichier exécutable rangé dans le dossier système, comme leur nom l'indique ces commande ne sont pas obligatoirement présente dans le système surtout si le dossier système n'as pas été définis (par la commande fix) on peut simplement considérer que les commande optionnelles sont de simple exécutable qui sont présent dans le répertoire du système int 60h - fin de l’exécution de la tacheint 61h - sous fonction général (voir SF_GEN.ASM)
int 62h - déclenche la commutation de tache
int 63h - sous fonction interface (voir SF_VID.ASM)
int 64h - sous fonction fichier(voir SF_FICH.ASM)
int 65h - sous fonction communication(voir SF_COM.ASM)
int 66h - sous fonction port COM et LPT(voir SF_PORT.ASM)
int 67h - sous fonction périphériques USB(voir SF_USB.ASM)
int 68h à int 6Fh inutilisé
UTF8Z -> chaine de caractère codé en UTF8 dont la fin est signalé par le caractère NULL (octet a zéro)
TECOP -> terminal de commande principal
osef source -> (osef = On S'En Fout) c'est open source et vous pouvez en faire tout ce que vous voulez avec (même l'integrer a un projet fermé et payant) par contre l'osef source ne vous empêchera pas d'être un trou-du-cul si vous ne respectez pas les regles éthiques des hackers
code | signification |
0 | fonction exécute sans erreur |
1 | paramètre incorrecte |
2 | erreur de lecture |
3 | lecteur/disque/fichier non trouvé |
4 | erreur du système de fichier |
5 | erreur d'écriture |
6 | pas de réponse disque |
7 | disque occupé |
8 | fichier déjà ouvert |
9 | interdiction de lecture |
10 | interdiction d'ouverture |
11 | plus assez de mémoire |
12 | le fichier ouvert est un dossier |
13 | erreur d'origine inconnue (normalement jamais utilisé, sauf erreur) |
14 | nombre de couleur non reconnue |
15 | écran absent |
16 | zone tampon vide |
17 | zone tampon pleine |
18 | contrôleur ne répond pas |
19 | contrôleur absent |
20 | dossier non vide (dans le cas d'une suppression) |
21 | dossier non vide (dans le cas d'une suppression) |
22 | caractère interdit dans le nom de fichier |
23 | création de fichier impossible |
code | signification |
0 | aucun service |
1 | écran |
2 | camera |
3 | imprimante |
4 | scanner |
5 | son |
6 | réseau Ethernet |
7 | reseau wifi |
8 | |
9 | |
10 | aucun service |
11 à 63 | réservé pour les standard |
64 à 255 | utilisable |