Linux 4.0 不再需要重啟
Linux 4.0 裡,你可能再也不需要重啟你的作業系統。
在大多數的伺服器或者資料中心裡,喜歡用linux的一個原因是你不需要頻繁的進行重啟操作。誠然,某些關鍵性的補丁必須要進行重啟,但你也可以等到數月後再做此操作。現在,得益於 linux 核心的最新更新,你也許可以數年間都不用重啟。
感謝 Ksplice 專案,使得這一特性在2009年就可以實現。此專案在對原始和打過補丁的核心進行比較後,使用一個定製的核心模組將新的程式碼加入到執行核心中。在支援Ksplice的核心中,每個將被修補的功能都攜帶有一套特殊標誌用以進行區分。Ksplice程式會監視正在修補該函式的程式碼是不是當前不在使用,鐺鐺,打上補丁,你的伺服器上繼續執行。
Oracle 在 2011 年收購了 Ksplice 專案,並將其作為 RHEL 的一項可選服務,使其應用於它自己的 Oracle Linux 中(一個 RHEL 的克隆版本)。這將此項技術隔離於其他企業版和伺服器版 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更改時區不需要重啟Linux
- Accord.NET重啟4.0 開發
- linux重啟mysqlLinuxMySql
- linux重啟zabbix agentLinux
- Mac Linux 重啟網路卡MacLinux
- Linux重啟命令介紹Linux
- Linux重啟和關機Linux
- 你的專案切換代理需要重啟嗎?
- linux php-fpm 如何重啟LinuxPHP
- linux下重啟oracle的方法LinuxOracle
- Linux關機和重啟命令Linux
- rocky linux 重啟網路卡命令Linux
- Linux常用軟體啟動、停止、重啟命令Linux
- 在LINUX資料庫上修改了tnsnames.ora後,需要重啟資料庫嗎?Linux資料庫
- 精讀《不再需要 JS 做的 5 件事》JS
- MeFeedia:63%網路視訊不再需要Flash
- Linux關機重啟命令詳解Linux
- Linux的關機與重啟命令Linux
- Linux 關機重啟流程分析(轉)Linux
- linux下重啟網路服務Linux
- Linux病毒和UNIX病毒需要特別重視(轉)Linux
- [譯] 離線支援:不再『稍後重試』
- 在Linux中,如何啟動、停止或重啟服務?Linux
- 微軟賬戶登入將不再需要密碼微軟密碼
- 11gR2 DG不再需要FAL_CLIENTclient
- silverlight 4.0 的oob模式下,呼叫com通過wmi重啟自身程式 killself模式
- Linux關機與重啟的命令詳解Linux
- linux-mysql新增語句、重啟tomcatLinuxMySqlTomcat
- linux系統 重啟碟符錯亂問題Linux
- Linux下Oracle重啟和修改連線數LinuxOracle
- win10系統開機提示需要更新重啟如何解決Win10
- Mac 每次終端重啟都需要重新執行 source ~/bash_profileMac
- 不需要重啟就能掛載磁碟的方法,還不快來Get
- 神經網路可能不再需要啟用函式?Layer Normalization也具有非線性表達!神經網路函式ORM
- win10系統提示遇到錯誤需要重啟的解決方法Win10
- Win10系統安裝SW提示需要重啟怎麼解決Win10
- MySQL無法啟動重啟竟是因為改了Linux主機名MySqlLinux
- Linux系統 init 6 重啟不了,reboot -n 卻可以重新啟動Linuxboot