Justine Tunney

RSS: https://justine.lol/rss.xml
Justine Tunney 的个人网站,Actually Portable Executable(APE)与 Redbean 作者。

重启序列:面向多核系统的无锁数据结构技术

文章介绍了Linux内核的restartable sequences (rseq) 技术,这是一种无需锁或原子操作即可实现线程安全数据结构的机制。作者通过实际基准测试展示了rseq在多线程环境下的巨大性能优势,特别是在高核心数处理器上,相比传统mutex和atomic操作,性能提升可达数十倍甚至百万倍。文章还详细解释了rseq的工作原理,包括如何通过汇编代码实现无锁的链表push/pop操作,并对比了不同硬件架构(如x86-64和ARM64)上的表现。作者认为rseq是未来系统编程的重要方向,能够显著提升多核系统的并发性能。
评论点赞收藏76 天前

Blinkenlights:让内存变化可视化的命令行调试器

介绍一款名为 Blinkenlights 的命令行调试器。它通过可视化内存变化来模拟软件运行,界面类似老式计算机的操作面板。相比传统 GDB,它支持宽屏显示,能直观展示 Hexdump、SSE 寄存器类型推断及微优化问题(如未利用向量化导致的性能瓶颈)。作者强调其能揭示现代 CPU 特性(如 Spectre)掩盖下的算法复杂度缺陷,帮助开发者在代码上线前发现性能陷阱。支持自举模拟,功能涵盖多种指令集和系统调用。
评论点赞收藏180 天前

汉谟拉比法典货币转换器:古代法律条款的现代美元折算

作者将《汉谟拉比法典》中涉及金钱和刑罚的条款,根据当前的金银价格换算成现代美元金额。通过对比不同社会阶层(自由民、奴隶、释放民)受到的罚款或赔偿金额,直观展示了古代巴比伦社会的阶级差异和法律的不平等性。例如,伤害自由民的罚款远高于伤害奴隶,且涉及人身伤害的刑罚往往与受害者的社会地位挂钩。文章提供了一个交互式工具,允许读者调整金银价格来探索不同假设下的货币价值。
评论点赞收藏298 天前

Cosmopolitan Libc:实现 C 语言的“构建 anywhere,运行 anywhere”

Justine Tunney 介绍了 Cosmopolitan Libc 项目,它通过重新配置 GCC 和 Clang,将 C 代码编译成一种特殊的“胖二进制”格式(APE)。这种格式可以在 Linux、macOS、Windows、FreeBSD 等多种操作系统以及 AMD64 和 ARM64 架构上原生运行,无需虚拟机或解释器。文章提供了详细的安装、配置和编译示例,展示了如何实现真正的跨平台构建和运行。
评论点赞收藏355 天前

将 OpenBSD 的 Pledge() 安全沙箱移植到 Linux

作者将 OpenBSD 的安全沙箱机制 Pledge 移植到了 Linux 上。文章指出 Linux 原生的 SECCOMP BPF 配置极其复杂,阻碍了普通开发者使用。作者提供了一个命令行工具和 C API,通过封装 SECCOMP BPF 和 Landlock,让 Linux 程序也能像 OpenBSD 那样简单限制权限(如只读文件、禁止网络)。文中包含大量针对不同发行版(Alpine, Ubuntu)和库(Musl, Glibc)的实际测试代码、资源限制策略以及故障排查指南,具有极高的工程参考价值。
评论点赞收藏523 天前

一次编译,到处运行:Cosmopolitan库3.0发布,打造真正的跨平台“胖二进制”

Cosmopolitan C库发布3.0版本,核心创新是发明了apelink链接器,能生成包含PE、ELF、Mach-O和PKZIP格式的“胖二进制”文件。这意味着开发者只需编译一次,生成的单个二进制文件即可在Linux、macOS、Windows及多种BSD系统上直接运行,无需安装依赖。作者展示了其在Windows和Mac上的具体改进,如POSIX信号模拟和原生ARM64支持。此外,文章强调该方案不仅实现跨平台,还能提升性能:通过内存映射优化,胖二进制文件实际占用内存与精简版相当,且运行速度更快(如Emacs在Windows上启动速度翻倍)。项目还发布了独立的cosmocc编译器工具包,并附带了高性能Web服务器redbean及其简化版greenbean的工程示例,证明了其在生产环境和高并发场景下的可行性。
评论点赞收藏560 天前

