¿Qué impide que las distribuciones utilicen el último kernel de Linux? [cerrado]


13

La mayoría de las distribuciones de Linux se entregan con una determinada versión del kernel y solo se actualizan en versiones puntuales ( x.y.za x.y.(z+1)) y para actualizaciones de seguridad.

Por otro lado, sé que Linux tiene una política muy estricta sobre no cambiar la ABI del núcleo y nunca romper el espacio del usuario. De hecho, Linus ha tenido muchos berrinches públicos dirigidos a desarrolladores que querían (intencionalmente o accidentalmente) cambiar el núcleo de formas no compatibles con versiones anteriores.

No entiendo por qué las distribuciones usan núcleos "estables" en lugar de actualizar siempre al último núcleo. Esto no es una crítica, solo tengo curiosidad sobre la razón.


1
porque los últimos núcleos carecen de pruebas. puede contener errores que pueden afectar la estabilidad del sistema y la estabilidad es el foco principal de cualquier responsable de distribución.

Respuestas:


8

Las interfaces de llamada del sistema del kernel de Linux son muy estables. Pero el núcleo tiene otras interfaces que no siempre son compatibles.

  • /proces en su mayoría estable, pero ha habido algunos cambios en el pasado (por ejemplo, algunas interfaces se movieron /sysalgún tiempo después de que /sysse creó).
  • En el pasado se han eliminado varias interfaces relacionadas con el dispositivo .
  • /syscontiene algunas interfaces estables (enumeradas en Documentation/ABI/stable) y algunas que no lo son. Se supone que no debe usar los que no lo son, pero a veces las personas lo hacen, y una simple actualización de seguridad y estabilidad no debería romper las cosas para ellos.
  • Ha habido incompatibilidades con modutils en el pasado (los núcleos más nuevos requieren una versión más nueva de modutils), aunque creo que fue hace bastante tiempo.
  • También ha habido incompatibilidades con respecto al proceso de arranque en algunas configuraciones inusuales. Incluso aumentar el tamaño del núcleo podría causar problemas en algunos sistemas integrados.
  • Mientras que las interfaces externas del núcleo son bastante estables, las interfaces internas no lo son. La regla para las interfaces internas es que cualquiera puede romperlas siempre que arreglen los usos internos, pero arreglar los módulos de terceros es responsabilidad del autor de dichos módulos. En general, muchas instalaciones ejecutan módulos de terceros: controladores adicionales para hardware que no fue compatible con el núcleo (si el hardware es compatible con el nuevo núcleo, está bien, pero qué pasa si no lo es), controladores propietarios ( Si bien el mundo sería un lugar mejor si todos los controladores fueran de código abierto, este no es el caso; por ejemplo, si desea un buen rendimiento de la GPU 3D, está prácticamente atascado con los controladores propietarios), etc.
  • Algunas personas necesitan recompilar su kernel o algunos módulos de terceros. Los núcleos más recientes a menudo no se pueden compilar con compiladores más antiguos.

En general, la razón principal para no cambiar a una versión de kernel más reciente son los módulos de terceros.

Sin embargo, algunas distribuciones ofrecen núcleos recientes como una opción. Por ejemplo, Debian hace que los núcleos de las pruebas estén disponibles para los usuarios de la versión estable a través de backports. Del mismo modo, en Ubuntu LTS, los núcleos de versiones más recientes de Ubuntu están disponibles, pero no se usan de forma predeterminada. Esto es principalmente útil para nuevas instalaciones en hardware que aún no eran compatibles cuando se finalizó la distribución.


9

No estoy trabajando para una distribución, pero puedo pensar en al menos dos razones:

  • Algunas distribuciones aplican sus parches personalizados al Kernel que aún no se fusionan en la línea principal. Esto significa que para cada actualización del Kernel necesitan asegurarse de que sus parches no rompan nada y sigan funcionando correctamente.
  • Incluso la última versión estable de Kernel puede contener un error, las distribuciones que toman en serio la confiabilidad querrán pasar por algunos procedimientos / procesos de prueba antes de entregar un Kernel a sus clientes.

2
De todos modos, los parches específicos de distribución no están destinados necesariamente a la transmisión. Y el último núcleo ascendente contendrá en promedio más errores que el núcleo "stock" probado de una distribución. Gran parte de lo que hace el núcleo distribuido por una distribución es tratar de eliminar / corregir tantos errores como sea posible, sin cambiar el código más de lo necesario.
Faheem Mitha

0

Distribuciones más conservadoras siguen (y participan activamente) en las versiones de kernel estable , por el bien de la estabilidad. Los más aventureros usan una versión de kernel one más o menos detrás de la última y mejor vainilla, más una salpicadura de parches respaldados desde el consejo de desarrollo (y algunos de cosecha propia).

La política actual de desarrollo del núcleo es que la versión de Linus sigue adelante con juguetes nuevos y brillantes, y no teme los cambios al por mayor. Algunas versiones se consideran lo suficientemente estables (en cuanto al desarrollo) para formar la base de pruebas rigurosas y estabilización, dando series estables.

Todo esto es posible debido a las herramientas en uso, todos pueden preparar su propio árbol de git , mantener sincronizadas localmente interesantes ramas y árboles aguas arriba, robar compromisos de otros y compartir libremente los cambios locales.


La serie de kernel estable no se elige en función de la estabilidad de una versión en particular, es arbitraria. A partir de este año, la serie estable se basará en la primera versión lanzada cada año ... Se supone que cada lanzamiento del kernel es estable y nunca rompe la compatibilidad con versiones anteriores.
Stephen Kitt el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.