Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

docu sur Darwin

55 réponses
Avatar
Thierry Mella
Bonsoir,

J'ai un ami - fan de Linux - qui me conseille vivement
de passer sur ce dernier. Or je lui ai dit que Darwin
est aussi un UNIX et que le code source est dispo
gratos sur le site d'Apple.

Existe-t-il des références (livres, sites web en dehors
de celui d'Apple, ...) sur Darwin ? Je n'ai vu aucun livre
à la FNAC dessus, contrairement à Linux et cela me fait
un peu râler ... :-)

Y a-t-il beaucoup de différence entre Linux & Darwin ?

Peut-on "bidouiller" autant sous Darwin que sous Linux ?

D'avance un Grand Merci pour vos réponses ...

Thierry

10 réponses

1 2 3 4 5
Avatar
olivier.marti
Thierry Mella wrote:

Bonsoir,

J'ai un ami - fan de Linux - qui me conseille vivement
de passer sur ce dernier. Or je lui ai dit que Darwin
est aussi un UNIX et que le code source est dispo
gratos sur le site d'Apple.

Existe-t-il des références (livres, sites web en dehors
de celui d'Apple, ...) sur Darwin ? Je n'ai vu aucun livre
à la FNAC dessus, contrairement à Linux et cela me fait
un peu râler ... :-)

Y a-t-il beaucoup de différence entre Linux & Darwin ?

Peut-on "bidouiller" autant sous Darwin que sous Linux ?

D'avance un Grand Merci pour vos réponses ...

Thierry



Mais Linux n'est PAS un Unix !!!

Unix est un OS qui a une longue histoire. Toutes les branches actuelles
dérivent d'une même origine. Il y a les deux branches principales,
system V et BSD, et plein de branchette, dont tout les Unix
propriétaires (AIX, HP UX, Solaris, SuperUX, etc....).

Le noyau Linux a été écris depuis zéro, au départ par Linus Thorrvalds,
puis par plein de gens. Autour il y a GNU, qui a depuis longtemps
réécrit presque tout Unix, sauf le noyau. L'ensemble est très proche
d'Unix, conforme à la norme POSIX.

Disons que sur ses papiers Linux est un Unix, mais il se ferait jeter au
test ADN. Thorvalds lui a fait ses faux papier en 1992.

Darwin est en descendant direct d'Unix par la branche BSD.

En cherchant dans l'histoire d'Unix, qui commence dans les années 70, tu
vas voir apparaitre BSD, puis Darwin.

Note que Darwin est libre, mais ça ne concerne que l'OS. Tout ce qui est
autour : l'interface graphique, le Finder, les API, etc ... sont
totalement propriétaires et véerouillés. Contraitement à GNU/Linux, ou
TOUT est libre.

Olivier

Avatar
Thierry Mella
Olivier Marti wrote:

Mais Linux n'est PAS un Unix !!!

Unix est un OS qui a une longue histoire. Toutes les branches actuelles
dérivent d'une même origine. Il y a les deux branches principales,
system V et BSD, et plein de branchette, dont tout les Unix
propriétaires (AIX, HP UX, Solaris, SuperUX, etc....).

Le noyau Linux a été écris depuis zéro, au départ par Linus Thorrvalds,
puis par plein de gens. Autour il y a GNU, qui a depuis longtemps
réécrit presque tout Unix, sauf le noyau. L'ensemble est très proche
d'Unix, conforme à la norme POSIX.

Disons que sur ses papiers Linux est un Unix, mais il se ferait jeter au
test ADN. Thorvalds lui a fait ses faux papier en 1992.

Darwin est en descendant direct d'Unix par la branche BSD.

En cherchant dans l'histoire d'Unix, qui commence dans les années 70, tu
vas voir apparaitre BSD, puis Darwin.

Note que Darwin est libre, mais ça ne concerne que l'OS. Tout ce qui est
autour : l'interface graphique, le Finder, les API, etc ... sont
totalement propriétaires et véerouillés. Contraitement à GNU/Linux, ou
TOUT est libre.



Merci pour ton indulgence face à mon ignorance ... :-)

