Revenir au contenu principal.

Caractéristiques de NetBSD

Les changements listés ci-dessous sont tous déjà disponibles dans la base du système, et sont compilés depuis un seul arborescence de source.

A propos de NetBSD

Réseau

Plateformes supportées et portabilité

Stockage

Autres caractéristiques


A propos de NetBSD

Conception soignée (top)

NetBSD se focalise sur une conception soignée et des solutions bien structurées. Pour cette raison, NetBSD peut supporter certaines anciennes innovations «passionnantes». Avec le temps, le code de base de NetBSD devient de plus en plus puissant et facile à gérer alors que d'autres systèmes, préférant les fonctions à la qualité, rencontrent des problèmes croissants dans l'organisation du code et la gestion des conflits.

NetBSD gère une énorme gamme de plate-formes matérielles à partir d'une unique arborescence. La publication des versions se fait simultanément pour toutes ces plate-formes. NetBSD continue à attirer des utilisateurs et des développeurs expérimentés malgré son manque de médiatisation et de support commercial (grâce à la qualité de son code).

Licence BSD (top)

Bien qu'ils utilisent des outils de compilation GNU et d'autres outils issues du projet GNU, le noyau complet et le coeur des utilitaires tierces sont sous licence BSD. Elle permet aux entreprises de développer des produits basés sur NetBSD sans pour autant les obliger à les rendre publics (comme avec la GPL). Bien que le Projet NetBSD encourage ces diffusions personnelles, nous respectons le droit qu'ont ces personnes de décider elles-même.

Sources entièrement disponibles (top)

NetBSD rend les sources entièrement disponibles, que ce soit le code source ou le dépôt CVS entier. Puisque tout se trouve dans la même arborescence, vous pouvez toujours accéder à toutes les versions de tous les fichiers. Nous ne sommes pas le premier BSD à diffuser ainsi le dépôt CVS mais nous sommes les seuls à méticuleusement vérifier chaque fichier pour retirer les révisions contenant du code USL périmé plutôt que de supprimer toute révision à partir d'une certaine date.

Sécurité (top)

NetBSD possède le plus petit nombre de bugs de sécurité selon les forums publics (comme bugtraq). Nous croyons en la sécurité sans la publicité. Nous procédons à des audits de code manuels et avons ajouté des des possibilités de vérification étendues à notre ensemble de programme outils de compilation. La récupération des données du noyau est orientée vers une approche basée sur sysctl, contrairement à l'accès kmem basé sur un Unix traditionnel, qui demande un accès complet au système entier, et est souvent exploité.

Maturité et stabilité (top)

Le code de base de BSD peut être retracé jusqu'au début des années 80 à l'Université Berkeley et a depuis été ouvert à l'examen public. NetBSD perpétue cette tradition en travaillant toujours plus dur à promouvoir la conception soignée et les fonctionnalités. NetBSD a été utilisé par la NASA dans son programme «Numerical Aerospace Simulation» pour une raison. La majorité de leur plate-formes est constituée de systèmes Alpha équipés de grosse mémoire vive et de place disque (téra-octets et plus). Elle a donc besoin d'un code de base soigné et stable pour pouvoir construire ses propres projets. NetBSD est aussi le premier système libre a avoir fait un état sur l'an 2000. Consultez nos témoignages des péripéties réussies!

Sans publicité (top)

La seule chose que vous ne verrez pas avec NetBSD est probablement l'exhibition publicitaire. Il vous faut aller chercher ailleurs.


Réseau

Filtrage de paquets et Traduction d'Adresse Réseau (NAT) (top)

NetBSD possède son propre moteur de filtrage dans le noyau, permettant de réguler le trafic effectué sur une interface, par un protocole, un port, ttl, vers un destinataire et encore d'autres critères. Inclure ce système dans le noyau permet de meilleures performances.

La traduction d'adresses réseau permet à un réseau local d'utiliser ses propres adresses IP internes et des adresses (voire une seule adresse) externes différentes. NAT est utilisable pour la sécurité ou pour des raisons pratiques et comprend un mandataire FTP (proxy) transparent. Encore, cette caractéristique est présente dans le noyau pour de meilleures performances.

