GCC 15 新警告引发的内核编译风波
Linus Torvalds 在 6.15-rc3 内核发布前夕,因 Fedora 42 预装的 GCC 15 编译器新增的 -Wunterminated-string-initialization 警告,仓促提交补丁解决编译问题,却导致在旧版 GCC 编译器下构建失败。此举引发了与内核开发者 Kees Cook 之间的争论,凸显了提前使用未发布编译器版本的风险以及沟通协调的重要性。最终,Torvalds 回退了补丁,暂时禁用该警告。
阅读更多
Linus Torvalds 在 6.15-rc3 内核发布前夕,因 Fedora 42 预装的 GCC 15 编译器新增的 -Wunterminated-string-initialization 警告,仓促提交补丁解决编译问题,却导致在旧版 GCC 编译器下构建失败。此举引发了与内核开发者 Kees Cook 之间的争论,凸显了提前使用未发布编译器版本的风险以及沟通协调的重要性。最终,Torvalds 回退了补丁,暂时禁用该警告。
阅读更多
Pahole,一款用于探索和编辑调试信息的强大工具,在Linux内核开发中扮演着关键角色。它目前负责将编译器生成的调试信息转换为BPF验证器可用的BTF格式。文章介绍了Pahole的最新进展,包括新增协同维护者、改进的BTF处理、对灵活数组和bpf_fastcall的支持,以及对Rust的支持增强。未来,Pahole有望随着GCC对-gbtf选项的支持完善而逐渐淡化其在DWARF到BTF转换中的作用,从而加快内核构建速度。
阅读更多
Joplin是一款功能强大的开源笔记应用,支持Markdown、插件扩展和多媒体内容。最新版本3.2增加了备受期待的多窗口支持、多列布局以及增强的辅助功能和主题检测。它支持多种同步方式,包括端到端加密的云同步和本地存储。尽管基于Electron,资源消耗相对较高,但其丰富的功能和活跃的社区使其成为一个值得尝试的笔记应用。
阅读更多
Fedora 项目正努力实现其软件包的 99% 可复现构建,这意味着任何人都可以根据相同的源代码、构建环境和指令重建相同的二进制文件。这对于增强软件供应链安全至关重要。虽然 Debian 在可复现构建方面走得更远,但 Fedora 采取了不同的方法,专注于 RPM 包的有效载荷,并通过基础设施改进和工具(如 add-determinism 和 rebuilderd)来实现这一目标。这项工作对最终用户可能并不明显,但对于抵御供应链攻击至关重要。
阅读更多
前墨西哥政府高官Federico González Waite分享了他推动墨西哥政府采用开源软件的十年经验。为降低成本、实现IT主权,并摆脱商业软件厂商的控制,他带领团队完成了多个项目,其中包括构建全国电子护照系统和部署大规模通信基础设施。尽管面临来自Oracle等巨头的威胁和政府内部的阻力,他们取得了显著进展,但也遭遇挫折,例如一些项目因缺乏持续的资金支持和政府领导层的变动而夭折。他强调,开源转型成功的关键在于拥有强有力的内部支持和领导层的决心,以及对人才培养的持续投入。
阅读更多
Rust 语言一直以来缺乏官方规范,这阻碍了其在一些注重安全的组织中的应用。现在,Rust 项目宣布将采用 Ferrous Systems 开发的 Ferrocene 语言规范 (FLS),并将其作为核心项目的一部分进行维护。此举将有助于消除 Rust 在安全关键型系统中应用的障碍。
阅读更多
Ubuntu计划在其25.10版本中将许多传统的GNU工具替换为Rust实现的工具,例如uutils项目中的工具。为了测试这些Rust工具的适用性,Canonical的工程副总裁Jon Seager发布了一个名为oxidizr的命令行工具,方便用户启用或禁用这些Rust工具。此举旨在提升Ubuntu系统的稳定性和安全性,并吸引更多开发者贡献代码。虽然社区反应褒贬不一,但此举无疑将对Rust的普及和Linux发行版的未来发展产生深远影响。
阅读更多
Mozilla 近期举动激怒了许多 Firefox 用户,促使他们转向替代浏览器。文章介绍了几个 Firefox 分支,如 GNU IceCat、Floorp、LibreWolf 和 Zen,它们在隐私保护和自由软件理念上各有侧重。IceCat 重视自由软件,使用 LibreJS 和 JShelter 等扩展增强隐私;Floorp 侧重用户体验,拥有双侧边栏和工作区等特色功能;LibreWolf 专注于隐私和安全,移除 Firefox 中的追踪功能;Zen 则拥有现代化的界面和强大的自定义功能。虽然这些分支为用户提供了更多选择,但它们都依赖于 Mozilla 的底层开发,面临着安全更新和维护的挑战。
阅读更多
在 FOSDEM 2025 上,Sylvestre Ledru 宣布其 Rust 编写的 GNU Coreutils 替代品 uutils 项目取得重大进展,几乎完成了对 100 多个核心 Unix/Linux 工具的重写。该项目始于疫情封锁期间,如今拥有 530 多位贡献者和超过 18000 颗 GitHub 星星。uutils 旨在提供更安全、更高效的替代方案,目前已通过 GNU coreutils 测试套件中的近 500 个测试,并被 Debian-based Apertis、Spectacles 智能眼镜和 Microsoft Visual Studio Code 等项目采用。Ledru 接下来计划将此 Rust 重写扩展到其他关键 Debian/Ubuntu 包,以应对 C 语言维护的挑战,并为新一代开发者提供更现代化的开发体验。
阅读更多
本文是Linux早期贡献者Lars Wirzenius对Linux诞生过程的精彩回忆。故事始于1991年,Linus Torvalds用一台4MB内存的386电脑,编写了一个简单的多任务程序,屏幕上交替显示字母“A”和“B”,这就是Linux内核的雏形。在朋友Wirzenius的帮助下,Linus逐步完善了内核,并将其发布到网络上。经历了与Andrew Tanenbaum的著名论战、GPL许可证的采用、X11系统的移植等关键事件,Linux最终从一个业余爱好项目发展成为全球性的操作系统,运行在从地球到火星的无数设备上。
阅读更多
Julia 编程语言的 1.11 版本带来了显著改进,解决了长期困扰用户的一些问题。其中最重要的是静态编译的改进,即将发布的 1.12 版本将能够生成更小的可执行文件,方便程序分发。此外,新的 juliaup 工具简化了 Julia 的安装和升级流程,而 WebAssembly 的支持也日益完善,允许 Julia 程序在浏览器中运行。这些改进使得 Julia 更加易用,也拓展了其应用范围,使其成为科学计算和系统工具开发的强有力竞争者。
阅读更多
Meta工程师Jake Hillion和OpenJDK开发者Johannes Bechberger在FOSDEM上展示了他们使用BPF调度框架`sched_ext`构建的并发Fuzzing调度器。该调度器通过故意“糟糕”地调度进程,引入随机延迟和线程运行顺序,从而暴露出难以重现的并发Bug。虽然目前该调度器性能开销较大,主要用于开发阶段调试,但它为发现实际应用中的逻辑错误提供了一种有效方法,未来有望改进以用于生产环境。
阅读更多
Linux内核正在探索将Rust语言用于编写设备驱动程序,但进展受阻于DMA(直接内存访问)子系统。Rust驱动程序需要与内核的DMA映射子系统交互,为此需要一套抽象层。然而,核心维护者Christoph Hellwig反对在`kernel/dma`目录中添加Rust代码,认为这会增加维护难度。Rust开发者提出将抽象层代码独立维护,但Hellwig仍然拒绝。这导致Rust在Linux内核中的应用面临挑战,其未来走向取决于内核社区的最终决策,以及核心维护者能否适应多语言编程环境。
阅读更多
LWN.net 宣布,所有专业级及以上订阅用户现在可以以 EPUB 格式阅读其所有特写内容。用户只需点击左侧栏的“下载 EPUB”链接即可下载每周电子书。此外,还提供单独的 EPUB 格式 RSS 订阅源。任何其他特写内容均可通过在 URL 后附加 /epub 来转换为电子书。LWN.net 还将不定期创建特别的 EPUB 电子书,例如 Kangrejos 2024 和 2024 年的 Linux 存储、文件系统、内存管理和 BPF 峰会的完整报道已对所有读者开放。
阅读更多
厌倦了鼠标?作者分享了其打造无鼠标桌面环境的经验。通过使用PaperWM滚动式窗口管理器、Firefox关键词书签、Vimium浏览器扩展和Aerc终端邮件客户端等工具,以及GNOME的Quake Terminal扩展和Input Remapper键鼠映射工具,作者极大提升了工作效率并改善了人体工学。文章详细介绍了这些工具的使用方法和配置技巧,并分享了其在Emacs中隐藏菜单栏和工具栏以减少鼠标使用的经验。
阅读更多
Chimera Linux是一个全新的Linux发行版,目标是打造一个“简单、透明、易上手”的桌面系统。它从零开始构建,近期发布了首个测试版。Chimera大胆摒弃了Systemd,采用BSD工具和Dinit init系统,以减少依赖和复杂性,并使用musl C库替代glibc。虽然安装过程需要手动配置,但其简洁的设计和对GNOME/KDE等桌面环境的支持,使其对经验丰富的用户颇具吸引力。Chimera致力于提供一个精简易用的Linux系统,而非卷入关于软件选择的争论。
阅读更多
Vim创始人Bram Moolenaar的离世给Vim社区带来了冲击,但其维护者们迅速重组,保证了项目的延续。Christian Brabandt接手维护,带领团队应对网站升级、安全漏洞修复等挑战,并逐步推进新功能开发,如XDG目录支持和Wayland支持。虽然面临一些争议,例如Tree-sitter集成,但Vim社区依然活跃,并持续为项目贡献力量。
阅读更多
LWN.net 的 2025 年预测文章,对 Linux 内核、开源软件和硬件发展趋势进行了大胆预测。文章指出,可扩展调度类 (sched-ext) 将带来变革;Rust 代码将更多地应用于内核;新的后门攻击企图将被发现;单维护者项目面临风险;AI 生成代码的潜在问题将凸显;对免费生成式 AI 系统和维护者的支持将增加;云产品故障和数据泄露问题将持续;开源硬件将蓬勃发展;移动设备发行版将重获关注;地缘政治因素将影响开源社区。总而言之,2025 年开源领域机遇与挑战并存,需要社区共同努力,维护开源生态的健康发展。
阅读更多
Vim创始人Bram Moolenaar的去世给社区带来了冲击,但Vim并未消亡。新的维护者Christian Brabandt在VimConf 2024上概述了项目的重组和未来规划。团队扩张,网站和基础设施得到升级,并处理了安全漏洞报告和社区沟通问题。虽然Vim目前处于维护模式,但开发并未停止,版本9.1已发布,并计划改进GUI、终端支持和拼写检查等功能。社区合作至关重要,Brabandt强调了倾听用户需求和保持社区健康的重要性。
阅读更多
Linux内核开发者Kees Cook发现一个内核文档提交的ID与Linux内核初始提交的ID前12位相同,这可能导致工具识别错误。虽然该提交尚未合并到主分支,但它可以作为测试用例,帮助提前解决此类SHA值碰撞问题,避免未来可能造成的广泛影响。
阅读更多
Homa是一种针对数据中心应用的新型网络传输协议,旨在减少数据中心中大量小消息传输的开销。它不同于传统的TCP/UDP,无需连接建立,通过独特的请求-应答机制和优先级队列管理,显著降低延迟。目前,Homa正在尝试进入Linux内核,但其未来可能更多地依赖于网络硬件加速。
阅读更多
LWN.net报道,io_uring子系统正在开发一项新的进程创建功能。这项功能通过两个新的io_uring操作IORING_OP_CLONE和IORING_OP_EXEC实现,前者创建新进程,后者执行execveat()系统调用加载新程序。这将提高效率,并允许在内核中异步执行更复杂的逻辑,例如路径搜索。然而,该功能仍处于早期阶段,存在一些限制,例如新进程中io_uring操作必须同步执行。未来,开发者希望提升其灵活性,并最终将其合并到Linux主线内核中。
阅读更多
Fish shell,一款以其易用性和智能功能而闻名的命令行shell,正式发布了4.0版本。此次更新最大的亮点在于将代码库从C++迁移至Rust,提升了现代计算效率。4.0版本还带来了诸多新特性,例如更自然的按键绑定和更强大的历史搜索功能,旨在为用户提供更便捷、愉悦的命令行体验。为了确保稳定性,项目组特别推出了公开测试版,邀请所有用户参与测试。
阅读更多
Emacs编辑器因其可扩展性而闻名,但其核心语言Emacs Lisp(Elisp)的性能和表达能力已成为瓶颈。为解决这个问题,Guile-Emacs项目应运而生,它计划用Guile Lisp替换Emacs中的Elisp。Guile-Emacs项目已历经多年,几经沉浮,如今在开发者Robin Templeton和Larry Valkama的努力下再次焕发生机,目标是在保持Elisp兼容性的前提下,利用Guile的编译器和性能优势,提升Emacs的运行效率和可扩展性,甚至最终用Lisp重写Emacs的大部分C代码,这将显著增强Emacs的可定制性。虽然面临着技术和政治上的挑战,但该项目为Emacs的未来发展提供了令人兴奋的可能性。
阅读更多
Rust编译器为了解决传统流水线式编译带来的效率问题,采用了基于查询的增量编译架构。该架构将编译过程分解成一系列相互依赖的查询,并利用编译数据库缓存中间结果,从而只重新计算必要的代码部分。这类似于构建系统的依赖管理机制,显著提升了编译速度,尤其在IDE集成等场景下效果显著。虽然该架构引入了复杂性,但相比传统方法的逐步改进,它为Rust带来了更稳定、高效的增量编译体验,目前已成为开发构建的默认模式。
阅读更多
Git项目内部就是否引入Rust语言展开了激烈的讨论。支持者认为Rust的内存安全性和易于重构等特性将提升Git的安全性及开发效率。然而,反对者担忧引入Rust会影响Git对NonStop等特定平台的支持,并限制其长期发展。NonStop平台在金融领域广泛应用,其对Git的依赖关系以及缺乏Rust编译器使得这一问题变得复杂。最终,讨论未能达成一致,Git项目面临着在广泛平台支持和提升安全性及开发效率之间的艰难抉择。
阅读更多
一个名为ultralytics的Python包在PyPI上发布了一个被入侵的版本。攻击者利用了该项目自动化处理拉取请求的机制,在分支名称中注入了恶意脚本。ultralytics使用了pull_request_target GitHub Action触发器,该触发器运行的脚本可以访问存储库的secrets,但容易受到来自拉取请求分支名称的shell注入攻击。注入的脚本利用获取的凭证在后续上传到PyPI的版本中包含了加密货币挖矿程序。虽然GitHub已删除恶意脚本,但此次事件提醒开发者谨慎处理自动化访问重要secrets的机制。
阅读更多
开源矢量图形编辑器Inkscape 1.4版本预计将于10月发布。此版本带来了新功能、用户界面改进、新的和改进的文件格式支持以及代码库的重要更改。新版本改进了对话框,包括扩展和滤镜库,并改进了Swatch对话框和渐变编辑器。核心功能方面,形状构建器工具现在支持光栅图形,文本编辑工作流程也得到了改进。界面和内部变化包括可自定义的画布控件和新的图标主题“Dash”。此外,命令行界面也新增了一些功能和选项。Inkscape 1.4为过渡到GTK+ 4奠定了基础,GTK+ 4预计将在1.5版本中实现,同时带来新的颜色管理系统。
阅读更多
Debian 项目正在处理用户名规则问题,其两个用户创建工具(useradd 和 adduser)对允许使用的字符存在分歧。useradd 工具遵循更严格的 POSIX 标准,而 adduser 则更为宽松。开发者们讨论了是否允许 UTF-8 用户名,以及用户名长度和字符限制。鉴于 UTF-8 支持带来的复杂性和潜在安全风险(例如同形异义字攻击),adduser 的维护者决定在下一个版本中默认拒绝 UTF-8 用户名,但仍允许通过选项启用。
阅读更多
GIMP 3.0 迎来了自 2018 年以来的首次重大更新,采用了 GTK 3 用户界面,带来了性能和可用性提升,并增强了与 Wayland 和复杂输入设备的兼容性。新版本支持 CSS 主题、多点触控和改进的色彩管理,并实现了非破坏性编辑,优化了图层工作流程和文件格式支持。此外,GIMP 3.0 还引入了新的扩展系统和文件格式 GEX,方便插件和主题的管理。
阅读更多