Linux 4.0 不再需要重启

分类:

  • 业界观察

评论:0     来源:Be Geek

Linux 4.0 里,你可能再也不需要重启你的操作系统。

在大多数的服务器或者数据中心里,喜欢用linux的一个原因是你不需要频繁的进行重启操作。诚然,某些关键性的补丁必须要进行重启,但你也可以等到数月后再做此操作。现在,得益于 linux 内核的最新更新 你也许可以数年间都不用重启。

感谢 Ksplice 项目,使得这一特性在2009年就可以实现。此项目在对原始和打过补丁的内核进行比较后,使用一个定制的内核模块将新的代码加入到运行内核中。在支持Ksplice的内核中,每个将被修补的功能都携带有一套特殊标志用以进行区分。Ksplice进程会监视正在修补该函数的代码是不是当前不在使用,当当,打上补丁,你的服务器上继续运行。

Oracle 在 2011 年收购了 Ksplice 项目,并将其作为 RHEL 的一项可选服务,使其应用于它自己的Oracle Linux 中(一个RHEL(Red Hat Enterprise Linux ) 的克隆版本)。这将此项技术隔离于其他企业版和服务器版 Linux 之外。

后来 KemelCare 为大部分企业发行版 Linux 发布了一项提供非启动式补丁服务。此程序作为专利软件,只能通过按月支付来享有此服务。这从而很难满足大多数Linux系统管理员。

所以,Red Hat 和 SUSE 开始着手完全开源的为 Linux 安装严重补丁的非重启方案。Red Had 的项目命名为 kpatch, SUSE的项目命名为 kGraft.

两个公司采用了不同的途径。Kpatch 发布了一个 stop_machine() 命令。之后,它着眼于现有的栈处理去使用ftrace,如果打补丁可以被做得很安全,它会重定向运行着的代码到补丁函数,而后就删除现在过时的代码。

比过去好的是,数据中心被运行在世界各处,但是它们中的许多都需要一个21世纪式的重启。今天的数据中心必须更有效率,更有鲁棒性和灵活性,这超过以往任何时候。我们检查怎样才能运行好你的数据中心,与之相对的是外包到一个云或者一个服务提供商,或是采取混合的方式。

Kgraft 一直使用ftrace,尽管它是工作在线程级的。当一个老的函数被调用,它会定位到线程的一个点,然后将其切换到新的函数。

虽然最终结果相同,即操作系统在打补丁的时候保持运行,但还是有显著的性能差异的。当kGraft可能花费数分钟的时候,Kpatch可以只需要1到40毫秒,但他们从不会停机。

在2014年10月召开的linux 开发者大会上,两个小组合二为一并且开始致力于联合最好的程序使linux打补丁时不再重启。实际上,他们最终是把kpatch和kGraft都丢进了Linux内核。

Jiri Kosina,一位SUSE软件工程师和Linux内核开发者解释说,Linux内核的热补丁将会“为函数提供一个基本基础设施”  热补丁(例如:代码重定向),包括为了包含实际补丁的内核模块的API(应用程序接口),和为了在用户空间可以操作补丁的API/ABI(应用二进制接口),这是“相对简单和简约的,因为它尽可能多的利用了已有的内核基础(名为ftrace)。它也是自包含的,在某种意义上说,它不在任何其他的内核子系统中调用自身(它甚至不接触其他任何代码)”

Linux 4.0 RC 版现在已经放出,Kosina 声称:”现在实施的x86架构只是作为一个参考架构,对于powerpc, s390 和 arm 的支持工作已经在进行中了“。确实,对于这些架构的支持源代码已经在 Live Patching Git code 上了。

简单的代码仅仅只是开始,你的发行版将通过补丁来支持和使用它。随着 Red Hat 和 SUSE 的支持,live 补丁将很快默认在所有商业Linux发行版中。