IPv6 (top)

NetBSD a été le premier système d'exploitation libre à implémenter les standards de pointe conformes à IPv6 et continue à travailler avec le projet KAME afin de traquer les modifications de spécifications. NetBSD était également le premier système d'exploitation à livrer NFS via IPv6, au niveau client comme au niveau serveur.

Système de Fichiers Réseau (NFS) (top)

NetBSD possède son propre client et serveur NFS inclus dans le noyau pour inter-agir avec les autres systèmes à la fois en NFS2 et 3. Il est possible d'utiliser la mémoire virtuelle (swap) par NFS sans limite de taille de partition. Du côté client, la création de fichiers est une opération éclair (sur les systèmes faisant autrement, le verrouillage n'est pas fiable).

Réseau robuste et complet (top)

NetBSD gère les types de réseaux suivants :

  • ARCnet
  • ATM
  • Ethernet
  • FDDI
  • HIPPI
  • PPP - pppd(8)
  • SLIP - slip(8)
  • Token Ring

En ce qui concerne ARCnet, le sous-système ARP a été retravaillé afin d'éliminer toute dépendance envers l'Ethernet. Il est ainsi plus généralement applicable.

NetBSD gère aussi les protocoles suivants :

NetBSD est également accompagné de nombreux démons standards, gérant les TCP wrappers si nécessaire, comme bootparamd(8), bootpd(8), dhcpd(8), ftpd(8), identd(8), mopd(8), named(8), postfix(1), rarpd(8), rbootd(8), sshd(8), tftpd(8), et xntpd(8).

Réseaux sans-fils (top)

NetBSD support une longue liste de périphériques réseaux sans fil comme an(4), ath(4), atu(4), atw(4), awi(4), cnw(4), ral(4), ray(4), rtw(4), rum(4), wi(4), wpi(4), et zyd(4).


Plateformes supportées et portabilité

Support multi-plateforme (top)

NetBSD est conçu pour tirer partie du matériel tout récent comme les systèmes Alpha, PPC et PC, tout en gardant la gestion du matériel le plus ancien. Cela se fait à partir de la même arborescence et est rendu possible grâce à l'attention portée à une bonne conception et au code soigné. Cela permet aussi à NetBSD d'être le point de départ idéal pour le portage vers d'autres machines comme, par exemple, celles basées sur mips, ARM et Super-H gérées par Windows CE.

NetBSD sur des systèmes embarqués (top)

Le système d'exploitation NetBSD est un système hautement portable et est supportés par plusieurs des plateformes matériels. Il est également adapté pour des applications embarquées. Consultez la page NetBSD sur des systèmes embarqués.


Stockage

Matériels et logiciels RAID (top)

En plus de nombreux périphériques RAID SCSI autonomes, NetBSD gère divers contrôleurs RAID et un logiciel complet RAID 0, 1, 4, 5 et 6. (Plus de détails)

IDE PCI haute performance (top)

De nombreux contrôleurs IDE PCI gèrent des transferts DMA à haute vitesse. NetBSD est l'un des quelques systèmes à tirer partie de cette caractéristique. Grâce à sa conception soignée, les mêmes pilotes et caractéristiques sont disponibles sur alpha, i386, macppc et sparc64.

Sous-système SCSIPI - combinaison de SCSI et ATAPI (top)

NetBSD implémente un sous-système SCSIPI unifié évitant la duplication du code et ne proposant qu'une seule interface entre les applications et les périphériques SCSI et ATAPI. Par exemple, lorsqu'un lecteur de cédéroms ATAPI sort sur le marché, il est directement exploitable par des outils tels que sysutils/cdrtools sans nécessiter de modification.

Systèmes de fichier 64 bits (top)

