第 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

ARM64 PMC: CMN-600 驱动程序

ray / tsoome

ARM64 PMC: DMN-620 驱动程序

ray / tsoome

Review inpcb 同步 (SMR)

glebius

从非 FreeBSD 平台交叉构建 ftp/(mini-)memstick/disc1 镜像

jrtc27

各种提交

为 IPsec 提供 chacha20+poly1035 AEAD 支持

ae

ARM64 上的 IPMI 附件

allanjude + Ampere

在 ZFS 中硬件加速 SHA2

allanjude

通过 MAC 限制调试器命令

mhorne

ARM64 上的 KASAN

mhorne

tarfs (挂载压缩的 tar 文件)

des / thj

amd64 和 aarch64 的 LinuxBoot 支持

imp

7df08a14e3fd (amd64) 75cbdbc9832e (aarch64)

sys/endian.h 和 byteswap.h 的 Linux 兼容性

imp

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

pmcstat 用于独立调试文件

jrtc27

正在进行中(重新处理 D39626

lposix - 将更多 POSIX 函数添加到基本系统的 flua

kevans

jail devctl

dch / jamie

jail_devctl 约 200 行代码

记住原始接口名称

allanjude

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

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

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)

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

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

图例

符号含义

??

状态有问题

!!

需要新的负责人

最后更新于