NetBSD NetBSD 6.0

77
17
oct.
2012
NetBSD

La Fondation NetBSD est fière de vous annoncer la disponibilité de NetBSD 6.0 !

NetBSD est un système d’exploitation libre, de type UNIX, dérivé de Net/2, 4.3BSD et 386BSD. Il est ainsi un héritier tout droit issu de BSD UNIX et, en réalité, le premier projet à avoir posé les bases de ce qu’allait devenir « un projet communautaire ». Ce système met l’accent sur la propreté de son code source, sa lisibilité et, par extension, sa portabilité. Il est aussi connu pour avoir été la base d’OpenBSD.

Cette nouvelle version majeure fait suite à NetBSD 5.0 et 5.1, disponibles pour leur part depuis avril 2009 et novembre 2010.

Les changements sont détaillés en seconde partie de cet article.

NdA. : cette dépêche est une formidable aventure collective ; merci donc à iMil, d-jo, baud123, apkwa, B16F4RV4RD1N, nonas, GuiGui2, Sygne, Patrick Lamaizière, Brndan et wolowizard pour leur participation plus que soutenue à l’écriture de cet article !

Sommaire

Rappel de l’esprit de NetBSD

Dans un entretien, Martin Husemann, un développeur influent de NetBSD, précise ce que signifie concrètement la devise « Of course, it runs NetBSD ». Il explique cette formule par une autre : « One OS fits them all ». Qu’est‐ce à dire ?

Des procédures de test sont créées pour trouver dans le noyau de NetBSD les portions de code qui ne sont pas indépendantes de l’architecture. Et tout l’effort de l’équipe de NetBSD consiste à nettoyer le noyau de ces scories. Ainsi, NetBSD aspire à pouvoir planter son drapeau sur n’importe quelle architecture matérielle — ce qui définit l’extension spatiale de NetBSD.

Cela est avantageux pour qui doit travailler sur plusieurs architectures matérielles : pouvoir n’utiliser qu’un seul système d’exploitation facilite l’administration et simplifie la vie.

Husemann qualifie en outre le mode de développement de NetBSD de conservateur : support à très long terme des anciennes versions et compatibilité binaire assurée entre les versions. Cela permet, par exemple, à une vieille application propriétaire de pouvoir fonctionner dans un environnement moderne.

NetBSD n’est pourtant pas fermé aux progrès informatiques. Au contraire, son développement consiste à les intégrer, mais sans rupture, comme le montre la suite de la dépêche. Intégrer dans la continuité, c’est ce qui définit l’extension temporelle de NetBSD.

Avoir une extension spatiale et temporelle aussi large que possible est le principe qui guide le développement de NetBSD.

Prise en charge du matériel

Processeurs

La gestion de l’architecture ARM s’améliore avec la prise en charge des Cortex-A8 et de nouvelles cartes comme la mini2440. Sachez donc que votre smartphone ou votre tablette pourraient très prochainement fonctionner sous NetBSD. On notera également la gestion du mode 64 bits de l’architecture MIPS et un nouveau portage vers l’architecture eMIPS. La prise en charge des Raspberry PI est en cours d’implémentation. Il ne sera sans doute que partiellement inclus dans la 6.0.

Côté pilotes

Réseau

Quelques nouveaux modules et pilotes font leur apparition, permettant une meilleure prise en charge du matériel réseau, et en particulier des adaptateurs Wi‐Fi.

Nouveautés ou réécritures :

  • age : Attansic L1 10/100/Gigabit ;
  • alc : Atheros AR813x/AR815x Ethernet device ;
  • ale : Atheros AR8121/AR8113/AR8114 10/100/Gigabit Ethernet device ;
  • atphy : Attansic Technology F1 10/100/1000 Ethernet PHY ;
  • bwi : Broadcom BCM430x/4318 IEEE 802.11b/g ;
  • cas : Cassini/Cassini+ (GigaSwift) Ethernet device ;
  • et : Agere/LSI ET1310/ET1301 10/100/Gigabit Ethernet ;
  • etphy : Agere/LSI ET1011 TruePHY Gigabit Ethernet PHY ;
  • otus : Atheros USB IEEE 802.11a/g/n wireless network device ;
  • smsh : SMSC LAN9118/LAN9218 Family Ethernet interfaces ;
  • upgt : Conexant/Intersil PrismGT SoftMAC USB IEEE 802.11b/g wireless ;
  • urndis : USB Remote NDIS Ethernet device ;
  • vte : Vortex86 RDC R6040 Fast Ethernet ;
  • urtw : Realtek RTL8187B/L USB IEEE 802.11b/g ;
  • urtwn : Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n.