NetBSD possède un système de fichiers 64 bits depuis sa version 1.0 en octobre 1994. Sous NetBSD, le système de fichiers rapide de Berkeley peut atteindre une taille de 4 To (4096 Go) sur des machines 32 ou 64 bits. Les fichiers et les quotas utilisateurs peuvent aussi atteindre les téra-octets. De nombreux autres systèmes limitent les tailles de fichiers à 4 Go sur des ordinateurs 32 bits.

Un ffs peut contenir jusqu'à 2^31 fragments de blocs. La taille maximum du système de fichiers dépend de la taille d'un fragment :

Fragment Système de fichier
512 octects 1 To
1ko 2 To
2ko 4 To

Gros disques IDE (top)

NetBSD gère entièrement les disques IDE de plus de 34 Go, y compris le démarrage sur des partitions situées au delà des 8 premiers Go (permis par le BIOS). D'autres systèmes peuvent souffrir de limites à 8 ou 33,4 Go. Depuis la version 1.6, NetBSD peut également utilisé un LBA de 48 bits (ATA-6 Expanded Addressing) afin d'accéder aux disques avec une taille supérieur à 137 Go.

Soft Updates sur FFS pour de hautes performances et fiabilité (top)

Soft Updates permet à l'écriture de méta-données d'être effectuées aux performances des disques asynchrones sans risque de corruption. Cela améliore significativement la performances de FFS. (Plus de détails)

De nombreux types de systèmes de fichiers (top)

NetBSD peut gérer et manipuler de nombreux systèmes de fichiers, afin d'être utilisé pour l'échange de données et la compatibilité binaire. Les systèmes peuvent éventuellement écrire en utilisant l'ordre d'octets inverse. Contrairement à d'autres systèmes, NetBSD impose l'ordre des méta-données en autorisant l'utilisation de fsync(2). Cela permet d'éviter des pertes de données importantes, même en cas de panne de courant et même avec ext2fs.

  • ffs (Berkeley Fast File System) - à la fois le récent FFS 64 bits, dont soft updates, et l'ancien FFS 32 bits utilisé par certains constructeurs (SunOS, Ultrix, ...).
  • lfs (Log-structured File System) - LFS est conçu pour que les créations de fichiers asynchrones se fassent en toute sécurité, que l'écriture de fichiers rapide se fasse sans recherche de tête et que la récupération de fichiers, suite à un plantage, soit presque instantanée. Cette structure «journalisée» est plus aboutie que celles que proposent XFS d'IRIX, Reiserfs, NTFS de Microsoft, JFS d'IBM et d'autres encore des mondes Netware et Unixware. (Plus de détails).
  • tmpfs (un système de fichier mémoire efficace)
  • iso9660 (Format standard des cédéroms avec les extensions Rockridge et Joliet).
  • msdosfs (Windows, MS-DOS, et Atari TOS) - avec les noms de fichier longs, FAT32 et VFAT.
  • ntfs (système de fichier natif pour Windows NT)
  • ext2fs (système de fichier étendu Linux).
  • ados (système de fichier AmigaDOS).
  • filecorefs (système de fichier RISC OS d'Acorn).

NetBSD reconnaît beaucoup de systèmes de fichiers virtuels :

  • kernfs - accès du noyau
  • nullfs - pour des montages auto-bouclés
  • portal - portail des démons
  • procfs - accès des applications
  • umapfs - uid et gid automatiquement ré-affectés
  • unionfs - arrange un répertoire de façon à ce que le contenu des deux répertoires restent visibles. Peut être utilisé pour monter un système de fichiers inscriptible sur un cédérom.

Support du système de fichier dans l'espace utilisateur (top)

Depuis la version 4.0, NetBSD fournit le framework puffs(3) pour la création de système de fichiers utilisateurs pour serveurs. Ceci ouvre une myriade de possibilités, dont le développement de nouveaux systèmes de fichiers dans l'espace utilisateur pour des tests pratiques, ou la représentation d'une fonctionnalité dans l'espace utilisateur comme fichier (par exemple, avec l'utilisation de SSH). NetBSD 5.0 possèdera également la bibliothèque refuse, qui fournit une interface FUSE-like. Avec refuse, plusieurs systèmes de fichier FUSE peuvent démarrer avec puffs(3).

