慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

L
LangChain Blog
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
J
Java Code Geeks
Recent Announcements
Recent Announcements
The Cloudflare Blog
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网
H
Help Net Security
博客园 - Franky
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
博客园_首页
C
Check Point Blog
腾讯CDC
美团技术团队
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
U
Unit 42
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Engineering at Meta
Engineering at Meta
M
Microsoft Research Blog - Microsoft Research
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
李成银的技术随笔
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Hacker News

Texas woman arrested for Facebook post about town water quality Iowa lawmakers move to mandate students take Center for Intellectual Freedom classes amid low enrollment JWT is a scam and your app doesn't need it Reverse engineering circuitry in a Spacelab computer from 1980 Evaluating SPEC CPU2026 Show HN: I built a RAG and knowledge graph agent that runs locally Italy moves to Airbus A330 tankers in major NATO-aligned shift Lisp in Vim - Susam Pal z386: An Open-Source 80386 Built Around Original Microcode Oura says it gets government demands for user data. Will it share how many? On the <dl> The Art of Money Getting – Cool Tools The spell that wouldn't leave · mahl.me 80386 microcode disassembled « Reenigne blog twitter.com Making Deep Learning go Brrrr From First Principles DHS Quits Granting Green Cards–Almost US tech firms share Dutch regulator officials’ names with senate The FBI Wants ‘Near Real-Time’ Access to US License Plate Readers -​-dangerously-skip-reading-code BambuStudio has been violating PrusaSlicer AGPL license since their fork Spanish Court Declines to Fine NordVPN over LaLiga Piracy Blocking Order GitHub - amatsuda/rubish The White House is ordering agencies to place its new app on all employees’ government phones Google Is Killing ChromeOS: Aluminium OS, Its Android-Based Replacement New rule requires most green-card applicants to apply from outside U.S. Is AI Profitable Yet? FBI director&#x27;s Based Apparel site has been spotted hosting a &#x27;ClickFix&#x27; attack TikTok disproportionately served anti-Democratic videos during the 2024 election SpaceX successfully launches prototype of Starship rocket SpaceX just launched Starship V3 &mdash; its most powerful megarocket yet &mdash; into space for the 1st time in… GitHub - bkawa-bot/planet-maiko: A local dev tool where your agents are weird alien dogs. Would you let them in? Why We&#x27;ve Filed a Referendum Don't just 'quote' the AI Ebola outbreak now third largest recorded and "spreading rapidly" Client Challenge Shipping a Laptop to a Refugee Camp in Uganda Hengefinder: Finding When the Sun Aligns With Your Street Green Card Seekers Must Leave U.S. to Apply, Trump Administration Says GitHub - anomalyco/models.dev: An open-source database of AI models. Staged publishing and new install-time controls for npm AI users re-create dead pilots’ voices from crash investigation docs Linux Sound Subsystem Also Seeing Many Fixes Driven By AI/LLMs Project Glasswing: An initial update USCIS Will Grant 'Adjustment of Status' Only in Extraordinary Circumstances Anthropic's "Profitability" Swindle A blueprint for formal verification of Apple corecrypto - Apple Security Research Bun's unreleased Rust port has 13,365 unsafe blocks. Most can be removed. The ten steps towards a dictatorship KanBots — a kanban that runs parallel agents
吾等何以使吾辈之OCI文件系统速增四十七倍
2026-05-20 · via Hacker News

吾等Discord中一友言,微沙盒之感迟缓。列Python标准库中诸文件,于沙盒内需时五点三秒;而于Docker,仅须毫厘之间。吾等遂深究之

吾等更之於v0.4:易吾等之用戶空間文件系統爲Linux之硬盤影像,虛機直掛之。吾等混雜之客觀文件系統套件,其幾何平均加速率四十七倍,最劣之列超千倍,而主機文件系統之碼約五千三百行短。

吾初試爲monofs:此乃一以内容寻址之文件系统,具区块级之去重、压缩,并设分布式读副本。其存图像于盘,仅及其原体积之1.3倍,且微沙盒以本地为先,故长尾去重之利,不偿其初置之费。至v0.3时,吾改用OCI,并加用户空间之覆盖层,此层基于libkrun之钩子构建;得层级去重,且于Linux与macOS行为无别,然万般皆在内核之外运行。

凡VM之中文件之操作,必经由FUSE反弹至主系统,FUSE者,Linux之机制,使寻常程序可扮作文件系统也。欲开一文件,VM将请托付予主程序,主程序遍寻诸层以觅此文件,复将答案返之;每有statreaddir,及缓存失之情形,皆循此途;一Pythonimport 起动之前,辄触数十此迂回;十重图像,更倍其费。

吾辈继之,于v0.3时,力图其径之速:善其缓存,减其系统调用,缩其响应。每变损其数分。皆未易其量级。

