Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Expédition DarwinOS

Découvrez comment installer et configurer Darwin OS, une face UNiX d'OS X.


Présentation de Darwin
Expédition Darwin
Les balises sur notre parcours
Recommandations
AVERTISSEMENT
Départ
Démarrage
Dual boot
Configuration minimale
Configurer le réseau
Service sshd


Présentation de Darwin
Le système d'exploitation (OS) Mac OS X n'est plus à présenter à la communauté des MacUsers. Toutefois, le lien entre Macintosh et Darwin est moins connu. Apple en fusionnant avec Next est rentré dans le monde *nix, c'est-à-dire celui de toutes les distributions de Linux, *BSD, AIX, True64, ... Tous ces OS descendent du système Unix originel. Ce monde est fortement impliqué dans l'augmentation en nombre et en qualité des logiciels OpenSource.
Darwin est la partie de Mac OS X la plus *nix (ainsi que la plus bas niveau) et la proche de l'OpenSource (toutefois la licence Apple n'est pas une licence GNU).

Expédition Darwin
Apple propose aux développeurs et aux administrateurs un accés aux sources ainsi que des distributions sous forme d'image disque pour chacune des versions majeures de Darwin OS. Leur objectif de créer une communauté technique. Cet OS ne s'adresse pas à l'utilisateur courant.
Cet article a pour objectif de vous familiariser avec ce système d'exploitation encore très récent, voir confidentiel, ainsi que de vous motiver à participer à son développement. N'oublions pas que Mac OS est réputé pour être l'un des OS les plus fermés.
Quelques remarques pour vous motivez :
- Darwin est  un système d'exploitation avancé, fiable et performant.
- Les administrateurs Mac OS X Server venant du monde *nix doivent déjà le savoir : les réglages même non avancés ne sont accessibles qu'à la ligne de commande.
- La compréhension et la recherche de la maîtrise de Darwin OS est nécessaire à celle de Mac OS X.
- Vous pouvez recycler d'anciens Mac G3 en serveurs à peu de frais.
- Gratuit (Merci winnie van tiberium d'avoir corriger cet oubli)
De nombreux points ne seront pas abordés, libre à chacun d'apporter sa contribution.
Les balises sur notre parcours
- Installation de Darwin.
- Configuration de base dont le réseau.
- Gestion du "dual boot" (Darwin/Mac OS X).
- Configuration et lancement de quelques services (SSH et Apache).
- "IP Masquerading" entre deux cartes Ethernet.
- Un peu de sécurité.
- "XWindow and SSH tunneling".
- Configurer Apache SSL avec self-signed key.
- Création d'une distribution à la Knoppix.


Recommandations

La machine de référence est un G3 BW 350 mHz avec 384 mo de RAM et un disque IDE de 120 go.
Une partition environ 60 go pour Mac OS X Client et une autre partition pour Darwin.
Ce qui va permettre des comparaisons.
Pour les autres aventuriers, si votre Mac démarre sous Mac OS X Client alors il est qualifié pour Darwin.
Il faut un disque ou une partition de 1.5 go minimum pour Darwin.
cf Pour changer les partitions à la ligne de commande (http://www.macbidouille.com/articles/91)
cf fichier texte "Darwin 7.0.1 Release Notes".

Darwin fonctionne sur certaines configurations PC. Des volontaires ?
Un minimum de connaissance des ligne de commandes *nix est requis.
Astuce : Voulez-vous voir le démarrage à la ligne de commande de Mac OS X ?
Si oui, appuyer sur les touches pomme et v au démarrage.
Effet garanti sur un Linuxien PC.

AVERTISSEMENT :
Tout les commandes de ce tutoriel ont été vérifiées sur la machine de référence. Celle-ci est opérationnelle.
Elles fonctionnent également sous Mac OS X Client.
Elles n'ont pas été vérifiées sous Mac OS X Server. Qui a une licence de libre ?
Pour la sécurité de vos données du fait d'une erreur humaine lors du formatage ou de la saisie de ligne de commande, pensez à :
- utiliser une machine dédiée si possible
- sinon sauvegarder toutes vos données sur disque externe par exemple et l'éteindre
- donner des noms explicites et simples (regexp : [a-z][0-9]_) aux disques ou aux partitions
- dormir en cas de manque de sommeil
SI VOUS AVEZ UN PROBLEME SOUS DARWIN ET QUE VOUS VOULEZ REVENIR SOUS X OU 9 :
Utiliser un CD de démarrage Apple pour sélectionner le disque de démarrage avec une interface graphique.
OK, le CD de Darwin est dans votre lecteur.
Voir http://davespicks.com/writing/programming/mackeys.html
Par exemple, appuyer sur le bouton de la souris au demarrage pour ejecter le CD (ne marche pas avec le G3 BW).
Zapper le PRAM, sortir le CD avec le bouton d'ejection du lecteur, rédémarrer en appuyant sur d pour un disque, c pour un CD Apple. Si la partition Darwin est la première, vous démarrez sous Darwin sinon sur un système autre...
Pour choisir le disque de démarrage sur une machine née après 1999, appuyer sur la touche option pendant que le démarrage.
(Merci à Anthony)

Départ
Quelques URLs servant de références :
Darwin - Open Source chez Apple : http://developer.apple.com/darwin/
Apple - Darwin Releases :  http://www.opensource.apple.com/darwinsource/
OpenDarwin :  http://www.opendarwin.org/
The GNU Darwin distribution :  http://gnu-darwin.sourceforge.net/
The Unofficial Darwin FAQ :  http://www.opendarwin.org/en/faq.php
Maintenant, en avant !
- Récupérer l'archive Darwin 7.0 (le coeur de Mac OS X 10.3) pour graver un cd de démarrage
Avec Safari, copier-coller cette URL et téléchager :
http://www.opensource.apple.com/darwinsource/images/darwin-701.iso.gz
- Récupérer les instructions d'installation
Avec Safari, copier-coller cette URL et télécharger :
http://www.opensource.apple.com/darwinsource/images/release-notes-7.0.1.txt
Ou sinon à la ligne de commande :
curl "http://www.opensource.apple.com/darwinsource/images/release-notes-7.0.1.txt" -o release-notes-7.0.1.txt
Ligne de commande à saisir dans l'application Terminal aprés placement du répertoire courant dans un dossier dédié.
- Verification que l'archive est bien celle mise à disposition par Apple (optionelle mais recommandée)
A la ligne de commande (allez, courage, c'est juste pour faire peur) :
test "`md5 darwin-701.iso.gz | cut -d ' ' -f4`" = "57e9cb37e9595436596b2fa5975d5569" && echo "ok"
Si le texte "ok" apparait sur la ligne suivante, votre archive est vérifiée.
Remarquez bien le caractère ` (au-dessous du symbole livre sterling sur votre clavier, à coté de la touche "Retour chariot"), ce qui entre ce caractère sera executer avant le reste et le résultat le remplacera.
- Décompression
Par un double-clic pour StuffIt Expander.
Ou à la ligne de commande :
gunzip darwin-701.iso.gz
Ce qui prend du temps dans les deux cas .
- Graver le fichier .iso
Le plus simple est d'utiliser l'application "Disk Utility" dans le dossier "Utilities" du dossier "Applications" à la racine de votre partition de démarrage sous Mac OS X.
Cliquer sur l'icone "Burn" ou "Graver" en français, puis dans la fenêtre modale qui apparait, choisir votre fichier "darwin-701.iso" une fois arrivé dans le bon dossier.
Vérifier bien que l'option "Verify burn", "Vérifier le gravage" est cochée.
Placer un disque vierge dans votre graveur et graver.
Vérifier bien que le gravage s'est déroulé correctement.
Ou à la ligne de commande :
hdiutil burn darwin-701.iso
Comme les deux manips ont été vérifiées, qui veut un CD de Darwin 7 pas cher ? ^_^

Démarrage
- Lisez le fichier release-notes-7.0.1.txt quand même.
- Lancer à la ligne de commande, avant démarrage, si vous n'êtes pas CERTAIN des structures de vos disques :
diskutil list

Apparaîtra la liste et la structure de chaque disque. Notez les /dev/*, les noms, les tailles et les IDENTIFIERS des partitions sur un papier.
Par exemple :
/dev/disk0
57.4 GB darwin disk0s10
57.4 GB Sharing disk0s12
- Insérer votre CD Darwin dans un lecteur de CD/DVD.
Le démarrage du CD d'installation/secours de Mac OS X doit être possible avec ce lecteur.
- Redémarrer ou allumer le Mac en maintenant la touche c appuyer.
- Attendre.
Si des lignes de texte blanches sur fond noir apparaissent, le démarrage se déroule correctement.
- Saisir les réponses à fournir aux questions qui apparaissent au fur et à mesure.
1) Wich device would you like to install Darwin onto ?
(Traduction : Sur quel périphérique souhaitez-vous installer Darwin ?)
Le système propose une liste de périphériques. Entrer le numéro selon vos souhaits, par exemple 1.
Si vous avez un doute, j'insiste, n'hésitez pas à redémarrer même salement.
2) Wich partition would you like to install into ?
(T. : Sur quel partition souhaitez-vous installer [Darwin] ?)
Repérer le partition dédiée par son identifier et entrer le numéro proposé à gauche.
Exemple : 0 pour /dev/disk0s10
3) Would you link a clean install ?
(T. : Souhaitez-vous une installation propre ?)
Entrer "yes" si vous êtes courageux
- Admirer cette installation à la mode ASCII.
Une fois l'installation accomplie, le dernier choix est :
Your choice :
(T. : Votre choix ?)
Ici 1 pour le redémarrage sous Darwin.
Aprés redémarrage, si vous revoyez des lignes de textes blanches sur fond noir, bravo vous démarrez sous Darwin !
- Quand le "prompt" du "login"apparait, taper "root" en login et rien en "password".
L'utilisateur root est le super-utilisateur mais NE CHANGER PAS ENCORE SON MOT DE PASSE.
Vous entrez tout avide de lignes de commandes dans votre système tout neuf.
Vous tapez quelques caractères et là, c'est le drame. Le "mapping" clavier est en qwerty !
A partir d'ici, il va falloir s'accrocher pour réussir avec un clavier azerty mais qwerty à l'écran.
La correspondance des touches les plus importantes :
azerty (clavier) -> qwerty (écran)
a -> q
z -> w
q -> a
w -> z
, -> m
; -> ,
: -> .
= -> /
m -> ;
ù -> '
L'objectif est de créé un fichier de configuration du shell pour lancer l'interface graphique X window gérant le clavier azerty.
- Taper :
pico .profile
- Puis saisir dans cet éditeur :
export PATH=${PATH}:/usr/X11R6/bin

- Appuyer sur les touches controle-o puis controle-x pour sauvegarder et quitter.
- Lancer :
startx -- -keymap Francais.keymapping

C'est à dire initialise un session X avec comme argument pour le serveur X d'utiliser le fichier carte clavier "Francais"
Les fichiers .keymapping sont stockés dans /System/Library/Keyboards.
Tirer d'une FAQ (http://fink.sourceforge.net/doc/x11/x11.en.html#trouble.keyboard.
Trois fenêtres à bord vert doivent apparaitre et la saisie doit être en azerty.
Remarque : la gestion du keymapping est en pleine évolution sur Mac OS X. Elle existe sur au moins trois formes (X11, Carbon et via XML).
Pour arrêter le serveur X, taper dans le fenêtre nommée login :
exit

Dual boot
Question : Comment revenir sous Mac OS X ? Et sans passer par le CD d'install de Mac OS X ?
Réponse :
bless -mount /Volumes/"Nom de la partition mac OS X/9" -setBoot; reboot
Pour vérifier la partition de démarrage dans l'OpenFirmware
bless -info -verbose -bootBlocks
Cette ligne de commande ne semble pas fonctionner :
bless -folder /Volumes/"Nom de la partition mac OS X"/System/Library/CoreServices; reboot
Vous pouvez prendre l'habitude d'utiliser à la place de reboot :
shutdown -r now
Vous pouvez compléter facilement les chemins d'accès en appuyant sur la touche tabulation.
Ou éteindre ?
Réponse : shutdown -h now

Configuration minimale
- Donc si vous démarrez sous Mac OS X, passez par le System Preferences (Preferences Système), Startup Disk (Disque de démarrage) et sélectionner la partition Mac OS X on Darwin (si Darwin est le nom de la partition où Darwin est installé), puis redémarrer.
- Se connecter en tant que root.
- Lancer le serveur X Window.
Création d'un utilisateur
Tirer de :
http://www.opendarwin.org/en/faq.php#newusr
http://developer.apple.com/documentation/P..._section_9.html
http://web.brandeis.edu/pages/view/Bio/Man...acOSX#Example_1
Consulter la documentation niutil en lancant :
man niutil
Dans une fenetre xterm, lancer :
niutil -create / /users/darwinuser
Si darwinuser est le login choisi pour votre utilisateur, vous créez ainsi un nouvel utilisateur dans la base de données NetInfo.
Sous Mac OS X, vous pouvez consulter cette base via l'application NetInfo Manager.
niutil -createprop / /users/darwinuser shell /bin/bash
Vous lui attribuez un shell (sh, csh, zsh, tcsh ou bash au choix, bash recommandé)

niutil -createprop / /users/darwinuser realname "darwinuser sur Darwin"

Vous définissez la propriété nom réèl.

niutil -createprop / /users/darwinuser uid 1000

Sous Darwin et Mac OS X, les identifiants d'utilisateur doivent être supérieur à 500.
niutil -createprop / /users/darwinuser gid 1000
Sous Darwin et Mac OS X, les identifiants de groupe doivent être supérieur à 500.
Remonter dans l'historique avec la touche flêche vers le haut.
Merci à cha et à tous les contributeurs pour la liste des raccourcis Mac OS X/Darwin :
http://forum.macbidouille.com/index.php?showtopic=76705

niutil -createprop / /users/darwinuser home /Users/darwinuser

C'est déjà plus familier.

niutil -createprop / /users/darwinuser _shadow_passwd

Le champ pour le mot de passe. Le mot de passe n'est pas encore défini ici.

passwd darwinuser

Pour régler ce problème de qwerty/azerty, choissisez un mot de passe avec quelques chiffres, exemple "12345".
Cette gestion d'utilisateur proposé par la FAQ Darwin est différente de celle sous Mac OS X où un champ passwd est lui défini.
D'ailleurs, aprés un redémarrage, le mot de passe pour darwinuser n'est plus disponible donc pas de connexion !
Donc en copiant la structure Mac OSX :
niutil -createprop / /users/darwinuser passwd

passwd -i netinfo darwinuser

Même mot de passe avec des chiffres.
Vérifions :
niutil -read / /users/darwinuser
Oui, le champ password a une valeur crédible !
1) La documentation contient des erreurs
2) Darwin hérite de NextStep clairement par NetInfo
3) Laissez tomber les réflexes Linux ou *BSD.

niutil -appendprop / /groups/admin users darwinuser

Ajouter cet utilisateur dans le groupe des administrateurs.
Très important sinon pas de sudo !
niutil -create / /groups/darwinuser
niutil -destroyprop / /groups/darwinuser gid
niutil -createprop / /groups/darwinuser gid 1000

Ajouter le groupe darwinuser avec le gid défini pour cet utilisateur
Maintenant vouz avez votre compte mais pas encore de "home directory" alors taper :
cd /Users
Naviguer jusqu'au répertoire des répertoires utilisateur

Créer le répertoire :
mkdir darwinuser

Attribuez ce répertoire à l'utilisateur darwinuser (uid:gid) :
chown 1000:1000 darwinuser
Les vieux routiers d'Unix auront vérifié qu'il n'y a pas de commande adduser donc il faut répéter ces commandes pour chaque utilisateur ou créer un script.
De toutes façons, la gestion "traditionnelle" des utilisateurs sous Unix n'est plus possible.
Utilisez ce nouveau compte :
su - darwinuser
pwd
Le texte /Users/darwinuser doit s'afficher.
Afficher l'utilisateur courant :
whoami
darwinuser doit s'afficher. Attention aux commande whoami et who am i.
Créer un fichier texte vide :
touch toto.txt
Afficher les fichiers du répertoire courant :
ls -lsa

Le fichier toto.txt doit bien appartenir à l'utilisateur darwinuser.
Simplifier sa vie d'utilisateur Darwin :
sudo cp /var/root/.profile /Users/darwinuser
sudo chown 1000:1000 /Users/darwinuser/.profile

Editer le fichier de configuration du Shell bash :
pico .profile
Dans l'éditeur pico, taper en-dessous de la ligne contenant "export ..." :
alias stxfr='startx -- -keymap Francais.keymapping'
alias macx='sudo bless -mount /Volumes/"Nom de la partition mac OS X/9" -setBoot; sudo shutdown -r now'

Appuyer sur ctrl et o, entrée, ctrl et x pour sauvegarde et quitter.
Vous pouvez, bien sur, utiliser vi ou emacs.
Ainsi, si vous vous connectez en tant que darwinuser, il suffit de lancer stxfr pour utiliser un shell azerty.
Il s'agit de vérifier que vous puissiez vous connectez en tant que darwinuser et lancer des sudo.
NE SAUTEZ PAS CETTE ETAPE DE CONTROLE !
Redémarrer la machine :
sudo shutdown -r now

Connection en tant que  darwinuser :
stxfr

Si vous arrivez au xterm sans encombre alors tout va bien.
Retour éventuel sous X :
macx
Remarque : Le fichier /etc/passwd existe mais selon les commentaires en entête il n'est utilisé qu'en single-user mode.

Configurer le réseau
Après l'installation d'une carte réseau Ethernet, deux interfaces sont disponibles.
La carte Conectland de l'assembleur du coin a été reconnue sous Mac OS X.
Pour l'instant, l'objectif ici est de configurer l'interface de la carte réseau intégrée en DHCP (Dynamic Host Configuration Protocol) ou en Static IP.
Le lien vers la seule documentation trouvée :
http://www.opendarwin.org/documentation/network_config.php
Le fichier /etc/iftab n'existe pas par défaut sous Darwin, ni d'ailleurs sous Mac OS X.
Donc il s'agit de créer un fichier /etc/iftab (/etc/IFtab à ne pas confondre avec /etc/FStab ) :
sudo pico /etc/iftab

Puis de saisir ces deux lignes dans l'éditeur pour DHCP (recommandé) :
lo0 inet 127.0.0.1 netmask 255.0.0.0 up
en0 inet -DHCP-

Ou en Static IP :
lo0 inet 127.0.0.1 netmask 255.0.0.0 up
en0 inet 192.168.1.101 netmask 255.255.255.0 up
lo1 correspond au "loopback", c'est-à-dire que le système puisse au moins se connecter à lui-même
en0 correspond à l'interface pour la carte réseau intégrée.
DHCP va permettre de se faire attribuer une adresse IP fixe via la Freebox par exemple.
Static IP va permettre de fixer une adresse IP sur le modèle 192.168.1/24 pour le réseau local.
ctr-o puis ctr-x pour sauvegarder.
Et là nous entrons dans une partie récente de Darwin.
La connexion entre les deux Macintosh  est rendue possible grâce à RendezVous.
Les deux machines même si leur deux adresses IP seraient auto-attribuées peuvent se trouver grâce à leur adresse .local.
Très pratique pour une connection SSH (Secure Shell).
cf http://developer.apple.com/macosx/rendezvous/
Pour cela il faut modifier un fichier XML (eXtensible Markup Language) suivant le DTD (Document Type Definition) des fichiers de préférences Apple (http://www.apple.com/DTDs/PropertyList-1.0.dtd).
Copier le fichier de préférences du système par sécurité :

sudo cp /Library/Preferences/SystemConfiguration/preferences.plist /Library/Preferences/SystemConfiguration/preferences.plist.old
(En une seule ligne !)


Puis éditer ce fichier :
sudo pico /Library/Preferences/SystemConfiguration/preferences.plist

A la fin du fichier, une clé (<key></key>) est associé à un dictionnaire vide (<dict></dict>).
Hors celui-ci sous Mac OS X contient bien les propriétés recherchées.
Donc il faut le modifier ainsi :

<key>System</key>
<dict>
 <key>Network</key>
 <dict>
 <key>HostNames</key>
 <dict>
 <key>LocalHostName</key>
 <string>MacDarwin</string>
 </dict>
 </dict>
 <key>System</key>
 <dict>
 <key>ComputerName</key>
 <string>MacDarwin</string>
 <key>ComputerNameEncoding</key>
 <integer>0</integer>
 </dict>
</dict>

 La chaine de caratères "MacDarwin" est remplaçable par un autre nom suivant de préférence cette regexp [a-z][A-Z]
-  Redémarrer la machine.
La solution la plus simple pour que le système prenne en compte cette nouvelle configuration.
- Depuis un autre Mac relié par câble croisé par exemple pour pouvez atteindre celui sous Darwin :
ping MacDarwin.local
Si les paquets passent, alors vous avez réussi cette étape.

Service sshd
Autre innovation de la version 7 de Darwin, xinetd. Ce démon remplace le bon vieux inetd.
cf. http://www.xinetd.org/faq.html
C'est lui qui prend en charge les demandes pour  les services dont les démons sont non résidents.
Ces fichiers de configuration se situent dans /etc :
- Le fichier /etc/xinetd.conf
- Le fichier du répertoire /etc/xinetd.d
Et ce répertoire contient un fichier ssh.
- Copier ce fichier pour sauvegarde :
sudo cp ssh ssh.old

- Editer le :
sudo pico ssh
Le fichier défini un tableau à clé selon une syntaxe antérieur (préhistorique :) au XML
-  A l'entrée disable, remplacer yes par no
- Sauvegarder et quitter
- Redémarrer
- Tenter une connexion depuis une autre machine.
La machine de référence était accesible via un câble Ethernet croisé sur le Ethernet d'origine.
Si vous avez une alerte à la connexion SSH, suivez les intructions pour corriger votre fichier known_hosts.
Vous pouvez retirer l'écran, le clavier et la souris si l'envie vous prend de faire de la place !
Informations complémentaires et discussions sur les forums.
Merci à ceux qui participent à ce sujet dans les forums.
Merci à l'équipe de MacBidouille.

Partager sur

Sondage

Comptez-vous acheter un Vision Pro ?