L'organisation d'OS X
Par Contributeur - Publié le
Les news
Introduction
01/06/03On vous l'a assez répété, Mac OS X est un système qui ne tolère pas n'importe quelle organisation ou plutôt le manque d'organisation. En effet il vous impose certaines règles pour le rangement des fichiers, ce qui n'est pourtant pas forcément un inconvénient. Néanmoins pour mieux juger de la chose, il convient de connaitre tous les tenants et les aboutissants. C'est le but de la série de news dont la présente est la première.
Commençons donc par les fichiers
visibles, qui constituent la
partie Mac OSdu système (les fichiers
invisiblesformant la
partie Unix).
A la racine du disque, nous trouvons donc par défaut les dossiers Applications, Bibliothèque, Système, Utilisateurs et Developer si vous avez installé les DeveloperTools.
Il est assez évident que le dossier Applications est destiné à recevoir les applications utilisables par tous les utilisateurs de la machine.
Le dossier Système contient quant à lui tous les éléments nécessaires à OS X et seulement ceux-là. En effet, il ne faut sous aucun prétexte modifier le contenu de ce dossier. Nous le détaillerons plus tard mais seulement à titre purement indicatif.
Si néanmoins vous avez des modifications à apporter au système, le dossier Bibliothèque est là pour recevoir ces fichiers.
La fonction du dossier Utilisateurs n'est pas difficile à deviner: il contient les dossiers des utilisateurs ayant un compte sur la machine. En plus de cela un dossier Partagé permet des échanges de fichiers grâce à son accessibilité en lecture/écriture sans restrictions.
Enfin le dossier Developer contient les applications orientées programmation, la documentation, les exemples et quelques outils ligne de commande.
Voilà pour la racine. Il est fortement conseillé de ne pas ajouter de répertoires à cet endroit du disque qu'il est préférable de réserver au système. Si vous pouvez y interdire l'écriture, c'est encore mieux.
D'ailleurs certains programmes comme sendmail refuseront de se lancer dans le cas contraire.
Après cette présentation un peu candide de l'organisation d'OS X, nous allons donc pouvoir entrer dans les détails... dès demain...
Les dossiers utilisateur
02/06/03Continuons donc notre exploration d' OS X avec le répertoire le plus utilisé de ceux que nous avons déjà cité: /Users.
Ce répertoire en contient donc d'autres de deux types: le répertoire Shared et les autres.
Le répertoire Shared est accessible en lecture/ecriture par tous les utilisateurs, ce qui permet de partager des documents et éventuellement des bases de données. Vous pouvez l'organiser comme bon vous semble.
Les autres répertoires sont les dossiers
Homedes utilisateurs ayant un compte sur la machine. Chaque dossier utilisateur possède un ensemble de répertoires par défaut: Bibliothèque, Bureau (dont la fonction est évidente), Documents, Images, Musique, Public, Séquences, Sites.
Les répertoires Documents, Images, Musique et Séquences sont prévus pour recevoir le contenu multimédia de type éponyme. Vous pouvez respecter cette organisation ou pas, sachez tout de même que la plupart des programmes (et a fortiori ceux d'Apple) la considère comme utilisée: voyez iTunes, iPhoto...
Les dossiers Public et Sites sont utilisés respectivement pour le partage de fichier (à la fois avec les utilisateurs du système local et par AFP) et pour la publication de pages Web grâce à Apache.
Enfin nous terminons avec le répertoire Bibliothèque dont la structure est calquée sur le répertoire /Bibliothèque et qui remplit la même fonction que ce dernier (que nous étudierons plus en détail demain) à ceci près que les éléments s'y trouvant ne s'appliquent qu'à l'utilisateur et non pas à tous les utilisateurs de la machine.
Vous pouvez bien évidemment ajouter d'autres répertoires à /Users (à condition toutefois d'avoir les privilèges root) mais nous vous le déconseillons totalement, sauf si vous savez ce que vous faites: pour grouper certains utilisateurs ou dans d'autres cas particuliers par exemple...
Par ailleurs vous pouvez tout à fait décider de placer le répertoire
Homed'un utilisateur ailleurs que dans /Users : il suffit de le spécifier dans NetInfo.
Le répertoire /Library
04/06/03Ce dossier contient tous les éléments du système qui ne sont pas absolument nécessaires et que vous pouvez modifier.
Les plus utiles sont:
Contextual Menu Items: éléments de menus contextuels.
Desktop Pictures : images proposées dans l'onglet des Préférences Système.
Documentation : vous y trouverez les manuels de certains logiciels.
Filesystems : tous les filesystem ajoutés.
Fonts : devinez...
Frameworks : Librairies supplémentaires pour le développement.
Preference Panes Les panneaux de préférences supplémentaires.
Preferences : Les préférences à l'échelle de la machine.
User Pictures : Images de connexion.
Vous trouverez encore de nombreux autres dossiers: QuickTime (ajout de composants QT), ScreenSaver ou les fameux Services, ou bien encore des dossiers spécifiques de certaines applications.
Néanmoins il reste deux répertoires importants: StartupItems et WebServer.
Le premier contient tous les éléments à lancer au démarrage du système. Ce sont souvent des démons utilisés par d'autres applications
Le second contient votre serveur Web si vous avez activé Apache. A ce sujet je vous conseille, outre la documentation d'origine, d'aller faire une recherche chez xrings.net et projectomega.org.
S'inspirant de la philosophie NetInfo, le système partage au niveau de la machine le contenu du dossier et va ensuite compléter pour chaque utilisateur. Vous pouvez même partager des éléments au niveau d'un réseau par l'intermédiaire du dossier /Network/Library.
Si c'est pas beau le progrès...
Le répertoire /Système
05/06/03Nous terminons la visite de la partie
Mac OSde OS X avec le répertoire /Système.
Faire un inventaire complet de ce dossier (ou plus exactement de son sous-dossier Bibliothèque) serait très long et pas forcément intéressant donc je ne vous parlerai que des répertoires dont vous pouvez avoir besoin.
Tous ces répertoires contiennent donc des éléments standards du système que vous ne devez modifier sous aucun prétexte à moins de savoir parfaitement ce que vous faites.
Néanmoins vous pouvez avoir besoin d'accéder en lecture à certains éléments, surtout si vous êtes programeur.
Les dossiers Filesystems et Extensions, par exemple, présentent un intérêt pour ceux qui s'intéressent à la programmation de KEXT et en particulier de filesystem et surtout de VFS Stack. A ce sujet je vous conseille également le très bon guide Kernel Programming d'Apple ainsi que d'apprendre l'assembleur PPC...
Vous trouverez dans le dossier CoreServices toutes les applications système: Finder, SystemUIServer, Kerberos, Dock...
Là aussi ce n'est intéressant que pour les bidouilleurs qui veulent étudier le fonctionnement de ces programmes. Mais prudence quand même...
Comme dans le répertoire /Bibliothèque, vous trouverez dans StartupItems les éléments lançés au démarrage, ce qui nous permet d'étudier le processus de démarrage d'OS X (je vous en parlerai plus en détail un de ces jours)
Enfin bien connu des développeurs, le répertoire Frameworks contient toutes les bibliothèques standard: pensez donc à le fouiller bien en détail avant de vous lancer dans la programmation de classes ultra-compliquées...
Nous avons donc fini d'explorer l'architecture
visiblede OS X et dès que nos hamsters auront repris du poil de la bête je vous parlerai de la partie cachée du système...
Les dossiers cachés de OS X
06/06/03Un simple ls / nous révèle de nombreux dossiers qui n'apparaissent pas dans le Finder.
En effet OS X utilise comme tous les système de type Unix une architecture standard dont je vais vous expliquer les principes...
Il existe en plusieurs sortes de dossiers: les dossiers destinés à contenir les executables, ceux contenant des fichiers de configuration et les répertoires contenant des bibliothèques ou des
headers.
Les seconds résident sous OS X quasi-exclusivement dans les répertoires /etc (qui est en fait un lien symbolique vers /private/etc) et /var (en réalité /private/var, théoriquement censé contenir les fichiers fréquemment modifiés). Je vous laisse donc le soin d'explorer vous même ces répertoires.
En ce qui concerne les premiers il faut distinguer les répertoires de type bin et les sbin. Les premiers renferment les commandes utilisateurs et les seconds les commandes d'administration du système.
Ainsi vous trouverez dans /bin les commandes par défaut (à laisser intact): cp, ls, ls cat, echo, rm, sh...
De même dans /sbin se trouvent les commandes d'administration de base, par exemple le célèbre fsck.
La plupart des commandes de ces deux types se trouvent dans /usr/bin (et /usr/sbin). Là encore il est conseillé d'éviter de toucher à ce dossier: installez plutot vos programmes dans /usr/local/bin de manière à pouvoir faire facilement la distinction entre les logiciels par défaut et les votres.
C'est d'ailleurs le seul but de cette méthode: grouper les commandes permet plus de flexibilité que si elles étaient toutes dans le même dossier.
Pourtant à l'utilisation on ne ressent pas la différence puisque le shell recherche lui-même la commande dans tous les répertoires définis dans la variable d'environnement PATH.
Dossiers cachés, suite
07/06/03Il me reste donc à vous parler des librairies: les fichiers présents dans les répertoires /usr/lib ou /usr/local/lib sont des executables pouvant être inclus dans d'autres programmes afin de simplifier la mise en oeuvre de fonctionnalités nouvelles.
Le répertoire /usr/libexec a sensiblement la même fonction, à ceci près que ce sont plutot des démons utilisés par des programmes précis.
Enfin vous trouverez dans les répertoires /usr/include et /usr/local/include tous les
headerscontenant les définitions de diverses fonctions indispensable aux programmeurs.
Les autres types de répertoires que vous êtes susceptibles de rencontrer sont ceux destinés à recevoir les pages de manuel des commandes: /usr/share/man par exemple qui se ramifie en plusieurs mann où n représente le numéro de la section du manuel. D'autres ressources documentaires peuvent être installées dans les répertoires de type info ou doc.
Enfin sachez que sous Unix vos périphériques sont représentés par des fichiers: ce sont les éléments du dossier /dev. Ce dossier contient également des descripteurs de fichiers intéressants en la personne de /dev/console et /dev/null qui permettent de rediriger un flot vers la console ou... rien du tout !
Conclusion
On peut finalement remarquer que l'organisation des dossiers sous OS X reflète à la fois la philosophie NetInfo et le concept de
hub numériquepour les dossiers Utilisateurs.
Nous avons donc fait le tour des principes de l'organisation du système. Je vous laisse en découvrir plus par vous même !