二进制体积优化实战技巧(2022)

作者分享在Cosmopolitan项目中通过汇编和底层技巧极致优化C/C++二进制文件体积的经验。核心观点是“小二进制”不仅是为了兼容旧硬件,更是为了提升测试效率、降低传输成本并改善开发体验。文中具体介绍了利用Blinkenlights直观查看二进制模式、优化结构体字段排列以节省内存对齐浪费、使用游程编码(RLE)压缩稀疏数据表(如HTTP Token表),以及通过去中心化Section技术实现代码跨文件链接等硬核工程手段。这是一篇充满个人实战经验和强烈技术审美的深度技术文章。
评论点赞收藏587 天前

使用 Landlock 对 GNU Make 进行沙盒隔离

作者修改了 GNU Make,利用 Linux 内核的 Landlock 机制实现了严格的依赖检查沙盒。这使得 Make 能像 Bazel 一样确保构建的安全性和缓存有效性,同时避免了 Bazel 复杂的符号链接和挂载操作。作者声称在相同测试下,Landlock Make 比 Bazel 快 5 倍,且二进制文件极小(约 500KB),无需 Docker 或 root 权限。文章详细解释了其工作原理、配置方法以及与 Bazel 在架构和性能上的对比,强调了这种轻量级方案对独立开发者和中小团队的吸引力。
评论点赞收藏642 天前

真正跨平台的可执行文件:让C语言代码一次编译,通吃所有主流操作系统

作者介绍了一个名为Cosmopolitan的项目,其核心创新是将Windows PE、Linux ELF、macOS Mach-O以及ZIP和Shell脚本格式融合进同一个二进制文件中。利用旧版Unix Shell不使用shebang的特性,实现了“一次编译,在所有主流桌面操作系统上原生运行”。文章展示了极小的二进制体积(如12KB的生命游戏),探讨了底层ABI共识的价值,并提供了可视化工具来展示程序执行时的内存状态。这是一个极具极客精神的技术实验,旨在解决跨平台分发痛点。
评论点赞收藏646 天前

构建语法高亮器时遇到的怪异词法语法

作者为llamafile开发支持42种语言的语法高亮器,分享了在实现过程中发现的编程语言词法陷阱。文章详细解析了C语言的三字符组、通用字符和反斜杠续行注释;Haskell和D语言的嵌套注释;Tcl标识符中的引号;JavaScript的正则表达式与Unicode换行符;Shell的Heredoc滥用;以及Kotlin、Swift、C#、Lua等语言处理字符串嵌入的独特语法。这是一篇充满工程细节和“踩坑”经验的硬核技术分享。
评论点赞收藏652 天前

最快的互斥锁:Cosmopolitan Libc 性能实测与技术解析

Cosmopolitan Libc 的互斥锁在 Windows 和 Linux 上性能远超 glibc、musl 及微软原生实现,CPU 资源消耗极低。作者通过基准测试证明其优势,并深入解析了底层 nsync 库的技术细节,如乐观 CAS、缓存行隔离及 Futex 机制。文章指出在高竞争场景下,传统库会导致严重的 CPU 浪费,而 Cosmopolitan 能显著降低系统开销,甚至在实际高并发服务中验证了其稳定性。
评论点赞收藏682 天前

深度解析DeepMind的排序算法:从AlphaDev到性能实测

作者以C库开发者的视角,深入剖析DeepMind利用AlphaDev发现的排序算法内核。文章指出DeepMind官方解释不清,并通过汇编代码对比,揭示了其算法本质是减少冗余指令的排序网络。作者不仅翻译了晦涩的汇编为可读C代码,还通过实测数据质疑了这些内核在特定场景下的实际性能优势,认为简单的混合排序可能更优。最后,作者表达了对AI辅助底层代码优化的支持,并对比了OpenAI带来的焦虑,强调这种能让人类掌控更强工具的技术才是真正的进步。
评论点赞收藏708 天前

AI训练不应抹去作者署名权

作者Justine Tunney回顾了自己从Google离职后全职从事开源开发的经历,指出她通过署名权获得尊重而非金钱。她批评当前AI训练在抓取代码时剥离了元数据和作者信息,导致AI无法识别贡献者,这破坏了开源社区的信任基础。文章对比了Google早期连接访问者与网站主的模式,猛烈抨击OpenAI等公司试图垄断经济并消除人类主体性的做法,认为AI应当利用其能力强化署名和溯源,而不是抹去创造者的痕迹。
评论点赞收藏722 天前

