关于Linux内核裁剪
  FWgI4FhDiAvJ 2023年11月12日 14 0

近年来,Linux操作系统在复杂性和规模上都在增长。然而,一个应用程序通常只需要一部分 OS 功能,众多的应用需求导致了Linux内核的膨胀。操作系统的内核膨胀同样导致了安全性隐患、启动时间变长和内存使用的增加。 随着服务化和微服务的流行,进一步提出了对内核裁剪的需求。在这些场景中,虚拟机运行小型应用程序,每个应用程序往往是“微型”的,内核占用较小,一些虚拟化技术要为目标应用程序提供最简单的 Linux 内核。 鉴于操作系统的复杂性,通过手工挑选内核特性来裁剪内核有些不切实际。例如,Linux 有超过14,000+个配置选项(截至 v4.14) ,每年都会引入数百个新选项。内核配置器(例如 KConfig)只提供用于选择配置选项的用户界面。鉴于糟糕的可用性和文档的不完整性,用户很难选择最小且实用的内核配置。 现有的内核裁剪技术一般遵循三个步骤:

  • 运行目标应用程序的工作负载并跟踪在应用程序运行期间执行的内核代码;
  • 分析跟踪并确定目标应用程序所需的内核代码,
  • 组装一个只包含应用程序所需代码的内核裁剪。

配置驱动的是内核裁剪的一般方法,大多数现有的工具使用配置驱动技术,因为它们是为数不多的可以产生稳定内核的技术之一。配置驱动的内核重载根据功能特性减少了内核代码,配置选项对应于内核的功能,裁剪后的内核只包含用于支持目标应用程序工作负载的功能。 然而,尽管内核裁剪技术在安全性和性能方面非常吸引人,但在实践中并没有得到广泛采用。这并不是因为缺乏需求,实际上,许多云供应商手工编写 Linux 内核来减少代码,但一般不如内核裁剪技术有效。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
FWgI4FhDiAvJ
最新推荐 更多