¿Qué es una actualización del kernel con "Bump ABI"?

18

Como puede ver en el registro de cambios para el Kernel de Linux , hay mensajes de actualización como "Bump ABI - Maverick ABI 28".

Según el Wiki de Ubuntu , ABI es algo así como un puente entre el espacio del kernel y los otros módulos ( mi interpretación).

¿Dicha actualización agrega características adicionales y / o correcciones de errores? ¿Debo actualizar mi kernel a la próxima versión?

    
pregunta Lekensteyn 21.03.2011 - 15:14

3 respuestas

11

NB: No soy un experto en kernel, por lo que esto se basa en el conocimiento y la experiencia recopilados.

Un "bache" de ABI no debería traer nuevas características, a pesar de que puede "corregir" errores en algunos módulos / aplicaciones que buscan una versión más alta de ABI. Deberías instalar estas actualizaciones, ya que mantener generalmente todos los componentes sincronizados garantizará la estabilidad y la seguridad.

    
respondido por el RolandiXor 21.03.2011 - 16:41
11

Primero, no estás mirando el registro de cambios para el kernel de Linux. Usted está mirando el paquete meta, que es un paquete que depende del kernel más reciente. Probablemente desee algo como: enlace

El objetivo de este metapaquete es hacer que el usuario pase por estos baches ABI.

Sostengo la misma vista que usted en ABI y kernel. En términos prácticos, un bache ABI significa que todos los módulos deben reconstruirse contra el núcleo actualizado.

Mi comprensión también está en línea con Roland, en el sentido de que un bache ABI no significa nuevas características, solo soluciones críticas y actualizaciones de seguridad.

    
respondido por el user1974 21.03.2011 - 17:02
3

El ABI es la interfaz binaria de la aplicación (no debe confundirse con la API, la interfaz de programación de aplicaciones). El ABI define los tamaños, los signos y las órdenes de los números que usa la aplicación.

Para que quede claro, he aquí un ejemplo: quiero codificar la antigüedad de un edificio, expresada en años. Para hacerlo, puedo usar un C unsigned char , que es un tipo cuyo tamaño es de 1 byte, y que puede codificar valores de 0 a 255. Ahora supongamos que descubro que 255 es un límite demasiado bajo porque hay edificios que fueron construidos hace más de 255 años. Entonces puedo usar un C unsigned int , que tiene 4 bytes de longitud y puede codificar valores de 0 a 65535.

Cambiando el tipo de char a int , no he cambiado el significado semántico del campo (era una edad expresada en años y aún lo es), sin embargo, he cambiado su tamaño. No será necesario cambiar ningún software que interactúe con mi aplicación, sin embargo, se hablará un "idioma" diferente.

Por lo tanto, cuando un kernel cambia su ABI, significa que ha cambiado el idioma que habla, pero no se han agregado, eliminado o modificado funcionalidades. Todos los módulos de terceros que tienen que interactuar con el kernel deben recompilarse para poder hablar este nuevo idioma, pero no es necesario modificarlos de ninguna manera para que funcionen correctamente.

    
respondido por el Andrea Corbellini 03.11.2014 - 10:52

Lea otras preguntas en las etiquetas