ACPI, hotkeys, etc.

Un gros travail a été fait du côté de l’ACPI avec, entre autres, la prise en charge de la version 4.0 et la réorganisation de l’arborescence hw.acpi. Il est également possible, sous certaines conditions, de sortir une machine de veille à partir du clavier. Enfin, il faut savoir que l’ACPI est désormais désactivé par défaut pour les machines dont le BIOS est antérieur à l’an 2000.

Nouveautés ou réécritures :

  • acpicpu : ACPI-based processor functionality ;
  • acpipmtr : ACPI power meters ;
  • acpismbus : ACPI SMBus Control Method Interface ;
  • acpivga : ACPI video extension ;
  • acpiwdrt : ACPI Watchdog Timer (WDRT) ;
  • acpiwmi : Windows Management Instrumentation support for ACPI ;
  • btmagic : Apple Magic Mouse driver ;
  • fujbp : Fujitsu Brightness, Pointer and Hotkeys ;
  • fujhk : Fujitsu Brightness, Pointer, and Hotkeys ;
  • hpacel : HP 3D DriveGuard accelerometer ;
  • lom : LOMlite lights out management module ;
  • powsw : Power switch monitor ;
  • uthum : TEMPer and TEMPerHUM USB temperature and humidity sensor.

Multimédia

Les pilotes audio sont désormais mpsafe. Un nouvel outil, audiocfg(1), fait son entrée dans le système de base. Il gère les différents liens vers les cartes et les mixeurs. Un framework pour la télévision numérique a également été écrit (dtv). Il est partiellement compatible avec la couche DVB de Linux.

Nouveautés :

  • auvitek : Auvitek AU0828 video capture device ;
  • hdaudio : Intel High Definition Audio device ;
  • cxdtv : digital video cards based on the Conexant CX23881, CX23882, CX23883, and CX23884 multimedia bridges ;
  • emdtv : Empia Technology EM28xx based cards ;
  • gcscaudio : AMD Geode CS5536 audio.

Consoles

Le chargeur de démarrage permet désormais de paramétrer directement les extensions VESA du BIOS pour les architectures i386 et amd64. Il est donc possible d’avoir sur ces systèmes une console en mode framebuffer en utilisant le pilote générique genfb(4) qui sait récupérer ces informations. vesafb(4) qui reposait sur une bidouille est abandonné.

Exemple :
menu=Boot NetBSD:vesa 1280x800;boot netbsd

Nouveautés ou réécritures :

  • cgtwelve : Sun CG12 / Matrox SG3 graphics boards ;
  • gfb : Sun XVR-1000 graphics cards ;
  • omapfb : OMAP 3530’s built-in video controller ;
  • pm2fb : Permedia2-based graphics cards like Sun’s PGX32 ;
  • udl : DisplayLink DL-1x0 / DL-1x5 graphic chips ;
  • valkyriefb : Apple’s Valkyrie onboard video controller ;
  • videopll : iic-controlled PLLs used in early Apple onboard video hardware ;
  • zx : Sun ZX display adapter.

En ce domaine la principale nouveauté est la réécriture du pilote gpio, afin qu’il profite de la sécurité apportée par kauth(9).

Nouveautés ou réécritures :

  • gpioiic : GPIO I2C controller ;
  • gpiopwm : support for pulsing GPIO pins in software ;
  • gpioiic : create an I2C bus using GPIO pins ;
  • gpiosim : simulate a [1380]gpio device ;
  • efa : FastATA 1200 EIDE controller, manufactured by ELBOX Computer ;
  • nside : National Semiconductor PC87415 IDE controller ;
  • mppb : Prometheus Zorro III ;
  • p5pb : Phase5 PCI bridge ;
  • pwdog : Quancom PWDOG1 watchdog timer device ;
  • rdcide : RDC IDE disk controllers ;
  • rdcpcib : RDC PCI/ISA bridge and watchdog timer ;
  • s390rtc : Seiko Instruments S-35390 real-time clock ;
  • schide : SCH IDE ;
  • sdmmc : SD bus ;
  • wb : Winbond W83L518D Integrated Media Reader.

Sécurité

Nous serons tous rassurés de voir qu’en chargeant le module tpm(4) nous pourrons désormais participer à l’informatique de confiance !

Systèmes de fichiers, stockage

Outre l’importation de la dernière version de ZFS depuis OpenSolaris, le changement majeur est l’obsolescence des softupdates au profit de la journalisation. Le système de quotas a également été revu. raid(4) a été amélioré pour permettre une reconstruction plus rapide en cas de crash, et il prend en charge les volumes de plus de 2 To.

