Différence Linux, BSD, Hurd

Bonjour,

Je pense que nous sommes nombreux à avoir entendu parler de ces noyeaux mais quelles sont vraiment leurs différences en théorie et en pratique ?

Pour ma part je crois savoir que Hurd est le plus différend de tous, mais à part ça pfff …
BSD serait un noyeau Unix mais pas basé sur le projet Linux de Linus Tholvard (orthographe ?) mais pour le reste il doit fonctionner à peut près de la même façon …

Des précisions ?

si j’ai bien compris (en m’aidant de google :wink:) :

j’espère que ca éclaircira un peu tes lanternes :slightly_smiling:

C’est en gros cette théorie la que je connaissais :slightly_smiling:

Mais en pratique ?

Un source ou même un paquet .deb utilisé sous Linux Debian sera-t-il portable sur un noyeau BSD (même processeur évidemment) ?

Faut que j’arrête de mettre un “e” à noyau :slightly_smiling:

En ce limitant à la théorie, il parait plus simple d’installer un nouveau périphérique sur un système Hurd, puisqu’on a pas apparemment à recompiler le noyau pour un oui ou pour un non, si j’osais je dirais que Windows est un Hurd-like (oula ça va péter) qui interface son noyau (yen a un, non ?) avec des DLL !

C’est à peu près ça sauf que Hurd est un micro noyau. Le principe est de faire tourner le plus de taches dans l’espace utilisateur à l’exemple de udev qui est devfs mais tournant en espace utilisateur. Cela simplifie le moiyau et contribue à la fiabilité du système. Lors de la création de Linux, il y avait eu un gros débat sur le fait de savoir si Linux devait être monolythique (ce qu’il est) ou sous forme de Micro noyau.

Windows est un micro noyau je crois bien mais ça n’est pas clair (rien n’est clair sous Windows).

BSD est un Unix avec une licence BSD (si) permettant entre autre l’usage de composants dans un code propriétaire (Windows contient bcp de code BSD dans sa partie réseau). Très fiable mais je ne connais pas bien.

