Hogyan patch a rendszermag újraindítása nélkül felülvizsgálatát modern eszközök - a cég blog Selektel

Hogyan patch a rendszermag újraindítása nélkül felülvizsgálatát modern eszközök - a cég blog Selektel

A legegyszerűbb példa: livepatch

Kezdjük egy nagyon egyszerű kísérletet. Ehhez szükségünk van bármilyen Linux kernel c 4.0 vagy magasabb (ebben az esetben Ubuntu 16.04; a továbbiakban mind példák a parancsok kifejezetten erre a forgalmazás). Az új verzió a kernel függvény, hozzátéve tapaszok „on the fly” (ezt hívják - livepatch) alapértelmezés szerint engedélyezve van.
Ahhoz, hogy lásd, hogyan működik, meg kell először telepíteni a kernel headers:

Ezután telepítse a kernel hibakereső szimbólumok:

A kísérlet, minden készen áll, akkor kezdődik. Futtassa a következő parancsot:

Mi már letöltött a forráskódját a kernel modul, amely megváltoztatja az alap alapkód és módosítja a parancs kimenete a cat / proc / cmdline. Most ez a szükségességét, hogy össze a modult. Ehhez létre a következő make-fájl:

Összegyűjti modult és helyezze be a kernel:

Lássuk, mi történik. befejezett:

Ahelyett, hogy a szokásos információt a kernel paraméterek, itt látunk, az egy ilyen szöveg:

Mint látható, a javítás sikeresen alkalmazták.

Minden információ a letöltött foltok vannak tárolva az / sys / kernel / livepatch:

Kapcsolja ki a tapaszt, a következő parancsot:

Kezdjük a telepítés a szükséges függőségeket:

Ha szeretné megtekinteni ezt kpatch is ajánlatos telepíteni ccache:

Ez minden függőség telepítve. Beállíthatjuk kpatch:

A mi kísérletet, patch a kernel forrásokat. Klón az adattár a forrástól a jelenlegi változat az Ubuntu:

Befejezését követően a klónozás másolja a forráskódot egy könyvtárba ubuntu-xenial-kpatch (szükséges, hogy módosítsa a forráskódot, majd építeni alapján ezek a változások, javítások):

Nyissa meg a fájlt ubuntu-xenial-kpatch / ubuntu-xenial / fs / proc / version.c és vnesom a következő módosításokat:

Cozdadim tapasz parancs segítségével:

A tapasz egy egyszerű szöveges fájl, amely felsorolja a módosításokat:

Ahhoz, hogy hozzá egy patch a rendszermag végre:

Amint látható, most idézett kimenet, a kimeneti megkapjuk a kernel modult. Ahhoz, hogy a tapaszt, akkor csak meg kell adni ezt a modult egy standard módon:

Lássuk, mi történt eredményeként:

Canonical Livepatch Service

Néhány hónappal ezelőtt a cég elindította Canonical a Canonical LivePatch Service hatósági szolgáltatás, amely lehetővé teszi, hogy patch a kernel "on the fly" egyszerű parancsokat. Ez a szolgáltatás célja elsősorban a felhasználók a vállalati szintű, és ezért fizetni.
De a hétköznapi felhasználók is gyorsan eljuthat a legújabb kernel frissítés. Ehhez regisztrálni kell az Ubuntu One, és kap egy jelzőt. A token lehetőséget ad egy olyan program létrehozása 3 autó kanonikus-livepatch, amely betölti és hozzáadja javításokat.

Lássuk, hogyan működik ez a Canonical Livepatch Service. Térjünk át a fenti linkre, megkapjuk a jelzőt, és akkor végre:

A telepítés után jelentkezzen ki, majd Térjünk vissza, és nem tolódik:

Ha mindent helyesen tette, mi lesz a következő üzenet:

Ezután a parancsot:

A következtetés azt mutatja, hogy sanonical-livepatch működik, és a lényege a legújabb frissítéseket. További információ a következő címen szerezhető opció használatával --verbose:

Emellett információkat a telepített javításokat lehet beszerezni nézi a fent már említett a / sys / kernel / livepatch:

Kpatch_livepatch_Ubuntu_4_4_0_47_68_generic_14 - ez az utolsó betöltött patch. A legfrissebb adatok a neve a tapasz (14) egybeesik a verziószámot meghatározott kiadási kanonikus-livepatch status paranccsal (lásd. Fent).

Győződjön meg arról, hogy az új tapaszt került, és akkor használja lsmod parancsot:

következtetés

És ha azt szeretnénk, hogy vizsgálja meg a témát mélyebben, figyeljen az alábbi linkeken:

Bár a modern Linux-kernel rendszer különbözik elég nagyfokú stabilitás, az esélye, hogy súlyos rendszerhiba azonban mindig van. Amikor egy végzetes hiba, van egy állam úgynevezett kernel panic (kernel panic): az alapértelmezett kezelő megjeleníti az információkat, amelyek segíthetnek a hibaelhárítás, és belép egy végtelen értelme.

Folytatjuk a cikksorozatot mechanizmusok tárolási. Az utolsó alkalommal beszéltünk az izolációs folyamat segítségével a „névtér” mechanizmus (névterek). De tárolási egyedül a szigetelés megfelelő eszközeik. Ha egy alkalmazás futtatásához egy elszigetelt környezetben, biztosnak kell lennünk abban, hogy ez az alkalmazás kiosztott elég erőforrás, és nem fogyaszt plusz forrásokat, megszakítva ezzel a többi rendszer működik. A probléma megoldására a rendszermag.