NetInfo | ||
Voici une petite explication de NetInfo sur un système NeXTSTEP. | ||
Pourquoi NetInfo | ||
Un système unix est un système multiutilisateur et est orienté réseau. Pour gérer un tel système, unix doit utiliser de nombreuses informations, comme les noms des utilisateurs, les mots de passe, les noms des autres machines, leurs adresses... Toutes ces informations sont stockées dans différents fichiers comme /etc/passwd, /etc/hosts... Chaque fichier a une structure différente des autres et il n'y a pas vraiment de logique dans tout cela. C'est juste qu'historiquement il y a eu de plus en plus de programmes et que chacun d'eux a utilisé ses propres fichiers de configuration. Quand des machines sont connectées entre-elles sur un réseau, cela devient vite très dur de faire une gestion propre de toutes les informations à dupliquer sur chaque machine. Sun a alors développé NIS ("Network Information System", dont l'ancien nom est "Yellow Pages"), une base de données orientée réseau pour gérer une partie de ce problème. La gestion de NIS n'est pas des plus simple et cette base de données n'est pas extensible facilement et n'est pas trés performante. La société australienne Xedoc a alors créé NetInfo. NeXT a licencié NetInfo à Xedoc pour l'intégrer à NeXTSTEP. La documentation originale de NetInfo de Xedoc peut être trouvée ici (format pdf). | ||
Qu'est-ce que NetInfo | ||
NetInfo est une base de données regroupant toutes les informations administratives de toutes les machines d'un réseau. Cette base de donnée remplace ainsi tous les fichiers unix disparates d'une machine, mais cette base remplace aussi tous les fichiers de toutes les machines d'un réseau. NetInfo remplace ainsi NIS. NetInfo est utile pour une machine seule (il remplace tous les fichiers "standard" unix), mais il tire sa puissance dès qu'il est utilisé sur un réseau. La gestion de NetInfo peut être faite par des commandes unix sur la ligne de commande (du type niutil), ou par un programme graphique appelé NetInfo Manager. Tous les programmes du système utilisent les API traditionnelles unix pour récupérer les informations administratives qui se trouvent dans la base de données NetInfo. Ceci est fait de façon transparente. Des API plus génériques sont aussi disponibles pour gérer tous les fonctionnalités de NetInfo. Dans l'exemple ci-dessous de NetInfoManager, est affiché la base locale d'une machine (le nom de la machine n'est pas affiché dans le titre de la fenêtre car son adresse IP est attribuée dynamiquement par DHCP). Le contenu de la base NetInfo est organisée de façon hiérarchique. On peut ajouter des entrés à tous les niveaux. Certains noms sont réservés. Ainsi le chemin "/machines" contient les machines du réseau, et "/machines/tasha" contient les informations de la machine "tasha". Lorsque l'on regarde les informations d'une machine donnée ont obtient par exemple : Pour une utilisation simple d'une machine, il n'est pas nécessaire de modifier directement la base de données NetInfo, ceci se fait par des programmes spécifiques comme User Manager, Print Manager, Host Manager... | ||
Base de données NetInfo | ||
La base de données NetInfo peut être locale, mais elle peut être sur une machine distante. En fait NetInfo est une base de données hiérarchisée en domaines. Ainsi dans une entreprise ayant un serveur NetInfo global centralisé, chaque division de l'entreprise est représenté par une branche. Chaque service a sa sous-branche... et chaque ordinateur est une feuille. Il peut y avoir un seul serveur NetInfo sur un réseau ou plusieurs. Par exemple on peut avoir un serveur global contenant tous les informations de l'entreprise, puis un serveur par division contenant des informations plus précises, puis un serveur par service dans lequel chaque machine et chaque utilisateur est connu. Quand un programme demande une information au système, celui-ci regarde d'abord dans sa base de données NetInfo locale. S'il ne trouve pas les informations, il demande alors au serveur NetInfo de premier niveau, s'il ne trouve pas cette information, il demande au deuxième niveau... Tout cela est bien sûr fait de façon transparente. Toutes les informations du système se trouvent dans la base NetInfo, par exemple le type de clavier de la machine se trouve dans "/localconfig/keyboard" : Autre exemple : l'imprimante appelée "Laser" a différentes propriétés dont celle-ci : Il est possible de rechercher une valeur dans la base NetInfo, comme par exemple : | ||
Avantages de NetInfo | ||
NetInfo dispose de nombreux avantages. En voici certains :
NetInfo existe sur NeXTSTEP et tous ses successeurs, mais il existe aussi sur d'autres systèmes. Xedoc a réalisé des portages sur Irix, Solaris, HP/UX, AIX... De plus, Apple a mis en OpenSource le code de base de NetInfo dans le projet Darwin. | ||