MiNT is Not Toy !



MiNT is Now Tos !


I - Introduction

II - Possibilites de MiNT (hard and soft)

III - Projet de distribution

IV - Comment ??

V - Le futur




I - Introduction
MiNT Is Now TOS :
MiNT est une extension du systeme d'exploitation TOS (Atari computers) qui lui ajoute les caracteristiques d'UNIX .
MiNT a etet le projet d'un universitaire a la fin des annees 80, Eric Smith (qui a porte GCC sur Atari), plus tard ,en 1994, Eric Smith a ete employe par Atari Corp. et MiNT a fait partie du package logiciel des ordinateurs Atari. Maintenant, les sources de MiNT font partie du domaine publique et ete largement amelioree.

Extension du TOS?
A la sortie de MiNT v1.04, le kernel faisait de nombreux appels au BIOS et XBIOS (68000 Traps).
Il semblerait que les versions les plus recentes, comme MiNT v1.5.x fassent de moins en moins d'appels au TOS, pour rendre MiNT le plus autonome possible.
MiNT est considere comme un veritable OS a part entiere.
Les caracteristiques de MiNT sont :


Avec GCC et MiNTlib (portage de FSF GNU ANSI-C Compiler and library), la plupart des sources UNIX se compilent sans grandes difficultes. MiNTlib implemente les fonctionnalite a la fois de BSD et de SysV avec POSIX.

Kay Romer a programme MiNTNet qui inclus MiNT socket device, TCP/IP networking OS routines and programming library, SLIP and PPP protocol. Mais aussi les utilitaires reseaux UNIX de base. Voici quelques peripheriques/driver FileSystem geres par MiNT :