Les stockages de type Flash et NAND disposent maintenant de leur sous‐système particulier. Un nouveau système de fichiers nommé CHFS, dédié aux Flash, a d’ailleurs été ajouté. On notera également quelques améliorations autour de LVM et de FUSE, ainsi qu’un nouveau type de disque mémoire : altmem(4). Enfin, de nombreuses clés USB et lecteurs de cartes SD, jusqu’à présent inutilisables, sont désormais pris en charge.

Toujours au chapitre du stockage, NetBSD dispose désormais d’un initiateur iSCSI en mode noyau. Un bon point de départ pour découvrir ses fonctionnalités sont les pages de manuel de iscsictl et iscsid.

Installation

Sysinst, l’installateur, évolue au niveau des choix par défaut et des questions posées. Ainsi, FFSv2 devient le système de fichiers par défaut, avec l’activation de l’option log, grâce à wapbl(4). Toujours pour les disques durs, il est possible d’utiliser tmpfs au lieu de mfs pour /tmp.

En outre, l’installateur ne propose plus de choisir l’algorithme de chiffrement des mots de passe utilisateur, et utilise SHA1 par défaut. Le format de /etc/pwd.db ayant changé, postinstall(8) vérifiera sa compatibilité et le régénérera le cas échéant.

Un nouveau set fait son apparation : modules.tgz. Il contient les modules noyau, qui faisaient partie de base.tgz auparavant. À noter que, sur les plate‐formes i386 et amd64, le chargeur peut désormais charger des modules. Les tables de partitions GPT sont également prises en charge.

Notons aussi l’arrivée d’un menu supplémentaire, permettant d’activer le démarrage de certains services dès le redémarrage de la machine, mais surtout d’installer et de configurer pkgin, le gestionnaire de paquets binaires.
pkgin

Système et réseau

Compatibilité POSIX

L’introduction d’une implémentation en mode noyau de posix_spawn a sans doute été l’un des changements les plus intrusifs lors du passage de 5 à 6. Martin Husemann rapporte en détail sur le blog de NetBSD, les écueils qu’il a rencontrés lors de l’intégration de cette fonctionnalité. À noter que le but recherché n’est pas uniquement le surcroît de compatibilité POSIX, mais une alternative thread-safe à vfork(2).

La compatibilité POSIX s’est également accrue, grâce à l’ajout des fonctions de la famille getdate et getline. Quelques bogues en relation avec cette spécification ont été corrigés dans la gestion des sémaphores et du temps (timeval, timespec).

2038

Pour les inquiets, sachez que NetBSD 6.0 ne souffrira pas du bogue de l’an 2038. Il ne vous reste toutefois plus que 26 ans pour faire une mise à jour.

Change time_t and dev_t to be 64 bit quantities.

rc

rc(8) dispose désormais d’une option permettant de supprimer l’affichage de messages dans la console. Elle s’active en positionnant l’option rc_silent="YES" dans le rc.conf, ou en démarrant en mode silencieux (boot netbsd -z).

SQLite

SQLite fait son entrée dans le système de base. Elle est utilisée par pkgin, mais également pour la base de données des pages de manuel (apropos, whatis) et pour les maps de Postfix.

Constant DataBase

Un nouveau format de base de données, optimisé pour les données constantes fait son apparition : cdb(5). C’est un format très simple, mais ne permettant pas de mise à jour des enregistrements. Il se caractérise par un en‐tête faible au niveau de la taille des données, un correspondance mémoire complète des données et un faible coût des recherches (utilisation d’un hash parfait comme index).

Il est dès à présent utilisé pour la base de données des services (/etc/services), qu’il devrait faire maigrir de près de 50 %. services_mkdb reste toutefois compatible avec l’ancien format. Il est également utilisé pour les bases de données des périphériques (dev.db) et terminfo.

Syslog

De nombreuses améliorations de syslog ont été « commitées », de sorte que celui‐ci respecte maintenant la RFC 5424. Les améliorations sont détaillées dans une présentation de Martin Schütte, qui se résume en quelques points :

  • utilisation de TLS ;
  • gestion de TCP ;
  • signature des messages ;
  • protocole étendu (horodatage, FQDN, UTF-8) et mieux structuré.

Il est à parier que cette évolution, qui propose une modernisation radicale du protocole, sans pour autant rompre avec sa tradition unixienne, fera des émules.

PGP

netpgp(1), une implémentation de PGP sous licence BSD a été importée dans le système de base. Ce travail est basé sur OpenPGPsdk. En plus de l’utilitaire lui‐même, une bibliothèque (libnetpgp) est fournie en remplacement de gpgme.

Pare‐feu NPF

