En mi opinión, el único beneficio que realmente obtiene al compilar su propio kernel de Linux es:
Aprenderás a compilar tu propio kernel de Linux.
No es algo que necesitas que hacer para mas velocidad/memoria/xxx lo que sea. Es algo valioso que hacer si esa es la etapa en la que sientes que te encuentras en tu desarrollo. Si desea tener una comprensión más profunda de qué se trata todo este asunto del "código abierto", sobre cómo y cuáles son las diferentes partes del kernel, entonces debería intentarlo. Si solo está buscando acelerar su tiempo de arranque en 3 segundos, entonces... cuál es el punto... vaya a comprar un ssd. Si tienes curiosidad, si quieres aprender, entonces compilar tu propio kernel es una gran idea y probablemente obtendrás mucho de él.
Dicho esto, hay algunas razones específicas por las que sería apropiado compilar su propio kernel (como varias personas han señalado en las otras respuestas). Generalmente, estos surgen de una necesidad específica que tiene para un resultado específico, por ejemplo:
- Necesito que el sistema arranque o se ejecute en hardware con recursos limitados
- Necesito probar un parche y enviar comentarios a los desarrolladores
- Necesito deshabilitar algo que está causando un conflicto
- Necesito desarrollar el kernel de Linux
- Necesito habilitar el soporte para mi hardware no compatible
- Necesito mejorar el rendimiento de x porque estoy alcanzando los límites actuales del sistema (y sé lo que estoy haciendo)
El problema radica en pensar que hay algún beneficio intrínseco en compilar su propio núcleo cuando todo ya está funcionando como debería ser, y no creo que lo haya. Aunque puede pasar incontables horas deshabilitando cosas que no necesita y modificando las que son modificables, el hecho es que el kernel de Linux ya está bastante bien ajustado (por su distribución) para la mayoría situaciones de los usuarios.
La mayoría de los usuarios no necesitan compilar su propio kernel, su distribución ha hecho este trabajo por ellos. Por lo general, las distribuciones incluirán un conjunto de parches para integrarse con ciertas partes de la forma en que funciona la distribución, backports de controladores de dispositivos y correcciones de versiones más nuevas, pero inéditas, del kernel o características en las que son pioneros con sus usuarios.
Cuando compila su propio kernel, tiene un par de opciones, puede compilar un kernel oficial de Linus Torvalds, esto no incluirá ninguno de los parches o personalizaciones que agregó su distribución (que pueden ser buenas o malas) o puede use su herramienta de reconstrucción de distribución para construir su propio kernel.
Las razones por las que podría querer reconstruir su kernel incluyen:
- Corregir errores o agregar una función específica a un sistema de producción, donde realmente no puede arriesgarse a actualizar todo el kernel para una sola corrección o dos.
- Para probar un controlador de dispositivo en particular o una nueva función
- Para extender el núcleo, trabaje en él
- probando algunos de los módulos o funciones "Alpha".
Muchos desarrolladores lo usan para crear también versiones personalizadas del kernel para sistemas integrados o decodificadores donde necesitan controladores de dispositivos especiales o quieren eliminar funcionalidades que no necesitan.
Compilar el kernel usted mismo le permite incluir solo las partes relevantes para su computadora, lo que la hace más pequeña y potencialmente más rápida, especialmente en el momento del arranque. Los núcleos genéricos deben incluir soporte para la mayor cantidad de hardware posible; en el momento del arranque, detectan qué hardware está conectado a su computadora y cargan los módulos apropiados, pero lleva tiempo hacer todo eso y necesitan cargar módulos dinámicos, en lugar de tener el código integrado directamente en el kernel. No hay ninguna razón para que su kernel admita 400 CPU diferentes cuando solo hay una en su computadora, o para admitir mouse bluetooth si no tiene uno, es todo espacio desperdiciado que puede liberar