Le kernel de MiNT possede les interfaces de peripherique standard (console, keyboard, mouse, parallel, serial and midi) Les systemes de fichiers et drivers de peripheriques externes au kernel sont charges au demarrage de MiNT.
Avec MiNT+MiNTnet+minix-fs, nous pouvons lancer un serveur X11R5 monochrome. Quelques logiciles ont ete portes, malheureusement, pas de serveur X couleur !
Il existe d'autres interfaces graphiques disponibles comme W11R3 (W window system) et quelques freeware en beta, clones d'AES (surcouche graphique GEM de l'Atari), comme XAAES, oAESis.
NAES est lui commercial mais est un excellent remplacant de AES pour MiNT (rapide et robuste).
Pour mieux comprendre comment MiNT fonctionne, je vous propose un schema des couches de MiNT:



II - Possibilite de MiNT

les logiciels venant du monde UNIX sont nombreux, voici une liste non-exhaustive mais deja bien etoffee :

Applications
Bison, bzip2, ctags,GNU awk, gifmerge, gnuplot, grep, leave, m4, Midnight commander 4, minicom, pgp263, pilot (connection PalmPilot), tar, term, uuende (uuencode/uudecode), whois, xargs
adduser, shutdown, toggle, mpegaudio (player mpeg), mpg123 (player MP2, MP3), musicin (encoder MP2), s3mod (player de MOD), sox (idem), emacs (l'editeur par excellence), joe (editeur), jove (editeur), diffutils (pour patcher), fileutils, find, less, make, patch, textutils, gnushogi (games), tetris (games), GhostScript 3.53, gemgs, bash 2.02, ksh, sh, tcsh, zsh


Daemons
crond, httpd, httpd-apache, ftpd, ircd, lprd, nntpd, pop3d, pppd, qpopper, vconsld.


DRIVERS (Devices) :
audiodev (/dev/audio), multi-raw (raw floppies), lpdev (parallel port), hsmoda07 (RS232)


DRIVERS (Filesystems) :
Minixfs, amiga-fs, ext2fs, nfs, fnramfs, ramfs, spin (cdromfs)


GEM Applications designed for MiNT :
GEM-init, TOSWIN, V-Desk, Xaaes, aesload, freegem, gem-term, mintlogo, mintsetter, taskbar, xeyes, xtask


Network :
connexion (easy connexion to ppp), archie, dip, fspclient, gopher, micq, netcat, ssh, tcp-wrappers, tin, traceroute, land, teardrop, winnuke (heyhey :-) ), aftp, ftp, ncftp, lynx 2.8, irc, ircII, mime2AV, pine, pop3, popgem, netpbm


Network tools :
host, ping, traceroute, vrfy, etc...


JAVA :
kaffe


Programming :
gcc2.8.1, gemlib, mintlibs, ncurses, cflib, gdb, hugs, perl5.004, python 1.3, tcl7.5, xlisp2.1,


W1R3 W Window System :
w1r3, wclients, wetscape, wpente, wplayer, wt


X11R5 :
chimera, gemx(gem emulator for X), xanim, xaudio, xbmbrowser, xcjomp, xdemin, xdci, xfm, xgoldig, xhextris, xisola, xjewel, xlogo, xmango, xmaze, xmgt, xpipeman, xroach, xsnow, xsol, xspread, xswarm, xtetris, xtron, xv3.01, xview, fvwm




Alors ???
Qui peut douter des capacites d'un tel systeme d'exploitation. Certainement pas ceux qui l'utilisent . Ils savent que MiNT est une excellente plateforme de developpement mais peut aussi transformer un compatible Atari puissant, type Milan ou Milan II en serveur HTTP, FTP, mail, news, ou meme serveur irc .
Apres la PAO, la musique, l'Atari decouvre qu'il peut se recycler en serveur et se place directement en concurent des solutions presentees par Linux sur PC. Ce qui explique la quantite de portage realisee sur MiNT, c'est tout d'abord qu'il est le premier OS compatible TOS avec une architexture UNIX, et ensuite que les applications UNIX s'executent plus rapidement sous MiNT que sous Linux68k.
Ainsi les Ataristes preferent MiNT a Linux68k, de plus de nombreux logiciels de parametrage sous GEM permettent de se passer de X11, bien trop lent sur 68030.

Le point noir etant que a l'heure actuelle avoir un systeme MiNT et complet est plus difficile qu'installer la premiere version de Linux... Le manque de rigueur commerciale a conduit au constat suivant :
IL N'Y A PAS DE DISTRIBUTION VALABLE POUR MINT





III - Projet de Distribution MiNT

Ces dernieres annees Linux a fait ses preuves, que ce soit en simple workstation ou en serveur. Pourquoi un tel succes? Bien sur Linux est gratuit, mais ce qui est a l'origine d'un tel succes, c'est la richesse des packages reunis dans une meme distribution . L'integration parfaite des packages dans le systeme grace a un systeme d'installation fiable et simple d'emploi . Alors qu'il y a 5 ans, Linux ete encore reserve aux PowerUsers, l'installation est maintenant intuitive . Qu'en est-il pour MiNT sur Atari? MiNT presente a l'heure actuelle tous les avantages d'un UNIX moderne au meme titre que FreeBSD ou Linux, comme nous l'avons vu precedemment Le probleme de MiNT, c'est qu'il possede deja une distribution : la distribution KGMD (Knarf German Mint Distribution), qui presente l'avantage de toute distribution c'est a dire l'installation coherente des packages dans un meme systeme mais aussi de graves inconvenients comme :
  • Les packages sont trop vieux (beaucoup datent de 1994)
  • L'absence de packages incontournables (apache, ftpd, lynx, etc...)
  • Une procedure d'installation tres oldschool, difficile pour la grande majorite des utilisateurs: pas de menu principal, une progression sequentielle unidirectionnelle (comme le fait d'ailleurs xf86config par exemple, remplace par le pratique XF86Setup)
  • Ne possede pas tous les drivers de FileSystems ou de hardware
  • La documentation est insuffisante (il n'y a que man, pas de HOWTO comme sous Linux)
  • L'optimisation des packages est inexistantes, tout est compile pour 68000, alors que pour certaines applications, il peut etre interessant d'utiliser le FPU .

Chaque inconvenient est un argument pour la creation d'une distribution MiNT. Partons simplement de l'observation que tous les types d'applications et de documentations sont disponibles pour MiNT, mais elles n'ont JAMAIS ete reunies !!!!

En theorie, toutes les applications Linux sont recompilables sur MiNT.

Par ou commencer ??? Tout d'abord, pour ne pas refaire les erreurs du passe, il faut STANDARDISER .
Dans le monde MiNT, certains travaux commences par des personnes dynamiques comme Frank Naumann (MiNT kernel hacker) vont vers la standardisation .
Je pense au projet SpareMiNT, disponible sur la page de Frank Naumann (www.cs.uni-magdeburg.de/~fnaumann/) .SpareMiNT propose en downloading plus de 800Mo de packages au format RPM.
L'utilitaire RPM (Redhat Package Manager), permet une installation et une gestion facile des packages au format rpm .
Une base de donnees RPM permet de connaitre les packages deja installer et autorise une gestion des dependances entre les diffrents packages .
Le nombre important des packages disponibles sur le site de SpareMiNT permet ainsi la constitution d'un systeme a la carte .
Ce serait dommage de ne pas exploiter le travail deja fait.
Le RPM a fait ses preuves et est a l'origine du succes des distributions Linux tels que RedHat, Mandrake, SuSE ou encore Caldera OpenLinux.
Le probleme est que SpareMiNT ne dispose pas de procedure d'installation,
ni d'outils de configuration graphique, ni meme de documentations.
La creation d'une nouvelle distribution se basera sur l'utilisation du format RPM, et aura tous les outils de configuration necessaires.



IV - Comment ??
Il me parait logique pour creer une nouvelle distribution d'adopter la demarche suivante :
  • Creer un Installateur pour SpareMiNT. Il presenterait des profils type d'installation (installation minimum, full installation, custom installation, etc...) et permettrait une installation SIMPLE et INTUITIVE avec une interface GEM (AES) .
  • Creer un configuration editor : un outil du meme type que le Controlpanel de la Linux RedHat, permettant la configuration du kernel, la configuration reseau, la gestion de comptes utilisateurs, la configuration des serveurs .
  • Repertorier et regrouper tous les packages disponibles et les convertir au format RPM, s'il ne le sont pas deja .


-> A ce Stade, l'on devrait obtenir une version fonctionnelle de la distribution .



  • Recompiler chaque package avec les options d'optimisation pour 68030, 68030+FPU, 68040 et 68060, dans le cas d'une distribution speciale G4, tous les logiciels MiNT seraient recompiles pour le G4 et beneficieraient en natif de la puissance du G4
  • Constitution de documentations de type HOWTO Combien de linuxien peuvent pretendre ne jamais avoir utiliser les HOWTOs ? Comme pour Linux, les HOWTOs devront exister au format HTML, ASCII, et PostScript .



    Le SpareMiNT installer :

    Il fera l'objet d'un cahier des charges PRECIS et DETAILLE en fonction des remarques de chaque membre de l'equipe de developpement. J'ai pense a un systeme d'installation inspire de la slackware, permettant avec un menu principal de choisir le media SOURCE pour l'installation (CD-ROM, DisqueDur, Disquettes, NFS, etc...), de choisir la destination parmi les disques disponibles et le type de partition (minix ou ext2). La selection des packages doit pouvoir se faire de facon individuelle pour chacun d'entre eux (custom installation) ou bien de facon automatique :
    • installation minimale
    • installation complete

    A la fin de l'installation des packages, l'utilisateur devra pouvoir selectionner les drivers qu'il veut utiliser (drivers CDROM, Carte Reseau, SLIP, PLIP, son , etc...), et pour finir l'installation, le configuration editor sera lance . Voila les grandes lignes, tout ceci sera detaille et complete au moment de la constitution du cahier des charges du SpareMiNT INSTALLER.

    Le CONFIGURATION EDITOR:


    Il sera une sorte de controlpanel (comme sur RedHat linux), permettant la modification du fichier mint.cnf (configuration du kernel) et de l'ensemble des fichiers du repertoire /etc .
    Il faudra ecrire un cahier des charges precis et rigoureux pour le CONFIGURATION EDITOR. CONFIGURATION EDITOR doit etre le plus complet possible et permettre les modifications des parametres systeme en TEMPS REEL.


    Les packages:


    C'est la partie la plus difficile a organiser et qui posera peut-etre le plus de problemes . La distribution doit etre la plus COMPLETE POSSIBLE, c'est a dire qu'elle doit integrer les packages les PLUS RECENTS . Pour connaitre la liste des programmes qui devront etre presents, je propose d'observer l'architecture du CD d'installation de la distribution Linux Slackware. Ainsi nous auront une premiere idee, et nous etablirons une liste complete par CATEGORIES, Le classement par categories s'operera de la facon suivante :

    • /A Systeme de base pour MiNT, le contenu de cette categorie est suffisant pour pouvoir demarrer et disposer des programmes de communication.
    • /AP Cette categorie contient les applications les plus utilisees par MiNT, comprenant diverses applications et complements tels que le manuels en ligne, groff, ispell, joe, jove, ghostscript, sc, etc...
    • /D Tout ce qui concerne le developpement logiciel (gcc, gas, etc...)
    • /F FAQ divers et HOWTOs
    • /K Tout ce qui concerne le kernel, source et doc
    • /M Multimedia
    • /N Tout ce qui concerne les applications reseau (ping, telnet, etc...)
    • /WWW Toutes les applications relatives a internet (irc, lynx, pine, etc) mais aussi tout ce qui est serveur (apache, ftpd, etc...)
    • /extra Applications ne concernant pas la partie UNIX pure (applis GEM(AES), etc...)
    • /Y les jeux
    • /OPT Optional packages, contient les packages qui peuvent remplaces certains packages de la distribution. Par exemple EGCS a la place de GCC
    L'integration d'une application fera l'objet d'une etude et d'une discussion entre les membres de l'equipe de developpement.
    Si une application n'est actuellement pas disponible sur MiNT mais qu'elle l'est sous Linux, elle sera recompilee et si la recompilation ne marche pas, des modifications du code source seront envisagees pour porter l'application sous MiNT .
    Chaque portage ou modification mineure du code source sera signalee a l'auteur original de l'application .

    L'optimisation :


    La recompilation de chaque application avec les options d'optimisation pour chaque type de processeur signifierait ceci : On aurait a disposition plusieurs binaries tels que :

    par ex pour apache :
    • Apache 68030+FPU
    • Apache 68040
    • Apache 68060

    Les arguments contre une recompilation systematique pour tous types de processeur seraient :
    • Cela va prendre beaucoup de temps.
    • Ce n'est pas toujours efficace
    La cross-compilation sera utilisee , meme dans le cas d'une machine a base de G4, la cross-compilation est possible depuis n'importe quelle machine avec un systeme POSIX et GCC, pour fabriquer du code m68k ou G4 executable sous MiNT. L'avantage serait un gain de temps enorme.



    Organisation de l'equipe de developpement:


    Le plus important est que chacun trouve sa place dans l'equipe en fonction de ce qu'il sait le mieux faire ou le moins mal faire. Nous avons besoin de programmeurs, de traducteurs, de redacteurs de documentations, et de testeurs . Chaque membre doit avoir un comportement positif et professionnel . Les delais doivent etre respectes, chaque retard demontrera une lacune de l'organisation. regulierement un bilan de ce qui a ete fait et de ce qu'il reste a faire sera etablit.
    Pour une meilleure organisation/coordination, nous utiliseront une mailing list, la communication est la base de tout projet. Un serveur ftp acceuillera le travail de chacun et sera regulierement mis a jour .



    V - Le Futur
    Si je parle de futur, c'est parce que je pense que les plateformes 68k ne vont pas tarder a disparaitre, meme si des machines comme le milan ou le milan II se vendent ou vont se vendre. Mais l'avenir pour les Ataristes, il est a mon avis le meme que celui des Amigas ou des Macs c'est a dire le PowerPC.
    Je pense a la machine de siliconfruit, le RioRed G4, je sais (parce que je lis les newsgroup, meme si je n'ecris rien dedans, j'ai pas envie d'user mes doigts pour ce genre de connerie, je prefere coder :-) ) que de nombreux Ataristes seraient nombreux a acheter le RioRed G4, si MiNT etait adapte pour le G4, certains parlent de PowerMiNT.
    Mais je suis persuade qu'il n'y aura pas de PowerMiNT si il n'y a rien derriere, je veux dire par la que si le statut de MiNT ne change pas rapidement (pas de distribution valable, pas de rigueur commerciale, pas de documentations, etc...), JAMAIS personne ne voudra investir dans une couteux portage de MiNT s'il n'y a pas de marche derriere.
    D'ou l'enjeu de cette distribution pour l'avenir, car porter MiNT sur G4 est possible, largement possible, plusieurs solutions sont envisageables, pour reflechir au futur, il faut souvent regarder le passe :
    En effet, par le passe, MiNT a existe sur Macintosh, MacMiNT a meme etait le premier systeme UNIX libre pour le Macintosh.
    A cause des appels au Xbios et Bios fait par le kernel de MiNT, MacMiNT fonctionne grace a une sous couche appelee JET (Just Enough TOS), une sorte de TOS emulator contenant uniquement les traps 68k necessaires au lancement de MacMiNT. Avec MacMiNT, on pouvait lancer les logiciels Atari en mode texte (.TOS, .TTP) sur un Mac, le tout en multitache .
    Mais ce n'est pas tout, MacMiNT etait lance depuis une simple fenetre du Finder de MacOS, comme n'importe quelle application macintosh !
    Le RioRed se veut etre une Linux BOX ?
    Alors ce sera une linux BOX, mais il serait interessant de penser a l'implementation de MiNT soit sous Linux, soit en cohabitation avec Linux .
    Hehe, moi j'ai deja ma petite idee, mais chaque chose en son temps, il d'abord imperatif de travailler sur cette distribution 68k.


    MARTINAUX Franck vickingf@yahoo.fr