Ta réponse amène d'autres questions de pure curiosité :

1/ Je crois savoir que les UNIX de la branche BSD sont gratuits
mais le code est-il accessible gratuitement ?

2/ UNIX datant des années '70, le code a largement eu le temps
d'être débogué. Je souhaiterai savoir si on peut en dire autant
de Linux, dispo depuis moins de temps ? (et dont on vante
pourtant la stabilité)

3/ Je ne connais que très peu la norme POSIX. Le fait que Linux
soit compatible avec implique-t-il que les commandes dans le
terminal soit les mêmes que pour Darwin ?

4/ Peut-on dire que Linus Thorvalds a réinventé la roue ?
A-t-il réécrit le code juste pour qu'il soit libre ?

5/ Existe-t-il de la doc sur le net ? Certes il y a Google,
mais rien ne vaut l'avis de spécialistes ...

D'avance Merci pour votre indulgence face à mon niveau.
Je débute sous Darwin et ne demande qu'à apprendre ...

Thierry

Avatar
olivier.marti
Thierry Mella wrote:

Olivier Marti wrote:

Mais Linux n'est PAS un Unix !!!

Unix est un OS qui a une longue histoire. Toutes les branches actuelles
dérivent d'une même origine. Il y a les deux branches principales,
system V et BSD, et plein de branchette, dont tout les Unix
propriétaires (AIX, HP UX, Solaris, SuperUX, etc....).

Le noyau Linux a été écris depuis zéro, au départ par Linus Thorrvalds,
puis par plein de gens. Autour il y a GNU, qui a depuis longtemps
réécrit presque tout Unix, sauf le noyau. L'ensemble est très proche
d'Unix, conforme à la norme POSIX.

Disons que sur ses papiers Linux est un Unix, mais il se ferait jeter au
test ADN. Thorvalds lui a fait ses faux papier en 1992.

Darwin est en descendant direct d'Unix par la branche BSD.

En cherchant dans l'histoire d'Unix, qui commence dans les années 70, tu
vas voir apparaitre BSD, puis Darwin.

Note que Darwin est libre, mais ça ne concerne que l'OS. Tout ce qui est
autour : l'interface graphique, le Finder, les API, etc ... sont
totalement propriétaires et véerouillés. Contraitement à GNU/Linux, ou
TOUT est libre.



Merci pour ton indulgence face à mon ignorance ... :-)

Ta réponse amène d'autres questions de pure curiosité :

1/ Je crois savoir que les UNIX de la branche BSD sont gratuits
mais le code est-il accessible gratuitement ?


Normalement ils sont sous license BSD, donc le code source est
accessible gratuitement.

2/ UNIX datant des années '70, le code a largement eu le temps
d'être débogué. Je souhaiterai savoir si on peut en dire autant
de Linux, dispo depuis moins de temps ? (et dont on vante
pourtant la stabilité)


La plupart des Unix sont, ou du moins étaient, propriétaires. Leur
niveau de déboggage est donc très variable, dépendant de la taille du
marché par exemple. Il faudrait faire des sondages pour savoir ce qu'en
pensent les vieux unixiens. J'ai plutôt entendu du bien de SunOS ou de
AIX, et les pires choses sur HP-UX ou Unisys. Mais je ne me sens pas
d'avoir une opinion sur la chose.

GNU/Linux est composé de deux couches : le noyau, écris à l'origine par
Thorvalds, et tout le reste qui est du logiciel libre d'origine diverse,
mais essentiellement GNU et FSF.

L'erreur de GNU a été de partir sur le développement d'un micro noyau
(GNU Hurd) car c'était la technologie à la mode, pour laquelle il était
possible d'obtenir des crédits de recherche. Ils n'ont à ma connaissance
jamais abouti à quelque chose de stable et fiable. Thorvalds est parti
sur des techonologies de noyau monolitique classique, mais eprouvée.

Pour le reste, ils ont fait un énorme est excellent travail. Les gens de
la FSF s'énervent parfois un peu que l'on appelle Linux plutôt que
GNU/Linux. Vu leur contribution au système complet, je les comprends.

