谷歌向 Linux 内核提交 mseal() syscall 补丁


【源创会预告】1024 程序员节(的前两天),相约开源PHP办公室,我们一起聊 AI!>>>

谷歌工程师近日向 Linux 内核提交了一个新补丁,希望为其添加名为 mseal() 的系统调用「mseal() syscall」。

据介绍, 谷歌这个独立于架构的系统调用最初由 Chrome OS 上的 Chrome 浏览器使用。当时 Glibc 也在动态链接器中进行类似的实验,以在启动时封装所有不可写的段。

通过 mseal() 可防止系统调用修改虚拟地址的元数据。最初支持的是针对 mprotect/pkey_mprotect、munmap、mmap 和 mremap 调用进行封装。为了在 Chrome 和 V8 JavaScript 引擎中提供更好的保护,开发者正在寻求使虚拟内存区域的元数据不可变。

Glibc 的方案是在动态链接器中添加封装,以便在启动时对所有不可写段进行封装,这也将自动使所有应用程序受益。

Linus Torvalds 对 mseal() syscall 提出的模型表达了保留意见,目前这个提案并没有直接被接受,需要修订才能进化成适合上游的形式。

Linus 表示:

“我对添加某种’锁定内存映射’ (lock down memory mappings) 模型没有异议,但事实并非如此。

首先,最明显的问题是提交信息无价值。

另外更根本的问题要严重得多——"ON_BEHALF_OF_KERNEL" 和 "ON_BEHALF_OF_USERSPACE" 整体完全不合逻辑,整体概念都需要重写。因为这就是 remap_file_pages() “字面上”的系统调用定义。”


相關推薦

2022-04-27

在向 CNCF 捐赠 Knative 后,谷歌和 Istio 指导委员会又宣布已将 Istio 项目提交给 CNCF,供其考虑作为一个孵化项目。“这对 Istio 及其社区来说是一个重要的里程碑,我们很高兴能在项目的发展中达到这一步。” Istio 是一个由

2022-09-29

Nick Desaulniers 是谷歌的 Linux 内核开发者,曾因使用 LLVM/Clang 编译 Linux 内核而被众人熟知。最近他开始尝试在 macOS 平台编译 Linux 内核。 从他近日发送的邮件来看,Nick Desaulniers 已成功在他的 Apple M2 MacBook Air 上(运行 macOS 12.5.1 "M

2022-09-30

PI、架构支持,以及 ABI 与内核的兼容性问题。 2021 年,谷歌称 AOSP (Android Open Source Project) 现已支持使用 Rust 开发 Android 操作系统(Android 也属于 Linux 发行版)。 2021 年,Linus 再度发表自己对 Linux 内核支持 Rust 的看法,他

2022-03-31

谷歌方面正在致力于改进由于太多的 NVMe 驱动器,而导致的 Linux 服务器重新启动时间太长问题。缘于在于该公司的一些多驱动器服务器可能需要超过一分钟的时间才能让 Linux 内核执行其 shutdown 任务,而谷歌的这项改进工作也

2023-01-08

谷歌工程师 James Houghton 已向内核发送了两轮补丁,用于将 HugeTLB 高粒度映射 (HGM) 的概念引入 Linux 内核。目前他共发送了 46 个处于 RFC 后状态的补丁集以供审核。 Linux 内存管理采用“分页机制”, 当运行内存需求量较大时

2023-08-08

BBR (Bottleneck Bandwidth and Round-trip propagation time)是谷歌在 2016 年发布的一套拥塞控制算法。它尤其适合在存在一定丢包率的弱网环境下使用。比如谷歌就通过 BBR 让内部和外部的网络能够以更高吞吐量和更低延迟更高效地运行。在这

2022-10-21

谷歌宣布将其 Go 应用镜像构建器 ko 作为沙箱项目提交给 CNCF。ko 是谷歌在 2019 年开源的 Go 应用程序的简单、快速和安全的容器镜像构建器,最近还添加了一些新功能,包括多平台支持和自动 SBOM 生成。 就像谷歌

2022-11-23

从去年开始,当使用 LLVM 的 Clang 编译器构建 Linux 内核时,已支持为内核构建启用链接时优化 (LTO, link-time optimizations)。而对于使用 GCC 构建 Linux 内核,仍缺少 LTO 支持,近日发布的一系列补丁是实现此目标的最新尝试。 Clang

2022-02-15

Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 近日再向 Linux Kernel 邮件列表提交了一个新补丁 (v4),继续推进在 Linux 内核中增加对 Rust 作为第二语言支持。此举意味着对 Linux 内核驱动程序等的可选 Rust 编程支持继续成熟;Phoro

2023-11-23

联想近日提交了一个 Linux 内核驱动程序补丁,专为其最新的 ThinkPad 笔记本电脑构建,目标是优化性能表现 (Ultra-Performance Capability) —— 确保在开启「性能」模式的 ACPI 平台配置下,硬件能够实现最佳 Linux 性能的同时,在平衡和

2023-03-26

的合资企业,旨在打造国产 x86 CPU,目前正致力于让 Linux 内核支持其最新的“永丰”处理器。 兆芯去年年底宣布了 KH-4000 系列采用“永丰”架构的服务器 x86_64 处理器,最高支持 32 个核心。“永丰”架构是“陆家嘴”微架构的

2022-12-01

2022年11月,经openKylin社区技术委员会审议通过,Phytium内核补丁特别兴趣小组—PhytiumKernelPatch SIG正式成立。 PhytiumKernelPatch SIG由openKylin社区共建单位飞腾信息技术有限公司发起成立,在openKylin社区中负责为搭载飞腾系列处理器的

2022-03-18

Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 向 Linux Kernel 邮件列表提交了一个,继续推进在 Linux 内核中增加对 Rust 作为第二语言支持。 一些 Rust for Linux v5 的更改包括: 工具链和 alloc 已经升级到了 Rust 1.59.0。这个版本

2023-02-24

由英特尔发起的最新内核性能补丁改进了 Linux 内核的公平调度程序代码,这个补丁系列的重点是避免不必要的跨 CPU 唤醒,可增强搭载高核心数 CPU 的 Linux 系统性能。 该 Linux 内核调度补丁主要是将短任务放在当前 CPU 上,以避