首页 > 系统相关 >维护嵌入式 Linux 内核——So Easy

维护嵌入式 Linux 内核——So Easy

时间:2023-06-06 23:35:14浏览次数:59  
标签:版本 bbe 更新 嵌入式 So 内核 Easy Linux

Pengutronix 内核黑客 Jan Lübbe 总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式 Linux 会议上概述了一个计划,以保持长期设备的安全和功能完整。

安全漏洞只发生在 Windows 上的好日子正在快速过去。恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过时的嵌入式 Linux 设备,因此在 10 月的欧洲嵌入式 Linux 会议(ELCE)上的几个演讲的主题就与修复 Linux 安全漏洞相关。

最值得去听的讲演之一是 Pengutronix 内核黑客 Jan Lübbe 的《长期维护或管理(或免管理)嵌入式系统 10 年以上》。在总结嵌入式 Linux 中不断增长的安全威胁后,Lübbe 制定了一项计划,以确保长期设备的安全和功能完整。 Lübbe 说:“我们需要迁移到更新、更稳定的内核,并进行持续维护以修复关键漏洞。我们需要做上游更新和自动化流程,并建立一个可持续的工作流程。我们没有理由让系统中仍留有过时的软件。”

随着 Linux 设备变得越来越老,传统的生命周期过程已经不再适用。 Lübbe 说:“通常,你会从 SoC 供应商或主线上获取内核、构建系统,并添加到用户空间。你可以定制和添加程序,并做一些测试。但是,在此之后有 15 年的维护阶段,你最好期望平台不会发生变化、不会想要添加新的功能、不需要实施管理调整。”

所有这些变化,越来越多地导致你的系统暴露出新的错误,并需要大量更新以才能与上游软件保持同步。 Lübbe 说:“在内核中发生导致问题的错误并不总是无意的”。对于去年在 Allwinner 内核中发现的后门,他又补充说:“这些供应商的内核从来不会执行主线内核社区的审查流程”。

Lübbe 继续说:“你不能认为你的供应商一直没问题。也许只有一两个工程师查看过后门代码这块。如果补丁发布在 Linux 内核邮件列表上,就不会有这种事,因为总会有人注意到。硬件供应商不关心安全或维护,也许你会在一两年后得到更新,但是即使这样,他们从一个固定版本开始开发,到他们发布稳定的版本通常需要几年的时间。如果你在这个基础上再开始开发,可能又过了半年,这就更过时了。”

越来越多的嵌入式开发人员在长期稳定(LTS)内核上构建长期产品。但这并不意味着没事了。Lübbe 说:“一个产品发布后,人们经常不再遵循稳定的发行链,也不再应用安全补丁。这样你会得到两个最糟糕的结果:过时的内核和没有安全性。你失去了多人测试的好处。”

Lübbe 指出,使用像 Red Hat 这样的面向服务器的发行版的 Pengutronix 客户经常由于快速的定制、需要系统管理员干预的部署和升级系统而遇到问题。

“更新对一些东西有用,特别是在 x86 上,但每个项目基本上是自己建立基础设施来更新到新版本。”

许多开发人员选择把向后移植作为更新长期产品的解决方案。Lübbe 说:“开始时很容易,但是一旦你不处于项目的维护范围,他们就不会告诉你所使用的版本是否受到一个 bug 的影响,因此很难判断一个修复是否相关。于是你不停打补丁和更新,而 bug 也在不断累积,而这些你必须自己维护,因为其他人不使用这些补丁。使用开源软件的好处就丢失了。”

维护嵌入式 Linux 内核——So Easy维护嵌入式 Linux 内核——So Easy

跟随上游项目

Lübbe 认为,最好的解决方案是跟踪由上游项目维护的版本。“我们主要关注基于主线内核的开发,所以我们在产品和主流内核及其他上游项目之间尽可能没有差别。长期系统在主线内核上得到很好的支持。大多数不使用 3D 图形的系统只需要很少的补丁。较新的内核版本还有很多新的强化功能,这些可以减少漏洞的影响。

跟随主线发展对许多开发人员来说似乎令人畏惧,但是如果从一开始就这样,然后坚持下去,就会相对容易一些,Lübbe 说:“你需要为系统上做的一切制定流程。你总需要知道什么软件正在运行,这在使用良好的构建系统时会更容易。每个软件版本应定义完整的系统,以便你可以更新相关的一切。如果你不知道那里有什么,你就不能解决它。你也需要一个自动测试和自动部署更新。”