Docker无此弊,盖 Docker用核之自层数据驱动(overlayfs),故文件之动未尝出核。吾辈尝欲外核求核之层数据,无缓存可弥其隙。

是故去其层数据。

新策在,止诸文件之操作,不往复于虚拟机与主机间。吾辈当预先构 Linux 文件系统之像,授虚拟机为虚盘,使虚拟机自核自载之。FUSE 既出其外,则虚拟机内之文件操作,自可存于虚拟机内。

未始

应用程序(app)

客 VFS

virtiofs / FUSE之界

主文件系统代码

层查找/覆盖逻辑

响应返回至虚拟机

应用

客机VFS

客机覆盖文件系统

客机EROFS

虚拟块设备

缓存块设备支持镜像

昔者,每查必越VM与主界。今者,常读常查皆在客核之内。

吾所择之文件系统者EROFS:唯读,自树中,因核需之故,用于安卓,且撰述易。EROFS亦解macOS之困:虚拟机自核,虽外运行何物,皆为Linux,故一旦磁盘影像成,主系统之文件系统即无足轻重。

微沙盒,行于Linux与macOS,然macOS缺主端之工器,常用于建文件系统影像:无mkfs.ext4,无。mkfs.erofs,无回环挂载。若吾之图像管线有所倚赖,则必或运一助VM(重,启动迟缓),或永存平台之别,二者皆非微沙盒“单一自包二进制”之诺言所宜。是故吾等以Rust自撰图像之撰。文件系统者,磁盘之字节布局也;撰者惟产此布局耳。三小物成其事:

  • EROFS作者发唯读之像于OCI层者。
  • ext4写入者彼发疏阔,记事之痕,每沙盒得之。
  • VMDK描述符此能织诸事于一片虚盘之中。

管中无物,不索根权,亦不载回环之器,而同此 Rust 代码径,于 Linux 及 Apple Silicon 上建像,不假他山之工。EROFS 之遗物,经吾所撰之读器往返,CI 则于真 VM 核下启全栈。若一宇之误,二读器必告之。

用此写器之显道,每 OCI 层一 EROFS 图像。 虚拟机每层得一虚拟磁盘,复一于 scratch 区,而核之 overlayfs 于启动时合之。效验:首测速较 v0.3 快十至百七,视负载而定,遂可发之。

初裁

层一

/dev/vda

层二

/vdb

层数三

/vdc

层数三十

/vd?

每OCI层数一EROFS影像。Python影像附约十碟;或有定制构建逾微VM之virtio设备之限。

继而数其层数。一Python之像约十;CUDA之像或多;有用户所建者,竟至三十四十。微VM之制,限其可载之器,吾辈每层附一磁盘焉。举冠然真解在于,止用虚拟磁盘示VM“此像有层”之时, filesystem自可承此信息。

EROFs(EROFs的朋友们)示吾辈一未尝用之功能:EROFS可建一元数据之像,惟合并之目录树,兼每文件一指针,示其字节所存之底块及其偏移。核读此像,视全束若一虚盘,应每查寻,惟一算即得,非遍索诸层。

是故,其流为:

  • 循常引OCI诸层。
  • 构一微元元数据之像,状合木之形.
  • 授虚拟机一灵盘,使元数据与层块相缀合。

今之虚拟机,唯需接二根文件系统块设备,无论原镜像层叠几何:一为只读之VMDK栈,承原镜像(其内引合并元数据之镜像及各层EROFS之范围),一为可写之ext4上层,供沙箱之用。Overlayfs恒合此二者。此即所发行之版本,稍之内核配置微调 (CONFIG_EROFS_FS_XATTR + CONFIG_EROFS_FS_SECURITY) 俾 EROFS 显 xattrs 之 overlayfs 所需以覆白出。

拉取之际,主體化 OCI 层為 EROFS 之件,以差異 ID 索,合層元資料於本源,書 fsmeta.erofs,並發 VMDK 之記。fsmeta.erofs 並層之延。沙盒創立之際,微沙盒為此沙盒創一疎upper.ext4。啟動時,客體見僅讀下層堆為/dev/vda,可寫上層堆為/dev/vdb,而Linux之疊戴文件系統/之。

圖像堆

OCI層

每層EROFS之遺物。

合并元数据及源流

fsmeta.erofs

VMDK描述于fsmeta及层范围

/dev/vda(只读下层)

沙盒上层

稀疏上层.ext4

/dev/vdb(可写上层/工作)

客机overlayfs

/

每沙盒启动,原像宣告之层数无碍,每沙盒必有两块块设备。主机于拉取时独付遍历层之费;客机于运行时则无所费。

