Linux 4.0 不再需要重启_Linux

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发行版中。

以上所述就是本文的全部内容了,希望大家能够喜欢。

时间: 2025-01-24 12:04:18

Linux 4.0 不再需要重启_Linux的相关文章

Linux 4.0 不再需要重启

Linux 4.0 里,你可能再也不需要重启你的操作系统. 在大多数的服务器或者数据中心里,喜欢用linux的一个原因是你不需要频繁的进行重启操作.诚然,某些关键性的补丁必须要进行重启,但你也可以等到数月后再做此操作.现在,得益于 linux 内核的最新更新 你也许可以数年间都不用重启. 感谢 Ksplice 项目,使得这一特性在2009年就可以实现.此项目在对原始和打过补丁的内核进行比较后,使用一个定制的内核模块将新的代码加入到运行内核中.在支持Ksplice的内核中,每个将被修补的功能都携带

Kali linux 2.0安装后的10点配置建议

自Kali 2.0发布以来,我们发现在安装kali之后经常会重复一些配置操作,对此,我们想要把它们分享出来,希望对大家也能够有所帮助.我们整理了一些遇到的常见问题的回答. 激活或禁用智能侧边栏 有的人喜欢它,有的人不喜欢它.我们谈一下如何改变侧边栏的行为.进入[优化工具],选择[扩展],可以看到[Dash to dock]处于开启的状态,点击右侧的设置按钮,在[Position and size]tab页可以看到[Intelligent autohide],只要将该选项禁用即可改变侧边栏的智能隐

用GRUB引导硬盘安装红旗Linux 4.0攻略

什么是 Grub?GNU GRUB 是一个多重操作系统启动管理器.用来引导不同系统,如windows,linux. 一.了解一下x86的引导过程 由硬盘启动时,BIOS通常是转向第一块硬盘最初的几个扇区,即主引导记录. 装载GRUB和操作系统的过程,包括以下几个操作步骤: 1.装载主引导记录.基本引导装载程序所做的唯一的事情就是装载第二引导装载程序.. 2.装载Grub.这第二引导装载程序实际上是引出更高级的功能 ,以http://www.aliyun.com/zixun/aggregation

RedHat linux 8.0下内核编译步骤和说明_unix linux

************************************************************************以下步骤有很多都是很初级的命令或解释,因为偶是linux新手,*在编译过程中走了很多弯路,花了大量时间找各种解决办法,所以*把相应的命令都写了出来,希望对跟偶一样的才入门不久而又想*编译内核的新手有所帮助!** kilvon 05-Mar-2003******************************************************

架设Red Hat Linux 9.0服务器技术详解

红帽创建于1993年,是目前世界上最资深的Linux和开放源代码提供商,同时也是最获认可的Linux品牌.基于开放源代码模式,我们为全球企业提供专业技术和服务.我们的解决方案包括红帽企业Linux操作平台,以及其他内容广泛的服务,如:咨询,24X7技术支持和红帽网络(RHN).我们以订阅的商业模式向用户提供不间断的产品和服务.红帽在全球60多个地点提供培训课程,其中的RHCE认证已经成为Linux认证的标准. 为了更好地服务中国客户,红帽软件(北京)公司于2004年11月设立.作为红帽公司的全资

Linux 8.0 安装 Oracle 9i

oracle 目的:在Linux 8.0 安装 Oracle 9i,确保数据库的安全和稳定 软件环境:Linux 8.0 (三张碟)Oracle 9.2.0.1.0 For Linux (三张碟) 硬件环境:P4 2.4.内存512M.硬盘80G高转.16X_DVD光驱 问题原因:Linux下运行Oracle的系统环境配置,导致Oracle无法正确安装. 问题描述: 详细解决过程一.系统参数配置1.在安装linux8.0的时候,注意把根目录(/)分区为10G左右,Swap分区为1G左右,/u01

RedFlag Linux 5.0桌面版安装oralce10

本文中描述的步骤可能有些不是必须的,但笔者没有进一步验证,故将安装过程中的所有步骤均列出在此. 1. 安装 Redflag Linux 5.0 桌面版 2. 安装前得准备,打几个补丁 1). redhat linux9下第一张光盘下的RedHat/RPMS/compat-libstdc++-7.3- 2.96.118.i386.rpm(安装方法rpm -ivh ***) 2). oracle9i204下的linux补丁 P3006854(这是在安装racle9i时用的,但由于oracle9i安装

Microsoft System Center 2012部署(7) SCOM 2012监控redhat linux 6.0

不管是企业机房还是IDC数据中心,由于稳定性.安全性等各方面因素使用linux操作系统不在少数,而Microsoft的产品SCOM2012,利用相关的MP包,可以简单实现对其监控. 群里的 "小刀"发帖,问题为在安装时候出现了配置问题无法完成监控 从错误提示来看,是连接问题,推荐几种方法后,故障依旧,于是自己在VMware workstation上搭建测试环境,解决问题 环境: A windows server 2008 R2 (配置AD ,DNS,IIS ,.net framewor

Red Linux 6.0下安装Oracle 10g

一. 环境说明 RedHat Enterprise Linux 6.0 + Virtual Box 4.1.8 + Oracle 10g 二. 安 装前配置 1. 安装Oracle 10g R2所需的软件包 用root登录到系统,依次安装以下包 # cd /mnt/cdrom/Server/ # rpm -Uvh setarch-2* # rpm -Uvh make-3* # rpm -Uvh glibc-2*(这里匹配了两个软件包 有一个i386无法安装,直接 # rpm -Uvh glibc