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.