NPF (NetBSD Packet Filter) est un nouveau pare‐feu, réécrit depuis zéro. Il se veut avant tout plus facile à maintenir que PF et IPFilter qui — étant des projets externes — sont souvent difficiles à adapter. Trois axes majeurs ont présidé à son développement : facilité d’utilisation, performances, extensibilité.
Pour le premier point, il a été décidé de conserver une syntaxe proche de Packet Filter (syntaxe historique héritée de IPF), des outils également équivalents et de fournir quelques mécanismes essentiels : traduction d’adresses bidirectionnelle, serveur mandataire FTP, journal des paquets configurables…

En ce qui concerne les performances, ce pare‐feu se base sur un mécanisme proche de BPF et sur des structures de données performantes (red‐black tree, fast hash‐tables). Il est mp‐safe et exempt de verrou.
Enfin, il propose plusieurs mécanismes intéressants, tels que des AGL pouvant être utilisées par des programmes tiers comme traceroute, et une API permettant la création d’extensions sous la forme de modules noyau.

ZeroConf

La prise en charge de ZeroConf avance avec l’inclusion de mDNSResponder. Vous pourrez donc désormais utiliser dns-sd(1) et mdnsd(8) pour découvrir des services.

Expressions régulières

Depuis quelque temps, un travail est en cours pour intégrer TRE dans la libc, en lieu et place de l’implémentation existante. Ce travail, également mené par FreeBSD, est sur le point d’aboutir. Il est désormais possible de recompiler son système en utilisant TRE. L’intérêt est multiple. Tout d’abord, TRE semble beaucoup plus efficace que l’implémentation de base, elle présente nativement une interface POSIX, elle implémente un mécanisme de recherche par approximation, et a pour ambition de fournir de nombreuses fonctionnalités, telles que les extensions GNU (ce qui permettrait de se passer de la bibliothèque GNU Regex, sans introduire de régression dans grep).

Où est Charlie ?

Le shell par défaut du super utilisateur (root) passe de /bin/csh à /bin/sh, afin de fournir, dès l’installation, les fonctionnalités qu’un utilisateur est en droit d’attendre d’un système d’exploitation moderne (complètement automatique, édition de la ligne de commande…). Sous NetBSD, /bin/sh est basé sur l’implémentation de Kenneth Almquist, datant de 1989. Almquist shell, A Shell ou ash est un shell léger et puissant. Il est également utilisé pour fournir sh dans FreeBSD, DragonFlyBSD et Minix, mais également Debian et Ubuntu, qui utilisent Debian’s ash (dash). Une bonne partie du code du sh de Busybox en est issue.

Logiciels externes

Parmi les mises à jour de logiciels externes on peut citer :

  • t_zdata 2012e ;
  • BYACC 20110908 ;
  • flex 2.5.35 ;
  • BIND 9.9.1-P2 ;
  • binutils 2.21.1a ;
  • ISC cron 4.1 ;
  • cvs 1.12.13 ;
  • dhcpcd 5.5.4 ;
  • file 5.09 ;
  • gcc 4.5.3 ;
  • heimdal 1.5pre1 ;
  • less 444 ;
  • Lua 5.1.4 ;
  • NTP 4.2.6p5 ;
  • Le m4 de OpenBSD remplace GNU m4 ;
  • OpenLDAP 2.4.23 ;
  • OpenSSH 5.9 ;
  • OpenSSL 1.0.1c ;
  • Postfix 2.8.12 ;
  • openresolv 3.4.5.

Virtualisation

Fruit du travail, entre autres, de Cherry G. Matthew, la gestion multiprocesseur pour les invités Xen (domU) a été annoncée en mars 2012, et se trouve naturellement incluse dans cette nouvelle version. Un autre ajout de taille est l’accès direct au PCI (pass‐through) de Xen 3. Enfin, notons en vrac la gestion du mode PAE pour les dom0 i386, l’activation du bit NX pour i386 (PAE) et amd64, l’activation de l’allocation dynamique de la mémoire vive avec balloon(4), pour tous les noyaux Xen, le chargement de micro‐code processeur via cpuctl(8), la suppression de Xen 2 et la prise en charge expérimentale de la mise en veille pour les domU NetBSD.

La prise en charge de NetBSD comme système invité s’améliore pour beaucoup d’hyperviseurs. Virtio(4) permet de prendre en charge les disques et périphériques réseau présentés par Qemu, KVM et Virtualbox. vmt(4), une implémentation en mode noyau des VMware Tools, améliore la compatibilité de NetBSD avec cet hyperviseur propriétaire.

