Thursday, April 19, 2007

L'histoire de LinuxL'histoire de Linux

L'histoire de Linux
Unix est un des systèmes d'exploitation les plus appréciés, notamment en raison du grand nombre d'architectures prises en charge. Tout d'abord développé en tant que système d'exploitation multitâche pour mini-ordinateurs et gros systèmes au début des années soixante-dix, il est aujourd'hui omniprésent, en dépit d'une interface parfois déroutante et d'un manque de réelle standardisation.

Unix est populaire au point que nombre de programmeurs le considèrent comme le seul système d'exploitation viable et lui vouent un culte quasi réligieux. Il existe des versions d'Unix pour une vaste gamme de machines, depuis l'ordinateur personnel jusqu'au super-calculateur. Néanmoins, la plupart de ses implémentations pour PC restèrent longtemps onéreuses.

On comprend alors que certains aient mis la main à la pâte afin de réaliser une version d'Unix librement diffusable. Ainsi, un dénommé Linus Torvalds, alors étudiant à l'université d'Helsinki (Finlande), en développa la première version. De nombreux programmeurs et spécialistes d'Unix participent aujourd'hui activement à l'optimisation du noyau grâce au réseau mondial Internet. En outre, toute personne compétente désireuse de contribuer à l'évolution du système est invitée à participer. Le noyau de Linux n'utilise aucun code issu d'une version commerciale d'Unix ou de quelque autre source propriétaire et la plupart des programmes disponibles pour Linux sont conçus dans le cadre du "projet GNU", qui vise à constituer un système complet librement diffusable.

Linus Torvalds s'est inspiré de Minix, modeste système Unix développé par Andy Tanenbaum. En conséquence, c'est le forum Usenet comp.os.minix qui accueillit les premières discussions ayant trait à Linux, qui portaient alors principalement sur le développement d'un petit système Unix à l'usage des universitaires et autres utilisateurs de Minix frustrés.

Linux Torvalds se proposait avant tout de maîtriser la commutation de tâches en mode protégé sur le processeur 80386. Tout fut réalisé en langage d'assemblage. Dixit Linus :

Ceci fait, tout coulait de source : encore de la programmation touffue, mais je disposais de quelques ressources et le débogage était moins pénible. J'ai alors commencé à utiliser le langage C, ce qui a indubitablement accéléré le développement. C'est aussi à cette époque que j'ai décidé de concrétiser ce rêve délirant : réaliser un Minix meilleur que Minix ... J'espérais être un jour en mesure de recompiler gcc sous Linux ... Deux mois pour le code de base, puis quelques efforts pour disposer d'un pilote de disque dur (sérieusement bogué, mais qui, par chance, fonctionnait sur ma machine) et d'un système de fichiers rudimentaire. S'ensuivit la diffusion de la version 0.01 [fin août 1991], peu élégante et peu puissante, dénuée de pilote de disquette. Il m'étonnerait que quelqu'un ait un jour compilé cette version ... Mais, pris au jeu, j'étais déterminé à surpasser Minix coûte que coûte.

L'avènement de la version 0.01 ne fit l'objet d'aucune notification préalable. Elle n'était pas même exécutable et l'archive, qui ne contenait que le squelette des sources du noyau, imposait l'accès à un système Minix pour compiler et découvrir Linux.

Le 5 octobre 1991, Linus délivra la toute première version "officielle" de Linux (0.02). A défaut d'autre chose, le système était à présent capable d'exécuter bash (le Bourne Again Shell de GNU) et gcc. Les premières moutures de Linux, en effet, étaient surtout destinées aux hackers et se focalisaient sur le développement du noyau, ce qui explique l'absence de service d'assistance technique, de documentation, etc. Dans une moindre mesure, la communauté Linux considère encore aujourd'hui ces aspects comme très secondaires en regard de la "vraie programmation" : le développement du noyau.

Voici l'appel que lança Linus à l'époque dans comp.os.minix :

