Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Kpatch
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Título en minúscula}}{{Ficha de software}} '''kpatch''' es una característica del [[núcleo Linux]] que implementa la aplicación de [[Parche (informática)|parches en vivo]] de un [[Núcleo (informática)|kernel]] en ejecución, lo que permite que los parches del kernel se apliquen mientras el kernel aún se está ejecutando. Al evitar la necesidad de reiniciar el sistema con un nuevo kernel que contiene los parches deseados, kpatch apunta a maximizar el [[Uptime|tiempo de actividad]] y disponibilidad del sistema. Al mismo tiempo, kpatch permite que las actualizaciones de seguridad relacionadas con el kernel se apliquen sin diferirlas a los tiempos de inactividad programados.<ref name="redhat-20140226">{{Cita web|url=http://rhelblog.redhat.com/2014/02/26/kpatch/|título=Introducing kpatch: Dynamic Kernel Patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-02-26}}|sitioweb=redhat.com}}</ref><ref>{{Cita web|url=http://www.serverwatch.com/server-news/linux-kernel-patching-get-dynamic.html|título=Linux Kernel Patching Gets Dynamic|fechaacceso={{date|2014-07-23}}|autor=Sean Michael Kerner|fecha={{date|2014-06-06}}|editorial=ServerWatch}}</ref> Internamente, kpatch permite que se reemplacen [[Subrutina|funciones]] completas en un kernel en ejecución con sus versiones parcheadas, haciendo esto de forma segura al detener todos los procesos en ejecución mientras se realiza la aplicación de parches en vivo.<ref name="lwn-597407">{{Cita web|url=https://lwn.net/Articles/597407|título=The first kpatch submission|fechaacceso={{date|2014-07-23}}|autor=Jonathan Corbet|fecha={{date|2014-05-07}}|editorial=[[LWN.net]]}}</ref> kpatch es desarrollado por [[Red Hat]], con su [[código fuente]] bajo los términos de la [[GNU General Public License|Licencia Pública General de GNU versión 2]] (GPLv2).<ref name="redhat-20140226">{{Cita web|url=http://rhelblog.redhat.com/2014/02/26/kpatch/|título=Introducing kpatch: Dynamic Kernel Patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-02-26}}|sitioweb=redhat.com}}</ref> En mayo de 2014, se envió kpatch para su inclusión en la línea principal del núcleo Linux,<ref name="lwn-597123">{{Cita web|url=https://lwn.net/Articles/597123/|título=kpatch: dynamic kernel patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-05-01}}|editorial=[[LWN.net]]}}</ref> y los fundamentos minimalistas para la aplicación de parches en vivo se fusionaron en la línea principal del núcleo Linux en la versión 4.0 del kernel, que se publicó el 12 de abril de 2015.<ref name="kernelnewbies-v4.0-s1.2">{{Cita web|url=http://kernelnewbies.org/Linux_4.0#head-9aa7c8499b42911a48c02b24f367bf2bc6db8606|título=Linux kernel 4.0, Section 1.2. Live patching|fechaacceso={{date|2015-04-27}}|fecha={{date|2015-04-26}}|sitioweb=kernelnewbies.org}}</ref> == Internos == [[Archivo:Linux_kernel_live_patching_kpatch.svg|derecha|miniaturadeimagen|350x350px| Con la aplicación de parches en vivo, las llamadas a las funciones del kernel parcheadas invocan a sus contrapartes de reemplazo.<ref name="youtube">{{Cita web|url=https://www.youtube.com/watch?v=HAJUQ_KJF_Y|título=Dynamic Kernel Patching|fechaacceso={{date|2014-07-23}}|autor=Seth Jennings|fecha={{date|2014-06-10}}|editorial=[[Red Hat]]}}</ref> {{Rp|2:07}} ]] Internamente, kpatch consta de dos partes: el [[Módulo de núcleo|módulo]] ejecuta el mecanismo de parcheo en vivo al alterar el funcionamiento interno del kernel, mientras que un conjunto de utilidades de [[Espacio de usuario|espacio]] de [[Espacio de usuario|usuario]] prepara módulos individuales de kernel desde [[Parche (informática)|fuentes diferentes]] y administra su aplicación. El parcheo en vivo del kernel se realiza a nivel de [[Subrutina|función]], lo que significa que kpatch puede reemplazar funciones enteras en el kernel en ejecución con sus versiones parcheadas utilizando la infraestructura proporcionada por {{Code|ftrace()}} para "enrutar" versiones antiguas de funciones. De esta manera, los parches también se pueden deshacer fácilmente. No es posible realizar cambios en las [[Estructura de datos|estructuras de datos]] internas del kernel; sin embargo, [[Parche (informática)|los parches de seguridad]], que son uno de los candidatos naturales para ser utilizados con kpatch, rara vez contienen cambios en las estructuras de datos del kernel.<ref name="lwn-597407">{{Cita web|url=https://lwn.net/Articles/597407|título=The first kpatch submission|fechaacceso={{date|2014-07-23}}|autor=Jonathan Corbet|fecha={{date|2014-05-07}}|editorial=[[LWN.net]]}}</ref><ref name="lwn-597123">{{Cita web|url=https://lwn.net/Articles/597123/|título=kpatch: dynamic kernel patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-05-01}}|editorial=[[LWN.net]]}}</ref><ref name="youtube">{{Cita web|url=https://www.youtube.com/watch?v=HAJUQ_KJF_Y|título=Dynamic Kernel Patching|fechaacceso={{date|2014-07-23}}|autor=Seth Jennings|fecha={{date|2014-06-10}}|editorial=[[Red Hat]]}}</ref> kpatch garantiza que los parches activos se apliquen de forma atómica y segura deteniendo todos los procesos en ejecución mientras se aplica el parche activo, y asegurando que ninguno de los procesos detenidos se ejecute dentro de las funciones que se van a parchear. Este enfoque simplifica todo el mecanismo de parcheo en vivo y previene ciertos problemas asociados con la forma en que las versiones originales y parcheadas de las funciones utilizan las estructuras de datos. Como inconveniente, este enfoque también deja la posibilidad de que falle un parche activo, e introduce una pequeña cantidad de latencia necesaria para detener todos los procesos en ejecución.<ref name="lwn-597407">{{Cita web|url=https://lwn.net/Articles/597407|título=The first kpatch submission|fechaacceso={{date|2014-07-23}}|autor=Jonathan Corbet|fecha={{date|2014-05-07}}|editorial=[[LWN.net]]}}</ref><ref name="lwn-597123">{{Cita web|url=https://lwn.net/Articles/597123/|título=kpatch: dynamic kernel patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-05-01}}|editorial=[[LWN.net]]}}</ref><ref name="youtube">{{Cita web|url=https://www.youtube.com/watch?v=HAJUQ_KJF_Y|título=Dynamic Kernel Patching|fechaacceso={{date|2014-07-23}}|autor=Seth Jennings|fecha={{date|2014-06-10}}|editorial=[[Red Hat]]}}</ref> == Historia == [[Red Hat]] anunció y lanzó públicamente kpatch en febrero de 2014 bajo los términos de la versión de Licencia Pública General de GNU versión 2 ([[GNU General Public License|GPLv2]]),<ref name="redhat-20140226">{{Cita web|url=http://rhelblog.redhat.com/2014/02/26/kpatch/|título=Introducing kpatch: Dynamic Kernel Patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-02-26}}|sitioweb=redhat.com}}</ref> poco antes de que SUSE lanzara su propia implementación de parches en vivo del kernel llamada kGraft.<ref>{{Cita web|url=https://www.suse.com/company/press/2014/3/suse-releases-kgraft-for-live-patching-of-linux-kernel.html|título=SUSE Releases kGraft for Live Patching of Linux Kernel|fechaacceso={{date|2015-02-11}}|fecha={{date|2014-03-27}}|editorial=[[SUSE]]}}</ref> kpatch se fusionó con la línea principal del núcleo Linux y se presentó para su inclusión en mayo de 2014.<ref name="lwn-597123">{{Cita web|url=https://lwn.net/Articles/597123/|título=kpatch: dynamic kernel patching|fechaacceso={{date|2014-07-23}}|autor=Josh Poimboeuf|fecha={{date|2014-05-01}}|editorial=[[LWN.net]]}}</ref><ref>{{Cita web|url=https://www.phoronix.com/scan.php?page=news_item&px=MTY3ODA|título=SUSE Posts kGraft, Red Hat Posts Kpatch Patches|fechaacceso={{date|2014-07-23}}|autor=Michael Larabel|fecha={{date|2014-05-01}}|editorial=[[Phoronix]]}}</ref> kpatch ha sido incluido en [[Red Hat Enterprise Linux]] 7.0, lanzado el 10 de junio de 2014, como una vista previa de la tecnología.<ref>{{Cita web|url=https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.0_Release_Notes/chap-Red_Hat_Enterprise_Linux-7.0_Release_Notes-Kernel.html|título=Red Hat Enterprise Linux 7.0 Release Notes, Chapter 5. Kernel|fechaacceso={{date|2014-07-23}}|fecha={{date|2014-07-15}}|editorial=[[Red Hat]]}}</ref><ref>{{Cita web|url=http://www.infoq.com/news/2014/06/red-hat-enterprise-linux-7|título=Red Hat Releases Red Hat Enterprise Linux 7 with Increased Linux Containers Support|fechaacceso={{date|2014-07-23}}|autor=Carlos Sanchez|fecha={{date|2014-06-26}}|sitioweb=infoq.com}}</ref> Fundamentos minimalistas para la aplicación del parche en vivo del kernel se fusionaron en la línea principal del núcleo Linux en la versión del kernel 4.0, que se lanzó el 12 de abril de 2015. Esos fundamentos, basados principalmente en la funcionalidad ftrace del kernel, forman un núcleo común capaz de soportar parches en vivo tanto por kpatch como por kGraft, al proporcionar una [[interfaz de programación de aplicaciones]] (API) para módulos de kernel que contienen parches y una [[interfaz binaria de aplicaciones]] (ABI). para las utilidades de gestión del espacio de usuario. Sin embargo, el núcleo común incluido en el núcleo Linux 4.0 solo es compatible con la arquitectura [[x86]] y no proporciona ningún mecanismo para garantizar la coherencia a nivel de la función mientras se aplican los parches activos.<ref name="kernelnewbies-v4.0-s1.2">{{Cita web|url=http://kernelnewbies.org/Linux_4.0#head-9aa7c8499b42911a48c02b24f367bf2bc6db8606|título=Linux kernel 4.0, Section 1.2. Live patching|fechaacceso={{date|2015-04-27}}|fecha={{date|2015-04-26}}|sitioweb=kernelnewbies.org}}</ref><ref>{{Cita web|url=https://lwn.net/Articles/634649/|título=A rough patch for live patching|fechaacceso={{date|2015-04-27}}|autor=Jonathan Corbet|fecha={{date|2015-02-25}}|editorial=[[LWN.net]]}}</ref><ref name="git-pull-infrastructure">{{Cita web|url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1d9c5d79e6e4385aea6f69c23ba543717434ed70|título=Linux kernel source tree: kernel/git/torvalds/linux.git: Pull live patching infrastructure from Jiri Kosina|fechaacceso={{date|2015-04-27}}|fecha={{date|2015-02-11}}|editorial=[[kernel.org]]}}</ref> Desde abril de 2015, hay trabajos en portar kpatch al núcleo común de parches en vivo proporcionada por la línea principal del núcleo Linux.<ref name="git-pull-infrastructure">{{Cita web|url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1d9c5d79e6e4385aea6f69c23ba543717434ed70|título=Linux kernel source tree: kernel/git/torvalds/linux.git: Pull live patching infrastructure from Jiri Kosina|fechaacceso={{date|2015-04-27}}|fecha={{date|2015-02-11}}|editorial=[[kernel.org]]}}</ref> Sin embargo, la implementación de los mecanismos de coherencia de nivel de función requeridos se ha retrasado porque las [[Pila de llamadas|pilas de llamadas]] proporcionadas por el núcleo Linux pueden ser poco confiables en situaciones que involucran [[Lenguaje ensamblador|código de ensamblaje]] sin [[Pila de llamadas|marcos de pila]] adecuados; como resultado, el trabajo de portabilidad continúa en curso a septiembre de 2015.{{Cita requerida}} En un intento por mejorar la confiabilidad de las pilas de llamadas del kernel, una verificación de sanidad especializada llamada stacktool también ha sido desarrollada.<ref>{{cite web|url=https://lwn.net/Articles/658333/|title=Compile-time stack validation|date={{date|2015-09-30}}|accessdate={{date|2015-10-02}}|author=Jonathan Corbet|publisher=[[LWN.net]]}}</ref><ref>{{cite web|url=https://lwn.net/Articles/658347/|title=Linux kernel documentation: Documentation/stack-validation.txt (from the v13 patch)|date={{date|2015-09-24}}|accessdate={{date|2015-10-02}}|author=Josh Poimboeuf|publisher=[[LWN.net]]}}</ref> == Véase también == {{Portal|Linux}} *[[kexec]], un método para cargar un núcleo Linux completamente nuevo desde un sistema en ejecución * [[Ksplice]] y KernelCare, otras tecnologías de parches en vivo del núcleo Linux desarrolladas por Ksplice, Inc. (más tarde adquiridas por Oracle) y CloudLinux, respectivamente == Referencias == {{Listaref|2}} == Enlaces externos == * [https://github.com/dynup/kpatch Código fuente de kpatch] en [[GitHub]] {{Control de autoridades}} [[Categoría:Núcleo Linux]] [[Categoría:Software de seguridad libre]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Kpatch
»
Añadir idiomas
Añadir tema