Rump(3), Runnable Userspace Meta Program, est un projet de NetBSD permettant d’exécuter certains modules noyau dans l’espace utilisateur, sans modification de code.
Rump fut introduit dans la branche 5.0 comme étant expérimental. Rump est considéré comme stable dans NetBSD 6.

Les cas pratiques dans Rump sont principalement :

  • la virtualisation : chaque « noyau » Rump a sa propre instance, il est donc possible d’avoir une pile réseau propre à chacun ;
  • la sécurité : puisque Rump s’instancie en espace utilisateur, il est possible de monter des systèmes de fichiers non sûrs (tels que ceux des clés USB) directement sur celui‐ci, en isolant complètement le système hôte ;
  • tests des parties du code noyau : le code noyau peut être testé sans risque sur l’hôte de test.

En revanche, Gaols, un projet de conteneur façon jail implémenté grâce au framework kauth(9), ne sera finalement pas au rendez‐vous.

pkgsrc

Dernière version en date à la rédaction de cette dépêche, pkgsrc 2012Q3, apporte quelques ajouts notables comme GRUB 2, OpenAFS, sysbuild et sysupgrade (outils de mises à jour source et binaire), ainsi que de gros travaux de compatibilité avec le compilateur clang et de paquets binaires pour DragonFlyBSD et SmartOS (basé sur Illumos).

La version précédente, pkgsrc 2012Q2, apportait quant à elle : Apache 2.4, Python 3.2, PHP 5.4 et des mises à jour autour de X11.

Quelques chiffres sur pkgsrc-2012Q3 :

  • 12 014 paquetages au total ;
  • 11 618 paquetages binaires amd64 compilés avec gcc pour NetBSD-current ;
  • 11 374 paquetages binaires amd64 compilés avec clang pour NetBSD-current ;
  • 10 875 entrées pkgsrc.

135 paquets ont été ajoutés lors de cette version, 95 ont été supprimés, et 1 280 ont été mis à jour.

pkgin

pkgin
Comme signalé plus haut dans la dépêche, pkgin est désormais disponible dès sysinst(8), le système d’installation de NetBSD. Il s’agit d’un gestionnaire de paquets binaires avec résolution des dépendances, un peu comme APT ou YUM. Il permet donc bien plus de confort que les classiques outils pkg* . Ce logiciel en est à la version 0.6.2.2, et est l’œuvre d’iMil.

Tout comme pkgsrc, pkgin est pensé pour être portable, et se base sur les outils traditionnels du monde BSD UNIX (libarchive, libfetch, queue.h), ainsi que sur une base de données SQLite. Il fonctionne à l’heure actuelle, en plus de NetBSD, sur : DragonFlyBSD 2 et 3, Solaris 10 / SunOS 5.10, Opensolaris / SunOS 5.11, Debian GNU/Linux 5 et 6, Mac OS X 10.5 et 10.6, ainsi que Minix 3.2.0.

Exemple d’usage :

# # Configurer un dépôt
echo ftp://ftp.fr.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.0/All > /usr/pkg/etc/pkgin/repositories.conf

# # mettre à jour la base de données
pkgin update # ou pkgin up

# # installer foo(1) et ses dépendances
pkgin install foo # ou pkgin in foo

# # mettre à jour l'ensemble des paquets
pkgin full-upgrade # ou pkgin fug

Fondation NetBSD et mode de développement

Fondation à but non‐lucratif, la Fondation NetBSD détient les droits de la marque NetBSD et a pour but de « promouvoir le développement du système d’exploitation NetBSD et des logiciels afférents ». Ses statuts indiquent que NetBSD doit être « correctement architecturé », « stable », « véloce », « honnête », « complet », « portable », « interopérable », « sécurisé » et « ouvert ».

La fondation n’est donc pas seulement un organe administratif pour le projet NetBSD, elle définit aussi les objectifs du développement logiciel, et organise l’activité des développeurs.

Elle a pour membres les développeurs de NetBSD qui sont choisis par cooptation — à ce jour, 257 développeurs ont accès au dépôt CVS. Les membres ayant eu une activité dans l’année sur la forge élisent un bureau de 3 à 9 personnes, et ce bureau nomme les différents comités exécutifs. Le bureau actuel est composé de Soren Jacobsen, Julio Merino, Jeremy C. Reed, Matthias Scheler, S. P. Zeidler, Christos Zoulas et Julian Coleman.

Parmi ces comités, le NetBSD Core group a pour charge d’organiser le développement de NetBSD :

Members of the core group set the direction and goals of the NetBSD Project as a whole, promote people’s interest in the NetBSD Project and the system it produces, and consider the serious architectural questions that need to be addressed if the NetBSD Project is going to keep producing a viable system.