Pour la partie GNU, ils s'agit de logiciels parfois aussi anciens qui
Unix, et donc pour la majeure partie est très bien débogguée. En tout
cas pour les basiques qui sont utiisés par tout le monde.

Certains Unix étaient bien rodés pour gérer des très grands systèmes ou
des supercalculateurs. Linux a encore un peu de retard la-dessus.

3/ Je ne connais que très peu la norme POSIX. Le fait que Linux
soit compatible avec implique-t-il que les commandes dans le
terminal soit les mêmes que pour Darwin ?


J'ai vécu successivement SunOS, AIX (IBM) et Linux, avec des détours par
Unicos (Cray), Super HX (NEC), sans être très perturbé. Il y a des
subtilités entre la branche System V et la branche BSD.

4/ Peut-on dire que Linus Thorvalds a réinventé la roue ?
A-t-il réécrit le code juste pour qu'il soit libre ?
Je dirai plutôt la deuxième hypothèse, mais je ne suis sûr de rien.


5/ Existe-t-il de la doc sur le net ? Certes il y a Google,
mais rien ne vaut l'avis de spécialistes ...
A vrai dire, je te suggérais volontiers de commencer par la célèbre

discussion entre Tannenbaum, le créateur du système Minix, et Thorvalds.
Il est disponible traduit en français sur
http://severino.free.fr/archives/copieslocales/tribunelibre/fr-appa.html
par exemple.


D'avance Merci pour votre indulgence face à mon niveau.
Je débute sous Darwin et ne demande qu'à apprendre ...


Je ne suis pas sûr qu'apprendre l'histoire d'Unix et de ses cousins
t'aide beaucoup dans ton utilisation quotidienne ... Mais je comprend
et partage ton intérêt.


Thierry



Avatar
Thierry Mella
Olivier Marti wrote:
Thierry Mella wrote:

Merci pour ton indulgence face à mon ignorance ... :-)

Ta réponse amène d'autres questions de pure curiosité :

1/ Je crois savoir que les UNIX de la branche BSD sont gratuits
mais le code est-il accessible gratuitement ?



Normalement ils sont sous license BSD, donc le code source est
accessible gratuitement.

4/ Peut-on dire que Linus Thorvalds a réinventé la roue ?
A-t-il réécrit le code juste pour qu'il soit libre ?


Je dirai plutôt la deuxième hypothèse, mais je ne suis sûr de rien.



Je n'ai pas encore lu le débat Tanenbaum / Thorvalds mais le
fait de réécrire le code juste pour qu'il soit libre alors
que la licence BSD en donnait un autre me parait curieux ...


2/ UNIX datant des années '70, le code a largement eu le temps
d'être débogué. Je souhaiterai savoir si on peut en dire autant
de Linux, dispo depuis moins de temps ? (et dont on vante
pourtant la stabilité)



La plupart des Unix sont, ou du moins étaient, propriétaires. Leur
niveau de déboggage est donc très variable, dépendant de la taille du
marché par exemple. Il faudrait faire des sondages pour savoir ce qu'en
pensent les vieux unixiens. J'ai plutôt entendu du bien de SunOS ou de
AIX, et les pires choses sur HP-UX ou Unisys. Mais je ne me sens pas
d'avoir une opinion sur la chose.


J'avais posté une question sur SunOS & HP-UX sur fr.comp.ordinosaures.
Et les réponses que j'ai reçues indiquaient que vers 94-95, Solaris
était plantogène et HP-UX sur les HP 9000 stable. Mais la situation
a beaucoup changée depuis ...


GNU/Linux est composé de deux couches : le noyau, écris à l'origine par
Thorvalds, et tout le reste qui est du logiciel libre d'origine diverse,
mais essentiellement GNU et FSF.

L'erreur de GNU a été de partir sur le développement d'un micro noyau
(GNU Hurd) car c'était la technologie à la mode, pour laquelle il était
possible d'obtenir des crédits de recherche. Ils n'ont à ma connaissance
jamais abouti à quelque chose de stable et fiable. Thorvalds est parti
sur des techonologies de noyau monolitique classique, mais eprouvée.


