第 1.15 节 FreeBSD 开发计划

FreeBSD 的生命周期为每个大版本 5 年,小版本是发布新的小版本版后 +3 个月。

FreeBSD 14 开发计划 FreeBSD 14.0 Planningopen in new window

FreeBSD 15 开发计划 FreeBSD 15.0 Planningopen in new window

FreeBSD 14.0 开发计划

✔️ 已完成

已提交到代码库的任务。

任务负责人提交 / 评审 / 补丁
基于 nvlist(9) 的 /dev/sndstat 接口khngc96151d33509open in new window
bhyve 配置jhb621b5090487dopen in new window
现代的 virtio (1.x) 客户端驱动程序bryanv9da9560c4dd3open in new window
支持 KTLS 的 chacha20+poly1035 AEADjhb9c64fc40290eopen in new window
来自 GitHub 的 Sound pin 补丁impef790cc7407eopen in new window
vnode 的 Hole-punchingkhngde2e15295966open in new window
用于 FreeBSD 客户端的 kvmclock 驱动程序allanjude6fa88a627d5eopen in new window6c69c6bb4c7fopen in new window
minidump 实时系统mhorne/allanjude0a5c04a8926eopen in new window
KTLS NIC 接收kib/hselaskeyfe8c78f0d202open in new window
通过 /dev/crypto 删除非对称加密支持jhb76681661be28open in new window
移除 mipsimpc09981f1422eopen in new window 和其他
移除 svnlitelwhsua2bc17474b96open in new window0333fad1b7e0open in new window
移除 an(4)manu663b174b5b53open in new window
NVMe 错误恢复重写imp9bbd0a7ca999open in new window502dc84a8b67open in new window
Union GEOM 功能kirkc7996ddf8000open in new window
移除 ISA 声卡驱动emastedf51e63eb5d7 (ad1816)open in new window aa83e9b189d6 (ess)open in new window 754decef384a (gusc)open in new window 5126e5eeeb5e (mss)open in new window 5126e5eeeb5e (sbc/sb8/sb16)open in new window
DPAA2bz正在与 Dmitry Salychev 合作 https://github.com/mcusim/freebsd-src/commits/lx2160acex7-dev
wireguard 模块emaste可能在 6 月/7 月底合并
OpenVPN DCOkpD34340open in new window
ARM64 PMC: CMN-600 驱动程序ray / tsoomeD32321open in new window
ARM64 PMC: DMN-620 驱动程序ray / tsoomeD32670open in new window
Review inpcb 同步 (SMR)glebiusde2d47842e88open in new window
从非 FreeBSD 平台交叉构建 ftp/(mini-)memstick/disc1 镜像jrtc27各种提交
为 IPsec 提供 chacha20+poly1035 AEAD 支持ae9f8f3a8e9ad4open in new window
ARM64 上的 IPMI 附件allanjude + AmpereD28707open in new window
在 ZFS 中硬件加速 SHA2allanjudePR252316open in new window
通过 MAC 限制调试器命令mhorneD35370open in new window
ARM64 上的 KASANmhorne89c52f9d59faopen in new window
tarfs (挂载压缩的 tar 文件)des / thj69d94f4c7608open in new window
amd64 和 aarch64 的 LinuxBoot 支持imp7df08a14e3fdopen in new window (amd64) 75cbdbc9832eopen in new window (aarch64)
sys/endian.h 和 byteswap.h 的 Linux 兼容性impD32051open in new window
Intel Icelake HWPMCallanjude + Alexander@NetApp / 可能 mhorne已由 mav@ 合并 52d973f52c07open in new window
Intel Alder Lake HWPMCmav18054d0220cfopen in new window

✈️ 已有

以下是已存在于外部代码树中的项目,可以在接下来的两年内合并到主线代码树,或在下一个发布版本之前合并(可能需要一些工作以达到可合并状态)。