Le NetBSD core group est composé de Alan Barrett, Alistair Crooks, Matthew Green, Chuck Silvers, Matt Thomas, Yamamoto Takashi et Christos Zoulas.

Visibilité médiatique et communauté

L’un des mots d’ordre du projet NetBSD est «_ No Hype Required _». Cette attitude peu mercantile a un effet regrettable pour ce système qui bénéficie d’une couverture médiatique très faible, alors que de par sa nature, il est employé dans un nombre important de matériels propriétaires.

On retrouve tout ou partie de NetBSD dans bon nombre d’équipements réseau professionnels, comme, par exemple, les commutateurs‐routeurs Force10, mais également domestiques. D’insistantes rumeurs font état d’Apple AirStations fonctionnant sous NetBSD.

On notera en outre une récente discussion sur tech-userlevel@, issue du mainteneur de Bionic, la libc d’Android, qui envisage l’homogénéisation de Bionic autour de la libc de NetBSD. Minix a récemment suivi ce chemin avec succès.

Malgré cette faible visibilité, NetBSD dispose d’une communauté active. Chaque événement communautaire autour des systèmes dérivés de BSD UNIX voit au moins l’un des développeurs du projet présenter de nouvelles fonctionnalités, et de multiples rencontres uniquement dédiées au système NetBSD ont lieu un peu partout autour du globe.

