Le système NetBSD
L'objectif principal du projet NetBSD est de souligner la bonne conception et l'écriture d'un beau code de NetBSD. Un exemple est l'implémentation de l'infrastructure de bus indépendante de la machine, permettant à un simple pilote d'un périphérique (tel qu'une interface ethernet ou SCSI) d'être partagé à travers différents bus (TCP, EISA, Turbochannel), et sur différentes plateformes (alpha, pmax, i386, etc), plutôt que l'approche traditionnelle de l'écriture et le maintien de versions différentes du pilote, chacunes avec leurs propres paramètres. Dans NetBSD, les `paramètres' sont dans des fonctions primitives qui permettent d'améliorer la base du pilote, ceci afin de bénéficier du pilote sur tous les ports.
Ce signifie également que, dans certains cas, un nouveau port est aussi simple que l'implémentation du code spécifique d'une machine ou que d'accéder à l'infrastructure machine de bus indépendant ou bien de se servir des pilotes qui ont déjà été écrit.
Certains systèmes semblent avoir comme philosophie "Si cela fonctionne, c'est que c'est bon". Notre philosophie se rapprocherai plus de "Cela ne fonctionne pas à moins que ce soit bon".
Que définissons au juste comme système "complet" ? NetBSD fournit un système standard relativement léger, avec toutes les fonctionnalités de base attendues d'un système BSD: les protocoles réseaux, la faculté de recompiler soi-même, et ainsi de suite. L'installation d'autres programmes est possible à travers un système de paquet, qui permet aux applications tierces-parties d'être facilement installables, soit à partir du code source, soit en utilisant des exécutables pré-construits.
NetBSD fonctionne sur un large gamme d'équipement avec des combinaisons de matériel possibles et indénombrables, ce qui rend le modèle de conception de machine indépendante essentiel. Le résultat immédiat est un système qui est utile en production dans le monde entier sur des dizaines de plate-formes matérielles distinctes.
NetBSD fonctionne sur certaines machines les plus lentes comme vax et hp300 aux plus grands systèmes comme AlphaServer 8x00 et Opteron. Le maintien des performances acceptables sur les machines ayant un CPU et des ressources mémoires limitées est appréciable; le code inutile a dû être réduit à son minimum. Nous supportons également une large gamme de matériels de communication, des périphériques série et parallèle, aux interfaces ethernet, FDDI et (HIPPI) (800Mo/s).
Les micro-optimisations peuvent jouer une part dans n'importe quel système, mais la micro-optimisations au niveau de la conception même est d'un gain plus important. La réécriture d'une routine pour atteindre 80% peut sembler impressionnant, mais cette même routine peut utiliser uniquement 5% du temps CPU. Au vu de ceci on peut dans l'ensemble réaliser un gain allant de 10% jusqu'au double en repensant la manière dont une opération est effectuée. Dans NetBSD, il y a la place pour les deux modèles mais nous préférons avoir une bonne conception pour paramètrer une implémentation simple.
![[Logo NetBSD]](../images/NetBSD-headerlogo.png)