Linux 4.0 里,你可能再也不需要重启你的操作系统。相关推荐

  1. Hyper-v3.0里无法压缩虚拟硬盘!虚拟机为Linux,硬盘为VHDX

    Hyper-v3.0里无法压缩虚拟硬盘!虚拟机为Linux,硬盘为VHDX http://www.360doc.com/content/14/0918/12/21412_410407906.shtml ...

  2. linux系统安装锐捷客户端下载,Linux在宿舍里如何上网?--Fedora下锐捷802.1x客户端软件的安装和使用方法...

    Linux在宿舍里如何上网?--Fedora下锐捷802.1x客户端软件的安装和使用方法 发布时间:2008-01-13 00:24:57来源:红联作者:beainm 1. 下载客户端xrgsu-1. ...

  3. 华为 5G 折叠屏手机获入网许可;苹果召回部分 MacBook Pro;Oracle Linux 8.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  4. Red Hat Enterprise Linux 7.0 安装方法

    本次安装是在VMware Workstation Pro 12.0上安装 开始安装 一.选择安装方式 有3个选择项,分别是: 1.直接安装Linux 7.0: 2.先测试镜像是否有错,然后安装Linu ...

  5. linux 6.4 安装oracle10g,Red Linux 6.0上安装Oracle 10g

    Red Linux 6.0下安装Oracle 10g 一. 环境说明 RedHat Enterprise Linux 6.0 + Virtual Box 4.1.8 + Oracle 10g 二. 安 ...

  6. Red Linux 6.0下安装Oracle 10g

    一. 环境说明 RedHat Enterprise Linux 6.0 + Virtual Box 4.1.8 + Oracle 10g   二. 安装前配置 1. 安装Oracle 10g R2所需 ...

  7. SUSE LINUX 10.0 软硬件的安装和设置

    SUSE LINUX 10.0 软硬件的安装和设置 (1) 1.YaST安装: -下载软件包安装: 就是先下载适合自己系统架构的rpm包,然后用YaST安装. 优点:易控制,安装过程简单. 缺点:由于 ...

  8. RHEL linux 8.0 安装

    一.简介 红帽RHEL8和RHEL7功能区别对比: 1)默认的文件系统RHEL8与RHEL7都是采用XFS: 2)内核版本:RHEL8采用4.18.0-x:RHEL7采用3.10-0-x:RHEL8采 ...

  9. 红旗linux系统字符无法闪烁,红旗 Linux 6.0无法开机

    红旗 Linux 6.0无法开机 更新时间:2019-10-25 21:29 最满意答案 根据 Mounting root filesystem. Mount:   could not find fi ...

最新文章

  1. python爬虫工程师-Python-爬虫工程师-面试总结
  2. oracle 创建表空间 pcincrease,oracle建表空间 各种语句
  3. 预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果
  4. qt单步调试linux程序,用Qt 调用GDB调试 Arm程序 详细步骤----可单步执行每一行
  5. windows删除桌面ie_从Windows 8“开始”屏幕启动IE的桌面版本
  6. ASP.NET Core Kestrel 中使用 HTTPS (SSL)
  7. golang python rpc_golang rpc的两种调用方法
  8. 【Level 08】U07 Mixed Feelings L6 State of the Nation
  9. Netty工作笔记0048---Http服务过滤资源
  10. Java打印出所有的水仙花数
  11. 十、Oracle学习笔记:基本查询语句各子句用法
  12. L1- 017——024
  13. 习题8-4 报数 (20分)
  14. 如何把catia完全卸载干净_电脑卸载不了catia软件怎么办?电脑彻底卸载catia软件的方法...
  15. 基于《狂神说Java》Vue--学习笔记
  16. P1455 搭配购买
  17. 常用软件最新版本注册码
  18. 怎么知道快捷键被哪个软件占用_早教软件哪个好?早教类APP那么多,怎么选?...
  19. php swoft 应用,Swoole 在 Swoft 中的应用
  20. 不同开发语言 CRC 计算 CRC-16/XMODEM

热门文章

  1. OpenCV实现FloodFill泛洪填充算法的代码及相关函数详解
  2. abaqus中元素过度失真是什么意思_Abaqus三维多晶体脚本建模Voronoi多面体建模
  3. linux批量部署war工具,Linux批量部署工具Expect
  4. sqlserver中判断表是否存在
  5. move std 函数 示例_确保(值类型)可拷贝类有默认构造函数
  6. redis 查看key的有效期_你经常忽略的Redis常见面试题,精选给你整理
  7. 计算机组成与结 读写数据实验,计算机组成与结构实验报告现实版.doc
  8. Google 修补多项 Android 高危漏洞
  9. .Net转Java自学之路—Hibernate框架篇三(查询方式)
  10. Redis介绍及部署在CentOS7上(一)