En France, le groupe NetBSDfr regroupe plusieurs développeurs NetBSD officiels, il organise chaque année un Hackathon au succès grandissant, et participe tant que faire se peut aux grandes rencontres autour du logiciel libre dans l’Hexagone.

  • # Fu!

    Posté par (page perso) . Évalué à  9 .

    Bon, ben alors peut être que le prochain os de mon petit dell optiplex sera NetBSD, j'avais prévu Open m'enfin, l'article est tellement sexy !

    Love, bépo.

    • [^] # Re: Fu!

      Posté par . Évalué à  -7 .

      Je préfère PC-BSD qui est basé sur NetBSD.

      • [^] # Re: Fu!

        Posté par (page perso) . Évalué à  10 .

        Non, PC-BSD est basé sur FreeBSD.

        • [^] # Re: Fu!

          Posté par (page perso) . Évalué à  1 .

          Je dirais même que c'est une surcouche plutôt moche à FreeBSD.

          Love, bépo.

  • # pas moi !

    Posté par (page perso) . Évalué à  5 .

    NdA : cette dépêche est une formidable aventure collective ; merci donc à iMil, d-jo, baud123, apkwa, B16F4RV4RD1N, nonas, GuiGui2, Sygne, Patrick Lamaizière, Brndan et wolowizard pour leur participation plus que soutenue à l'écriture de cet article !

    Ben en fait j'ai juste ouvert (encore !) ma grande gueule sur un point de détail. Je suis un peu géné, je suis complètement innocent dans cette super dépêche…

    • [^] # Re: pas moi !

      Posté par (page perso) . Évalué à  6 .

      Que devrais-je dire ? J'ai certes initié la dépêche et écrit un paragraphe ou deux, fait de la relecture mais en terme d'ajout réel de contenu, je suis bien derrière d'autres. Il me paraît normal de remercier tous les contributeurs. Mais j'espère que cet article permettra de montrer à ceux qui n'osent pas encore rédiger que l'espace de rédaction collaboratif permet de grandes choses sans trop d'efforts :-) l'essayer c'est l'adopter.

      PS : et puis si tu te sens réellement coupable, j'ai une dépêche sur RHEL 5.9 qui t'attend à bras ouverts ;-)

    • [^] # Re: pas moi !

      Posté par (page perso) . Évalué à  3 .

      Que devrais-je dire ?
      J'avais commencé à écrire un ou 2 embryons de paragraphe, et regarde ce qu'ils sont devenus après quelques mois :)

      L'espace de rédac collaboratif, pour ca, c'est vraiment génial!

    • [^] # Re: pas moi !

      Posté par . Évalué à  1 .

      Idem. J'ai corrigé quelques tournures et fautes d'orthographe tout au plus.

      • [^] # Re: pas moi !

        Posté par . Évalué à  10 .

        Toujours la même chose : tous impliqués jusqu'au cou, mais aucun coupable.

  • # Que je suis vieux...

    Posté par . Évalué à  10 .

    Que de souvenirs.
    Je m'en étais servi pour faire tourner des bornes d'appel prix dans des supermarchés. NetBSD version 1.6
    Avec appel à une base de données stockée sur plusieurs serveurs (redondance). Avec lecteur de code-barre bien entendu. Et avec écran LCD graphique : http://article.gmane.org/gmane.comp.sysutils.lcdproc/6586

  • # VirtIO

    Posté par . Évalué à  2 .

    NetBSD intègre désormais des pilotes VirtIO ?
    C'est une grande nouvelle cela améliore fortement les performances lorsqu'on tourne en guest KVM et ajoute même des fonctionnalités intéressantes !
    Pour avoir utilisé NetBSD 5.1 sur un serveur quelques temps c'est un excellent OS très robuste et très léger.

    • [^] # Re: VirtIO

      Posté par . Évalué à  4 . Dernière modification : le 18/10/12 à 11:14

      Salut,
      Si ça t'intéresse, c'est la réponse d'un dev. Netbsd ( Jean-Yves Migeon) à propos des drivers Virtio, sur la mailing list de Netbsd.
      Il y a aussi un lien pour le benchmark:
      http://mail-index.netbsd.org/tech-kern/2012/08/08/msg013760.html

    • [^] # Re: VirtIO

      Posté par . Évalué à  1 .

      Bon ben ça marche pas, j'obtiens un kernel panic quand je lance NetBSD dans KVM… même avec un périphérique IDE.

  • # GCC

    Posté par (page perso) . Évalué à  6 .

    J'ai une petite question sur GCC. Est-ce que quelqu'un sait pourquoi c'est la version 4.5.3 qui est intégrée ?
    Cela ne peut pas être pour des questions de licence puisque le passage à la GPLv3 s'est effectué dans GCC 4.3. Donc je ne comprends pas bien pourquoi NetBSD intègre cette ancienne version de GCC qui est sortie il y à un an et demi. L'upstream est en 4.7 !

    Sinon bravo pour cette superbe news. C'est vraiment une démonstration de l'efficacité de la tribune de rédaction.
    A ce sujet n'hésitez pas à contribuer sur la prochaine news noyau initiée par antistress.

    • [^] # Re: GCC

      Posté par (page perso) . Évalué à  3 .

      J'ai deux questions sur le même thème, que je poste ici:

      Il est question de Clang dans l'article. Quels avantages et inconvénients a-t-il par rapport à GCC pour NetBSD ?

      N'y-a-t-il pas un compilateur historique hérité d'Unix ?

      • [^] # Re: GCC

        Posté par . Évalué à  6 .

        Salut,

        Sonnenberger travaille sur le support de LLVM/Clang dans la base et pkgsrc.
        L'un des avantages de Clang/LLVM qui intéresse, c'est qu'il a un ensemble de warning plus efficace que gcc ( en ce moment ça discute sévère pour l'activation de -Werror car apparemment ce n'est pas du tout stable avec pas mal de faux positif: ici entre les différentes versions).
        Clang est nettement moins aggressif sur l'optimisation du code ce qui permet un meilleur debogage.

        Par contre Clang/LLVM supporte nettement moins d'archi que gcc.

        un lien sur l'évolution de Clang/LLVM:
        http://mail-index.netbsd.org/tech-toolchain/2012/04/19/msg001862.html.

    • [^] # Re: GCC

      Posté par . Évalué à  10 .

      Salut,

      Netbsd supporte pas mal d'archi. et devoir compiler et crosscompiler l'OS (noyau+userland) doit représenter un gros boulot à chaque changement de version.
      C'est un travail de 3 ans pour tout stabiliser sur toutes les archi. La base s'est fixée à gcc 4.5
      pour la stabilisation.

    • [^] # Re: GCC

      Posté par . Évalué à  8 .

      La branche 4.5 est aussi celle de la branche stable Gentoo. Elle est encore maintenue upstream, la version 4.5.4 étant sortie en juillet. La version actuelle d’autres distributions stables (e.g. CentOS ou FreeBSD) utilise un gcc encore plus ancien.

      Le problème principal est que chaque nouvelle branche majeure de GCC vient casser un grand nombre de paquets, comme illustré sur les meta-rapports de bug pour GCC 4.6 ou GCC 4.7 sous Gentoo.

      Certaines distributions « bleeding edge » réussissent à s’en laver les mains en ayant un petit nombre de paquet et en refourgant le boulot à leurs utilisateurs au travers des fameux « user repositories ».

  • # Système de base

    Posté par (page perso) . Évalué à  3 .

    Le site de NetBSD inqique ceci:

    While NetBSD uses the GNU toolchain (compiler, assembler, etc), and certain other GNU tools, the entire kernel and the core of the userland utilities are shipped under a BSD licence.

    Est-ce qu'il y a un lieu sur internet où on peut trouver la liste des applications composant le système de base, et, détaillant parmi celles-ci, celles qui sont développées nativement par l'équipe de NetBSD, celles qui sont simplement importées dans NetBSD, celles qui sont sous licence BSD et celles qui sont sous d'autres licences?

  • # Pour votre prochain gestionnaire de paquets, pensez à CUDF/Dose

    Posté par . Évalué à  10 .

    À chaque fois que je vois un nouveau gestionnaire de paquet qui sort et qui doit gérer les épineux problèmes de gestion des dépendances lors des mis à jour, je sens un petit pincement au cœur à l'idée qu'il y ait une base de code de plus qui essaie de résoudre ce problème difficile de façon approximative et certainement peu satisfaisante.

    Il y a eu en europe deux projets de recherche européens, EDOS puis MANCOOSI, dédiés aux problématiques liées aux grosses bases de paquet. Entre autre résultat (par exemple des outils d'administration des répertoires de paquets côté distribution), ils ont défini un format généralisé d'expression des dépendances d'un paquet, CUDF, qui permet d'utiliser des SAT solveurs divers pour avoir des résultats de bonne qualité.

    (Pour quelques exemples de problème de mise à jour, cf. cette page de résultats du projet EDOS qui compare plusieurs algorithmes de révolution, libres.)

    La prochaine fois que vous voulez créer un gestionnaire de paquet, ne réinventez pas la roue et utilisez CUDF et les outils associé pour une gestion raisonnée des dépendances.

    • [^] # Re: Pour votre prochain gestionnaire de paquets, pensez à CUDF/Dose

      Posté par . Évalué à  2 .

      On avait eu vent du sujet il y a 2 ans : CUDF, ou la résolution de dépendances universelle.

      D'ailleurs à partir de wheezy, ça commence à pouvoir être utilisé dans Debian : http://packages.debian.org/wheezy/apt-cudf

      Et à titre personnel je te remercie car j'ai plusieurs fois recherché cette info sans trouver plus d'infos.

      Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

    • [^] # Re: Pour votre prochain gestionnaire de paquets, pensez à CUDF/Dose

      Posté par (page perso) . Évalué à  4 .

      CUDF étant en Ocaml et sous LGPL, je doute que ça intéresse les développeurs NetBSD.

      « Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » Raymond Devos

      • [^] # Re: Pour votre prochain gestionnaire de paquets, pensez à CUDF/Dose

        Posté par . Évalué à  7 .

        Enfin CUDF a l'air d'être une spécification et il propose une implémentation via libcudf qui est en Ocaml.
        Je pense donc que même pour les développeurs NetBSD tout n'est pas à jeter ;)

        • [^] # Re: Pour votre prochain gestionnaire de paquets, pensez à CUDF/Dose

          Posté par . Évalué à  10 . Dernière modification : le 19/10/12 à 10:12

          Tout à fait. Il s'agit d'une spécification pour une approche plus propre (car plus formalisée) des problèmes de gestion de dépendances. CUDF est un format texte prévu pour que les gestionnaires de paquets expriment leurs problèmes de mise à jour dans ce format, le passent à un solveur séparé donc c'est la spécialité, et reçoivent des indications sur le bon plan de mise à jour à choisir (garder telle version de tel paquet pour éviter un conflit entre la dépendance de sa version suivante et tel truc que l'utilisateur tient à obtenir, etc.).

          Le jour où des guéguerres de licences (L)GPL/BSD empêcheront la communauté du logiciel libre de profiter de la recherche qui est fait par ses propres membres et dans son intérêt, on sera tombé bien bas.

          Et les problématiques de CUDF ne concernent pas que les distributions de systèmes d'exploitation, mais les gestionnaires de paquets au sens large : les outils de packaging de langages de programmation comme Ocaml, Python, Haskell, Ruby, la gestion des plugins Eclipse, potentiellement les scripts Emacs, classes LaTeX, etc. Tout ce qui a évolué vers un "gestionnaire de paquet" séparé de l'outil d'installation de logiciels de la distribution (souvent parce que ces outils n'étaient pas jugés assez flexible ou que la communauté en question voulait quelque chose de portable) peut bénéficier d'une approche commune et raisonnée à la gestion des dépendances, et de la délégation de certaines responsabilités à des outils spécialisés. On a tout à gagner à centraliser les efforts sur ce front difficile (et pour lequel les problèmes ne se font souvent sentir qu'une fois que le nombre de paquets atteint une masse critique, moment où il peut être difficile de changer les algorithmes ad-hoc employés jusque là).

  • # Vite la portabilité sur la Framboise Pi !

    Posté par . Évalué à  0 .

    Je n'attends qu'une chose, que la portabilité soit complète (réseau et USB) pour l'installer à la place de de la Debian.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.