Linux内核性能优化:可重启序列的改进
Linux内核中的可重启序列功能旨在提升多线程应用的性能,但其使用一直比较小众。随着该功能与内核新特性结合,其应用范围日益扩大,也暴露出一些问题。最近,开发者Thomas Gleixner对可重启序列代码进行了改进,解决了性能瓶颈和一些历史遗留问题,提高了效率。部分改进可能导致用户空间的ABI变化,需要进一步测试以确保兼容性。
阅读更多
Linux内核中的可重启序列功能旨在提升多线程应用的性能,但其使用一直比较小众。随着该功能与内核新特性结合,其应用范围日益扩大,也暴露出一些问题。最近,开发者Thomas Gleixner对可重启序列代码进行了改进,解决了性能瓶颈和一些历史遗留问题,提高了效率。部分改进可能导致用户空间的ABI变化,需要进一步测试以确保兼容性。
阅读更多
Cong Wang提交了一系列RFC补丁,为Linux内核引入了多内核架构支持。该架构允许在单个物理机上同时运行多个独立的内核实例,每个实例运行在专用CPU核心上,共享底层硬件资源。这将提升故障隔离、安全性,并优化资源利用率,甚至实现零停机内核更新。该实现利用kexec基础设施加载和管理多个内核镜像,并通过IPI框架实现内核间通信。目前该补丁系列仅包含基础框架,主要目标是征求社区对高层设计和整体方法的反馈。
阅读更多
Linux内核面临来自用户空间、网络和存储设备等多个不受信任数据源的威胁。为了增强安全性,Benno Lossin提出了一种新的Rust API,引入了`Untrusted`类型来标记来自不受信任来源的数据。该类型利用Rust类型系统,阻止意外地基于未经验证的用户空间数据做出决策,从而有效防止潜在的攻击。该API目前已迭代到第四版,并包含用于处理`Untrusted`数据的实用函数和对常用数据结构的支持,例如切片和向量。未来,该API有望在驱动程序的`ioctl()`函数中得到应用,进一步增强内核的安全性,并有望在即将召开的Kangrejos会议上得到进一步讨论。
阅读更多
curl项目维护者Daniel Stenberg在Open Source Summit Europe上分享了他维护这个广泛使用的开源项目的辛酸。curl项目虽小,影响却巨大,每月有20-25名开发者贡献代码,但只有一名全职员工——Stenberg本人。他面临着来自企业无偿使用、恶意邮件、AI公司DDoS攻击等诸多挑战,维护工作远远超过他的能力范围。然而,来自用户的感谢邮件也给了他继续努力的动力。这篇文章揭示了开源项目维护的困境,呼吁企业和开发者给予更多支持。
阅读更多
openSUSE团队宣布将在6.17及更高版本的内核中禁用BCacheFS文件系统。这是因为BCacheFS从6.17版本开始由外部维护,openSUSE团队将不再维护和移植下游补丁。目前6.16及之前的版本不受影响。用户需要按照BCacheFS上游的建议安装和使用该文件系统,也可以自行准备KMP。一旦BCacheFS维护者恢复上游维护,openSUSE将重新启用该功能。
阅读更多
KDE项目在Akademy 2025上发布了KDE Linux的alpha版本,这是一个由KDE项目构建的发行版,旨在提供一个包含KDE所有最佳功能的完整Linux系统。它基于Arch Linux,但使用了KDE Builder编译和Flatpak安装软件,而不是pacman。KDE Linux的目标是为家用、商用和OEM安装提供一个操作系统,但目前仍处于早期alpha阶段,存在许多不足之处。未来计划包括发布测试版、爱好者版和稳定版三个版本,并最终考虑一个退出计划,将系统迁移到另一个发行版。
阅读更多
Miguel Grinberg在EuroPython 2025上介绍了他的最新作品Microdot——一个轻量级的Web框架,可在MicroPython和CPython上运行,适用于从物联网设备到云服务器的各种系统。其灵感源于Flask,但规模更小,更适合资源受限的环境。Microdot的诞生源于Grinberg在爱尔兰家中智能恒温器故障的经历,他最终用MicroPython编写了一个小型系统来控制加热,并使用Microdot构建了一个简单的Web界面来监控温度和湿度。Microdot的核心代码精简,仅765行,同时支持异步操作和常用功能,并通过扩展模块提供更高级的功能。其设计理念注重简洁明了,避免复杂性,使其成为微型设备上构建Web应用的理想选择。
阅读更多
在2025年欧洲开源峰会上,Dawn Foster探讨了开源软件开发中权力动态的复杂性。大型云提供商通常拥有主导地位,这可能会导致他们利用权力损害小型公司。一种策略是“抽屉式撤回”(Rug Pulls),即公司重新许可软件以限制竞争对手的盈利能力。这常常会导致“分叉”(Forks)的出现,即社区为了重新掌控代码而创建项目分支。演讲者分析了Elasticsearch、Terraform和Redis等项目的案例,比较了不同项目在分叉前后贡献者的构成变化,并指出中立治理和多元贡献者基础的重要性。最终,Foster强调,虽然分叉是维护者和贡献者对抗权力失衡的一种手段,但项目应更注重中立治理和广泛的贡献者参与,以减少“抽屉式撤回”的风险。
阅读更多
在2025年欧洲开源峰会上,Linux内核架构维护者Arnd Bergmann发表演讲,讨论了移除32位系统支持的可能性。虽然桌面和服务器系统早已过渡到64位,但嵌入式系统中仍有大量32位设备。Bergmann指出,虽然内核仍在添加一些32位板的支持,但64位板的支持数量已大幅超过32位。他认为,移除32位支持是一个循序渐进的过程,需要考虑现有硬件和软件的支持情况,并通过分析用户数量来决定何时移除对特定架构的支持。此外,演讲还讨论了高内存支持、year-2038问题、大端支持等与32位支持相关的挑战和解决方案。最终,Bergmann表示,内核将至少保留十年对armv7系统的支持,而其他32位架构的支持可能会逐渐消失。
阅读更多
经过两年多的开发,Debian 13 “Trixie”稳定版终于发布。它升级了大量软件包,新增超过14000个软件包,并默认使用APT 3.0作为包管理器,还支持64位RISC-V架构。Trixie 秉承 Debian 一贯的稳定性优先原则,虽然软件版本并非最新,但足够满足大多数用户的需求,包括 GNOME 48、KDE Plasma 6.3 等。安装方面,虽然传统安装程序对新手略显复杂,但提供了 Calamares 图形化安装程序作为替代方案。此外,Trixie 还解决了 32 位系统中的 Y2038 问题,并移除了对 i386 和部分 MIPS 架构的支持。
阅读更多
纪录片《Python:The Documentary》现已上线YouTube!这部90分钟的影片讲述了Python编程语言的传奇故事:从阿姆斯特丹的一个业余项目,到如今驱动人工智能、数据科学和全球最大公司软件的基石。影片采访了Guido van Rossum、Travis Oliphant、Barry Warsaw等核心人物,揭秘了Python的崛起、社区驱动的演变、差点导致分裂的冲突以及它对世界的影响。EuroPython大会上已提前放映部分内容。
阅读更多
在公共云环境中,Linux虚拟机(VM)的隐私存在固有限制。机密计算技术通过保护虚拟机的内存,即使针对管理程序也能提供更高的隐私保护。然而,为了支持机密VM,Linux云栈需要重新思考,在性能和安全之间取得平衡。文章探讨了硬件隔离、软件安全机制以及机密计算如何影响Linux云栈的启动过程、安全启动、远程证明等方面,并分析了在扩展性和性能方面面临的挑战,例如DRAM加密解密、内存页面接受过程、ASID限制等。最终,文章指出,虽然机密计算提升了安全性,但同时也加深了对硬件和固件的依赖,并呼吁关注开放架构的重要性,以减少对第三方信任的依赖。
阅读更多
随着AI辅助编程工具的兴起,Linux内核社区内部就如何处理由大型语言模型(LLM)生成的代码补丁展开了激烈的讨论。一部分开发者提交了使用LLM生成补丁的案例,并提出了添加新标签以标识LLM使用情况的建议。然而,许多开发者对LLM生成的补丁质量、版权问题以及维护者负担的增加表示担忧,甚至有人建议禁止LLM生成的补丁。目前,社区尚未形成共识,但讨论已扩展到制定更全面的AI政策,这将在12月的维护者峰会上进一步讨论。
阅读更多
Arch Linux的ArchWiki以其高质量文档闻名Linux社区。DebConf25上,ArchWiki维护者分享了其成功的经验,包括内容策略、贡献指南和社区管理。ArchWiki使用MediaWiki,其优势在于全面、高质量和最新的内容,但同时也面临着MediaWiki标记语言复杂、贡献门槛高等挑战。未来,ArchWiki计划改进社区参与、开发更多编辑工具,并谨慎利用AI技术,以应对AI生成内容和爬虫带来的威胁。此次分享也激励了Debian项目对其维基进行改版,采用了MediaWiki。
阅读更多
Nyxt是一款非同寻常的浏览器,它将Emacs的理念融入其中,打造了一个高度可定制、键盘驱动的Web体验。由Common Lisp编写,Nyxt优先考虑Linux用户,并鼓励开发者对其进行扩展。虽然最初受Emacs启发,但Nyxt独立于Emacs运行,并支持vi和CUA按键绑定。当前版本3.x使用WebKitGTK渲染引擎,即将推出的4.0版本将支持Electron,以提升性能并扩展到macOS和Windows。Nyxt以其极简的界面和强大的自定义功能吸引着追求极致效率的开发者,但其较高的学习曲线和有限的社区资源也构成一定的挑战。
阅读更多
StarDict,一款流行的跨平台字典软件,被发现存在严重安全漏洞。在X11系统下,其默认配置会将用户选中的文本通过未加密的HTTP协议发送到两个远程服务器。该漏洞源于其默认启用的“扫描”功能,该功能会实时监控用户文本选择并自动提供翻译。尽管维护者认为禁用扫描功能或YouDao插件即可解决问题,但安全专家指出,存在隐私风险的功能不应默认启用。此漏洞并非首次出现,此前也曾有类似报告,但修复不彻底,导致部分用户多年来可能一直面临文本泄露风险。Debian系统中StarDict的安装量虽不高,但这凸显了开源软件维护中安全问题的长期存在和修复的滞后性。
阅读更多
EuroPython 2025 大会上,Python 性能工程师 Antonio Cuni 揭示了关于 Python 性能的诸多误解。他指出,Python 并非一味地慢,其性能瓶颈并非仅仅是解释型语言的特性,而是内存管理和动态特性带来的开销。Cuni 认为,目前的 JIT 编译器虽然能提升性能,但难以彻底解决问题,并提出了一个名为 SPy 的项目,旨在通过修改语言语义,在不破坏兼容性的前提下,提升 Python 的性能,最终实现媲美 C/C++ 的速度。SPy 项目已在 GitHub 上开源,并提供了一些易于上手的 issue 供开发者参与。
阅读更多
历经十余年,QUIC协议终于迈向Linux内核主线。该协议旨在解决TCP协议在现代互联网中存在的延迟、拥塞和安全性问题,通过UDP实现更快速、更安全的数据传输。然而,目前的内核实现版本在性能测试中表现不及预期,与TCP相比存在差距。开发者表示,这与缺乏硬件卸载支持和优化有关,未来性能有望提升。QUIC的内核集成将为更多应用程序提供支持,但完整的代码审核和合并过程预计需要较长时间,可能要到2026年才能正式进入主线版本。
阅读更多
GrapheneOS是一个致力于增强Android系统安全性和隐私性的开源项目。它基于Android开源项目,去除了大量代码,并增加了许多安全特性,例如强化malloc库和控制流完整性功能。虽然GrapheneOS仅支持部分谷歌Pixel设备,但其提供的硬件内存标记功能可以有效保护系统免受攻击。作者亲身尝试安装GrapheneOS,发现虽然初期配置耗时,但最终获得了更安全、更私密的Android体验,并对系统中内置的众多隐私保护功能赞赏有加。然而,要完全抛弃专有应用并维持正常功能仍然存在挑战。
阅读更多
PyCon US 2025上,Spotify机器学习工程师Peter Sobot介绍了其开发的Python音频处理库pedalboard。该库基于Python,利用NumPy等库实现高效的音频处理,支持多种音频格式转换和特效添加,并能与VST3插件无缝集成。Sobot在演讲中深入浅出地讲解了数字音频的基础知识,并演示了pedalboard的强大功能,例如实时音频效果处理和高效的音频流处理。他特别强调了在Python中进行音频处理时,应避免将整个音频文件加载到内存中,而是采用流式处理的方式,以避免内存溢出问题。pedalboard为Python开发者提供了强大的音频处理能力,为音频相关的应用开发提供了便利。
阅读更多
Linux Secure Boot 系统依赖于一个即将在9月过期的微软密钥。此密钥用于签名引导Linux内核的第一阶段UEFI引导加载程序(shim)。虽然微软自2023年提供了新的密钥,但许多系统可能尚未安装,甚至可能需要硬件厂商更新固件。这将给Linux发行版和用户带来额外的工作。一些系统可能需要通过LVFS和fwupd更新固件,但这并非总是有效,一些老旧的BIOS可能存在空间不足的问题,甚至需要重置BIOS才能成功更新。厂商提供的更新也可能存在问题,例如某些厂商丢失了平台密钥。最终,禁用Secure Boot可能是某些情况下唯一的选择。
阅读更多
本文探讨了在Linux内核中使用Rust时,Rust与C代码交互的细节。重点介绍了内存分配(Kmalloc、Vmalloc、KVmalloc及对应的Box和Vec)、处理自引用结构(Pin和pin_init!宏)以及锁机制(Mutex、LockedBy、GlobalLockedBy)。Rust通过其类型系统和生命周期管理,提升了内核代码的安全性,减少运行时错误。
阅读更多
微软将于9月停止使用其用于签署Linux Secure Boot启动加载程序的密钥,这将导致许多Linux系统无法启动。虽然微软自2023年起提供新的密钥,但许多系统尚未更新,甚至可能需要硬件厂商更新固件。这给Linux发行版和用户带来了额外的工作。解决方法包括通过LVFS和fwupd更新固件,但一些旧固件可能存在兼容性问题,甚至可能需要禁用Secure Boot。厂商更新也可能存在问题,例如丢失平台密钥等。最终,这凸显了Linux在依赖Windows主导的硬件生态系统中所面临的挑战。
阅读更多
Btrfs文件系统迎来重大性能升级!新的补丁引入了基于设备角色的块分配机制,解决了现有方法中块分配仅基于可用空间导致性能不均衡的问题。通过定义五个设备角色(metadata_only, metadata, none, data, data_only),并结合角色优先级和剩余空间的策略,系统可以优先将快速设备分配给元数据,慢速设备分配给数据,从而显著提升读写性能。这项改进无需复杂的设备速度测量,并利用了已有的磁盘格式,为Btrfs文件系统带来了更智能、更高效的存储管理。
阅读更多
Thunderbird 邮件客户端发布了 140 版本,带来了诸多新特性。其中最引人注目的是“暗色消息模式”,可使邮件内容适应暗色主题;此外,该版本还支持轻松将桌面设置传输到移动版 Thunderbird 客户端,并提供对 Microsoft Exchange 的实验性支持,以及全局的消息线程和排序控制。此版本为扩展支持版本 (ESR),将获得 12 个月的支持,但 Thunderbird 项目鼓励用户采用每月更新的 Release 版本。为了在广泛部署前捕获重大错误,项目正在分阶段为现有 Thunderbird 用户升级到 140 版本,但用户也可以通过“帮助 > 关于”菜单手动升级。
阅读更多
Linux内核维护者Linus Torvalds拒绝合并bcachefs文件系统的6.16-rc3版本代码,并暗示在6.17版本中将不再接受该项目的代码贡献。这源于双方在代码审核过程中的严重分歧,Torvalds认为bcachefs开发者Kent Overstreet拒绝接受任何对其代码的质疑和修改。双方私下沟通后,最终决定停止合作。
阅读更多
本文讲述了使用Rust编写Linux内核中AX88796B嵌入式以太网控制器驱动程序的经验。作者将Rust版本与C版本进行了对比,重点介绍了Rust在语法、类型和API上的差异。Rust版本代码简洁,仅100多行,利用宏简化了驱动注册过程,并通过trait和vtable宏实现了与C代码的无缝集成。文章深入浅出地讲解了Rust在内核驱动开发中的优势,例如通过引用保证内存安全,使用Result和try操作符简化错误处理等,为Rust内核驱动开发提供了宝贵的参考。
阅读更多
历经25年,广泛应用于开源项目、商业软件和政府部门的XML解析器libxml2,正面临着维护者的困境。长期以来,各大公司依赖libxml2却未积极回馈,导致维护者Nick Wellnhofer不堪重负。他最终决定放弃安全漏洞的保密处理,将安全问题与普通bug同等对待,并呼吁公司停止依赖,或积极参与维护。此举引发了开源社区关于项目维护和企业责任的广泛讨论,也凸显了开源可持续发展面临的挑战。
阅读更多
来自中国南方科技大学的研究人员开发了一个名为Asterinas的新型Linux内核,它使用Rust语言并采用“framekernel”架构。该架构结合了单内核和微内核的优点,将需要使用Rust不安全特性的代码封装在一个库中,其余内核服务则使用安全抽象开发。这提高了内核安全性,同时保留了单内核的高性能。Asterinas的目标是创建一个具有小型可形式化验证的TCB的系统,同时具有Linux ABI兼容性和简单的共享内存架构。目前,Asterinas支持x86和RISC-V架构,并正在积极开发中,未来计划扩展对更多架构的支持,并将其应用于云计算领域。
阅读更多
Linux内核6.16版本对核心转储处理机制进行了重大改进,修复了长期存在的安全漏洞。以往的API设计存在诸多缺陷,例如核心转储处理程序以root权限运行,容易成为攻击目标,且存在竞争条件导致漏洞。新的改进方案引入了pidfd机制,确保处理程序操作的是正确的崩溃进程,并允许处理程序绑定到socket接收核心转储,降低权限提升风险,从而有效防范攻击。
阅读更多