第 1.15 节 FreeBSD 开发计划

第 1.15 节 FreeBSD 开发计划

翻译同步至 BSDCan 2024 devsummit

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

FreeBSD 14 开发计划 FreeBSD 14.0 Planning

FreeBSD 15 开发计划 FreeBSD 15.0 Planning

FreeBSD 15.0 计划

✔️ 已完成

已提交到源代码存储库的项目。

项目负责人已提交 / 审查 / 补丁

arm64 分支目标识别(BTI)

andrew

arm64 bhyve

andrew

在 bhyve 中的单步 AMD CPU

jhb Bojan

DDB pretty-print with CTF

markj Bojan

跨架构的 kldxref

jhb

copy_file_range(2) 于 install(1)

mmatuska

NVMe-oF/TCP

jhb

per-file nullfs

dfr

521fbb722c3(不支持套接字)

✈️ 已存在

未来 2 年内 / 在下次发布之前已经存在且可以传递至上游的项目(也许需要努力使其达到可回馈上游的状态)

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

在 mv(1) 中实现 copy_file_range()

pjd

更好的 copy_file_range() 后备机制/封装器

pjd

arm64 SVE

andrew

amd64/arm64 救援内核

markj / Klara

iovec 封装器

brooks

bhyve 虚拟机中的硬件监控功能

jhb Bojan

使用 dtrace 进行内联函数跟踪

markj Christos

谷歌编程之夏——squashfs

chuck

改进多核笔记本电脑上的 Powerd

cperciva

(与 gallatin@交谈)

9p 文件系统的 Port

dfr

与 Juniper 同步(bkumara,khn)

CHERI 各式先决条件(ABI 位)

brooks

在 ZFS 中的分层速率限制

pjd

改进 NVMe 复位/恢复功能

imp

95% D45192

简单的库 ABI 检查器

brooks

原型在 D44271

图形安装程序

khorben

bhyve 直接使用 Linux 引导器

robn