Vous regrettez les beaux jours de Minix-1.1, époque bénie où les hommes étaient dignes de ce nom et écrivaient leurs propres pilotes de périphériques ? Vous cherchez à vous investir dans un projet original et vous vous languissez d'un système modifiable à votre convenance ? Vous êtres frustré que tout fonctionne sous Minix ? Vous regrettez les nuits blanches passées à tenter d'implanter un programme récalcitrant ? Si tel est le cas, lisez ce qui suit : Comme signalé il y a un mois, je travaille actuellement sur une version libre d'un système analogue à Minix pour ordinateur AT-386. Ce système est à présent utilisable (mais peut-être ne vous conviendra-t-il pas, tout dépend de ce que vous recherchez) et je compte en diffuser les sources. Il s'agit pour l'instant de la version 0.02, capable néanmoins d'exécuter bash, gcc, gnu-make, gnu-sed, compress, etc.

Une fois diffusée la version 0.03, Linus passa directement à la version 0.10, au vu du développement rapide. Puis, après plusieurs autres révisions, Linus, qui pressentait que Linux serait bientôt prêt pour une version "officielle", gonfla à nouveau le numéro, qui passa alors à 0.95 (par convention, le numéro de version 1.0 n'est attribué qu'après l'obtention d'un programme théoriquement complet et dénué de bogue).

Dix-huit mois plus tard (fin 1993) Linus apportait la touche finale à la version 0.99.pl14 du noyau, s'approchant de 1.0 de manière apparamment asymptotique. Certains ne croyaient plus que la version 1.0 verrait jamais le jour. Elle existe pourtant, et à tant et si bien évolué que la version actuelle (janvier 1999) mènera sous peu à la 2.2 stable.

Linux n'aurait pu naître sans l'apport des outils GNU créés par la Free Software Foundation. Leur compilateur gcc, dont nous traiterons ultérieurement, insuffla la vie au code de Linus Torvalds. Depuis l'origine, en effet, les programmes GNU et le développement de Linux sont intimement liés.

La version d'Unix issue de Berkeley (dite "BSD") a elle aussi joué un rôle important, quoique davantage à travers la mise à disposition de ses fameux outils que lors de la création de Linux. Beaucoup d'utilitaires fournis avec les distributions du système proviennent de portages de programmes BSD. Ainsi, les démons et commandes réseau jouent un rôle crucial. A vrai dire, la partie réseau du code de Linux a été développée en totalité (deux ou trois fois, en fait), mais ces démons et commandes émanent en droite ligne de BSD.

A ce jour, Linux est un système Unix complet capable de prendre en charge X Window, TCP/IP, Emacs, UUCP, le courrier électronique, les forums Usenet et bien d'autres utilitaires et fonctions. Rares sont les logiciels libres célèbres qui n'ont pas encore été portés sous Linux et on se réjouit de voir de grands éditeurs proposer des applications commerciales. Linux reconnaît aujourd'hui maints périphériques, ce qui n'était pas le cas dans ses premières versions. A de multiples occasions, les machines dotées de Linux ont affiché des performances comparables aux stations de travail de milieu de gamme de Sun Microsystems et Digital Equipment Corporation. Qui aurait pu imaginer que cet Unix rachitique gagnerait un jour une telle ampleur et un tel rayonnement ?

Linux a été reconnu conforme au standard POSIX (.1 et .2) grâce aux efforts de la société Lasermoon. Au-delà de sa valeur symbolique, une telle reconnaissance accélère la propagation de Linux au sein des sociétés commerciales mais aussi de l'administration, qui exige la conformité POSIX de la plupart des systèmes qu'elle utilise (MS-Windows compris, comme en témoignent les aménagements apportés à la version NT par Microsoft).


Le système Linux - O' Reilly

Sunday, April 8, 2007

commen installer ubuntu

