CFBox 发展规划与下一步路线 #2
Charliechen114514
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
CFBox 发展规划与下一步路线
前提
非常感谢知乎和公众号各位大佬的意见,甚至是指导。笔者这里汇总以下单独正式的回复
A:笔者再仔细考虑规划方向,此外还有B班上,imx-forge和C++项目,很多东西还在积极维护,当时没看好CFBox会引来很多人,直到看到自己的公众号和知乎被轰炸了。。。好了含泪好好规划下吧。。。
A: 暂时不考虑,真的暂时不考虑. BusyBox足够了,他已经用C做到了极限,我看到C++更加先进的特性可能可以维护一个更好维护的,没有历史负担的coreutils才考虑做的。所以下一代能不能选CFBox而不是BusyBox呢?也许可以,但是很遗憾当时牛逼吹大了(寻思没人看吧应该,结果直接被喷到地里去了,教训啊)。发展到一定阶段(比如说起码我实际imx-forge耍内核的时候能用起来吧。。。),会考虑吗?那就会考虑了!要给更多人使用,兼容老旧工具链是迈不过去的砍!会拉单独的分支的!
A: 目前不考虑,一方面是功能真的不行,真没想到吸引了一大堆大佬评价,很多功能没有跟上,但是再马上下来的第一个迭代,项目的基建,如文档网站,CI门关会进一步优化后,Release Download就会端上来!。把项目的根梳理好了,项目才能持久的发展,这是我考虑和规划项目耗时最久的项目了。。。
A: 有朋友建议我nano,但是实际上我的想法还是先跑通,用还是更多人熟悉的vi。多后端是跑通之后的事情。要不然最后编辑器没做好,项目也废了。会支持吗将来,会!
A: 本来纯玩的项目现在都还在有人问我情况,真吓哭了。肯定要准备转真正的常青藤项目了。这没的说了。总不能辜负大伙的期待吧。
项目现状
CFBox v0.1.0 已发布,包含 109 个 applet,单一可执行文件仅 446 KB。采用现代 C++23 架构,零运行时依赖,配备 331 个 GTest 单元测试和 56 个集成测试。项目已具备作为嵌入式 BusyBox 替代品的坚实基础。
已有能力
std::expected、constexpr、string_view、ranges、RAII 封装关键差距(来自竞品分析)
路线图总览
核心策略:先横向补全(P0 系统命令)→ 再纵向深化(选项完整性)→ 然后领域扩展(网络、多用户)。
策略调整
与原始路线图相比,我们做了以下关键调整:
阶段时间线
Phase 1:核心系统命令补齐
目标:新增 24 个 applet,让 CFBox 具备基本系统管理能力。
Wave 1 — 简单命令
从
clear开始,验证完整的 applet 注册流程(CMake → applets.hpp → 测试)。clearwhichchgrpchmodchownmountpointWave 2 — 系统控制
需要先从
kill.cpp中提取include/cfbox/signal.hpp。killallhalt/reboot/poweroffsetsidflockWave 3 — 核心阻断项
最关键的一波。没有这些命令,CFBox 无法用于真实的系统管理。
chrootddsttyinclude/cfbox/tty.hppmountinclude/cfbox/mount.hppumountinclude/cfbox/mount.hppWave 4 — 校验和与编码
sha1sum/sha256sum/sha384sum/sha512suminclude/cfbox/digest.hpp(FIPS 180-4)base64/base32include/cfbox/base64.hpp(RFC 4648)zcatcompress.hpp里程碑:v0.2.0 发布 — 133 个 applet,500+ 测试,体积 ≤550 KB。
Phase 1.5:代码质量审查
触发条件:Phase 1 Wave 3 完成(核心系统命令功能到位)。
在深化现有命令之前进行一次全面质量审查:
std::expected+CFBOX_TRY,统一错误信息格式Phase 2:核心命令深化
目标:将现有命令功能深度从 ~30% 提升到 ~70%。
第一批:运维刚需
tail-ffollow 模式(poll/inotify)— 运维第一刚需cp-a归档、-f强制、-i交互、-v详细testls-R递归、-S/-t排序、--color第二批:文本处理增强
grep-A/-B/-C上下文行、-F固定字符串、-w单词匹配tar-zgzip、-v详细、--excludesed-i原地编辑、hold space、y字符转换sort-k字段排序、-h人类数字、-u去重第三批:高级功能
find-mtime/-perm、布尔表达式树、-print0shcase/esac、here-doc、函数、$((expr))、local、trapps/df/du-o自定义列、-T/-i、-d深度里程碑:v0.3.0 发布 — 核心命令深度达到 ~70%。
Phase 3:网络最小闭环
没有网络能力,CFBox 无法成为真正的 BusyBox 替代品。
ip、ifconfig、routeping、traceroute、nslookupnetstatwget、nc、tftp新增基础设施:
include/cfbox/socket.hpp(TCP/UDP/Unix RAII 封装)、include/cfbox/http.hpp(最小 HTTP/1.1 客户端)。Phase 4:生产质量深化
Phase 5:多用户与嵌入式运行时
login、su、passwd、gettyadduser、deluser、addgroup、delgroupsyslogd、klogd、logger、logreadmdevblkid、lsblk、losetup、mkswap、swapon、swapoffpivot_root、switch_rootPhase 6:长尾完备性
vi— 可视化编辑器bzip2、xz、lzma系列crond、crontabinsmod、rmmod、lsmod、modprobelspci、lsusb、I2C 工具less、tree、strings、resetBeta Was this translation helpful? Give feedback.
All reactions