为了“减少更新周期”,Lübbe 建议在开始开发时使用最新的 Linux 内核,并且在进入测试时才转到稳定的内核。之后,他建议每年将系统中的所有软件(包括内核、构建系统、用户空间、glibc 和组件(如 OpenSSL))更新为当年上游项目支持的版本。

Lübbe 说:“得到更新并不意味着你需要部署。如果没有看到安全漏洞,你可以把补丁放在一边,需要时它再用就行。”

最后,Lübbe 建议每个月查看发布公告,并且每周检查 CVE 和主线列表上的安全公告。你只需要问自己“该安全公告是否影响到了你”。他补充说:“如果你的内核足够新,就没有太多的工作。你不会希望通过在新闻中看到你的设备才获得有关你的产品的反馈。”


via: https://www.linux.com/news/event/ELCE/2017/long-term-embedded-linux-maintenance-made-easier

作者:ERIC BROWN 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

标签:版本,bbe,更新,嵌入式,So,内核,Easy,Linux
From: https://www.cnblogs.com/x1-c2/p/17462047.html

相关文章

  • 维护嵌入式 Linux 内核——So Easy
    Pengutronix内核黑客JanLübbe总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式Linux会议上概述了一个计划,以保持长期设备的安全和功能完整。安全漏洞只发生在Windows上的好日子正在快速过去。恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过......
  • 维护嵌入式 Linux 内核——So Easy
    Pengutronix内核黑客JanLübbe总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式Linux会议上概述了一个计划,以保持长期设备的安全和功能完整。安全漏洞只发生在Windows上的好日子正在快速过去。恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过......
  • Linux查看和修改文件时间
    查看文件时间stat[文件路径]修改文件时间touch-d"2018-04-1808:00:00"[文件路径] 源:https://www.cnblogs.com/caoshousong/p/10730178.html......
  • EasyUI——学习笔记
    资源文件介绍locale:easyui的css内置样式easyui核心样式:easyui.css图标演示:icon.cssthemes:汉化内置文字文件jquery.easyui.min.js:所有easyui封装好的jquery代码和ajax代码jquery.min.js:jquery文件 搭建环境的步骤1、导入需要的css样式文件:easyui.css、icon.css2......
  • linux常用操作命令
    cd浏览文件和目录cd/home/username/Movies。ls查看文件夹内容ls文件夹、ls-al。cat输出文件内容catfile1file2>file3。cp复制cpscreen.jpg/home/username/Pictures。mv移动文件mvfile.txt/home/username/Documents。mkdir创建新目录mkdirNEW、mkdir......
  • 算法 in Golang:Quicksort(快速排序)
    算法inGolang:Quicksort(快速排序)Quicksort(快速排序)快速排序O(nlog2^n),比选择排序要快O(n²)在日常生活中经常使用使用了D&C策略(分而治之)使用Quicksort排序数组不需要排序的数组(也就是BaseCase基线条件):[],空数组[s],单元素数组很容易排序的数组:[a,b],两......
  • ABC237G Range Sort Query
    思路这道题跟P2824的思路是很相似的。首先由于我们只需求一个特定的值在排序后的位置,而原序列又是一个排列,因此我们可以将序列中的所有数分为三种:大于\(X\)的;等于\(X\)的;小于\(X\)的。我们不关心除了\(X\)之外的其他值的具体数字,而只关心其与\(X\)的大小关系,......
  • Linux 常用命令总结
    1.基本命令uname-m 显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特性hdparm-tT/dev/sda在磁盘上执行测试性读取操作系统信息arch显示机器的处理器架构uname-m 显示机......
  • 四、用JSON作前后端分离的交互
    在SpringReactiveSecurity中,Security过滤器是通过类ServerHttpSecurity配置的,用户认证过滤器是AuthenticationWebFilter,相当于SpringSecurity中的UsernamePasswordAuthenticationFilter。 在AuthenticationWebFilter中,用户名和密码的解析是通过ServerAuthenticationConverte......
  • linux下awk内置函数的使用(split/substr/length)
    一、split初始化和类型强制awk的内建函数split允许你把一个字符串分隔为单词并存储在数组中。你可以自己定义域分隔符或者使用现在FS(域分隔符)的值。格式:split(string,array,fieldseparator)split(string,array)-->如果第三个参数没有提供,awk就默认使用当前FS值。例子:......