L'installation de Linux
L'installation de Linux
Par Jean-Christophe sur la base du travail de Serge
Passons maintenant aux choses sérieuses: l'installation de Linux.
________________________________________
Normalement, vous devez déjà avoir lu le chapitre [prepinstall.php3 précédent], ou bien vous connaissez déjà les bases de Linux ! :-)
[modifier]
4. Choisir ses packages.
Je ne vais pas faire la liste des milliers de packages existants, je ne suis pas fou. Je vous donne juste les packages essentiels à installer car vous en aurez besoin un jour ou l'autre.
Tout ce qui est du système de base (jeu A et AP pour la Slackware),
Tout ce qui concerne le développement (jeu D pour la Slackware) : C, C++ et librairies diverses : nécessaire pour compiler (voir rubrique "[../kernel/compil.php3 quels packages nécessaires]"),
Les sources du noyau aussi (K pour la Slackware). Je sais c'est gros, les derniers noyaux font près de 50 Mo, mais un jour ou l'autre vous en aurez besoin pour [../software/compil.php3 compiler une appli] ou pour [../kernel/kernel.php3 régler votre noyau] suivant votre système ;
Les packages réseau,
Le reste n'est pas complètement indispensable mais :
X (sous-système graphique) est bien utile quand même (que feriez-vous sans environnement graphique ?), sa partie développement aussi (pour certains programmes X que vous aurez à recompiler) et pourquoi pas les jeux aussi. Dans ce cas installez aussi un gestionnaire comme KDE ou Gnome ou pourquoi pas tous les gestionnaires pour vous faire un avis avant d'en choisir un définitivement ?
Après, suivant votre besoin, cherchez sur le net l'application qui vous intéresse, mais regardez avant si elle est pas contenue dans votre distribution : c'est presque toujours le cas. Même si vous trouvez une super application sur le net, vérifiez qu'elle n'est pas déjà sur les CD de votre distribution : ça vous évitera beaucoup de soucis.
Contrairement au monde Windows, Mac, etc. la majorité des applications sous Linux est "libre". Elles sont alors disponibles en tant que sources. Il vous faut alors les compiler sur votre machine pour obtenir les fichiers binaires (i.e. les exécutables). C'est pour ça que vous avez besoin des packages de développement, même si vous ne développez pas vous-même.
J'insiste mais installez les packages de développement, c'est toujours râlant de passer 30 minutes à recompiler un truc et avoir une erreur parce qu'il vous manque juste une petite bibliothèque qui était comprise dans un de ces packages. Après vous passez des heures pour trouver le package où se trouve le fichier manquant ! En fait dès que vous lisez développement ou un truc du genre (devel...) installez-le, au pire ca vous prend un peu de place pour rien, mais au moins vous arriverez à compiler la toute dernière application que vous attendiez depuis 2 ans sur Linux.
[modifier]
5. Installer un chargeur Linux ou Comment booter Linux.
[modifier]
LILO
LILO (LInux LOader) est le petit utilitaire qui permet de faire démarrer Linux. D'où son importance.
C'est, en fait, deux programmes :
un chargeur de linux
le programme qui installe le chargeur sur votre disque.
Pendant trés longtemps, il y a eu des problèmes avec LILO : il n'y en a plus. Les versions actuelles de LILO gérent trés bien tous les types disques.
Désinstaller LILO
De préférence depuis Linux : tapez lilo -u.
Depuis DOS : tapez fdisk /mbr.
Voir aussi [../admin/LILO.php3 l'article LILO].
[modifier]
GRUB
Le GRUB est le bootloader du projet GNU.
Voir l'article GRUB pour plus de détails.
[modifier]
LOADLIN
C'est un utilitaire fonctionnant sous DOS que vous pouvez utiliser pour démarrer Linux, si vous ne souhaitez/pouvez pas utiliser LILO, et que vous disposez d'une partition DOS/Windows bootable. Il est disponible en général sur les CD des distributions. Je ne crois pas qu'il ait le problème des 1024 cylindres, car le noyau de Linux est alors situé sur le système de fichiers de DOS/Windows. Cependant, j'ai entendu dire que certaines personnes avaient eu des problèmes d'incompatibilité avec leur matériel (plus reconnu sous Linux lorsqu'ils utilisent LOADLIN). Bref, à tester.
Pour le faire fonctionner, je vous conseille de créer un répertoire C:\LINUX, d'y placer LOADLIN, de copier le noyau /boot/vmlinuz-2.x.x sous Linux dans ce répertoire sous le nom VMLINUZ, et d'y créer un fichier linux.bat contenant la ligne de commande :
LOADLIN C:\LINUX\VMLINUZ root=/dev/hdb1 ro %1 %2
-> remplacez /dev/hdb1 par votre partition "racine" /
ou encore, si vous utilisez initrd, copiez /boot/initrd dans le même répertoire, et placez cette ligne dans linux.bat :
LOADLIN C:\LINUX\VMLINUZ initrd=C:\LINUX\INITRD %1 %2
Ainsi, vous pouvez créer une entrée dans votre c:\config.sys pour avoir un choix "Linux" au boot qui en fait lance linux.bat. Ou bien vous bootez en "ligne de commande seulement" et vous démarrez Linux en tapant linux au prompt C:\>. De cette manière vous pouvez passer des paramètres au noyau, par exemple pour lui dire de démarrer en mode texte si X ne veut plus fonctionner, en tapant : C:\>linux 3, ou en mode maintenance par C:\>linux single (suivant votre distribution).
Voir aussi [../admin/loadlin.php3 l'article LOADLIN].
[modifier]
6. Problèmes courants.
Problèmes avec le CD-ROM :
Essayez de copier le contenu du CD sur le disque dur et de lancer l'installation depuis le disque dur, cela règle bien des problèmes si votre lecteur de CD est mal reconnu.
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot & S. Tchesmeli le 04/10/1999.
[modifier]

Friday, April 6, 2007

ubuntu

L'installation de Linux
L'installation de Linux
Par Jean-Christophe sur la base du travail de Serge
Passons maintenant aux choses sérieuses: l'installation de Linux.
Normalement, vous devez déjà avoir lu le chapitre [prepinstall.php3 précédent], ou bien vous connaissez déjà les bases de Linux ! :-)
[modifier]
4. Choisir ses packages.
Je ne vais pas faire la liste des milliers de packages existants, je ne suis pas fou. Je vous donne juste les packages essentiels à installer car vous en aurez besoin un jour ou l'autre.
Tout ce qui est du système de base (jeu A et AP pour la Slackware),
Tout ce qui concerne le développement (jeu D pour la Slackware) : C, C++ et librairies diverses : nécessaire pour compiler (voir rubrique "[../kernel/compil.php3 quels packages nécessaires]"),
Les sources du noyau aussi (K pour la Slackware). Je sais c'est gros, les derniers noyaux font près de 50 Mo, mais un jour ou l'autre vous en aurez besoin pour [../software/compil.php3 compiler une appli] ou pour [../kernel/kernel.php3 régler votre noyau] suivant votre système ;
Les packages réseau,
Le reste n'est pas complètement indispensable mais :
X (sous-système graphique) est bien utile quand même (que feriez-vous sans environnement graphique ?), sa partie développement aussi (pour certains programmes X que vous aurez à recompiler) et pourquoi pas les jeux aussi. Dans ce cas installez aussi un gestionnaire comme KDE ou Gnome ou pourquoi pas tous les gestionnaires pour vous faire un avis avant d'en choisir un définitivement ?
Après, suivant votre besoin, cherchez sur le net l'application qui vous intéresse, mais regardez avant si elle est pas contenue dans votre distribution : c'est presque toujours le cas. Même si vous trouvez une super application sur le net, vérifiez qu'elle n'est pas déjà sur les CD de votre distribution : ça vous évitera beaucoup de soucis.
Contrairement au monde Windows, Mac, etc. la majorité des applications sous Linux est "libre". Elles sont alors disponibles en tant que sources. Il vous faut alors les compiler sur votre machine pour obtenir les fichiers binaires (i.e. les exécutables). C'est pour ça que vous avez besoin des packages de développement, même si vous ne développez pas vous-même. J'insiste mais installez les packages de développement, c'est toujours râlant de passer 30 minutes à recompiler un truc et avoir une erreur parce qu'il vous manque juste une petite bibliothèque qui était comprise dans un de ces packages. Après vous passez des heures pour trouver le package où se trouve le fichier manquant ! En fait dès que vous lisez développement ou un truc du genre (devel...) installez-le, au pire ca vous prend un peu de place pour rien, mais au moins vous arriverez à compiler la toute dernière application que vous attendiez depuis 2 ans sur Linux.
[modifier]
5. Installer un chargeur Linux ou Comment booter Linux.
[modifier]
LILO
LILO (LInux LOader) est le petit utilitaire qui permet de faire démarrer Linux. D'où son importance.
C'est, en fait, deux programmes :
un chargeur de linux
le programme qui installe le chargeur sur votre disque.
Pendant trés longtemps, il y a eu des problèmes avec LILO : il n'y en a plus. Les versions actuelles de LILO gérent trés bien tous les types disques.
Désinstaller LILODe préférence depuis Linux : tapez lilo -u. Depuis DOS : tapez fdisk /mbr.
Voir aussi [../admin/LILO.php3 l'article LILO].
[modifier]
GRUB
Le GRUB est le bootloader du projet GNU.
Voir l'article GRUB pour plus de détails.
[modifier]
LOADLIN
C'est un utilitaire fonctionnant sous DOS que vous pouvez utiliser pour démarrer Linux, si vous ne souhaitez/pouvez pas utiliser LILO, et que vous disposez d'une partition DOS/Windows bootable. Il est disponible en général sur les CD des distributions. Je ne crois pas qu'il ait le problème des 1024 cylindres, car le noyau de Linux est alors situé sur le système de fichiers de DOS/Windows. Cependant, j'ai entendu dire que certaines personnes avaient eu des problèmes d'incompatibilité avec leur matériel (plus reconnu sous Linux lorsqu'ils utilisent LOADLIN). Bref, à tester.
Pour le faire fonctionner, je vous conseille de créer un répertoire C:\LINUX, d'y placer LOADLIN, de copier le noyau /boot/vmlinuz-2.x.x sous Linux dans ce répertoire sous le nom VMLINUZ, et d'y créer un fichier linux.bat contenant la ligne de commande : LOADLIN C:\LINUX\VMLINUZ root=/dev/hdb1 ro %1 %2-> remplacez /dev/hdb1 par votre partition "racine" /
ou encore, si vous utilisez initrd, copiez /boot/initrd dans le même répertoire, et placez cette ligne dans linux.bat : LOADLIN C:\LINUX\VMLINUZ initrd=C:\LINUX\INITRD %1 %2
Ainsi, vous pouvez créer une entrée dans votre c:\config.sys pour avoir un choix "Linux" au boot qui en fait lance linux.bat. Ou bien vous bootez en "ligne de commande seulement" et vous démarrez Linux en tapant linux au prompt C:\>. De cette manière vous pouvez passer des paramètres au noyau, par exemple pour lui dire de démarrer en mode texte si X ne veut plus fonctionner, en tapant : C:\>linux 3, ou en mode maintenance par C:\>linux single (suivant votre distribution).
Voir aussi [../admin/loadlin.php3 l'article LOADLIN].
[modifier]
6. Problèmes courants.
Problèmes avec le CD-ROM :
Essayez de copier le contenu du CD sur le disque dur et de lancer l'installation depuis le disque dur, cela règle bien des problèmes si votre lecteur de CD est mal reconnu.
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par J.C. Cardot & S. Tchesmeli le 04/10/1999.
[modifier]