系统与数据库2019cs.bu.edu
Unikernel:Linux 主导地位的下一个阶段
Unikernels: The Next Stage of Linux's Dominance
进阶 · 约 25 分钟读完前置知识:操作系统基础、Linux 内核架构、虚拟化基础
导读
论文讨论 unikernel 能否成为 Linux 继续占据主导的下一个阶段:不是另起炉灶做独立的库操作系统,而是把 Linux 内核以可裁剪、可链接的形式与应用结合,减少内核/用户态边界开销并复用 Linux 生态。评论中提到的工作包括基于 Linux 的 UKL 原型,以及把内核模块化、按应用所需保留最小功能的目标;具体实现细节需以原文为准。
HN 关注点:是否真能让 Linux 统治 unikernel 场景,讨论焦点包括内核模块化理想、安全争议和嵌入式单应用自动化构建的可行性。
HN 评论精选
这几条评论里:质疑 1 补充 3
质疑认为 unikernel 的真正价值在于内核模块化和可复用组件组合,而不是把一个大库整体链接进去。
unikernel 的真正前景不是“库操作系统”(library OS),而是“库的集合操作系统”(libraries OS)。也就是说,我们应该组合可复用的组件,而不是链接一个巨大的库。我希望他们最初的演示只是为了让东西进入主线而设的稻草人,最终能实现他们更重要的长期目标:把内核模块化。
Ericson2314查看英文原文
The real promise of unikernels is not a a "library OS", but "libraries OS". I.e. we should be combining reusable parts, not linking one huge chungus library. I hope their initial demo really is just a straw man to get something in mainline which ends up realizing their most important longer term goal of modularizing the kernel.
补充建议与 unikernel 安全评估研究对照辩论,凸显安全性仍是争议点。
很想看这些作者与 NCC Group 那份《评估 unikernel 安全性》白皮书的作者展开辩论;后者曾在 HN 上讨论过。
mlinksva查看英文原文
Would enjoy a debate between these authors and the authors of https://www.nccgroup.trust/globalassets/our-research/us/whitepapers/2019/ncc_group-assessing_unikernel_security.pdf discussed at https://news.ycombinator.com/item?id=19738905
补充询问 unikernel 能否用于单应用嵌入式极小镜像,以及能否自动化从软件包依赖生成可启动镜像。
文章太长、远超我的理解水平,所以请原谅可能愚蠢的问题。unikernel 技术能否用来构建极小的 Linux 发行版,只保留运行单个软件或一小群软件所需的最少依赖?我感兴趣的不是网络服务的虚拟机,而是小型嵌入式系统:用户整个板子生命周期可能只用一个应用。那里安全不是问题,假设用户已完全掌握硬件,安全层可通过检查并防火墙网络流量移到盒子外。如果可以,有没有自动方法,比如分析一个 .deb 包中的用户软件,构建依赖列表,并生成只运行该软件的可启动镜像?
squarefoot查看英文原文
The article is Tl;Wbmloc;Dr (too long, way beyond my level of comprehension, didn't read), so forgive any stupid questions. Could the unikernel technology be used to build extremely small Linux distros that contain just the bare minimum to satisfy all dependencies for running say a single software or a small group of them. I'm not interested in virtual machines for network related services but rather in small embedded systems where the user might need to use just one single application for the entire board lifetime. Security wouldn't be a concern there, assuming the user already has complete access to the hardware, that layer could be moved outside of the box by inspecting and firewalling the network traffic. If yes, does anyone know if there is/will be any automated way say to analyze a software, example: a .deb package containing an user software, then build a list of dependencies and create a bootable image for the requested architecture which will run just that software?
补充提供 UKL 项目背景和代码链接,便于进一步了解基于 Linux 的 unikernel 实现。
更多资料:Red Hat 的 UKL(基于 Linux 的 unikernel)介绍,以及对应 GitHub 仓库。
corysama查看英文原文
More info https://next.redhat.com/2018/11/14/ukl-a-unikernel-based-on-linux/ https://github.com/razaaliraza/ukl
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2019Hacker News 讨论帖94 分 · 17 评
- 2019Hacker News 讨论帖169 分 · 101 评
同领域还值得读
I/O 比 CPU 更快——让我们划分资源并消除操作系统抽象
I/O Is Faster Than CPU – Let’s Partition Resources and Eliminate OS Abstractions
指出在现代服务器硬件上 I/O 速度已接近甚至超过 CPU,传统操作系统抽象反而成为瓶颈。
系统与数据库2019 · 817 分 · 277 评进阶 · 约 30 分钟编辑精选使用 io_uring 的高效 I/O
Efficient IO with io_uring
由 Linux 内核开发者 Jens Axboe 撰写,介绍 Linux 新的异步 I/O 接口 io_uring。
系统与数据库2019 · 426 分 · 96 评进阶 · 约 45 分钟编辑精选线程对大多数用途而言是个坏主意(1995)
Threads Are a Bad Idea for Most Purposes (1995)
这篇 1995 年的文章由 John Ousterhout 撰写,讨论为什么线程对大多数用途而言是坏主意,并主张事件驱动编程通常更简单、更高效。
系统与数据库2017 · 423 分 · 382 评进阶 · 约 25 分钟编辑精选学习型索引结构之论证
The Case for Learned Index Structures
提出把索引看作一种"模型":既然 B-tree 等结构本质上是在学习数据的分布,就可以用机器学习模型(如回归模型、神经网络)来近似键到位置的映射,从而替代 B-tree、哈希索引…
系统与数据库2017 · 398 分 · 66 评 · 引用 25进阶 · 约 60 分钟编辑精选FoundationDB:一个分布式、解耦的事务型键值存储
FoundationDB: A distributed, unbundled, transactional key value store
介绍 FoundationDB:一个分布式、解耦设计的事务性键值存储。
系统与数据库2021 · 283 分 · 99 评进阶 · 约 90 分钟编辑精选