ACM头
登入

ACM的通信

研究亮点

技术观点:“理想的操作系统是什么?”


剪刀切割电脑代码线

学分:盖蒂,pngwing

我对口试的开幕式问题是对紧张的学生的破冰船,因为没有答案是错误的。它始终取决于应用程序。

操作系统(OSS)自己没有提供任何业务价值。他们的唯一目的是简化应用程序的开发,集成和操作,即为特定应用程序用例提供“正确”的抽象和策略集(并有效地将其映射到基础硬件)。应用程序用例可能是您的通用台式计算机,嵌入式实时系统或在云中运行的业务服务。理想的操作系统准确地提供了所需的东西您的应用 - 仅此而已。

履行所需的部分,即功能要求变得相对容易。例如,Linux支持大约30个不同的硬件体系结构和应用程序域,从嵌入式实时系统到超级服务器。具有挑战性的是无所事事的部分(非功能性要求)。现代OSS的巨大多功能性是以重要的代码和内存膨胀的价格出现的:大约50%–80%的OS代码仍然没有使用。即使许多用户倾向于不关心Cruft占用的几个MIB RAM和几个磁盘空间(“ RAM很便宜。磁盘甚至更便宜。”),但这仍然是有代价的:

  • 膨胀尺度。对于单个系统而言,似乎可以忽略不计,这会导致托管数千个系统的云提供商的巨大硬件和能源成本。不存在的代码既不延长启动时间,也不会消耗内存或网络带宽。
  • 增加攻击表面。虽然您可能没有功能X,攻击者可能会对其在您的系统中的存在感到高兴。不存在的代码不可滥用。
  • 更高的维护工作。尽早修补您的系统,因此经常进行处理?不需要修补的代码。

系统软件开发人员意识到了这些问题,但在广泛多功能性和特定案例效率的冲突需求之间被抓住。为了克服这一难题并使每个人都快乐,大多数OSS都支持广泛的功能和硬件平台,但可以在特定用例相对于特定用例的编译时量身定制,通常是通过条件编译,如随附的清单所示。

在Linux中,支持对称多处理(SMP)是可选功能和功能标志config_smp在整个内核代码中使用(据说是“ #ifdef地狱”)为单核操作定制其实现。kconfig前端(只需输入“制作menuconfig”)呈现所有可用的功能及其在树状结构中配置的依赖性。因此,您可以量身定制Linux,以准确提供应用程序所需的内容 - 理想的操作系统触手可及!

唯一的是Linux已经提供了17,000多个这样的配置_旗帜 - 并不断增长。那么您需要哪些?OS裁缝不仅成为一项繁琐的任务,而且仍然需要深刻的专家知识。可以理解的是,人们更喜欢所有的标准配置。

这是途径自动的内核剪裁(因此,去流动)发挥了作用。简而言之,他们首先“测量”您的应用程序所需的功能,同时在(仪器)上执行(包括所有内核)。在第二步中,然后将这些信息汇总以得出定制的内核配置,并为您的特定用例构建专门的内核。结果令人信服:代码尺寸和攻击面降低了50%–80%,已知漏洞减少了34%–74%。然而,即使在可用的十年后1即使诸如功能服务之类的趋势导致在云中运行的专用VM大大增加,但自动内核裁缝仍未在实践中使用。为什么会这样?

内联void spin_irq_lock(RAW SPINLOCK T*锁) {

irq_disable();

#ifdef config_smp

spin_acquire(&锁)

#万一

}

在以下论文中,作者对实用性自动内核清除。他们采用云服务集成商的立场来分析现有技术的缺点和障碍,并在名为Cozart的易于使用的工具中克服它们。除了检测所需内核功能的改进方法外,它们的主要技术贡献是引入平台特定和应用特定的内核功能集的合成性,这在为量身定制的VM准备量身定制的VM时会大大减少努力。方案。

但是,他们的论文引起了广泛的兴趣,因为它也向我们表明,(毛毡)丰富的计算资源使我们的纪律变得粗心,我们的软件系统包括过多的推迟。我们都教我们的学生如何使用和设计可扩展的软件系统。但是,更具挑战性的部分是设计可收缩的软件。

回到顶部

参考

1. Tartler,R。等。自动OS内核TCB通过利用编译时间可配置性来减少。在8号会议记录Th实习生。有关系统可靠性中热主题的研讨会,2012年,Usenix Assoc。

回到顶部

作者

丹尼尔·洛曼(Daniel Lohmann)是德国莱布尼兹大学的教授。

回到顶部

脚注

要查看随附的纸,请访问doi.acm.org/10.1145/3524301


作者拥有的版权。
请求(重新)向所有者/作者发布(重新)发布

数字图书馆由计算机协会发布。版权所有©2022 ACM,Inc。


找不到条目

登入全面访问
“ 忘记密码? »创建一个ACM Web帐户
文章内容:
Baidu
map