wiki:systemes_d_exploitation:bsd_unix:netbsd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

wiki:systemes_d_exploitation:bsd_unix:netbsd [2025/03/27 11:59] – [Sites internet dédiés à NetBSD] Thibault Seguinwiki:systemes_d_exploitation:bsd_unix:netbsd [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1
Ligne 1: Ligne 1:
-====== NetBSD, le système d'exploitation le plus portable ====== 
-Logo de **NetBSD** : {{ :wiki:systemes_d_exploitation:bsd_unix:netbsd.png?nolink&240 |}} 
  
-===== Présentation de NetBSD ===== 
-**NetBSD** est un système d'exploitation de type **BSD Unix** étant basé à l'origine sur **386BSD 0.1** et **4.3BSD Net/2**, désormais basé sur **4.4BSD Lite Release 2**. Si le **projet NetBSD** a été crée, c'était à la base parce que **Lynne** et **William Jolitz**, les fondateurs de **386BSD** n'était pas enclin à intégrer des **patchkits** (**correctifs**) proposés par des développeurs externes de 386BSD, ce qui a motivé **Chris Demetriou**, **Theo de Raadt** (créateur d'[[wiki:systemes_d_exploitation:bsd_unix:openbsd|OpenBSD]]), **Adam Glass** et **Charles Hannum** à créer NetBSD, [[wiki:systemes_d_exploitation:bsd_unix:freebsd|FreeBSD]] a été créé pour les mêmes raisons mais pour des objectifs différents.  
- 
-Les premières versions de NetBSD basée sur 386BSD 0.1 et 4.3BSD Net/2, sont **NetBSD 0.8**, publiée le 20 avril 1993 et **NetBSD 0.9** publiée le 23 août 1993. À partir de **NetBSD 1.0**, NetBSD fût basé sur  **4.4BSD Lite**, puis **NetBSD 1.3** c'est basé sur **4.4BSD Lite Release 2**, la dernière version de **BSD** du **CSRG** à l' université de **Berkeley**. L' ''intégration'' complète de 4.4BSD Lite Release 2 a été finalisée avec la version **NetBSD 1.4**.  
- 
-Dès le départ NetBSD était prévu pour fonctionner sur un maximum de machines ''différentes'', déjà, à partir de NetBSD 1.0 le système fonctionnait sur l' ordinateur **Amiga**, jusqu'à l' **Amiga 4000** et l' ordinateur **macintosh** pour l' architecture processeur du **Motorola M68k**, sur le processeur **Intel 80386**, l' ordinateur **Sun4c** à architecture **SPARC V7** de l'entreprise **Sun Microsystems**, l' ordinateur **HP 300** de **Hewlett-Packard**, l' ordinateur **PC532** avec processeur **NS32532** de l'entreprise **National Semiconductor**.  
- 
-La dernière version de NetBSD est **NetBSD 10.1** publiée le 16 décembre 2024 sous **licence BSD** à ''2 clauses'', elle inclut énormément de nouveautés. 
- 
-<note>NetBSD est l'OS BSD ''libres'' le moins mis en avant parmi les ''3'' principales distributions BSD et c'est fort dommage car NetBSD a énormément de fonctionnalités par défaut, comme un noyau de type **monolithique modulaire** et une **compatibilité binaire** avec **Linux** en autres, chose que n'a pas [[wiki:systemes_d_exploitation:bsd_unix:openbsd|OpenBSD]]. À cause du manque de visibilité de NetBSD, il n'y a malheureusement pas beaucoup de logiciels ''tiers'' à installer mais mis à part ça, c'est un OS idéal pour faire revivre de vieilles **stations UNIX** et il est également très stable, robuste, sécurisé pour les machines récentes. NetBSD n'est pas moins performant que les autres BSD et est autant adapté pour les ordinateurs ''récents'' !!!</note> 
- 
-==== Sites internet dédiés à NetBSD ==== 
-Le site officiel (en anglais) NetBSD : 
-  * [[https://www.netbsd.org/|Projet NetBSD]] 
-  * [[https://www.netbsd.org/docs/guide/en/|Le Guide NetBSD]] en anglais 
-  * [[https://wiki.netbsd.org/|Wiki NetBSD]] 
-  * [[https://man.netbsd.org/|Les pages du Manuel]] 
-  * [[https://www.netbsd.org/docs/misc/index.html|FAQs et HOWTOs]] 
-  * [[https://www.netbsd.org/changes/|Les News de NetBSD]] 
- 
-Site sur **pkgsrc** : 
-  * [[https://www.pkgsrc.org/|pkgsrc]] est à la base de la gestion de logiciels sous NetBSD mais pkgsrc va plus loin, il a en autres été porté sur **GNU/Linux**, **Solaris** (et **illumos**), **macOS**. Je vous suggère de consulter le [[https://www.pkgsrc.org/wip/|Projet pkgsrc-wip]]. 
-  * [[https://www.netbsd.org/community/|Liens Communautaires sur NetBSD]] 
-===== Caractéristiques et spécificités de NetBSD ===== 
-==== Bref résumé de NetBSD ==== 
-Comme tous les **BSD Libres**, **NetBSD** est un **OS** complet, développé par la même entité, la **Fondation NetBSD**, il est composé de tous les composants propre à un **système UNIX**, comme un **noyau** de type **monolithique modulaire**, **système d'initialisation** de type **init** (**rc.d**), de plusieurs **shell Unix** (par défaut **sh**, **ksh** et **csh**), des **systèmes de fichiers** (**UFS** et **ZFS** à l'installation par défaut), tous les **utilitaires Unix** de base et plus, des **bibliothèques logicielles**, des **daemons** (**services**) comme **SSH** ou **NFS**, des **protocoles réseau**, des **journaux de log**, un **hyperviseur** appelé **NVMM** (**//NetBSD Virtual Machine Monitor//**) piloté avec l'émulateur **QEMU**, d'un **gestionnaire de paquets**, du compilateur **GCC** de **GNU** et sous **NetBSD**, vous avez également la possibilité d'installer par défaut un serveur **X** (**serveur d'afficahge**) en l'occurrence **X.Org** associé au **gestionnaire de fenêtre** du nom de **CTWM** (**//Claude's Tab Window Manager//**) qui est une amélioration du gestionnaire de fenêtre **twm** (**//Tab Window Manager//**) qui était le gestionnaire de fenêtre par défaut sous les principaux **BSD**, dont **NetBSD**. 
- 
-<note important>Il est important de mentionner que **NetBSD**, comme la plupart des **BSD** a un compte qui a exactement les mêmes privilèges et le même **ID** (**identifiant de compte**) que le **superutilisateur** nommé **root** du nom de **toor**. **toor** permet en autres d'avoir un autre **shell Unix** pour le compte **root** comme le célèbre **bash** par exemple via les logiciels ''tiers'' donc **bash** s'installe dans le répertoire ''/usr/pkg/bin'' ce qui n'est pas un problème pour une utilisation courante mais le devient si vous devez dépanner votre **NetBSD** et dans se cas vous devez **booter** (**démarrer**) en mode **single user** (**mono-utilisateur** et en l'occurrence avec le compte **root**) mais dans se mode vous n'avez seulement accès qu'au **système de base** et pas aux **shells** contenus dans ''/usr/pkg/bin'', d'ailleurs vous n'avez même plus aucun accès au répertoire ''/usr/pkg'' dans sa totalité, se qui en résulte, c'est que si vous associez directement **bash** au compte **root** et bien vous n'avez accès à plus aucun **shell Unix** vu que **bash** se trouve dans ''/usr/pkg/bin''. Pour vous connecter au compte **toor** depuis une session **multi-utilisateur**, il suffit de se connecter en **root** en tapant cette commande : ''su -'' puis cette commande ''su - toor''.</note> 
- 
-**NetBSD** est composé de plusieurs parties de l'**OS** que l'on appelle des **sets** dans le jargon **BSD**. Les **sets** indispensables au fonctionnement de **NetBSD**, sont : le set **base** (qui contient tous les **utilitaires Unix** de base), **etc** (qui contient tous les **fichiers de configuration** dans ''etc''.), et **kern-GENERIC** (qui contient le **noyau** de base de **NetBSD**) puis les **sets** fortement recommandés : les sets **comp**, **debug**, **games** (pas essentiel), **gpufw** (pas essentiel), **man**, **misc**, **modules** (**modules** ajoute des fonctionnalités au **noyau**), **rescue** (qui comporte tous les **utilitaires Unix** standard et d'administration de base de manière ''statique'', très utile pour réparer une installation **NetBSD** cassée) et **text**. Tous ses **sets** sont suffisants pour avoir un **NetBSD** complètement fonctionnel mais si vous souhaitez faire de **NetBSD** un **poste de travail**, il faut ajouter ses **sets** : **xbase** (qui contient des **utilitaires graphiques** de base, tel que : **xcalc**, **xclock**, **xkill**,...), **xcomp**, **xdebug**, **xfont**, **xetc** (qui contient les **fichiers de configutations** dans ''/etc'' liés à **X**) et **xserver** (contient le serveur **X** en lui même, qui est **X.Org**).  
- 
-==== Le noyau de NetBSD ==== 
-Le **noyau** de **NetBSD** est un **noyau monolithique modulaire**, modulaire dans le sens où il permet d'activer ou installer des fonctionnalités via des **modules**, qui ne sont pas activées par défaut sous le **noyau NetBSD**. Le **noyau NetBSD** prend en charge **SMP** (**//Symmetric Multiprocessing//**, **multiprocesseur symétrique** en français) qui n'a cessé d'être amélioré au fil de l' évolution de **NetBSD**, qui consiste à multiplier les **processeurs** identiques au sein d'un ordinateur, de manière à augmenter la puissance de calcul, tout en conservant une unique mémoire. 
- 
-Pour la **gestion de modules** du **noyau**, on peut citer les utilitaires en **console** suivants : 
-  * **modstat** permet d'avoir la liste des modules chargés dans le **noyau NetBSD**. 
-  * **modload** permet de charger un module et ces modules dépendants. 
-  * **modunload** permet au contraire de décharger un module et ces modules dépendants. 
- 
-Vous pouvez modifier certaines fonctionnalités du **noyau NetBSD** via des **variables** dans le fichier ''/etc/sysctl.conf''. 
- 
-==== Un grand atout de NetBSD, la portabilité ==== 
-La grande force de **NetBSD** réside dans sa grande ''portabilité'', **NetBSD** est disponible pour un nombre très impressionnant d'**architecture processeur** comme les familles: **x86**, **ia-64**, **m68k**, **arm**, **riscv**, **powerpc**, **sparc**, **mips**,  **alpha**, **hppa**, **vax** et **sh3**, on décompte pas moins de ''12'' architectures processeurs différentes et environ ''60'' **plates-formes matérielles**, ce qui est énorme pour un seul et même **OS**. 
- 
-Les **ports** (**architecture processeur** sous **NetBSD**) ont ''trois niveaux'' de compatibilité, ses ''trois niveaux'' sont : 
-  * Les **ports** de ''Niveau I'' : 
-    * **aarch64** pour les processeurs **ARM** ''64 bits'' pour les appareils informatiques récents, tel que les **nano-ordinateurs** actuels, genre **Raspberry Pi**, **Orange Pi**, **BeagleBone** ou les **smartphones**/**tablettes**. 
-    * **x86_64** pour les processeurs de la famille **x86** tel que **Intel** ''64 bits'' et **AMD** ''64 bits''. 
-    * **evbarm** pour les processeurs **ARM** ''32 bits'' tel que les processeurs des nano-ordinateurs tel que le **Raspberry Pi** par exemple. 
-    * **evbmips** pour les processeurs **MIPS** qui fonctionnent sur certains nano-ordinateurs. 
-    * **evbppc** pour les processeurs **PowerPC** comme la **Nintendo Wii**. 
-    * **hpcarm** pour les processeurs **ARM** ''32 bits'', plus précisément **Intel StrongARM** et **XScale** pour le **PDA**. (**//Personal Digital Assistant//**, **assistant personnel** en français), comme le **Jornada** de **Hewlett-Packard**. 
-    * **i386** pour les anciens processeurs de type **x86**, **Intel** et **AMD** ''32 bits''. 
-    * **sparc64** pour les processeurs **SPARC** ''64 bits'' des **stations de travail** et **serveurs** basé sur **Sun UltraSPARC**. 
-    * Et **xen** pour les **VM** (**machines virtuelles**) de l'hyperviseur **Xen**. 
-  * Les **ports** de ''Niveau II'' : 
-      * **acorn32** pour les processeurs **ARM** ''32 bits'' des **RiscPC**, **A7000** de l'entreprise **Acorn**. 
-      * **alpha** pour les processeurs **DEC Alpha** de **DEC** (**//Digital Equipment Corporation//**). 
-      * **amiga** pour les processeurs **M68k** des ordinateurs **Amiga** de **Commodore**. 
-      * **amigappc** pour les processeurs **PowerPC** des ordinateurs **Amiga**. 
-      * **atari** pour les processeurs **M68k** des ordinateurs **Atari TT030**, **Falcon** et **Hades** 
-      * **hpcmips** pour les processeurs **MIPS** des **PDA** à l'origine sous **Windows CE**. 
-      * **dreamcast** pour les processeurs **SuperH** (**SH-3**) de **Hitachi** pour la **console de jeux** appelé **Dreamcast** de **Sega**. 
-      * **ia64** pour les processeurs **Intel Itanium** ''64 bits'', utilisé essentiellement par **HP**. 
-      * **riscv** pour les processeurs **RISC-V** utilisés par certains **nano-ordinateurs**. 
-      * **vax** pour les ordinateurs **VAX** de **DEC**. 
-      * et bien d'autres... 
-  * Les **ports** de ''Niveau III'' : 
-    * Se sont des **ports** d'**ordinateurs** ou de **processeurs** qui ne sont plus ''produits'' et devenus ''obsolètes'' tel que l'ordinateur **PDP-11** de **DEC**. C'est très souvent du matériel informatique que **NetBSD** ne peut pas se procurer. 
- 
-Les **ports** de ''Niveau I'' : sont les ports ''prioritaires'' sous **NetBSD** qui bénéficient du meilleur support. Dans ces ports se trouvent les **appareils informatiques** les plus ''récents'' et ''utilisés''. 
- 
-Les **ports** de ''Niveau II'' : sont les ports qui sont jugés comme ''secondaires'' et qui bénéficient d'un support moins important, car les **appareils informatiques** de ses ports ne sont plus utilisés et produits pour la ''production'' et qui sont également peu utilisés pour un usage personnel.   
- 
-<note>**GNU/Linux** est le seul **OS** qui est porté sur autant de **processeurs** différents mais contrairement à **NetBSD**, il n'y a aucune **distribution Linux** qui supporte à elle seule autant de processeurs et d'**ordinateurs** que **NetBSD** ! Il est important de mentionner que la **puce** (**SoC**) **Apple M1**, c'est à dire que la première ''génération'' d'ordinateurs d'**Apple** sous processeur **ARM** ''64 bits'' sont théoriquement compatibles avec **NetBSD**.</note> 
- 
-<note important>Les **ports** sous **NetBSD**, n'ont pas la même signification que sous **FreeBSD**. Sous **NetBSD**, les ports signifient les **machines** (avec **processeurs** différents) sur lesquels fonctionnent **NetBSD** alors que sous **FreeBSD** les ports signifient les **applications** ''portées'' sur cet **OS**.</note> 
- 
-<note>Sachez qu'il est tout à fait possible de compiler la ''totalité'' du système **NetBSD** (**espace utilisateur** et **noyau NetBSD** compris, enfin tout) à partir de n'importe quel **Unix** ou de **Type Unix** via le **framework** et **script shell** nommé **build.sh** qui permet en plus la **compilation croisée**, c'est à dire que l'on peut par exemple compiler entièrement un système **NetBSD** prévu pour un processeur de type **ARM** ''64 bits'' sur un ordinateur sous un système **GNU/Linux** doté d'un processeur **Intel** ou **AMD** ''64 bits'' (architecture **amd64**). **build.sh** est une petite ''révolution'' !!!</note> 
- 
- 
-==== L'installateur de NetBSD ==== 
-L'**installateur** de **NetBSD** se nomme **sysinst** c'est un installateur qui a une interface de type **Curses** et qui est relativement complet (il peut paramétrer très finement l'installation de **NetBSD**) mais un peu complexe pour les non-initiés, qui permet tout type d'installation, pour les **serveurs informatiques** ou les **postes de travail**. Un cours résumé pour installer **NetBSD** : 
-  - Les touches et combinaisons de touche  du clavier à utiliser pour naviguer sont : la touche ''Tabulation'' (**↹**), la combinaisons de touche ''Ctrl+N'' (''N'' = ''Next'') pour aller sur l'occurrence suivante et ''Ctrl+P'' (''P'' = ''Previous'') pour l'occurrence précédente et la touche ''Entrer'' (**↵**) pour valider un choix ou une opération. 
-  - Le premier **menu** propose la selection de la **langue** à utiliser puis la **disposition du clavier**. 
-  - Installer **NetBSD** sur le **média de stockage** de votre choix et valider par ''Oui'' en appuyant sur ''Entrer'', ensuite on vous propose de sélectionner le **périphérique de stockage** (si vous en avez plusieurs) nommé ''wd0'', ''wd1'',..., vous pouvez confirmer la **géométrie du disque** et choisir d'utiliser le disque ''entier'' ou ''partitionner'' votre **média de stockage**. Si vous choisissez d'installer **NetBSD** sur le disque entier vous pouvez directement passer à la partie ''5'' 
-  - Pour ''partitionner'' votre **média de stockage**, vous pouvez partitionner seulement deux **slices** (**partitions étendues** sous **BSD**) sur la **partition principale** pour le bon fonctionnement de **NetBSD**, le slice pour la partition racine ''/'' nommé ''a'' et le slice pour la **partition d'échange** (**swap**, qui est utile quand la **mémoire vive** est saturée) nommé ''b'', le slice ''c'' représente toujours la **partition** dans son intégralité et ''d'' le **disque** ''entier'' (''c'' et ''d'' sont identiques si il n'y a pas de partition de type **MBR**). Pour le **swap** je vous conseille de créer un slice de ''1,5 fois'' la taille de la **mémoire vive** (**RAM**) et le reste pour votre **partition racine**. Pour des installations plus spécifique référez vous aux [[wiki:systemes_d_exploitation:bsd_unix:netbsd:tutoriels_sur_netbsd|tutos]]. 
-  - Chosissez d'utiliser le ''BIOS de la console'', vous avez la possibilité de faire une installation complète, une installation sans **X11**, une installation minimale ou une installation personnalisée (custom). A vous de voir selon vos besoins informatiques. 
-  - Ensuite ont vous demande à partir de quel ''support d'installation'', vous installez **NetBSD**. Vous avez au choix, l'installation par ''CD/DVD/Clé USB'', par ''HTTP'', ''FTP'', par ''disquette'' (''floppy'' en anglais), par le biais d'un répertoire ''local'' qui a tous les **sets** de **NetBSD**. Une fois le **média** choisi, l'extraction des sets commencent. 
-  - Il vous est désormais possible de faire les dernières ''configurations'' du système installé. Vous pouvez configurer votre **réseau**, le **fuseau horaire** (**timezone**), le **shell Unix** du compte **root**, modifier le **mot de passe** de **root**, activer l'installation des **paquets binaires** via **pkgin**, installer les **paquets sources** de **pkgsrc**, activer le serveur **SSH**, activer le serveur **NTP**, lancer **ntpdate** au démarrage de **NetBSD**, activer **mdnsd**, activer le gestionnaire de session **xdm**, activer **cgd** pour crypter les partitions, le gestionnaire de volumes logiques **LVM**, activer **raidframe** pour les fonctionnalités de **RAID logiciel**, et enfin ajouter un **utilisateur standard** (indispensable pour un **système UNIX** récent) en plus du compte **root**. Une fois votre configuration terminée, choisissez ''Configuration terminée'' et ''redémarrer'' votre **NetBSD** fraichement installé. Et voilà c'est terminé ! 
-   
-==== Initialisation de NetBSD ==== 
-Le système d'**initialisation** de **NetBSD** est de type **rc.d** plus précisément **rc.d-ng** qui n'a été intégré qu'à partir de **NetBSD 1.5** sortie le 6 décembre 2000 (utilisé également par les autres **BSD** libres) qui est en autres composé de **init**, **rc** et des **script shell** des **daemons** dans ''/etc/rc.conf'' ou ''/etc/rc.d''. Pour résumé, le système d'initialisation se déroule ainsi : 
-  * Le **BIOS** (**//Basic Input Output System//**) ou **UEFI** (**//Unified Extensible Firmware Interface//**) démarre le **noyau NetBSD** qui initialise tous les périphériques au démarrage et invoque le premier **processus** du nom de **init**, puis **init** exécute le script shell ''/etc/rc''. 
-  * Le script ''/etc/rc'' démarre les **daemons** dans ''/etc/rc.conf'' ou ''/etc/rc.d/'' 
-  * Le script ''/etc/rc'' peut également faire appel à ''/etc/rc.local'' qui contient des **daemons** locaux qui ne sont pas compatibles avec le fichier ''/etc/rc.conf''. 
-  * Après toute cette procédure, **init** invoque les processus **getty** qui initialisent les **consoles** (**terminaux virtuelles**) listées dans ''/etc/ttys''.   
- 
-<note>À l'époque de **4.3BSD** ou **4.4BSD**, les **daemons** des systèmes **BSD** était tous intégrés directement dans le fichier ''/etc/rc'' mais à l'époque il y avait beaucoup moins de **daemons** incluent par défaut au sein des **BSD** mais tout de même, le script ''/etc/rc'' était bien chargé.</note> 
-==== Stockage sous NetBSD ==== 
-**NetBSD** inclut évidement comme **système de fichiers** spécifique au **BSD**, **UFS** (**//Unix File System//**) plus précisément **UFS2** mais aussi **ZFS** (beaucoup plus avancé) provenant d'**OpenSolaris** (une version **open source** de l'**UNIX** **Solaris**) qui a été incorporé par défaut à **NetBSD** en 2009 et le protocole de stockage **iSCSI** (**//Internet Small Computer Systems Interface//**). **NetBSD** a également **CHFS** comme système de fichiers pour mémoire de stockage de type **Flash**, idéal pour **SSD**, carte **SD**, clé **USB**,...etc 
- 
-**UFS** et **ZFS** sont les systèmes de fichiers proposés à l'installation de **NetBSD** mais **NetBSD** reconnait un grand nombre de systèmes de fichiers comme, **ext**, **ext2**, **ext3** et **ext4** en ce qui concerne **Linux**, **9p** de **Plan 9**, **v7fs** de **Unix version 7**, tous les systèmes de fichiers **FAT** (**FAT32** le plus utilisé) et **NTFS** de **Windows**, **ISO9660** pour **CD/DVD**, **UDF** (**//Universal Disk Format//**), **HFS** d'**Apple**,...etc. **NetBSD** gère aussi par défaut **UnionFS** (**//Union File System//**) qui permet de fusionner plusieurs points de montage mais également le système de fichiers **NFS** (**//Network File System//**) qui est un système de fichiers réseau créé par la défunte entreprise **Sun Microsystems**.  
- 
-**NetBSD** a sa propre version de **FUSE** (**//Filesystem in Userspace//**) nommé **puffs** (**//Pass-to-Userspace Framework File System//**) qui utilise la bibliothèque **refuse** qui est une réimplémentation de **libfuse**. **puffs** tout comme **FUSE** monte un système de fichiers en **espace utilisateur**. **FUSE** est un gestionnaire de système de fichiers en **espace utilisateur** qui permet très souvent de prendre en charge des systèmes de fichiers qui ne le sont pas par défaut. 
- 
-Le pilote de **pseudo-périphérique** nommé **bio**, qui a comme commande shell **bioctl** qui permet de gérer pleinement la technologie **RAID** (**//Redundant Array of Inexpensive Disks//**) qui est intégré à **NetBSD** depuis 2007 et le pilote **CCD** qui permet à l'utilisateur de concaténer plusieurs **disques physiques** en un seul **pseudo-volume**. 
- 
-**NetBSD** à comme **gestionnaire de volumes logiques** issue de **Linux**, **LVM** (**//Logical Volume Management//**), qui est une réimplémentation spécifique à **NetBSD**. 
- 
-==== Périphériques sous NetBSD ==== 
-Le système **NetBSD** a pour outil de base en **console**, **wscons** qui est un logiciel de type **cadriciel** (**framework**) qui gère l' interaction entre le système et les périphériques d' ''entrée/sortie'' tel que les **claviers**, **souris**, **écrans**, il a comme fichier de configuration ''/etc/wscons.conf''. **wscons** est en autres le **pilote de console** sous **NetBSD** (également sous **OpenBSD**), il permet la création et la gestion des **consoles virtuelles** (**getty**), la configuration du clavier tel que sa disposition ou layout (**AZERTY**,**QWERTY**,...), la gestion de la souris, la configuration de l'écran et le support des types de **terminaux** tel que **VT100**, **VT220**,... 
- 
-==== Le réseau sous NetBSD ==== 
-**NetBSD** à une **pile TCP/IP**, très stable, robuste qui c'est basé originellement sur **4.3BSD Net2**, pour finir par intégrer la **pile TCP/IP** de **4.4BSD Lite Release 2** qui a été constamment améliorée par le **projet NetBSD**. **NetBSD** prend évidement en charge le **protocole de communication** de type **Ethernet** mais également le **Wifi**, la **pile TCP/IP** prend en charge **IPv4** et **IPv6**. 
- 
-<note important>**NetBSD** est le seul **BSD** ''actuels'' à prendre en charge les puces **Wi-Fi** des différents modèles de **Raspberry Pi** (puce **Broadcom**). Et ça c'est un grand atout pour tous les projets possibles avec un **Raspberry Pi** !!!</note> 
- 
- 
- 
-==== Sécurité sous NetBSD ==== 
-Tout d'abord **NetBSD** à de base un **code source** d'une extrême qualité, l'une des nombreuses raisons vient du fait que **NetBSD** est extrêmement **portable**, les processus s'exécutent avec les privilèges les plus restreints possibles, réduisant ainsi la surface d'attaque, il y a des mises à jour relativement régulière et une communauté très active. 
- 
-Parmi les mécanismes de **sécurité**, **NetBSD** intègre : 
-  * **Veriexec** (**Verified Executables**) qui permet la **signature des fichiers binaires**, si un exécutable ne correspond pas à son **empreintes digitales**, il n'est pas exécuter. 
-  * Le pilote de **périphérique cryptographique** du nom de  **CGD** qui permet de crypter tout type de **périphérique de stockage** (y compris les **CD/DVD**). 
-  * Des fonctionnalités de **réduction des vulnérabilités** de type **ASLR** (**//Address Space Layout Randomization//**), **KASLR**, **restricted mprotect** et **Segvguard** tous venant du projet **PaX**. 
-  * Le **framework** (**cadriciel**) **Kernel Authorization** (**//Kauth//**), qui est un sous-système pour les **demandes d'autorisation** à l'intérieur du **noyau**, il permet en autres aux modules externes du noyau de se connecter au **processus d'autorisation**. 
-  * Les extensions du compilateur **GCC** du nom de **Stack Smashing Protection** aussi connu sous le nom de **ProPolice** qui est une protection contre les **dépassements de tampon**. 
-  * D'un **contrôle d'accès** au niveau des fichiers et des **ressources système**. 
-  * Des systèmes de **détection d'intrusion** tel que **Snort**. 
-  * La **ségrégation des privilèges** qui permet aux processus de s'exécuter avec des **privilèges** bien spécifique. 
-  * La bibliothèque **PAM** (**//Pluggable Authentication Modules//**). 
-  * **NetBSD** à son propre pare-feu du non de **NPF** (**//NetBSD Packet Filter//**) qui est un fork de **PF** (**//PacketFilter//**) du projet **OpenBSD**. 
- 
-==== Gestionnaire de paquets sous NetBSD ==== 
-**NetBSD** utilise ''deux'' méthodes d'installation de paquets, soit sous forme de **compilation** avec **pkgsrc** ou sous forme **binaire** avec l'utilitaire en **ligne de commande** du nom de **pkgin**. Tous les logiciels ''tiers'', installés par **pkgsrc** ou **pkgin** se retrouvent dans le répertoire ''/usr/pkg''. 
-  * **pkgsrc** est un système de compilation qui permet d'installer un logiciel et toutes ses dépendances de manière automatisée par compilation avec de simple **Makefiles** (fichiers d'instructions de **compilation**) et l'utilitaire **Unix** des plus célèbres, **make**. Vous pouvez installer **pkgsrc** à la fin de l'installation de **NetBSD** à condition d'être connecté à internet. 
-  * **pkgin** est un **gestionnaire de paquets** binaire, paquets disponibles dans les **dépôts** **NetBSD** de **pkgsrc**. **pkgin** est un gestionnaire de paquets qui a pris comme base le système **APT** de **Debian** et est très similaire à ce dernier. Vous pouvez également installer **pkgin** à la fin de l'installation de **NetBSD**, également à condition d'être connecté à internet. 
- 
-Pour installer des logiciels sous **NetBSD** référez vous à se [[wiki:systemes_d_exploitation:bsd_unix:netbsd:tutos:admin:install_soft_netbsd|tuto]]. 
- 
-<note>La **collection de logiciels** de **pkgsrc** n'est pas seulement disponible sur **NetBSD**, vous pouvez installer **pkgsrc** sous **Linux**, **macOS**, **FreeBSD**, **OpenBSD**, **Solaris** et **illumos**, **MINIX**, **HP-UX** de **HP**, **AIX** d'**IBM**,...</note> 
-==== Compatibilité binaire avec d'autres OS sous NetBSD ==== 
-L'**OS** **NetBSD** est pourvu d'une **compatibilité binaire** avec **Linux** en implémentant l'**ABI** (**//Application Binary Interface//**) de **Linux** ce qui permet d'exécuter des applications prévues pour **Linux** de façon quasi natives. La compatibilité binaire avec **Linux** est activé par défaut dans le **noyau GENERIC** de **NetBSD** sous le nom de **COMPAT_LINUX**, elle est aussi bien compatible avec les logiciels ''32 bits'' et ''64 bits''. Il y a peu, depuis **NetBSD 10.0** sortie le 28 mars 2024, il y a aussi une compatibilité binaire avec **Linux** pour les processeurs **ARM** ''64 bits''. Par défaut, en passant par les sources via **pkgsrc** ou par les binaires via **pkgin**, donc les logiciels ''tiers'', **NetBSD** installe une distribution **OpenSUSE**, le **FHS** (**//Filesystem Hierarchy Standard//**)  est installé dans ''/emul/linux'' qui est un **lien symbolique** qui pointe vers ''/usr/pkg/emul/linux'', c'est à dire toute l'arborescence de **Linux**, les répertoires, les fichiers,... Vous avez également la possibilité d'installer la distribution **Linux** de votre choix, par exemple pour **Debian GNU/Linux** utilisez l'outils en **ligne de commande** du nom de **debootstrap** pour faciliter le téléchargement de la distro. 
- 
-Vous pouvez également installer et utiliser des binaires prévus pour **Windows** via les logiciels tiers, avec **Wine**, disponible sur la plupart des **OS** de **Type Unix**. Là encore, ce n'est pas une **émulation** à proprement parler mais une implémentation de l'**ABI** de **Windows**. Cela peut-être pratique pour des logiciels uniquement disponible sous **Windows**, en particulier les **jeux** et les logiciels de grand éditeur tel que **Photoshop** d'**Adobe**. Mais en ce qui concerne les logiciels hors jeux, vous avez souvent des alternatives mais il est compréhensible que certaines personnes ayant passées du temps à apprendre à utiliser un logiciel n'est pas forcément l'envie ni le courage de passer à un autre logiciel et d'être obligé de tout réapprendre. 
-==== Virtualisation sous NetBSD ==== 
-Depuis peu, **NetBSD** à son propre **hyperviseur** maison, intégré au **noyau** du nom de **NVMM** (**//NetBSD Virtual Machine Monitor//**) qui utiliste la bibliothèque **libnvmm** et qui est exécutable via l'émulateur **QEMU**, pour le moment, il ne supporte que les processeurs **Intel** ou **AMD** de type **x86**. Il y a un utilitaire en **console** qui permet aussi de gérer **NVMM** du nom de **nvmmctl**, nvmmctl permet de contrôler les **VM** (**machines virtuelles**).\\ 
-Avec **QEMU**, **NetBSD** peut aussi utiliser l'hyperviseur **Intel HAXM**. 
- 
-L'hyperviseur **Xen** est intégré à **NetBSD** depuis la version **NetBSD 3.0**, il est pleinement fonctionnel, il gère les **Dom0** et les **DomU**. 
-==== Quelques protocoles réseaux applicatifs intégrés par défaut sous NetBSD ==== 
-Tous les **protocoles réseaux** applicatifs comprennent à la fois le **client** et le **serveur**. 
-  * **SSH** (**//Secure Shell//**), précisément **OpenSSH** sous **NetBSD** est un protocole qui permet en autres de se connecter à un ordinateur distant ayant un serveur **SSH** en **ligne de commande**, comme l'ancien **Telnet** ou **Rlogin** mais de manière ''sécurisée'' en utilisant la **cryptographie asymétrique**. 
-  * **HTTP** (**//Hypertext Transfer Protocol//**), **NetBSD** dispose d'un serveur Web par défaut du nom de **bozotic HTTP server** (**bozohttpd**). 
-  * **FTP** (**//File Transfer Protocol//**), en autres, protocole de **transfert de fichiers** à distance. 
-  * **TFTP** (**//Trivial File Transfer Protocol//**) est un protocole simplifié de **transfert de fichiers**. 
-  * **Telnet** qui permet en autres, tout comme **SSH**, de se connecter à un ordinateur distant mais de manière ''non sécurisé'', les **mots de passe** transitent en ''clair''. Mais **Telnet** peut toujours être pratique pour faire des tests de connexion sur un port d'un ordinateurs distant. 
-  * **Rlogin** permet de se connecter en **ligne de commande** à une vielle **station UNIX** qui ne bénéficie pas d'un serveur **SSH**. 
-  * **Postfix** est un **serveur de messagerie électronique**, plus facile à appréhender que **Sendmail**.  
-  * **Inetd** est en quelque sorte un **serveur** de **serveur** qui lance les daemons des serveurs qui ne sont pas utilisés à grande échelle. Le fichier de configuration de **inetd** est ''/etc/inetd.conf''. 
-  * et beaucoup d'autre **protocoles**. 
- 
-<note important>Il est important de savoir que tous les serveurs intégrés à **NetBSD** sont désactivés par défaut, pour activer les serveurs sous **NetBSD**, il faut les renseigner dans ''/etc/rc.conf''. Exemple pour activer le daemon et serveur **OpenSSH** : ''echo sshd=YES >> /etc/rc.conf''.</note> 
- 
-==== Mise à jour ou à niveau de NetBSD ==== 
-Pour **mettre à jour** ou à **mettre à niveau** vous pouvez utilisez l'installateur de **NetBSD** nommé **sysinst** ou utilisez un logiciel tiers du nom de **sysupgrade**, que vous pouvez soit installer via **pkgsrc** ou **pkgin**. 
-  * **sysinst** : il vous faut un média d'installation de type **CD/DVD** ou **Clé USB** par exemple puis au moment du démarrage de l'installateur il vous est proposé soit d'installer **NetBSD** ou de le mettre à jour (à niveau), choisissez ''mettre à jour'' puis suivez les instructions. L'avantage de **sysinst** est qu'il permet de mettre à niveau **NetBSD** sans connexion à internet (il tout de même préférable d'être connecté à internet). 
-  * **sysupgrade** : après avoir installer **sysupgrade** via **pkgsrc** ou **pkgin**, qui permet de ''mettre à niveau'' un système **NetBSD** en cours d'exécution, connecté à internet. Dans l'exemple nous mettrons à niveau **NetBSD 9.3** vers **NetBSD 10.0** sur un ordinateur doté d'un processeurs **Intel** ou **AMD** ''64 bits'' (architecture la plus courante sur **PC**), voici la marche à suivre (toutes les commandes sont à exécuter en tant qu'utilisateur **root**, l'**invite de commande** doit être précédée du signe ''#''.), tapez les commandes en **root** :  
-    * <file>sysupgrade auto https://cdn.NetBSD.org/pub/NetBSD/NetBSD-10.0/amd64</file> 
-    * <file>sysupgrade fetch https://cdn.NetBSD.org/pub/NetBSD/NetBSD-10.0/amd64</file> 
-    * <file>sysupgrade kernel</file> 
-    * <file>sysupgrade modules</file> 
-    * <file>reboot</file> 
-    * <file>sysupgrade sets</file> 
-    * <file>sysupgrade etcupdate</file> 
-    * <file>sysupgrade postinstall</file> 
-    * <file>sysupgrade clean</file> 
-    * <file>reboot</file> 
- 
-<note>Pour une documentation plus poussée sur **sysupgrade**, veuillez consulter le **manuel** (page de **man**) avec la commande : ''man sysupgrade'' (évidement il faut que le paquet **sysupgrade** soit installer sur votre système **NetBSD**).</note> 
- 
- 
-===== Documentation supplémentaire sur NetBSD ===== 
-Pour une documentation complète référez vous aux [[wiki:systemes_d_exploitation:bsd_unix:netbsd:tutos|tutoriels sur NetBSD]]. 
  • wiki/systemes_d_exploitation/bsd_unix/netbsd.1743076752.txt.gz
  • Dernière modification : 2025/03/27 11:59
  • de Thibault Seguin