吾等于python之像,对二版本,三度运行同套基准。每度运行皆新启状态。于十四项混合客机可见之文件系统作业,其几何平均加速倍数为四十七倍有余。,而八项最大变动者列于下.

此柱状物分为二类:

  • Rootfs路径:此乃新OCI路径之最洁净量度;今此操作皆存于客核之中,不复经主核跳转.
  • /tmptmpfs:客显之胜,实因削FUSE往返于客tmpfs作业,非新EROFS下rootfs路径所致。

1×10×100×1,000×

file_delete_1k

1109.94

×

更名_1k

876.58

×

小文件创建_1k

240.78

×

元数据扫描_标准库

240.28

×

读取全部_Python_标准库

116.40

×

深度树遍历

47.16

并读_4t

20.93

随机读_标准库

4.01

根文件系统路径

/tmp tmpfs

对数刻度。v0.3.14基线=1×。越高越好。

metadata_scan_stdlib 考察 Python 之標準庫中每一檔案之元資料。昔者半秒而就,今者僅需二毫秒耳。

Linux之overlayfs,乃一宏大之规范,涵括白名单、不透明目录、跨拷贝硬链接、目录重命名,及若干xattr之惯例,皆须恰如其分。吾等v0.3于用户空间重实现之,然吾等删除之日,犹在追索边缘案例。v0.4则未重实现之,盖虚拟机自内核已为之合并,旧时之bug未得修复;今已消弭矣。

主仍须通晓OCI层之理,然惟一次,在引时也。白除、不透明目录、硬链接、扩展属性、区分大小写路径,皆于fsmeta.erofs书之前,化入合并之元数据树。其后,运行路径即寻常之内核EROFS与overlayfs也。

macOS之APFS,默认不区分大小写。多Linux镜像含文件名仅大小写异者,往昔提取于Mac,则后者必归并前者。v0.4永不复提取至主文件系统;EROFS写入者将tar流直送二进制镜像,其中文名与原名皆存为磁盘上独立条目。

盖因根文件系统今为真磁盘镜像,故周遭产品界面愈廉。

  • OCI之补丁. 根文件系统之补丁,用户欲置于镜像之上者,于启动前即烙印于upper.ext4,而非以运行时覆盖协议铆接之.
  • 共通之下层. 各层之EROFS产物,以差异ID标示其内容,故二隔离沙箱共用一基础镜像者,其字节既存于磁盘,复驻于缓存.
  • 快照。 砂盒可写状态,乃一ext4之文件;保存或复制之,即文件之复制也.
  • 磁盘映像之根. 定制非OCI磁盘映像根文件系统,复用同块设备启动之机,唯无fsmerge步骤于其前.

唯OCI根文件系统而已. 绑定卷(你共享至虚拟机的宿主机目录)仍循旧径。其内容,虚拟机读之,可随时更迭,然唯读磁盘镜像,难状其变.

初次拉取,非速也. 今于拉取之际,更勤其工以建镜像,虽层间并行而受tar解压所限,故其效近旧,后续沙盒所创之,速也,盖惟发疏影耳。

于影之写,犹袭写为变。欲改影中篇,则影上抄入可写之层,恰若诸叠设。根之胜在此,乃于寻读繁重之途;/tmp之生灭,胜于图之来者。/tmp 乃客侧tmpfs之常,别为运行时之决断也。

核心之庸术,常胜用户空间之巧策。 既有单文件系统,复有吾等v0.3之覆盖系统,皆雄心勃勃之设计也。然EROFS乃内核中文件格式,平淡无奇,而沙盒根文件系统,平淡者胜。吾等费时月余,调适用户空间之码,终悟结构之解,在于止竞内核,而用之。

NIH之策,于既有之物破坏汝之设计时,尚可。 欲求mkfs.ext4,则需出壳。mkfs.erofs 若为助VM或独用Linux之分裂,皆将毁微沙盒"一自成一统之独体"之诺。自为写作者,乃守此诺之代价,吾等复当易此交易。

舍中仍持佳思。吾初裁已然大胜,几欲即行。EROFS所倡之洁形,初时似为可欲之具,然持此PR再延一周以纳之,遂使偶发之优化,变为吾乐于长持之事。

于虚拟机中运行基准测试。 若以主机之时计,则FUSE往返之弊可隐,胜负之形亦减。当计时用户所待之事。

此功能载于微沙盒0.4及以后版本。安装CLI:

curl -sSL https://install.microsandbox.dev | sh

或用适于汝语言之SDK:

uv add microsandbox       # python
npm install microsandbox  # typescript
cargo add microsandbox    # rust

基准测试别置一库,俾可渐成跨运行时之比较。以 msb 而行。PATH与鲜段~/.microsandbox

git clone https://github.com/superradcompany/sandbox-bench
cd sandbox-bench/benches/fs
just bench-quick

justuv