Vous pouvez trouver plus d'informations sur puffs et refuse sur notre page “systèmes de fichier dans l'espace utilisateur

DVD ROM et RAM (top)

NetBSD gère les lecteurs de DVD de haute capacité dans les formats de lecture répandus à l'heure actuelle.

Chiffrage de disque (top)

NetBSD fournit un chiffrage de disque transparent à travers le pilote cgd(4). cgd(4) agit comme un disque logique qui est placé au dessus d'un autre périphérique de bloc, un peu comme une partition de disque physique ou un pseudo device vnd(4). cgd(4) supporte actuellement des algorithmes de chiffrement par bloc comme AES, 3DES,et Blowfish dans le mode CBC.

Une introduction intéressante vers cgd(4) est livrée dans Le Guide NetBSD.


Autres caractéristiques

Le système de paquetages (applications) (top)

Le système de paquet de NetBSD, pkgsrc, est une façon simple d'installer des logiciels tierces à partir des sources ou des binaires. Il inclus tous les paquets dits "essentials" comme meta-pkgs/kde3, meta-pkgs/gnome, www/firefox, www/apache2, lang/perl5, net/samba, misc/openoffice, graphics/gimp, et bien plus. Les caractéristiques majeures sont :

  • Installation facile à partir de paquetages binaires ou sources, localement ou par réseau, y compris le téléchargement automatique des paquetages nécessaires.
  • Gestion des dépendances définies ou à la volée lors de la compilation des sources ou de l'installation des binaires.
  • Intègration de l'installation d'outils automatisée qui ne peuvent être redistribués sous forme binaire ou source.
  • Possède une infrastructure conçue pour conserver les informations requises pour la compilation des paquetages à la fois plus court et plus facile à maintenir que dans les autres systèmes de paquetages.
  • Suis le concept de «source primaire» permettant l'incorporation de correctifs locaux ou tierces ainsi que le retour de modifications vers l'auteur du paquetage.
  • Intégration de la gestion de structures internes de nombreuses distributions de sources telles que Imakefiles, GNU autoconf, ..., réduisant le nombre de règles de compilation de paquetages spécifiques.

Pkgsrc est dérivé du système de «ports» de FreeBSD mais a été substanciellement amélioré.

Environnement de programmation de pilotes indépendants de l'ordinateur (top)

