la sortie , un systÚme d'exploitation à noyau hybride, en 2003 dans le but d'un développement alternatif de la branche FreeBSD 4.x. Parmi les caractéristiques de DragonFly BSD, on peut noter un systÚme de fichiers versionné distribué , le support du démarrage de noyaux « virtuels » du systÚme en tant que processus utilisateurs, la possibilité de mise en cache des données et des métadonnées du systÚme de fichiers sur des disques SSD, des liens symboliques variant en fonction du contexte, ainsi que la possibilité de suspendre des processus tout en conservant leur état sur disque, un noyau hybride utilisant des threads légers (LWKT).
Principales , ajoutés dans DragonFlyBSD 5.8 :
- L'utilitaire , destiné à la compilation locale et à la gestion de dépÎts binaires DPort. Le parallélisme dans la compilation d'un nombre arbitraire de ports est supporté, en tenant compte de l'arbre des dépendances. Dans la préparation d'une nouvelle version de DPort, un grand nombre de modifications ont également été effectuées pour accélérer la compilation de plusieurs paquets dépendants.
- Un mécanisme efficace de masquage des signaux a été réalisé dans libc, permettant de protéger malloc*() et des fonctions similaires contre les problÚmes dus à leur interruption par un signal. Des fonctions sigblockall() et sigunblockall() ont été proposées pour effectuer un blocage et un déblocage à court terme des signaux sans appels systÚme. De plus, dans libc, la fonction strtok() a été adaptée pour une utilisation dans des applications multithread, des constantes TABDLY, TAB0, TAB3 ont été ajoutées ainsi qu'une fonction __errno_location pour améliorer le support des dports.
- Les composants de l'interface DRM (Direct Rendering Manager) sont synchronisés avec le noyau Linux 4.9, avec le portage de certaines fonctionnalités du noyau 4.12 destiné à améliorer le support de Wayland.
Le driver drm/i915 pour GPU Intel est synchronisé avec le noyau Linux 4.8.17, avec le transfert de code du noyau 5.4 pour le support de nouveaux chipsets (Skylake, Coffeelake, Amber Lake, Whiskey Lake et Comet Lake). Le driver drm/radeon pour les cartes graphiques AMD est synchronisé avec le noyau Linux 4.9. - Les algorithmes de pagination de la mémoire virtuelle ont été considérablement améliorés, permettant de résoudre ou de minimiser les problÚmes de réactivité de l'interface utilisateur en cas de pénurie de mémoire. Les problÚmes de blocage de Chrome/Chromium en cas de manque de mémoire systÚme ont été résolus.
- AmĂ©lioration de la mise Ă l'Ă©chelle des cĆurs sur les systĂšmes avec un grand nombre de cĆurs de processeurs. RĂ©duction du temps de demande des pages de mĂ©moire virtuelle. RĂ©duction de la concurrence SMP en cas de pĂ©nurie de mĂ©moire. Augmentation de l'efficacitĂ© de l'appel « open(⊠O_RDWR) ».
- Réécriture du générateur de nombres pseudo-aléatoires dans le noyau. Le pilote RDRAND est adapté pour accumuler de l'entropie de tous les CPU. Réduction de l'intensité
et de la taille du soutien RDRAND, qui consommait auparavant 2 à 3 % du temps CPU en idle. - Ajout de nouveaux appels systÚme realpath, getrandom et lwp_getname (a permis d'implémenter pthread_get_name_np).
- Ajout de la prise en charge des mĂ©canismes de protection SMAP (Supervisor Mode Access Prevention) et SMEP (Supervisor Mode Execution Prevention). SMAP permet de bloquer l'accĂšs aux donnĂ©es dans l'espace utilisateur depuis le code avec privilĂšges exĂ©cutĂ© au niveau du noyau. SMEP empĂȘche le passage du mode noyau Ă l'exĂ©cution de code situĂ© au niveau utilisateur, ce qui permet de bloquer l'exploitation de nombreuses vulnĂ©rabilitĂ©s dans le noyau (le shellcode ne sera pas exĂ©cutĂ© car il est situĂ© dans l'espace utilisateur);
- Réécriture des variables sysctl pour configurer Jail. Ajout de la possibilité de monter nullfs et tmpfs depuis Jail.
- Ajout d'un mode de secours pour le systĂšme de fichiers HAMMER2, qui peut ĂȘtre utilisĂ© lors de la rĂ©cupĂ©ration aprĂšs un Ă©chec. Dans ce mode, la destruction des snapshots est autorisĂ©e lors de la mise Ă jour des inodes sur place (permet de supprimer des fichiers et des rĂ©pertoires en l'absence d'espace disque libre, lorsque le mĂ©canisme de copy-on-write ne peut pas ĂȘtre utilisĂ©). La performance a Ă©tĂ© considĂ©rablement amĂ©liorĂ©e grĂące Ă la refonte du support de la gestion des threads dans HAMMER2. Le processus de vidage des buffers (flush) a Ă©tĂ© considĂ©rablement amĂ©liorĂ©.
- Fiabilité et performance de TMPFS améliorées. Efficacité accrue en cas de manque de mémoire libre dans le systÚme.
- Dans la pile réseau pour IPv4, prise en charge des préfixes /31 ().
Dans le tap, amélioration du traitement de ioctl SIOCSIFMTU pour prendre en charge MTU > 1500. Ajout de la prise en charge de SIOCSIFINFO_IN6 et SO_RERROR. - Synchronisation du pilote iwm de FreeBSD avec la prise en charge des puces sans fil Intel (ajout de la prise en charge iwm-9000 et iwm-9260).
- Ajout de fonctions basename() et dirname() compatibles avec Linux pour améliorer la compatibilité dans les ports.
- Transfert depuis FreeBSD de fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 dans libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Fonctionnalités transférées depuis OpenBSD dans math.h.
- Les versions des composants tiers ont été mises à jour, y compris Binutils 2.34, Openresolv 3.9.2 et DHCPCD 8.1.3. Le compilateur gcc-8 est utilisé par défaut.
Source : opennet.ru
