第 1.15 节 FreeBSD 开发计划
FreeBSD 的生命周期为每个大版本 5 年,小版本是发布新的小版本版后 +3 个月。
FreeBSD 14 开发计划 FreeBSD 14.0 Planning
FreeBSD 15 开发计划 FreeBSD 15.0 Planning
FreeBSD 14.0 开发计划
✔️ 已完成
已提交到代码库的任务。
任务 | 负责人 | 提交 / 评审 / 补丁 |
---|---|---|
基于 nvlist(9) 的 /dev/sndstat 接口 | khng | c96151d33509 |
bhyve 配置 | jhb | 621b5090487d |
现代的 virtio (1.x) 客户端驱动程序 | bryanv | 9da9560c4dd3 |
支持 KTLS 的 chacha20+poly1035 AEAD | jhb | 9c64fc40290e |
来自 GitHub 的 Sound pin 补丁 | imp | ef790cc7407e |
vnode 的 Hole-punching | khng | de2e15295966 |
用于 FreeBSD 客户端的 kvmclock 驱动程序 | allanjude | 6fa88a627d5e 和 6c69c6bb4c7f |
minidump 实时系统 | mhorne/allanjude | 0a5c04a8926e |
KTLS NIC 接收 | kib/hselaskey | fe8c78f0d202 |
通过 /dev/crypto 删除非对称加密支持 | jhb | 76681661be28 |
移除 mips | imp | c09981f1422e 和其他 |
移除 svnlite | lwhsu | a2bc17474b96 和 0333fad1b7e0 |
移除 an(4) | manu | 663b174b5b53 |
NVMe 错误恢复重写 | imp | 9bbd0a7ca999 和 502dc84a8b67 |
Union GEOM 功能 | kirk | c7996ddf8000 |
移除 ISA 声卡驱动 | emaste | df51e63eb5d7 (ad1816) aa83e9b189d6 (ess) 754decef384a (gusc) 5126e5eeeb5e (mss) 5126e5eeeb5e (sbc/sb8/sb16) |
DPAA2 | bz | 正在与 Dmitry Salychev 合作 https://github.com/mcusim/freebsd-src/commits/lx2160acex7-dev |
wireguard 模块 | emaste | 可能在 6 月/7 月底合并 |
OpenVPN DCO | kp | D34340 |
ARM64 PMC: CMN-600 驱动程序 | ray / tsoome | D32321 |
ARM64 PMC: DMN-620 驱动程序 | ray / tsoome | D32670 |
Review inpcb 同步 (SMR) | glebius | de2d47842e88 |
从非 FreeBSD 平台交叉构建 ftp/(mini-)memstick/disc1 镜像 | jrtc27 | 各种提交 |
为 IPsec 提供 chacha20+poly1035 AEAD 支持 | ae | 9f8f3a8e9ad4 |
ARM64 上的 IPMI 附件 | allanjude + Ampere | D28707 |
在 ZFS 中硬件加速 SHA2 | allanjude | PR252316 |
通过 MAC 限制调试器命令 | mhorne | D35370 |
ARM64 上的 KASAN | mhorne | 89c52f9d59fa |
tarfs (挂载压缩的 tar 文件) | des / thj | 69d94f4c7608 |
amd64 和 aarch64 的 LinuxBoot 支持 | imp | 7df08a14e3fd (amd64) 75cbdbc9832e (aarch64) |
sys/endian.h 和 byteswap.h 的 Linux 兼容性 | imp | D32051 |
Intel Icelake HWPMC | allanjude + Alexander@NetApp / 可能 mhorne | 已由 mav@ 合并 52d973f52c07 |
Intel Alder Lake HWPMC | mav | 18054d0220cf |
✈️ 已有
以下是已存在于外部代码树中的项目,可以在接下来的两年内合并到主线代码树,或在下一个发布版本之前合并(可能需要一些工作以达到可合并状态)。
项目 | 负责人 | 提交 / 评审 / 补丁 |
---|---|---|
bhyve/arm64 | andrew/UPB | Andrews GitHub 分支 |
Morello 支持合并 (来自 CHERI) | brooks/jhb | 由于时间/资金问题,可能在 14.x 时进行重构/准备,但实际支持暂时未确定 |
将 stdio fileno 转换为 int | jhb | 需要解决 gnulib 的问题以使 FILE 不透明化 |
ARM Mali Txxx/Gxx GPU 支持 (Panfrost) | br | 已存在,但取决于 DRM for arm64 项目 |
camcorder / camdump | imp | 需要一些修改和解决依赖问题 (预计在 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 SDIO | manu | -- |
完整的 GPU Passthrough 支持 bhyve(8) 和 edk2 | manu / corvin | -- |
在 amd64/armv7/arm64 中将 DRM 放入基本系统 | manu | -- |
nvme 动态命名空间支持 | imp | 补丁正在进行中,预计在 2022 年第三季度进行评审 |
jectl (用于 jail 的启动环境) | rew / allanjude | github: jectl - 正在测试 |
通过 USB xHCI 调试进行串行控制台 | hrs | 正在进行中,预计在 2022 年 7 月完成 |
syslogd(8) 重写以支持 TCP 和 TLS | hrs | 正在进行中,预计在 2022 年 7 月完成 |
各种 bhyve 暂停/恢复修复 | 有一些已合并 | |
arm64 从 iscsi 引导 | emaste / dch | src https://reviews.freebsd.org/D34475 + https://reviews.freebsd.org/D34476 + https://reviews.freebsd.org/D34477 |
arm64 Scalable Vector Extension | andrew | -- |
pmcstat 用于 PIEs | jrtc27 | D39595 |
pmcstat 用于独立调试文件 | jrtc27 | 正在进行中(重新处理 D39626) |
lposix - 将更多 POSIX 函数添加到基本系统的 flua | kevans | D39083 |
jail devctl | dch / jamie | jail_devctl 约 200 行代码 |
记住原始接口名称 | allanjude | D28247 |
Need
这些是未来两年内某些人需要支持产品或服务的事项:
项目 | 负责人 | 已提交 / 审查 / 补丁 / 状态 |
---|---|---|
将 V4l2 纳入基本系统 | manu | |
将 USB 视频类别纳入基本系统 | manu | |
默认使用 pkgbase | manu/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/imp | bootonce 已完成,现在需要处理较困难的部分 (引导码本身) |
smbfs (客户端) v2 & v3 | !! | ?? |
更好的自动调整功能,例如读/写缓存 (来自 Axiado 的演讲) | imp | |
NPF | gnn?? | |
在 netmap 上使用 VPP | gnn?? | |
路由套接字重构 | gnn?? | |
ZFS ARC <-> vm 页面集成 | jeff?? | |
MPSAFE sysctl 处理程序 | kaktus?? | 部分完成 |
杀死 Giant 并将其删除 (寻求帮助) | imp | -- |
在 NEWBUS 中杀死 Giant | imp | -- |
在 AT 键盘驱动程序和相关驱动程序中杀死 Giant (需要帮助) | imp | -- |
jailctl: 在基本系统中自动化 jail.conf 工具,带有防火墙集成 | https://twitter.com/antranigv ?? | (公司有原型,需要整理) |
将更多 ifconfig 的功能移到 libifconfig 中 | freqlabs | 仍在进行中 2021-06-10 |
来自 ${Vendor} 的 Cellular 驱动程序 | gnn?? | |
exFAT 文件系统支持 | delphij / cem | D27376 |
suspend/resume arm64 + riscv | mhorne | -- |
低功耗待机/S0ix 支持 (参见 bwidawsky 的早期工作) | jhb?? | (可能需要一个链接指向 Ben 的分支) |
使 USE_LINUX=yes 对 arm64 有效,并添加 arm64 的 ports | Vincent Milum Jr. / emaste | -- |
分离 bpf(9) 和 ifnet(9) | glebius | - |
netgraph(9) 的同步,很可能使用 epoch(9) | glebius (可以提供建议) | - |
更好的声音 Quirk 系统 (寻求帮助) | imp/emaste | - |
Virtio-fs (使用 fuse 协议作为传输) | stevek/jhb | - |
QEMU-user 上游推进工作 | imp/kevans | Warner 上游推进,Kyle 日常,需要更多帮助来整合 Kyua 测试 |
virtio 监控工具 | stevek | 进行中 |
s6-rc 作为 pid 1 | crest | 需要完善 |
将 pf(4) 语法与现代 OpenBSD 同步 | !! | -- |
loader - 命令获取的任何信息也应该可供 loader 使用的语言 | stevek | -- |
英特尔 SKL HDA 声音控制器 (在 X1 Carbon 7 代中) 固件 https://bugs.freebsd.org/242527 | emaste | (麦克风需要,但较新的 Framework 笔记本上的麦克风工作正常) |
类似于 Cisco/Linux 的 "ip" 命令 | cy | -- |
容器的 OCI 支持 | dfr | -- |
适用于单个文件/overlayfs 的 nullfs | dfr | -- |
nvidia.ko 的本机 vt(4) 后端 | jhb | -- |
dhcpcd | emaste | D22012,freebsd-net thread |
tmux | ??? | 如果我们无法得到 pkgbase,则作为全能解决方案将 tmux 纳入基本系统 |
候选删除项
以下是我们可能希望在 14.0 版本中弃用的项目。可能需要进一步讨论以达成共识。
项目 | 负责人 | 已提交 / 审查 / 补丁 |
---|---|---|
Firewire 支持 | imp | -- |
armv6? | imp/manu | -- |
ARM SoC 支持审查 | imp | 由 manu 完成? |
telnetd | brooks | 0eea46fb1f83 |
ftpd (针对 ~~13~~14) | emaste/allanjude | 移植至:ftp/freebsd-ftpd |
smbfs v1 (内核中最后一个使用 DES 的用户) | emaste | 在有替代品之前无法删除 |
sendmail | bapt | 现在默认为 dma |
引导加载程序 4th 支持 | imp | PR257018 先解决 (lua/ZFS/... 非 UEFI PXE 加载程序太大) |
NIS "crypto" | cem | -- |
NIS | kaktus | 仍有活跃的用户 |
剩余的 ATM 支持 (netgraph) | brooks | af0cc0b22362 |
遗留的过时 CAM 驱动程序 (FCP) (twe/twa) | imp | 8722e05ae149 (twa) 062a7b918fac (twe) |
publicwkey(5) | manu | D30683 D30682 |
targ(4) CAM target driver | imp | -- |
fingerd | ?? | -- |
安装程序中的安全设置菜单 | emaste | -- |
3dfx(4) | jhb | -- |
syscons(4) (至少弃用) | emaste / manu | -- |
图例
符号 | 含义 |
---|---|
?? | 状态有问题 |
!! | 需要新的负责人 |
FreeBSD 15.0 开发计划
✔️ 已完成
已提交到代码库的事项。
事项 | 负责人 | 提交 / 审查 / 补丁 |
---|
✈️ 已有事项
已存在于代码库之外的事项,可以在接下来的两年内或者在下一个发布版本之前合并进来(可能需要进一步工作以满足合并要求)。
事项 | 负责人 | 提交 / 审查 / 补丁 |
---|---|---|
对于 amd64 的 kboot 支持 | imp | |
NVMe-oF/TCP | jhb | |
在 mv 和 install 中添加 copy_file_range() | pjd | |
更好的 copy_file_range() fallback/wrapper | pjd | |
arm64 分支目标标识 | andrew | |
arm64 SVE | andrew | |
amd64/arm64 救援内核 | markj / Klara | |
arm64 bhyve | andrew | |
iovec wrappers | brooks | |
在 bhyve 中支持单步执行 AMD CPU | jhb Bojan | |
在 bhyve 客户机中支持硬件监视点 | jhb Bojan | |
DDB 通过 CTF 进行优化打印 | jhb Bojan | |
整合来自我的谷歌代码之夏学生的代码的加载器命令行编辑功能 | imp | 需要协助 |
使用 dtrace 进行内联函数追踪 | markj Christos | |
谷歌代码之夏:squashfs | chuck |
💸 需要
在接下来的两年内,某些人需要支持产品或服务的事项。
事项 | 负责人 | 提交 / 审查 / 补丁 / 状态 |
---|---|---|
新的 ELF 内核转储格式 | jhb markj | |
完成 pkgbase | emaste | |
Poudriere 支持无需工具链的 jail | allanjude brd | |
外部工具链支持 | brooks | |
预提交 CI(代码库、文档) | lwhsu imp bofh | |
预提交 CI(Port) | lwhsu 将与 bapt 和 decke 核实 | |
本地和云开发者 CI | bofh lwhsu | |
其他 CI 改进 | lwhsu | |
通用闪存存储驱动 | loos | 目前在一些嵌入式部署中需要,未来可能更加通用。即将支持 Intel 平台。 |
🥺 想要
这些是希望有但不是必要的事项。
事项 | 负责人 | 提交 / 审查 / 补丁 / 状态 |
---|---|---|
TPM 支持(GELI,ZFS) | allanjude | -- |
smbfs 替代(v2 或更好) | emaste jhixson | -- |
9pfs 客户端 | bkumara,khng / Juniper | -- |
overlayfs | thj / Klara | |
关于 syscall 表生成的更新(makesyscalls.lua 的库化) | imp | |
简化的安装程序(单个磁盘,有更好的默认值,例如按回车键完成) | emaste brd | |
每个文件的 nullfs | dfr | |
更多的容器支持 | emaste | 合作学生 |
MINIMAL 内核 | imp | |
启动加载程序支持 devmatch | imp manu | |
重写 config(8)(使用 Lua?) | imp kevans | |
跨 kldxref | brooks / jhb | (kevans 有一种有些混乱的原型或两种) |
合并 devmatch 和 devd(库) | imp | meena 愿意协助 |
调度器和 VFS 文档覆盖范围 | mhorne | |
减少 GIANT 的修改 | jhb imp | |
vt(4)的更好 i18n 支持(CJK 字体,Unicode 字体显示(例如表情符号),输入法) | fanchung | 在 GSoC'21 有一个IME PoC |
以 tarfs 为根目录 | imp | |
内核中对 Rust 的支持 | brooks | |
用户空间中对 Rust 的支持 | brooks | |
用于 ZFS 的 netlink(zfsd/zed) | allanjude | |
用 netlink 替代 devd 套接字 | bapt | 内核部分已完成 |
将 login.conf 转为 UCL 格式 | meena | allanjude 已有一些补丁:D25365 |
剩余网络工具的改进(lixo) | meena | |
层次化动态登录类别 | ngor,meena |
🗑️ 候选删除项 🪓
这些是我们可能希望弃用的事项。可能需要进一步讨论以达成共识。
事项 | 负责人 | 提交 / 审查 / 补丁 |
---|---|---|
Firewire 🔥 | imp | |
armv6 | imp/manu | |
SoC 支持审查 | imp/manu/mhorne | |
ftpd | allanjude | |
删除 DES 的相关模块 | des? | |
sendmail | bapt? | |
bootloader 中的 forth 支持 🔪 | imp/stevek | |
NIS 服务器组件 | des? | |
publicwkey(5) | manu | D30683、D30682 |
targ(4) CAM 目标驱动程序 | imp | |
fingerd | ?? | meena 自愿负责 |
3dfx(4)和*_isa | jhb | |
syscons(4)(至少弃用) | emaste / manu | |
审查以太网驱动程序(100Mbps、少见的 1/10Gbps) | brooks | |
审查 CAM 驱动程序(pms(4)等) | imp | |
ACPI 安全定时器 | cperciva | |
freebsd-update | cperciva | 如果 pkgbase 准备好 |
32 位平台(内核,保留 compat32) | jhb | |
arm*soft 移除(支持构建完整的软件系统,在删除 libsoft hack 构建和 ld.so 支持后,这是唯一剩下的部分) | imp |
图例
符号 | 含义 |
---|---|
?? | 状态有问题 |
!! | 需要新的负责人 |