Skip to content
Nicolas LG edited this page May 26, 2024 · 44 revisions

SEAC

English version here (translated by Google Trad)

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 système 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.73.08 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.22
cahier des charges et avancement

Installation

Compiler le noyau
Modes de démarrage
Installer Grub

utilisation

fonctionnement
navigation entre les applications
terminal de commande principal
systeme de fichier
commande de base
commande optionnelles
Script
Personnalisation

Annexes

termes Spéciaux
Fonctions systèmes
petit récapitulatif des instructions de base en assembleur x86
liste des codes d'erreurs
liste des codes services
Disposition clavier
d'abord il faut installer sur votre système l'utilitaire AJARCH qui se trouve dans le répertoire OUTILS. Ensuite la compilation est simple: dans le répertoire ASM, il faut exécuter le script compilation.bat (batch pour Windows) ou compilation.sh (shell pour Gnu/Linux) si vous n'avez pas envie de compiler quoi que ce soit, j'upload régulièrement des version pré compilé dans le répertoire BIN

amorçage par GRUB / multiboot1

le fichierSEAC.IMB est le fichier au format Multiboot1, après avoir copié ce fichier sur un disque ou se trouve Grub d'installé, il faudra modifier la config de grub pour ajouter une possibilité de démarrer via cette image (voir plus bas)

amorçage sur machine virtuel

Si on souhaite utiliser le système sur une machine virtuelle, il suffit d’utiliser l'image de disquette (1.44Mo mais non formaté) SEAC.IMG. ou l'image hybride ISO/HDD SEAC.ISO

amorçage sur disque dur partitionné en MBR

il faut copier le noyau SEAC.BAZ comme une simple image dans une partition de type 30h et en installant le programme de mbr MBR_BIOS.MBR 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

amorçage sur clef usb

Si on souhaite démarrer un ordinateur a partir d'une clef usb, il suffit d'y graver l'image hybride ISO/HDDSEAC.ISO avec le logiciel Rufus ou a l'aide d la commande dd

amorçage par réseau

on peut utiliser le fichier SEAC.PXE 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)

Grub

Installer Grub avec Windows:


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

Installer Grub avec Linux:


entrez la commande suivante (en administrateur) grub2-install -v --no-floppy --boot-directory=[XXXXX] --removable --locales= --fonts= --target=i386-pc [YYYYY] en remplaçant [XXXXX] et [YYYYY]
[XXXXX] = adresse du point de montage du dossier racine de la clef
[YYYYY] = adresse physique de la clef

plus d'info sur la documentation Ubuntu ou le site de marmotte

Configurer Grub

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/SEAC.IMB } en adaptant l'adresse du fichier si vous ne l'avez pas copié dans le répertoire grub2

bonus:
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}



fonctionnement

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 TECOP

le 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 système
les touches F1 à F12 permettent d’accéder directement a une des interfaces listé en au du tecop la souris permet d’accéder directement a une des interfaces listé en au du tecop simplement cliquant sur le nom de celle ci

Système de fichier

les nom de lecteur commencent par le symbole # on peut obtenir la liste des dossier installé par la commande LD #dm disque mémoire (pas de sous dossier, contenue effacé a chaque arrêt de la machine) #di disquette #ddX partition de disque dur et de clef usb #cdX cdrom ou dvdrom

commandes de base

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
fds 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

commande optionnelles

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 fds) 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. utilisez la commande man commandes pour avoir un listing et une description des commandes

Script

la commande EX permet d’exécuter des script, les fichier script ont l'extension .sh. Pour l'instant on ne peut que exécuter une liste de commande

langue

Les messages systèmes sont par défaut en anglais dans les release et en français dans les version de développement(dossier BIN).
Pour passer a une autre langue, il faut entre les commande suivantes:
anglais: def en-txt.def
français: def en-txt.def

clavier

La configuration clavier est par défaut le clavier US international dans les release et le clavier azerty français dans les version de développements(dossier BIN).
Pour passer a une autre configuration, il faut entre les commande suivantes:
qwerty international: def en-qwi.def
azerty belge: def be-azs.def
azerty français: def fr-aza.def
bépo français: def fr-bpo.def

polices

Le système utilise des chaines de caractère codé en UTF8 mais ne connait par défaut que les 256 premier caractères. En mode texte, le système est limité a ces 256 premier caractères
Pour ajouter la possibilité d'afficher plus de caractère en mode graphique, il faut entre les commande suivantes:
caractère 0 a FFh:def 0u0.def
caractère 100h a 1FFh:def 1u0.def
caractère 2500h a 25FFh:def 25u0.def
Chacun des fichiers de définition de caractères peut être édité grâce a la commande EDG

interface

...

Annexes

Termes "spéciaux"

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’intégrer a un projet fermé et payant) il n'y as aucunes garanties concernant son bon fonctionnement par contre l'osef source ne vous empêchera pas d'être un trou-du-cul si vous utilisez ce code pour nuire a autrui ou si vous prétendez en être l'auteur

Disposition clavier