用 rusage 工具深入剖析大模型加载时的系统资源消耗与 mmap 优化

作者开发了一个跨平台的命令行工具,用于比传统 time 命令提供更详细的资源使用统计(如内存膨胀、页面错误、上下文切换等)。文章以加载 13B 参数的 LLaMA 模型为例,通过对比 read 和 mmap 在不同缓存状态下的性能,发现 mmap 在热缓存下能提升 18% 的速度。作者指出,真正的优化空间在于利用 mmap 的惰性加载特性,避免启动时反序列化整个模型,并计划将此优化引入 llama.cpp 项目。
评论点赞收藏741 天前

436 字节的 Lisp:带垃圾回收的极致微型语言

SectorLISP 项目将带垃圾回收的高层 Lisp 语言优化至 436 字节,塞入软盘引导扇区,成为目前最小的编程语言。作者通过极致的代码精简(223 行汇编),实现了兼容 1981 年 IBM PC 的完整 Lisp 解释器,甚至能运行 LISP 1.5 的证明助手。文章详细展示了内存模型设计(利用负地址存储 Cons 单元)、元循环求值器实现以及仅 40 字节的 ABC 垃圾回收算法。这不仅是一个技术极限挑战,更展示了对计算机底层原理和语言设计的深刻理解,极具极客趣味和技术探讨价值。
评论点赞收藏743 天前

使用 Cosmopolitan Libc 追踪 C 函数调用

作者介绍 Cosmopolitan Libc 的一个鲜为人知但极其实用的功能:--ftrace。该功能通过拦截编译器插入的 NOP 指令而非调用函数来记录 C 函数调用,从而实现了极低开销的性能追踪。文章展示了如何利用这一特性解决调试器无法处理的 NULL 指针跳转问题,并通过对比 Python、Lua 等语言打印 Hello World 时的函数调用次数,直观揭示了不同语言解释器的内部复杂度差异。此外还介绍了类似的系统调用追踪功能 --strace。
评论点赞收藏748 天前

字节序处理的陷阱与真相

深入剖析C语言中处理字节序(endianness)时的各种陷阱。作者指出常见的强制类型转换和简单移位操作存在未定义行为(UB),如对齐错误、符号扩展和溢出。通过展示编译器优化如何导致代码崩溃或产生错误结果,强调了使用UBSan检测的重要性。最终提出“先掩码,后移位”的稳健方案,证明这种看似低效的位运算在现代编译器下能生成与硬件指令同等高效的代码,从而消除复杂的宏定义和条件编译。
评论点赞收藏776 天前

极致的二进制体积优化技巧:从汇编到架构哲学

作者分享在Cosmopolitan项目中通过X86汇编和底层技巧极致优化C/C++二进制文件体积的经验。包括使用Blinkenlights直观查看二进制结构、调整Struct字段排列减少填充、利用RLE压缩稀疏数据表、以及去中心化的Section链接技术。核心观点是二进制越小,测试和部署效率越高,能显著降低网络传输和存储成本,反对现代软件盲目追求体积的“膨胀”文化。
评论点赞收藏856 天前

LLaMA 在 CPU 上的运行速度大幅提升

作者为 llamafile 项目编写了84个新的矩阵乘法内核,显著提升了 CPU 上运行 LLaMA 等大模型的推理速度。实测数据显示,在 F16 和 Q8_0 权重下,相比 llama.cpp,llamafile 在多种硬件平台上实现了 30% 到 500% 的速度提升。文章详细对比了从老旧企业级服务器、树莓派、消费级游戏 PC 到顶级工作站(如 Threadripper)的性能表现,并深入分析了不同架构(ARMv8.2, AVX512, Apple Silicon)下的优化原理、精度权衡及实际应用场景(如本地垃圾邮件过滤)。这是一篇极具工程深度的一手技术分享。
评论点赞收藏867 天前

Redbean:单文件可分发的Web服务器

介绍Redbean,一个单文件、免依赖的Web服务器。它内置Lua、SQLite和MbedTLS,支持跨平台(AMD64/ARM64),通过zip打包应用即可运行。文章提供了详细的安装指南(针对MacOS、Linux、Windows/WSL)、功能特性、命令行参数及Lua编程示例,强调其高性能(基准测试达530万QPS)和便携性。
评论点赞收藏1997 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。