项目负责人提交 / 评审 / 补丁
bhyve/arm64andrew/UPBAndrews GitHub 分支open in new window
Morello 支持合并 (来自 CHERI)brooks/jhb由于时间/资金问题,可能在 14.x 时进行重构/准备,但实际支持暂时未确定
将 stdio fileno 转换为 intjhb需要解决 gnulib 的问题以使 FILE 不透明化
ARM Mali Txxx/Gxx GPU 支持 (Panfrost)br已存在,但取决于 DRM for arm64 项目open in new window
camcorder / camdumpimp需要一些修改和解决依赖问题 (预计在 2023 年第一季度进行评审)
9pfs 客户端 (将文件系统从主机传递到客户机)stevek(https://github.com/Juniper/virtfs)
DTrace 用于虚拟机 (从主机) 的支持,但差异巨大dstolfa(https://github.com/cadets/freebsd)
virtqueue SDT 探针 (用于监视请求/响应)stevek预计将贡献补丁
修复 mdroot 竞争条件 (md(4) 可能在生成 conf0 之前未将其添加到 rootdevnames)stevek预计将贡献补丁
dwc_mmc SDIOmanu--
完整的 GPU Passthrough 支持 bhyve(8) 和 edk2manu / corvin--
在 amd64/armv7/arm64 中将 DRM 放入基本系统manu--
nvme 动态命名空间支持imp补丁正在进行中,预计在 2022 年第三季度进行评审
jectl (用于 jail 的启动环境)rew / allanjudegithub: jectlopen in new window - 正在测试
通过 USB xHCI 调试进行串行控制台hrs正在进行中,预计在 2022 年 7 月完成
syslogd(8) 重写以支持 TCP 和 TLShrs正在进行中,预计在 2022 年 7 月完成
各种 bhyve 暂停/恢复修复有一些已合并
arm64 从 iscsi 引导emaste / dchsrcopen in new window https://reviews.freebsd.org/D34475 + https://reviews.freebsd.org/D34476 + https://reviews.freebsd.org/D34477
arm64 Scalable Vector Extensionandrew--
pmcstat 用于 PIEsjrtc27D39595open in new window
pmcstat 用于独立调试文件jrtc27正在进行中(重新处理 D39626open in new window
lposix - 将更多 POSIX 函数添加到基本系统的 fluakevansD39083open in new window
jail devctldch / jamiejail_devctlopen in new window 约 200 行代码
记住原始接口名称allanjudeD28247open in new window

Need

这些是未来两年内某些人需要支持产品或服务的事项:

项目负责人已提交 / 审查 / 补丁 / 状态
将 V4l2 纳入基本系统manu
将 USB 视频类别纳入基本系统manu
默认使用 pkgbasemanu/emaste
802.11ac Wi-Fi 支持bz进行中
TB3 / USB4 支持!! (如果感兴趣,请与 emaste 联系)(erj 和 hps 对此感兴趣) [usb4]https://github.com/hselasky/usb4 [dpc for hotplug]https://github.com/linnemannr/dpc
DDC 显示器控制支持 (ddccontrol)manu几乎完成,内核支持已存在,需要移植 Linux 工具
内联 IPsec (NIC 辅助加密 / 解密)kib/hselaskey/np
异构核心调度器 (big.LITTLE / AlderLake)emaste/mav/thj--
重新审视安全选项的默认值emaste/mw--

Want

以下是令人愿望的但并非至关重要的事项:

项目负责人已提交 / 审查 / 补丁 / 状态
eBPF (用例,例如,linuxemul seccomp 需要这个功能;可能还有软件定义网络和 Linux 风格的跟踪) https://ebpf.io/summit-2020/hrs (可能作为 mentee: 0mp)
故障安全的 ZFS 引导码allanjude/impbootonce 已完成,现在需要处理较困难的部分 (引导码本身)
smbfs (客户端) v2 & v3!!??
更好的自动调整功能,例如读/写缓存 (来自 Axiado 的演讲)imp
NPFgnn??
在 netmap 上使用 VPPgnn??
路由套接字重构gnn??
ZFS ARC <-> vm 页面集成jeff??
MPSAFE sysctl 处理程序kaktus??部分完成
杀死 Giant 并将其删除 (寻求帮助)imp--
在 NEWBUS 中杀死 Giantimp--
在 AT 键盘驱动程序和相关驱动程序中杀死 Giant (需要帮助)imp--
jailctl: 在基本系统中自动化 jail.conf 工具,带有防火墙集成https://twitter.com/antranigv ??(公司有原型,需要整理)
将更多 ifconfig 的功能移到 libifconfig 中freqlabs仍在进行中 2021-06-10
来自 ${Vendor} 的 Cellular 驱动程序gnn??
exFAT 文件系统支持delphij / cemD27376open in new window
suspend/resume arm64 + riscvmhorne--
低功耗待机/S0ix 支持 (参见 bwidawsky 的早期工作)jhb??(可能需要一个链接指向 Ben 的分支)
使 USE_LINUX=yes 对 arm64 有效,并添加 arm64 的 portsVincent Milum Jr. / emaste--
分离 bpf(9) 和 ifnet(9)glebius-
netgraph(9) 的同步,很可能使用 epoch(9)glebius (可以提供建议)-
更好的声音 Quirk 系统 (寻求帮助)imp/emaste-
Virtio-fs (使用 fuse 协议作为传输)stevek/jhb-
QEMU-user 上游推进工作imp/kevansWarner 上游推进,Kyle 日常,需要更多帮助来整合 Kyua 测试
virtio 监控工具stevek进行中
s6-rc 作为 pid 1crest需要完善
将 pf(4) 语法与现代 OpenBSD 同步!!--
loader - 命令获取的任何信息也应该可供 loader 使用的语言stevek--
英特尔 SKL HDA 声音控制器 (在 X1 Carbon 7 代中) 固件open in new window https://bugs.freebsd.org/242527emaste(麦克风需要,但较新的 Framework 笔记本上的麦克风工作正常)
类似于 Cisco/Linux 的 "ip" 命令cy--
容器的 OCI 支持dfr--
适用于单个文件/overlayfs 的 nullfsdfr--
nvidia.ko 的本机 vt(4) 后端jhb--
dhcpcdemasteD22012open in new windowfreebsd-net threadopen in new window
tmux???如果我们无法得到 pkgbase,则作为全能解决方案将 tmux 纳入基本系统

候选删除项

以下是我们可能希望在 14.0 版本中弃用的项目。可能需要进一步讨论以达成共识。

项目负责人已提交 / 审查 / 补丁
Firewire 支持imp--
armv6?imp/manu--
ARM SoC 支持审查imp由 manu 完成?
telnetdbrooks0eea46fb1f83open in new window
ftpd (针对 1314)emaste/allanjude移植至:ftp/freebsd-ftpd
smbfs v1 (内核中最后一个使用 DES 的用户)emaste在有替代品之前无法删除
sendmailbapt现在默认为 dma
引导加载程序 4th 支持impPR257018open in new window 先解决 (lua/ZFS/... 非 UEFI PXE 加载程序太大)
NIS "crypto"cem--
NISkaktus仍有活跃的用户
剩余的 ATM 支持 (netgraph)brooksaf0cc0b22362open in new window
遗留的过时 CAM 驱动程序 (FCP) (twe/twa)imp8722e05ae149open in new window (twa) 062a7b918facopen in new window (twe)
publicwkey(5)manuD30683open in new window D30682open in new window
targ(4) CAM target driverimp--
fingerd??--
安装程序中的安全设置菜单emaste--
3dfx(4)jhb--
syscons(4) (至少弃用)emaste / manu--

图例

符号含义
??状态有问题
!!需要新的负责人

FreeBSD 15.0 开发计划

✔️ 已完成

已提交到代码库的事项。

事项负责人提交 / 审查 / 补丁

✈️ 已有事项

已存在于代码库之外的事项,可以在接下来的两年内或者在下一个发布版本之前合并进来(可能需要进一步工作以满足合并要求)。

事项负责人提交 / 审查 / 补丁
对于 amd64 的 kboot 支持imp
NVMe-oF/TCPjhb
在 mv 和 install 中添加 copy_file_range()pjd
更好的 copy_file_range() fallback/wrapperpjd
arm64 分支目标标识andrew
arm64 SVEandrew
amd64/arm64 救援内核markj / Klara
arm64 bhyveandrew
iovec wrappersbrooks
在 bhyve 中支持单步执行 AMD CPUjhb Bojan
在 bhyve 客户机中支持硬件监视点jhb Bojan
DDB 通过 CTF 进行优化打印jhb Bojan
整合来自我的谷歌代码之夏学生的代码的加载器命令行编辑功能imp需要协助
使用 dtrace 进行内联函数追踪markj Christos
谷歌代码之夏:squashfschuck

💸 需要

在接下来的两年内,某些人需要支持产品或服务的事项。

事项负责人提交 / 审查 / 补丁 / 状态
新的 ELF 内核转储格式jhb markj
完成 pkgbaseemaste
Poudriere 支持无需工具链的 jailallanjude brd
外部工具链支持brooks
预提交 CI(代码库、文档)lwhsu imp bofh
预提交 CI(Port)lwhsu 将与 bapt 和 decke 核实
本地和云开发者 CIbofh lwhsu
其他 CI 改进lwhsu
通用闪存存储驱动loos目前在一些嵌入式部署中需要,未来可能更加通用。即将支持 Intel 平台。

🥺 想要

这些是希望有但不是必要的事项。

事项负责人提交 / 审查 / 补丁 / 状态
TPM 支持(GELI,ZFS)allanjude--
smbfs 替代(v2 或更好)emaste jhixson--
9pfs 客户端bkumara,khng / Juniper--
overlayfsthj / Klara
关于 syscall 表生成的更新(makesyscalls.lua 的库化)imp
简化的安装程序(单个磁盘,有更好的默认值,例如按回车键完成)emaste brd
每个文件的 nullfsdfr
更多的容器支持emaste合作学生
MINIMAL 内核imp
启动加载程序支持 devmatchimp manu
重写 config(8)(使用 Lua?)imp kevans
跨 kldxrefbrooks / jhb(kevans 有一种有些混乱的原型或两种)
合并 devmatch 和 devd(库)impmeena 愿意协助
调度器和 VFS 文档覆盖范围mhorne
减少 GIANT 的修改jhb imp
vt(4)的更好 i18n 支持(CJK 字体,Unicode 字体显示(例如表情符号),输入法)fanchung在 GSoC'21 有一个IME PoCopen in new window
以 tarfs 为根目录imp
内核中对 Rust 的支持brooks
用户空间中对 Rust 的支持brooks
用于 ZFS 的 netlink(zfsd/zed)allanjude
用 netlink 替代 devd 套接字bapt内核部分已完成
将 login.conf 转为 UCL 格式meenaallanjude 已有一些补丁:D25365open in new window
剩余网络工具的改进(lixo)meena
层次化动态登录类别ngor,meena

🗑️ 候选删除项 🪓

这些是我们可能希望弃用的事项。可能需要进一步讨论以达成共识。

事项负责人提交 / 审查 / 补丁
Firewire 🔥imp
armv6imp/manu
SoC 支持审查imp/manu/mhorne
ftpdallanjude
删除 DES 的相关模块des?
sendmailbapt?
bootloader 中的 forth 支持 🔪imp/stevek
NIS 服务器组件des?
publicwkey(5)manuD30683open in new windowD30682open in new window
targ(4) CAM 目标驱动程序imp
fingerd??meena 自愿负责
3dfx(4)和*_isajhb
syscons(4)(至少弃用)emaste / manu
审查以太网驱动程序(100Mbps、少见的 1/10Gbps)brooks
审查 CAM 驱动程序(pms(4)等)imp
ACPI 安全定时器cperciva
freebsd-updatecperciva如果 pkgbase 准备好
32 位平台(内核,保留 compat32)jhb
arm*soft 移除(支持构建完整的软件系统,在删除 libsoft hack 构建和 ld.so 支持后,这是唯一剩下的部分)imp

图例

符号含义
??状态有问题
!!需要新的负责人