(请参阅 freebsd 虚拟化

🚧 进行中

项目负责人状态

AMD IOMMU 驱动程序

kib

重写 certctl

des

DRM 回归基本系统

manu

90% 完成

devd 事件磁盘错误额外信息

imp

75%

对默认 TCP 堆栈模块化

jtl

完成代码;需要 UX 支持,使用户更容易使用

真正有效的 UnionFS (overlayfs)

olce

开始(在计划中)

符合标准、实际的调度优先级

olce

75%

SO_SPLICE

Klara / markj

刚开始

无头 bhyve

markj

进行中

amd64 的 kboot 支持

imp

2024 年夏末 80%

flua 和引导加载程序的更新至 Lua 5.4.7

imp

release in coming weeks, looks "boring"

整合我谷歌编程之夏学生代码中的加载器命令行编辑功能

imp

git 重做分支可用,需要帮助

riscv64 bhyve

br

在虚拟机中启动 FreeBSD

💸 需要

未来两年内支持产品和服务所需的东西

项目负责人投入 / 审查 / 补丁 / 状态

新的 ELF 内核转储格式

jhb markj

使 bsdinstall 支持 pkgbase

emaste manu?

将 pkgbase 整合到发布和相关流程

bapt

我们能否让每个包都有 Makefile

pkg 组

allanjude

为无工具链的 Poudriere 提供支持 jail

allanjude

外部工具链支持

brooks

预提交 CI 源码,文档

lwhsu imp bofh

make ci WIP. 需要与 oth 集成

改进 make ci 以方便提交者

imp, bofh

改进 make ci 以对诸如登录 github 拉取请求等事项有益

imp

预提交 CI ports

lwhsu 将与 bapt 和 decke 审查

bofh 似乎有一些 PoC

通用闪存存储(UFS)驱动程序

loos

需要用于一些嵌入式部署,但未来将更具通用性。即将登陆英特尔平台。同样支持 LinuxBoot。

DTrace 的 -C(大写字母)参数再次生效

antranigv,markj

PR 尚未提交,只需运行 dtrace -c 就可查看所含文件

完善了 bsd-user 支持以供发布流程使用

imp, dfr, cperciva

32 位系统在 64 位系统上的问题,对非常陈旧的 qemu-bsd-user-static 软件进行更新

优化 bsd-user binfmt 等以方便 jail 用户

cperciva, imp

Colin would like to have per-jail settings for these things

定制 bsd-user binfmt 等以方便 jail 用户

cperciva

bsd bsd-user + poudriere 支持 RISCV

imp, mhorne, jrtc27

软件包构建完全损坏,但基本功能正常,需要修复以便我们可以再次使用 riscv 软件包

使用 GitHub runner 拉取请求

imp

对 cirrus-ci 漏洞中的解决方案之一

使用 GitHub Action 改善外部贡献者的体验

imp

Need help here

S0ix 低闲状态

obiwac, jhb

原生 inotify(2)

tcberner

许多软件都需要这个

15.0 应该使用哪个版本的 OpenSSL

gtetlow

通过在现行环境中运行更新的版本以获取调试时间。

不使用 OpenSSL FIPS

gtetlow

该模块没有经过验证,不要让人们上当

🥺 想要 🙏

这些东西是不是必需的,但是如果有也非常好

东西拥有者提交 / 审核 / 补丁 / 状态

清理 make -s

jhb

清理警告信息并使其保持在控制之下 🔥

TPM 支持(GELI,ZFS)

allanjude tsoome

--

ZFS 加密启动支持

tsoome allanjude

仅支持 UEFI

取代 smbfs(v2 及更高版本)

emaste jhixson

--

virtio-fs

??? asomers

重要性表示存在补丁

在 Lua 中更新系统调用表生成(makesyscalls.lua 的库化)

imp

精简安装程序(使单个盘上的安装有更优的默认设置,一直按回车键就能完成)

emaste brd

增补 per-file 以支持套接字/命名管道

dfr

更多容器支持(OCI)

dfr

需要志愿者。软件 Containerd 需要维护者。官方镜像/仓库

精简内核

imp

进行中

使引导加载程序支持 devmatch

imp manu

PCI 和 USB

重写 config(8) (使用 lua ?)

imp kevans

合并 devmatch 和 devd(库)

imp

Meena 想帮助这个

调度程序和 VFS 的相关文档

mhorne,olce

在大小核心上进行调度(P,E)

olce, mkarels

我认为其他人感兴趣

完成内核文档(手册第 9 节)审核

mhorne

简化过于复杂的解决方案

jhb imp

vt(4) i18n 更好(CJK 字体,unicode 字体显示(即表情符号)、输入法)

fanchung

在 GSoC'21 中有一个 IME 概念验证

以 root 运行 tarfs

imp

overlayfs(用于 tarfs)

Klara / allanjude

内核中对 Rust 的支持

brooks

在用户空间支持 Rust

brooks

为 ZFS 提供 Netlink(zfsd/zed)

allanjude

以 netlink 取代 devd 套接字

bapt

具有内核部分

登录配置的 UCL 化

meena

allanjude 拥有补丁的开端:D25365

为其余网络工具添加 libxo

meena

如有问题请在提议的页面上 ping phil@

分层动态登录类

ngor,meena

gve(4) 的 arm64 支持,GCE 的 arm64 实例需要

delphij,kibab(由 lwhsu 推动)

删除 MAC “label”的限制

allanjude des

使用 OSD?建立在 bapt 的 mac_do 使用的 per-jail 机制上

用于 jails 的 PID 命名空间

pjd dfr allanjude

你想要哪些其他命名空间?

将 dhcpcd 引入基本系统

初始(日期)版本在这里:D22012

通过 netlink 访问 jail vnet

dfr

在计算哈希值的同时能够在内存中操作文件。

sjg (wants)

为 mac_veriexec

更新 flua,以添加更多标准组件,更多“常见”组件及 FreeBSD 系统调用。

启动加载程序也使用 Lua,因此在这里需要小心些。

priv(1)

pjd

降低进程权限的能力

rctl

DFR,PJD?

当前 RCTL 对于资源限制 jails 的工作效果不佳

🗑️ 候选删除 🪓

我们可能希望废弃的项目。可能需要进一步讨论以达成共识。

项目负责人提交 / 审核 / 补丁

Firewire 🔥

imp

后来而不是早点(我们在早点时剥离磁盘支持,因为有一个巨大的锁定的 CAM 驱动程序)

armv6

imp/manu

i386 内核

imp

时间?

powerpc,powerpcsce 内核

imp

PS3 🎮

imp

沒有人使用了(我们需要 PS5 port!)

powerpc64, powerpc64le(整个 powerpc 架构)

https://bugs.freebsd.org/271826 FreeBSD 在 PowerMac G5 上速度极慢……

SoC 评估审查

imp/manu/mhorne

ftpd

allanjude

移除 DES

des?

sendmail 📮

bapt?

移除引导中的 Forth 编程语言 🔪

imp/stevek

如果使用 EFI 启动安装程序但请求了 BIOS 安装,则发出警告

NIS 服务器组件

des?

还在使用,请添加到 ports (chuck)

publicwkey(5)

manu

targ(4) CAM 目标驱动程序

imp

fingerd

??

Meena 想要做此事

3dfx(4) & *_isa

jhb

syscons(4) (deprecation at least)

emaste / manu

检查以太网驱动程序(100mbps,冷门的 1/10 gbps)

brooks

检查 CAM 驱动程序(pms(4), hpt*, siis, mvs 等)

imp

ACPI 安全定时器

cperciva

freebsd-update

cperciva

待 pkgbase 就绪

32 位平台(仅内核,仍保留 compat32)

jhb

arm*soft removal (支持构建完整的软系统,这是在我移除了 libsoft hack 构建和 ld.so 支持之后剩下的全部内容)

imp

支持交换内核堆栈

markj

达成共识?+1 +1 +1 +1 +1

支持 SMP amd64 内核 !

markj

达成共识? +1 +1

图例

符号含义

??

状态待定

!!

需要新的负责人

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

--

图例

符号含义

??

状态有问题

!!

需要新的负责人

最后更新于