经过一年多的开发,DragonFlyBSD 6.0 正式发布。它是一个混合内核操作系统,于 2003 年创建,旨在替代 FreeBSD 4.x 分支。DragonFlyBSD 的特性包括分布式版本化文件系统 HAMMER、支持将“虚拟”系统内核加载为用户进程、能够在 SSD 驱动器上缓存文件系统数据和元数据、上下文感知变体符号链接、能够在磁盘上冻结进程并保留其状态,以及使用轻量级线程 (LWKT) 的混合内核。
DragonFlyBSD 6.0 中添加的主要改进:
- 虚拟文件系统 (vfs_cache) 缓存系统已完成现代化改造。此次改造提升了文件系统的可靠性和性能。通过调用 cache_fullpath() 函数,改进了全路径缓存。
- 用于本地构建和维护 DPort 二进制仓库的 dsynth 工具已得到显著改进。新版本现在允许您显式指定 ports-mgmt/pkg 来构建软件包,增加了对 ZSTD 算法的支持,移除了“prepare-system”命令中过时的软件包,并增加了在构建过程中使用 ccache 的功能。
- HAMMER2 文件系统的开发工作一直在持续进行。它具备诸多特性,例如独立快照挂载、可写快照、目录级配额、增量镜像、支持多种数据压缩算法,以及支持跨多主机数据分布的多主镜像。新版本初步支持多卷分区,允许将多个本地驱动器合并为一个分区(网络多主模式尚不支持)。分区扩展功能已实现(新增了 hammer2 growfs 命令)。此外,重复数据删除方面的一些严重问题也已得到解决。
- tmpfs 文件系统的性能显著提升。新增了 mounttmpfs 工具,简化了将 /tmp 和 /var/run 目录放置在 tmpfs 文件系统上的操作。
- 添加了不包含 GPL 许可代码的 Ext2 文件系统实现。
- 虚拟内存系统已进行重大更改,包括移除对 MAP_VPAGETABLE mmap() 的支持,该支持是 vkernel(作为用户进程运行的虚拟内核)所必需的。vkernel 计划在下一个版本中重新引入,并使用 HVM 进行重建。
- callout*() 调用的实现方式已重新设计。
- 改进了 EFI 帧缓冲区支持。
- 为sysmouse驱动程序添加了evdev支持。
- 新增了对 clock_nanosleep、fexecve、getaddrinfo 和 timeout 的调用。已实现对 fcntl(F_GETPATH) 以及 IP_SENDSRCADDR 和 SO_PASSCRED 标志的支持。
- 内核中已添加了 kmalloc_obj 子系统,以减少内存碎片。
- 对 AMD 处理器 SMN(系统管理网络)子系统的 amdsmn 驱动程序的支持已从 FreeBSD 移植过来。
- devd 提供无线适配器的自动检测,并为它们创建 wlanX 网络接口。
- sysclock_t 类型已从 32 位值转换为 64 位值。
- 系统调用执行链已得到优化。
- 在内存不足的情况下优化性能。
- jail 隔离机制已进行了重大重构。jail.* sysctl 参数已重新结构化。
- 新增对 Intel I219 以太网控制器的支持,并扩展了对 Realtek 芯片的支持。bnx 驱动程序现在支持 Broadcom NetXtreme 57764、57767 和 57787 芯片。
- 网络协议栈已更新,以支持 AF_ARP 地址族,该地址族代表 ARP 地址。
- DRM(直接渲染管理器)接口组件与核心同步 Linux 4.10.17. 更新了 Intel GPU 的 drm/i915 驱动程序。
- 默认串口吞吐量已从 9600 波特提高到 115200 波特。
- ifconfig 工具已更新,新增了“-f”选项,并能够按接口组筛选输出。
- shutdown、reboot、printf、test、sh、efivar 和 uefisign 工具的实现已与 FreeBSD 同步。
- 游戏 ching、gomoku、monop 和 cgram 已从 NetBSD 移植过来。
- 已包含 efidp 和 efibootmgr 这两个实用程序。
- pthreads 库的功能得到了扩展,增加了对 pthread_getname_np() 的支持。
- libstdbuf 库是从 FreeBSD 移植过来的。
- Libutil 现在支持从 NetBSD 移植过来的 sockaddr_snprintf()。
- 安装程序设置的密码允许使用特殊字符。
- zstd 软件包(版本 1.4.8)包含在基础软件包中。
- 第三方组件的更新版本包括 dhcpcd 9.4.0、grep 3.4、less 551、libressl 3.2.5、openssh 8.3p1、tcsh 6.22.02 和 wpa_supplicant 2.9。默认使用 gcc-8 编译器。
来源: opennet.ru