Mais NeXTSTEP a été écrit avec un micro-noyau Mach ? Etait-il aussi
instable ? L'approche "monolithique" n'implique-t-elle pas un
débogage plus difficile ? (un peu comme la différence entre l'approche
par couches des réseaux (séparations claires mais exécution (OSI p.ex.)
lente) et une approche "monolithique", où tout est plus rapide mais
"mélangé / intriqué").

L'ami qui me conseille Linux m'a indiqué que celui-ci avait évolué
ces dernières années vers un micro-noyau. Est-ce exact ?

Pour le reste, ils ont fait un énorme est excellent travail. Les gens de
la FSF s'énervent parfois un peu que l'on appelle Linux plutôt que
GNU/Linux. Vu leur contribution au système complet, je les comprends.

Pour la partie GNU, ils s'agit de logiciels parfois aussi anciens qui
Unix, et donc pour la majeure partie est très bien débogguée. En tout
cas pour les basiques qui sont utiisés par tout le monde.


Aurait-tu quelques exemples de logiciels GNU ? (ma *petite* culture
informatique n'a entendu parler que du "noyau Linux").

Certains Unix étaient bien rodés pour gérer des très grands systèmes ou
des supercalculateurs. Linux a encore un peu de retard la-dessus.


3/ Je ne connais que très peu la norme POSIX. Le fait que Linux
soit compatible avec implique-t-il que les commandes dans le
terminal soit les mêmes que pour Darwin ?



J'ai vécu successivement SunOS, AIX (IBM) et Linux, avec des détours par
Unicos (Cray), Super HX (NEC), sans être très perturbé. Il y a des
subtilités entre la branche System V et la branche BSD.


J'ai relevé à la FNAC le livre suivant : "Linux : Programmation Système
& Réseaux" de Joëlle Delacroix chez Dunod.

Mon raisonnement est le suivant : si Linux est architecturalement
parlant différent d'Unix / Darwin, ce livre n'est pas pour moi.

Par contre comme Linux est compatible Posix, les API doivent
donner les mêmes résultats et ce livre est ok.

Bref, comme tu peut le constater, je fais une soupe avec la norme
POSIX et ne sais quel raisonnement est le bon ...


5/ Existe-t-il de la doc sur le net ? Certes il y a Google,
mais rien ne vaut l'avis de spécialistes ...


A vrai dire, je te suggérais volontiers de commencer par la célèbre
discussion entre Tannenbaum, le créateur du système Minix, et Thorvalds.
Il est disponible traduit en français sur
http://severino.free.fr/archives/copieslocales/tribunelibre/fr-appa.html
par exemple.


Merci, je vais commencer par cela.

D'avance Merci pour votre indulgence face à mon niveau.
Je débute sous Darwin et ne demande qu'à apprendre ...



Je ne suis pas sûr qu'apprendre l'histoire d'Unix et de ses cousins
t'aide beaucoup dans ton utilisation quotidienne ... Mais je comprend
et partage ton intérêt.


L'histoire peut aider à comprendre le présent. J'ai approché le monde
des OS avec Mac OS 6 & 7 - systèmes non-libres et monolithiques.

Et, à l'époque, une phrase "marketing" de Ken Olsen, pdg de Digital,
comparait Unix à - je cite - un "camion soviétique", ce qui otait
le coté "glamour" de l'OS ...

Bref, j'avais une image négative d'UNIX, pensant - dans mon ignorance
juvénile - que Mac OS 7 était le "nec plus ultra" en matière d'OS.

Ce n'est que bien plus tard que je me suis rendu compte à quel point
j'avais tort ...

En résumé, je souhaiterai remettre les "mains dans le camboui"
et ne demande qu'à apprendre ...

Thierry


Avatar
Eric Levenez
Le 15/10/07 19:48, dans <4713a803$0$29250$,
« Thierry Mella » a écrit :

Je n'ai pas encore lu le débat Tanenbaum / Thorvalds mais le
fait de réécrire le code juste pour qu'il soit libre alors
que la licence BSD en donnait un autre me parait curieux ...


De mémoire, je dirais que Torvalds voulait faire tourner un unix-like sur
son PC x86 mais que Minix ne tournait pas encore sur ce genre de machine. Le
problème à la base était juste un problème de machine, pas de licence ou
d'architecture noyau.

Mais NeXTSTEP a été écrit avec un micro-noyau Mach ? Etait-il aussi
instable ?


La stabilité ne dépend pas de l'architecture, mais de l'énergie que l'on
donne pour y arriver et donc de la qualité des développeurs.

L'approche "monolithique" n'implique-t-elle pas un
débogage plus difficile ? (un peu comme la différence entre l'approche
par couches des réseaux (séparations claires mais exécution (OSI p.ex.)
lente) et une approche "monolithique", où tout est plus rapide mais
"mélangé / intriqué").


L'approche monolithique ou non n'implique pas une stabilité ou une facilité
de développement.

L'ami qui me conseille Linux m'a indiqué que celui-ci avait évolué
ces dernières années vers un micro-noyau. Est-ce exact ?


Pas vraiment. Linux est actuellement une grosse vache poilue avec
d'innombrables greffons. Développer dans le noyau est une horreur car
Torvalds et ses acolytes s'amusent à changer les API à chaque version et
sous-version. Pour lui, des API stables ont un frein à l'évolution.

Il existe des Linux à micronoyau. Apple a ainsi développé Mk/Linux. Il
existe aussi un L4/Linux plus récent. Mais ces versions sont là pour tester
et ne sont pas des versions généralistes de GNU/Linux.

Aurait-tu quelques exemples de logiciels GNU ? (ma *petite* culture
informatique n'a entendu parler que du "noyau Linux").


Le noyau Linux n'est pas du GNU. Dans le giron du GNU on trouve la
bibliothèque standard de GNU/Linux (glibc), le shell Bash, le compilateur
GCC...

J'ai relevé à la FNAC le livre suivant : "Linux : Programmation Système
& Réseaux" de Joëlle Delacroix chez Dunod.

Mon raisonnement est le suivant : si Linux est architecturalement
parlant différent d'Unix / Darwin, ce livre n'est pas pour moi.


GNU/Linux est basé sur les sockets pour le réseau, comme Darwin. À part 2 ou
3 détails, c'est la même chose.

Par contre comme Linux est compatible Posix, les API doivent
donner les mêmes résultats et ce livre est ok.


GNU/Linux est sensé être compatible Posix, mais très souvent les programmes
ne sont pas compilés en mode strictement compatible (sinon ils ne
compileraient pas). Mac OS X < 10.5 est aussi sensé être compatible Posix.
Par contre Mac OS X 10.5 est un Unix certifié (du moins sur x86 pour des
questions de gros sous) et donc est "Posix".

Bref, comme tu peut le constater, je fais une soupe avec la norme
POSIX et ne sais quel raisonnement est le bon ...


Il existe des dizaines de normes Posix avec chacune des parties facultatives
et obligatoires. Un programme Posix qui compile sur une machine peut ne pas
compiler sur une autre. Là encore c'est le programmeur qui fait la
différence et qui permet à un programme d'être portable sur les systèmes
Posix ou pratiquement Posix.

Quand on parle de Posix à ce niveau, c'est généralement en référence à Std
1003.1 (l'interface système), mais il existe des normes Posix pour Ada, pour
la sécurité, pour le temps réel, pour les commandes shell, pour le fortran,
pour la messagerie, pour l'administration système, pour la gestion des
répertoires...

L'histoire peut aider à comprendre le présent. J'ai approché le monde
des OS avec Mac OS 6 & 7 - systèmes non-libres et monolithiques.


Pour info, les anciennes versions de Mac s'appelaient System. Ce n'est qu'à
partir de la version 7.6 que System est devenu Mac OS. Et depuis la version
10, le nom est devenu Mac OS X.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
olivier.marti
Thierry Mella wrote:



Aurait-tu quelques exemples de logiciels GNU ? (ma *petite* culture
informatique n'a entendu parler que du "noyau Linux").


Il y a deux choses : les logiciels directement écrit par la free
software fondation, et tout les logiciels libres sous license GNu (la
GPL). Pour les premiers, il y a au moins emacs, mais je serais incapable
de te faire une liste. Pour les seconds, tu as à peu près tout Linux
(Perl, zsh, gcc, ...)


Pour le reste de ton message, je te laisse lire la réponse d'Eric, qui a
l'air d'avoir des idées plus complètes que moi.

Olivier

Avatar
Eric Levenez
Le 16/10/07 8:34, dans <1i62i59.4k13mah9m9axN%,
« Olivier Marti » a écrit :

Thierry Mella wrote:

Aurait-tu quelques exemples de logiciels GNU ? (ma *petite* culture
informatique n'a entendu parler que du "noyau Linux").


Il y a deux choses : les logiciels directement écrit par la free
software fondation, et tout les logiciels libres sous license GNu (la
GPL). Pour les premiers, il y a au moins emacs, mais je serais incapable
de te faire une liste. Pour les seconds, tu as à peu près tout Linux
(Perl, zsh, gcc, ...)


Tous les logiciels du GNU sont en GPL, mais tous les logiciels Open Source
ne sont pas GPL, heureusement.

Perl par exemple n'est pas du GNU et n'a pas non plus de licence GPL :
<http://www.perl.com/pub/a/language/misc/Artistic.html>.
Idem pour ZSH : <http://www.math.technion.ac.il/pub/zsh/LICENCE>.

Pour GCC, étant un produit de la FSF, c'est du GPL.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Paul Gaborit
À (at) Tue, 16 Oct 2007 12:52:14 +0200,
Eric Levenez écrivait (wrote):
Tous les logiciels du GNU sont en GPL, mais tous les logiciels Open Source
ne sont pas GPL, heureusement.


Exact. Et j'ajouterai même : tous les logiciels en GPL ne sont pas
GNU.

Perl par exemple n'est pas du GNU et n'a pas non plus de licence GPL :
<http://www.perl.com/pub/a/language/misc/Artistic.html>.


Perl n'est un produit GNU. Mais il est distribué sous double licence :
Artistique *et* GPL.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
Thierry Mella
Eric Levenez wrote:


Bonsoir,

Merci pour ta longue et détaillée réponse. Toujours aussi
pédagogue - un régal ! :-)


De mémoire, je dirais que Torvalds voulait faire tourner un unix-like sur
son PC x86 mais que Minix ne tournait pas encore sur ce genre de machine. Le
problème à la base était juste un problème de machine, pas de licence ou
d'architecture noyau.


Mais NeXTSTEP a été écrit avec un micro-noyau Mach ? Etait-il aussi
instable ?



La stabilité ne dépend pas de l'architecture, mais de l'énergie que l'on
donne pour y arriver et donc de la qualité des développeurs.


L'approche "monolithique" n'implique-t-elle pas un
débogage plus difficile ? (un peu comme la différence entre l'approche
par couches des réseaux (séparations claires mais exécution (OSI p.ex.)
lente) et une approche "monolithique", où tout est plus rapide mais
"mélangé / intriqué").



L'approche monolithique ou non n'implique pas une stabilité ou une facilité
de développement.



Si je ne me trompe pas, c'est dans le "tanenbaum - Réseaux" qu'il
indique que les premières versions softs du modèle OSI était -je cite-
L-E-N-T-E-S. Au contraire de TCP / IP qui était plus rapide à
s'exécuter.

Le fait de découpler fonctionnalités & code n'implique-t-il pas
une perte de temps dans le passage des paramètres d'une procédure
à l'autre ? (pour rappel, je ne suis pas informaticien - il se peut
que je dise une grosse bêtise - mais c'est ce que je crois
intuitivement ...)

Je compare l'approche monolithique <--> micro-noyau avec
l'approche OSI <--> TCP/IP mais, ne connaissant pas les OS,
c'est la seule comparaison qui me vient à l'esprit !

L'ami qui me conseille Linux m'a indiqué que celui-ci avait évolué
ces dernières années vers un micro-noyau. Est-ce exact ?



Pas vraiment. Linux est actuellement une grosse vache poilue avec
d'innombrables greffons. Développer dans le noyau est une horreur car
Torvalds et ses acolytes s'amusent à changer les API à chaque version et
sous-version. Pour lui, des API stables ont un frein à l'évolution.


Ne me dis pas qu'il faut réécrire tout ou une partie du code pour
passer d'une version de Linux à une autre ?? C'est plutôt contre-
productif ...

Il existe des Linux à micronoyau. Apple a ainsi développé Mk/Linux. Il
existe aussi un L4/Linux plus récent. Mais ces versions sont là pour tester
et ne sont pas des versions généralistes de GNU/Linux.


L4 : est-ce Mach version 4 ou un tout autre micro-noyau ?

Aurait-tu quelques exemples de logiciels GNU ? (ma *petite* culture
informatique n'a entendu parler que du "noyau Linux").



Le noyau Linux n'est pas du GNU. Dans le giron du GNU on trouve la
bibliothèque standard de GNU/Linux (glibc), le shell Bash, le compilateur
GCC...


J'ai relevé à la FNAC le livre suivant : "Linux : Programmation Système
& Réseaux" de Joëlle Delacroix chez Dunod.

Mon raisonnement est le suivant : si Linux est architecturalement
parlant différent d'Unix / Darwin, ce livre n'est pas pour moi.



GNU/Linux est basé sur les sockets pour le réseau, comme Darwin. À part 2 ou
3 détails, c'est la même chose.


Par contre comme Linux est compatible Posix, les API doivent
donner les mêmes résultats et ce livre est ok.



GNU/Linux est sensé être compatible Posix, mais très souvent les programmes
ne sont pas compilés en mode strictement compatible (sinon ils ne
compileraient pas). Mac OS X < 10.5 est aussi sensé être compatible Posix.
Par contre Mac OS X 10.5 est un Unix certifié (du moins sur x86 pour des
questions de gros sous) et donc est "Posix".


En résumé, tu le conseillerais pour la partie "réseaux" et pas la
partie "programmation système" ?

L'histoire peut aider à comprendre le présent. J'ai approché le monde
des OS avec Mac OS 6 & 7 - systèmes non-libres et monolithiques.



Pour info, les anciennes versions de Mac s'appelaient System. Ce n'est qu'à
partir de la version 7.6 que System est devenu Mac OS. Et depuis la version
10, le nom est devenu Mac OS X.



C'est bien vrai ! J'avais oublié. Merci de me l'avoir rappelé ...

Thierry


Avatar
Eric Levenez
Le 16/10/07 20:27, dans <4715028e$0$22309$,
« Thierry Mella » a écrit :

Si je ne me trompe pas, c'est dans le "tanenbaum - Réseaux" qu'il
indique que les premières versions softs du modèle OSI était -je cite-
L-E-N-T-E-S. Au contraire de TCP / IP qui était plus rapide à
s'exécuter.

Le fait de découpler fonctionnalités & code n'implique-t-il pas
une perte de temps dans le passage des paramètres d'une procédure
à l'autre ? (pour rappel, je ne suis pas informaticien - il se peut
que je dise une grosse bêtise - mais c'est ce que je crois
intuitivement ...)


En "TCP/IP", il y a une couche 1 qui est la couche physique (Ethernet...);
une couche 2, la couche IP; et au dessus plusieurs couches 3/4 : UDP, TCP...
Au dessus il y a les couches applicatives.

En OSI, la couche 2 est la couche liaison (LAPB...), la couche 3 est la
couche réseau (X.25...), la couche 4 est le transport, et la couche
applicative est au dessus. Il y a séparation entre couche 3 et 4.

Le problème de l'OSI est que cela inclus beaucoup de standards très
compliqués pour s'adapter (enfin normalement) à beaucoup de cas. Alors que
le modèle TCP/IP est beaucoup plus simple à mettre en oeuvre. Les protocoles
comme le X.25 ne sont pas fait pour aller à de grandes vitesses par leur
structure même. Le TCP/IP sera toujours plus rapide.

Il n'y a pas vraiment de raison pour qu'une implémentation TCP/IP ou ISO
soit plus lente l'une que l'autre. Cela n'est qu'une question d'architecture
interne des couches.

En TCP/IP il y a 2 standards Posix qui sont le modèle STREAMS et le modèle
Socket. Les STREAMS viennent d'Unix System V Release 3 (présent sous le nom
d'Open Transport sur Mac OS), et les Sockets viennent du monde BSD.

Avec les STREAMS, chaque couche est un module indépendant qui envoie et
reçoit des messages à d'autres couches. On a une couche IP, une couche
TCP... Le passage de message d'une couche à une autre se fait pas passage
d'un pointeur (pas par copie des données). Mais chaque couche doit récupérer
les messages sur des files d'attente, les traiter, et les passer aux couches
suivantes.

Avec les Sockets, les couches sont sensées être séparées, mais sont très
fortement liées. Les messages circulent aussi par pointeurs, mais une couche
peut appeler directement une fonction d'une autre couche (par ce qu'on
appelle des flèches, c'est-à-dire des indirections de fonctions). C'est
rapide, mais très bordélique et pas évolutif.

Les STREAMS sont plus lents que les Sockets mais sont orientés
multi-threads, contrairement aux Sockets. L'avantage des STREAMS est que
l'on peut empiler les modules dynamiquement comme on veut, par exemple si on
a un module de cryptage on peut le placer entre 2 modules, cela au niveau de
l'utilisateur final. Ceci est impossible en Socket où pour faire la même
chose il faut modifier le noyau. L'autre avantage des STREAMS est que les
messages échangés sont typés et les champs de taille variable. Ainsi on peut
par exemple gérer de l'IPv4 en même temps que de l'IPv6 bien que les tailles
des adresses soient différentes. Avec les Sockets il faut une pile IPv4 et
une pile IPv6 car les structures qui sont en durs sont de taille fixe.

Bref, les STREAMS, c'est mieux mais légèrement plus lent, mais ce sont les
Sockets qui ont gagnés.

La facilité de développer en STREAMS ou en Socket dans le noyau dépend du
système utilisé et de sa documentation. Le fait que l'un soit plus structuré
que l'autre n'est qu'une petite partie du problème. Le plus gros problème
dans ce genre de développement est le multithreading. C'est d'ailleurs pour
cela que les piles TCP/IP Socket ne sont multithreadées que depuis peu.

L'ami qui me conseille Linux m'a indiqué que celui-ci avait évolué
ces dernières années vers un micro-noyau. Est-ce exact ?


Pas vraiment. Linux est actuellement une grosse vache poilue avec
d'innombrables greffons. Développer dans le noyau est une horreur car
Torvalds et ses acolytes s'amusent à changer les API à chaque version et
sous-version. Pour lui, des API stables ont un frein à l'évolution.


Ne me dis pas qu'il faut réécrire tout ou une partie du code pour
passer d'une version de Linux à une autre ?? C'est plutôt contre-
productif ...


Quand on développe dans le noyau Linux et que l'on fait un driver pour un
noyau version x.y.z, rien ne dit que le driver marchera en x.y.z+1. C'est
bien triste, mais c'est la règle imposée par Torvalds. Pour l'utilisateur
cela est différent car il ne voit que le haut du panier, et là les API sont
assez stables et donc les applis continuent à marcher lors des évolutions de
noyau.

Il existe des Linux à micronoyau. Apple a ainsi développé Mk/Linux. Il
existe aussi un L4/Linux plus récent. Mais ces versions sont là pour tester
et ne sont pas des versions généralistes de GNU/Linux.


L4 : est-ce Mach version 4 ou un tout autre micro-noyau ?


C'est un autre micro-noyau :
<http://en.wikipedia.org/wiki/L4_microkernel_family>

J'ai relevé à la FNAC le livre suivant : "Linux : Programmation Système
& Réseaux" de Joëlle Delacroix chez Dunod.



En résumé, tu le conseillerais pour la partie "réseaux" et pas la
partie "programmation système" ?


Aucune idée, je ne connais pas ce livre. Je parlais juste en général de la
programmation des couches réseaux TCP/IP dans le monde Unix.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.



1 2 3 4 5