Une séparation propre entre les pilotes de chipsets et le code des bus et l'implémentation des programmes man.bus_space(9) et bus_dma(9) ont les avantages suivants :

  • Simplification de l'intégration de nouveaux matériels.
  • Réduction de la taille du noyau - les périphériques utilisant le même contrôleur partagent le même pilote et seules les partions dépendantes du bus (isa/eisa/pci/pcmcia/sbus/cardbus...) sont incluses.
  • Les pilotes de périphériques (dont les PCI 32 bits) sont prêts pour la mémoire physique 64 bits (contrairement à d'autres systèmes).
  • La gestion du «bounce buffer» n'est pas nécessaire sur les machines munies du matériel adéquat (sparc et presque tous les alpha). Dans les autres cas, il s'agit d'une fonction issue du code bus et non de chaque pilote.

Environnement de programmation audio indépendant de la machine (top)

De la même manière que pour le SCSI, NetBSD possède une couche audio générique liée à chaque pilote. C'est plus logique et le code se partage mieux que sur les autres systèmes d'exploitation libres.

Déboguage noyau (top)

  • Possède son propre débuggeur inclus dan le noyau (DDB), plus avancé que certains autres systèmes 'SysRQ'.
  • Gestion des «crash dump» du noyau pour en faciliter le débogage.
  • Vérification logique stricte. Si le noyau accède à un pointeur null, il tombe dans DDB ou se «crashdump» et redémarre afin d'éviter l'utilisation de données corrompues.

Emulation de Systèmes d'Exploitation (top)

La compatibilité binaire unique de NetBSD permet à l'utilisateur de faire tourner des applications binaires non-natives (mais pour le même processeur) de manière transparente. Ces systèmes comprennent :

  • BSD/OS (i386)
  • Darwin (macppc)
  • FreeBSD (i386)
  • HP-UX (m68k)
  • IRIX (sgimips)
  • Linux (i386, m68k, alpha, powerpc, mips, arm)
  • OSF1/Digitial UNIX/Tru64 (alpha)
  • SCO/iBCS2 (i386)
  • Solaris et SVR4 (sparc, sparc64, i386, m68k)
  • SunOS 4 (sparc, sparc64, m68k)
  • ULTRIX (mips, vax)

Le système de paquet comprend de nombreux émulateurs dont :

Voir aussi de nombreux types de systèmes de fichiers.

USB (Universal serial bus) (top)

NetBSD a été le premier système libre à gérer l'USB et l'a utilisé sur des PowerMacintosh avant même qu'Apple n'ait fait démarrer Mac OS X. La gestion de l'USB est présente sur toutes les plate-formes qui l'utilisent, dont alpha, i386, et macppc. Parmi les périphériques reconnus, nous trouvons : les souris, les claviers, les modems et le stockage de masse (Zip) dont les pilotes sont de plus en plus nombreux à mesure que l'USB devint plus populaire.

Autres périphériques (top)

  • Bonne conception et gestion robuste des périphériques PnP (Plug'n'play) ISA.
  • Périphériques à accès en série.

Le système de mémoire virtuelle UVM (top)

UVM est le nouveau système de mémoire virtuelle spécifiquement conçu pour permettre les E/S et IPC (communication inter-processus) avec de nombreux mécanismes de mouvements de données flexibles. UVM remplace complètement la mémoire virtuelle Mach basée sur celle de 4.4BSD, améliorant notablement les performances. (Plus de détails).

Cardbus (top)

Gestion des connecteurs PC-card «cardbus» présents sur les ordinateurs portables modernes supportant l'extraction à chaud, la gestion d'énergie ainsi que le détachement des périphériques.

Console wscons indépendante de la machine (top)

Le pilote wscons(4) gère les accès console indépendamment de la machine sur laquelle il tourne. Il est composé de nombreux modules coopératifs, en particulier :

  • gestion matérielle des adaptateurs écran, du clavier et de la souris. Voir wsdisplay(4), wskbd(4), et wsmouse(4).
  • modules d'émulation de terminaux tels que vt100 et sun.
  • # options de compatibilité pour gérer les contrôles et autres comportements de bas niveau des pilotes de terminaux existants.

Vrai 64 bits (top)

NetBSD a été le premier système libre à gérer les architectures 64 bits telles que alpha, et gère encore le plus grand nombre de modèles. L'arborescence des sources est réellement 64 bits depuis quelques temps, et le système de paquet contient des correctifs qui permettent aux autres applications d'être réellement 64 bits.

Stack et heap non-exécutable (top)

Depuis la version 2.0, NetBSD supporte le mapping non-exécutable sur plusieurs plateformes. Si le mapping non-exécutable est activé, les parties du stack et du heap sont rendu non-exécutable lorsqu'ils sont marqués comme écrivable. Ceci rend l'exploitation potentielle des dépassements de tampon plus compliqué. Nous avons une page séparée avec plus d'information détaillée à ce sujet.

Kernel authorization framework (kauth) (top)

Depuis NetBSD 4.0, le noyau NetBSD utilise un framework d'autorisation étendu, kauth(9). En contraste avec les versions antérieurs de NetBSD, où la politique de contrôle d'accès était la plupart du temps codé en dur dans le noyau suivant l'Unix traditionnel et les sémantiques BSD, chacune des décisions concernant l'autorisation est maintenant passé au framework kauth(9). Cela permet à l'implémentation de nouveaux modèles de sécurité, soit en tant que partie de la base du système, soit comme LKMs, et les modifications du modèle de sécurité 4.4BSD/NetBSD traditionnel.