debianhadic: au delà du noyau, tu as raison de te poser la question du fonctionnement des paquets qui viennent autour. Théoriquement, tu ne devrais pas avoir à recompiler les binaires, puisque c’est du code prévu pour ton proc, mais comme les binaires ont été compilés avec des appels systême linux, AMA ils ne devraient pas trouver les appels systême de bsd ou hurd.
Mais c’est pour dire: à part le fait qu’AMA il faille recompiler, tu peux faire tourner une debian sur Hurd. On appelle alors l’OS un GNU/Hurd, et si le noyau est *BSD avec une environnement debian, c’est GNU/*BSD.
Debian, ce n’est pas que linux.
Et au fait, Linus, c’est Thorvald, qu’il s’appelle.

PS:[quote]console@routeur:~$ aptitude show crosshurd
Paquet : crosshurd
État: non installé
Version : 1.7.25
Priorité : supplémentaire
Section : misc
Responsable : Jeff Bailey jbailey@nisa.net
Taille décompressée : 176k
Dépend: dialog, dpkg-dev
Recommande: attr
Description : Install a Debian system
crosshurd uses apt and a bit of black magic to setup a functional Debian system. It supports the following target systems:

  • linux-gnu (GNU/Linux)
  • gnu (GNU/Hurd)
  • kfreebsd-gnu (GNU/kFreeBSD)
  • knetbsd-gnu (GNU/kNetBSD)
    console@routeur:~$ aptitude show kfreebsd-source-5.4 type-handling Paquet : kfreebsd-source-5.4
    État: non installé
    Version : 5.4-17
    Priorité : optionnel
    Section : devel
    Responsable : GNU/kFreeBSD Maintainers debian-bsd@lists.debian.org
    Taille décompressée : 13,2M
    Recommande: freebsd5-buildutils (>= 5.4)
    Remplace: kfreebsd5-source
    Fournit: kfreebsd-source, kfreebsd-source-5
    Description : source code for kernel of FreeBSD 5.4 with Debian patches
    This package provides the source code for kernel of FreeBSD 5.4, base of a GNU/kFreeBSD system.

Paquet : type-handling
État: non installé
Version : 0.2.19
Priorité : optionnel
Section : devel
Responsable : GNU/kFreeBSD Maintainers debian-bsd@lists.debian.org
Taille décompressée : 65,5k
Dépend: dpkg-dev (>= 1.13.9)
Fournit: not+openbsd, not+netbsd, not+knetbsd-gnu, not+knetbsd, not+kfreebsd-gnu, not+kfreebsd, not+hurd, not+gnu,
not+freebsd, not+darwin, not+sparc, not+sh4eb, not+sh4, not+sh3eb, not+sh3, not+s390x, not+s390, not+ppc64,
not+powerpc64, not+powerpc, not+mipsel, not+mips, not+m68k, not+m32r, not+ia64, not+hppa, not+arm, not+amd64,
not+alpha, i486-linux-gnu, linux-gnu, i386, linux
Description : dpkg architecture generation script
This package provides a script known as “type-handling”, whose purpose is converting System and CPU combinations into the
architecture variable names that dpkg can understand.

For details, see the manpage of type-handling.
[/quote]

Sans vouloir créer la polémique j’ais quand même l’impression qu’une fois de plus c’est le moins bon des système qui perdure …

Unix est un des premiers mais c’est cette daube de CPM qui fera le premier marché des micros, puis MS-DOS qui croise les deux anciens en faisant un troisième système encore plus pourri mais qui devient “LA” référence, Apple contre en piquant à Rank Xerox l’idée de l’interface graphique+souris, que Microsoft repique en faisant Windows qui cumule tous les bugs de tout le monde (qui se souvient de Windows 2 ?). Du coup le PC devient le standard, avec un système d’adressage mémoire à segment qui est une calamité, sans compter que les périphériques sont sur une autre plage d’adresse, tout pour faire le plus compliqué et instable possible.
La lumière vient de Linus qui nous fait un beau système libre pour concurrencer les méchants Microsoft, mais une fois de plus au bout de qq années trois théorie s’affrontent, sur le papier ya Linux tout n’est pas trop libre, et il est quand même pour le commun des mortels pénible à utiliser, BSD un peut plus libre et tout aussi pénible, et Hurd touours plus libre et qui serait en théorie, si les développeurs voulaient s’y mettre, beaucoup moins pénible à utiliser (pour le moment c’est pas le cas …) et bien, ce dernier plus alléchant ne se développe pas, les utilisateurs ne seraient pas un peut mazochistes ?

Torvalds, Torvalds …

-> fr.wikipedia.org/wiki/Linus_Torvalds

ôui, bon. Mais torvald, c’est quand même moins loin que tolvar, non ?
Bon OK :arrow_right:

[quote=“MattOTop”]ôui, bon. Mais torvald, c’est quand même moins loin que tolvar, non ?
Bon OK :arrow_right:[/quote]

Torvalds, Torvalds avec un s à la fin …

On va y arriver :slightly_smiling:

Mais il est vrai que Bob Doors aurait été plus facile a retenir, je l’accorde …

[quote=“fran.b”]C’est à peu près ça sauf que Hurd est un micro noyau. Le principe est de faire tourner le plus de taches dans l’espace utilisateur à l’exemple de udev qui est devfs mais tournant en espace utilisateur. Cela simplifie le moiyau et contribue à la fiabilité du système. Lors de la création de Linux, il y avait eu un gros débat sur le fait de savoir si Linux devait être monolythique (ce qu’il est) ou sous forme de Micro noyau.

Windows est un micro noyau je crois bien mais ça n’est pas clair (rien n’est clair sous Windows).

BSD est un Unix avec une licence BSD (si) permettant entre autre l’usage de composants dans un code propriétaire (Windows contient bcp de code BSD dans sa partie réseau). Très fiable mais je ne connais pas bien.[/quote]

Je ne suis pas certain que Linux soit monolithique. Un système monolithique, comme son nom l’indique, est composé d’un noyau d’un seul bloc, comprenant tout d’emblée : un gros noyau avec tout les drivers, tout les systèmes de fichiers, tout ce qu’il faut pour ne plus avoir à le changer. En fait, c’est devenu trés rare, et les monolythiques existaient plutôt sur les ancêtres, les premiers Linux, les premiers BSD.
Le problème avec les monolithiques, c’est que s’il faut changer les drivers, on doit changer tout le noyau.
C’est pourquoi les monolithiques sont devenus modulaires. Plus souples, ils permettent de faire des changements au sein du noyau (ce que l’on fait quand on recompile le Kernel, en choississant les modules), de charger et décharger les modules etc.
Le kernel Linux est un noyau monolithique modulaire (depuis 1995).

[quote=“Damsss”]Je ne suis pas certain que Linux soit monolithique.

(…)

Le kernel Linux est un noyau monolithique modulaire (depuis 1995).[/quote]

:smt017

pour être précis et complet:

[i]On considère généralement les noyaux monolithiques, de conception ancienne, comme obsolètes car difficiles à maintenir et moins « propres ». Le noyau Linux était déjà qualifié d’obsolète par Andrew Tanenbaum [1], dès sa création en 1991. Il ne croyait pas, à l’époque, pouvoir faire un noyau monolithique multi-plates-formes et modulaire. La mise en place de micro-noyaux, qui consiste à déplacer l’essentiel des fonctions du noyau vers l’espace utilisateur, est très intéressante en théorie mais s’avère difficile en pratique. Ainsi les performances du noyau Linux (monolithique) sont supérieures à celles de ses concurrents (noyaux généralistes à micro-noyaux), sans compter qu’il fut finalement porté sur de très nombreuses plates-formes et qu’il est modulaire depuis 1995.

Pour ces raisons de performance, les systèmes généralistes basés sur une technologie à micro-noyau, tels que Windows et Mac OS X, n’ont pas un « vrai » micro-noyau enrichi. Ils utilisent un micro-noyau hybride : certaines fonctionnalités qui devraient exister sous forme de mini-serveurs se retrouvent intégrées dans leur micro-noyau, utilisant le même espace d’adressage. Pour Mac OS X, cela forme XNU : le noyau monolithique BSD fonctionne en tant que « service » de Mach et ce dernier inclut du code BSD dans son propre espace d’adressage afin de réduire les latences.

Ainsi, les deux approches d’architectures de noyaux, les micro-noyaux et les noyaux monolithiques, considérés comme diamétralement différentes en terme de conception, se rejoignent quasiment en pratique par les micro-noyaux hybrides et les noyaux monolithiques modulaires.

(…)

En réalité les problèmes de la portabilité de code se sont révélés avec le temps indépendants de la problématique de la technologie des noyaux. Pour preuve, NetBSD est un noyau monolithique et est porté sur un très grand nombre d’architectures, alors que des noyaux tels que HURD ou celui de Windows XP utilisent des micro-noyaux censés faciliter le portage mais n’existent que pour quelques architectures.

(…)

Pour répondre aux problèmes des noyaux monolithiques, ces derniers sont devenus modulaires. La très grande majorité des systèmes actuels utilise cette technologie : Linux, la plupart des BSD ou Solaris.[/i]

fr.wikipedia.org/wiki/Micro-noya … _de_noyaux

[quote=“ghostintheshell”]

fr.wikipedia.org/wiki/Micro-noya … _de_noyaux[/quote]

Très bon lien!!

A ne pas louper :
severino.free.fr/archives/copies … -appa.html

[quote=“BorisTheButcher”][quote=“ghostintheshell”]
fr.wikipedia.org/wiki/Micro-noya … _de_noyaux[/quote]
Très bon lien!!
A ne pas louper :
severino.free.fr/archives/copies … -appa.html[/quote]
J’aime beaucoup les critiques de tanenbaum:
1 - Linux utilise un noyau monolitique, obsolete comparé aux micronoyaux qui s’appretaient à débouler à l’epoque. LT répond qu’au moins son noyau à lui fonctionne déjà, et 20 ans aprés, les micronoyaux ne dominent toujours pas.
2 - Quelle idée de multithreader la gestion des fichiers. Le systeme de fichier est toujours engorgé et les threads passent leur temps à attendre. Pariel, qui imaginerait de nos jours une gestion de fichier monotâche ?
3 - Quelle idée de fabriquer du logiciel gratuit qui ne fonctionne que sur des machines haut de gamme comme le 386 ? demande tannenbaum … :mrgreen:

et finalement, je ne résiste pas à ce petit echange modeste entre tannenbaum et un pote de LT (remarquez que ce n’est même pas lui qui relève):[quote]De: feustel@netcom.COM (David Feustel)
Sujet: Re : LINUX est dépassé
Date: 30 Jan 92 18:57:28 GMT
Organisation: DAFCO - An OS/2 Oasis

ast@cs.vu.nl (Andy Tanenbaum) écrit :

Je persiste à penser que concevoir un noyau monolithique en
1991 est une erreur fondamentale. Estime-toi heureux de ne pas être
un de mes étudiants. Tu n’obtiendrais pas une bonne note pour une
telle conception :slightly_smiling:

C’est vrai. Einstein a eu des notes déplorables en maths et en
physique.[/quote]

J’ai essayé d’installer Debian/Hurd, bon ben c pas très clair tout ça !!!
Sur ce projet ils ont besoin d’un bon coup de main :slightly_smiling: surtout au niveau interface d’installation.
Quelqu’un l’a déjà installé ?

[quote=“debianhadic”]J’ai essayé d’installer Debian/Hurd, bon ben c pas très clair tout ça !!!
Sur ce projet ils ont besoin d’un bon coup de main :slightly_smiling: surtout au niveau interface d’installation.
Quelqu’un l’a déjà installé ?[/quote]

Ouaip, ben moi j’ai essayé d’installer un ExoPC du MIT, mais ça ne boot pas dessus. Il faudrait modifier grub.

Il y avait une série de 2 ou 3 articles dans un linux mag , il y a 6/8 mois.
Ca parlait du micronoyau Gnumach et des translateurs, super puissants semble-t-il… exemple ca permet de faire du FUSE natif, de la compression à la volée,…

nl.debian.org/ports/hurd/hurd-doc-translator
ttp://people.debian.org/~neal/hurd-live-cd/

Un super lien plus général sur tous les forks (Hurd, Bsd,Solaris,Linux,…) à paritr d’UNICS en 1969:
levenez.com/unix/history.html#10
C’est quand meme hallucinant :slightly_smiling:

à noter sur ton schema que le dernier apport exterieur au noyau (de GNUMach, d’aprés la flèche) a eu lieu sur le 2.6.13

Linux, Hurd, BSD … ok, mais celui-ci, vous connaissiez?

-> gnu-darwin.org/

[quote]ERROR
The requested URL could not be retrieved


While trying to retrieve the URL: gnu-darwin.org/

The following error was encountered:

Connection Failed
The system returned:

(113) No route to host[/quote]

:mrgreen: AH les amateurs de Mac, c’est vraiment des amateurs :mrgreen: