Links

第 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
bhyve 配置
jhb
现代的 virtio (1.x) 客户端驱动程序
bryanv
支持 KTLS 的 chacha20+poly1035 AEAD
jhb
来自 GitHub 的 Sound pin 补丁
imp
vnode 的 Hole-punching
khng
用于 FreeBSD 客户端的 kvmclock 驱动程序
allanjude
minidump 实时系统
mhorne/allanjude
KTLS NIC 接收
kib/hselaskey
通过 /dev/crypto 删除非对称加密支持
jhb
移除 mips
imp
c09981f1422e 和其他
移除 svnlite
lwhsu
移除 an(4)
manu
NVMe 错误恢复重写
imp
Union GEOM 功能
kirk
移除 ISA 声卡驱动
emaste
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
从非 FreeBSD 平台交叉构建 ftp/(mini-)memstick/disc1 镜像
jrtc27
各种提交
为 IPsec 提供 chacha20+poly1035 AEAD 支持
ae
ARM64 上的 IPMI 附件
allanjude + Ampere
D28707
在 ZFS 中硬件加速 SHA2
allanjude
PR252316
通过 MAC 限制调试器命令
mhorne
D35370
ARM64 上的 KASAN
mhorne
tarfs (挂载压缩的 tar 文件)
des / thj
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

✈️ 已有

以下是已存在于外部代码树中的项目,可以在接下来的两年内合并到主线代码树,或在下一个发布版本之前合并(可能需要一些工作以达到可合并状态)。
项目
负责人
提交 / 评审 / 补丁
bhyve/arm64
andrew/UPB
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
tmux
???
如果我们无法得到 pkgbase,则作为全能解决方案将 tmux 纳入基本系统

候选删除项

以下是我们可能希望在 14.0 版本中弃用的项目。可能需要进一步讨论以达成共识。
项目
负责人
已提交 / 审查 / 补丁
Firewire 支持
imp
--
armv6?
imp/manu
--
ARM SoC 支持审查
imp
由 manu 完成?
telnetd
brooks
ftpd (针对 1314)
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
遗留的过时 CAM 驱动程序 (FCP) (twe/twa)
imp
8722e05ae149 (twa) 062a7b918fac (twe)
publicwkey(5)
manu
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)