¿Cómo empiezo con la construcción de un sistema Linux desde cero?

Intenté crear un sistema operativo con mi kernel personalizado. No funcionó muy bien. Estoy usando Ubuntu y he descargado Linux 3.2.7 de kernel.org. No estoy tratando de cambiar el kernel en mi sistema Ubuntu. Quiero hacer mi propio sistema operativo con Grub, el kernel de Linux y quiero poder tener este sistema operativo homebrew en un tipo de file (como iso) que pueda poner en un CD y arrancar en otra computadora. Mi pregunta es: ¿qué necesito exactamente para hacer este SO? Cualquier comentario o tutorial sería útil.

Esto es lo que estás buscando: http://www.linuxfromscratch.org/

Un lugar para comenzar sería Buildroot .

¿Qué es? Es un set de scripts / makefiles que le permite producir un sistema de Linux literalmente desde cero. Retira todos los componentes relevantes, crea el comstackdor cruzado en el host. – prácticamente todo.

Está diseñado principalmente para trabajos integrados, como tal, contiene uclibc en lugar de glibc y le faltan pasos de compilation para muchos componentes, por ejemplo, Gnome y algunos entornos de escritorio, sin embargo, si está creando un CD en vivo, es absolutamente shiny. No limitado a CD en vivo, por supuesto. Yo digo eso – viene con Qt incorporado.

La última versión estable viene con grub 0.97 que puede no cumplir con sus requisitos.

Menciono esto porque, aunque Linux From Scratch es excelente, te dice cómo completar todo el process, requiere mucho time y requiere mucha paciencia. Buildroot podría adaptarse para include lo que necesites; como una experiencia de aprendizaje, la capacidad de utilizar los menus de estilo menuconfig y get algo que arranca y funciona es genial. También puede ver cómo lo hace todo antes de agregar características posteriores.

En cuanto a la configuration de su kernel, no puedo recomendar encarecidamente tomar su configuration existente (generalmente disponible en /boot ), copyrla en el tree del kernel como .config luego ejecutar make oldconfig y recorrer las nuevas opciones. Las opciones pnetworkingeterminadas están prácticamente garantizadas para funcionar desde su distribución; si comienzas absolutamente desde cero, puedes build algo inutilizable.

El mínimo indispensable que necesita es el kernel y algunos processs que puede ejecutar como init, junto con los cargadores y las bibliotecas necesarios para el process init. Arranca el núcleo diciéndole que ejecute el process init, y desde donde va su negocio.