IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

linux-0.01-remake


Linux-0.01 est le premier release du noyau Linux, développé -from scratch-
par Linus Torvalds, un étudiant en informatique de l'université de Helsinki,
en Finlande:


From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Date: 25 Aug 91 20:57:08 GMT


Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want. Any suggestions
are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have :-(.



Compilation & execution
===================

J'ai réussi à compiler le noyau avec gcc-3.2.2 sous RedHat-9 et à le faire tourner
sur QEMU. Pour le faire, procédez comme suit:

1. Téléchargez les 3 CDs d'installation de RedHat-9 et l'installer sur une machine virtuelle;
2. Installez le package qemu-0.7.0-1.0-rh9.rf.i386.rpm sur RedHat-9;
3. Téléchargez le noyau et le compilez pour générer le fichier IImage.
4. Téléchargez l'image de votre disque dur sur: http://draconux.free.fr/download/os-dev/linux0.01/Image/hd_oldlinux.img.zip
5. créez deux copies de hd_oldlinux.img. Par exemple: hda.img et hdb.img
6. qemu -fda Image -hda hda.img -hdb hdb.img -boot a
7. Enjoy it :)

Utilisez Git c'est mieux
==================

Pour accéder à plus d'explications vous pouvez télécharger le projet complet sur ma compte github:
https://github.com/issamabd/linux-0.01-reloaded:

1. git clone https://github.com/issamabd/linux-0.01-reloaded
2. cd linux-0.01-reloaded
3. gitk --all&

Lire le code
=========

Si vous êtes passionnés par le développement des OS, comme moi:), linux-0.01 est votre occasion pour débuter.
Son code est très simple et minimal. Malgré ça, il implémente des fonctionnalités avancées du processeur
INTEL 80386 telle que la protection, la pagination de la mémoire et le multi-tasking!
Son système du fichier MINIX est très simple à et sert pour comprendre le fonctionnement des fs avancés.
Un peu de périphériques supportés .. juste des drivers minimals pour le disque dur, la console, le clavier et le port série.
En un mot .. linux-0.01 est très éducatif !

D'après github, le code du noyau est composé de:

- 87.5% du langage C
- 9.1% du langage assembleur
- 3.4% des Makefiles

Ainsi, pour comprendre le fonctionnement de Linux-0.01 vous devez, en bref:

1. Bien maitriser l'architecture INTEL x86 et plus précisément le processeur INTEL 80386:
Le jeu d'instructions, les registres, le stack, la segmentation de la mémoire, la pagination, la protection,
les interruptions, le multi-tasking, l'initialisarion, les modes d'opération ...

2. Comprendre le fonctionnement des disques dur ATA (IDE), la mémoire vidéo VGA,
le fonctionnement du clavier, le BIOS, les bootsectors ... En un mot .. vous devez comprendre l'architecture
d'un PC IBM-AT.

3. Comprendre la philosophie des systèmes UNIX: le rootfs, gestion des périphériques,
gestion des processus (fork, exec ...), gestion de la mémoire ...

4. Comprendre le fonctionnement des systèmes de fichiers: les inodes, le bitmap, les super-blocks

5. Maitriser parfaitement le langage C embarqué: les pointeurs, les listes chainées cycliques, les tableaux, les structures,
les pointeurs sur fonctions, les opérateurs logiques .. En un mot vous devez parlez le C comme le français ou mieux :)

6. Maitriser l'assembleur GNU et l'assembleur en ligne ... ne vous inquiétez pas de ce coté !

7. apprendre comment écrire des Makefiles.


Bonne utilisation :)

Nos ressources disponibles
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.