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

9

Traté de hacer un sistema operativo con mi núcleo personalizado. No funcionó muy bien. Estoy usando Ubuntu y he descargado Linux 3.2.7 desde 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 casero en un tipo de archivo (como iso) que pueda poner en un CD y arrancar en otra computadora. Mi pregunta es: ¿qué necesito exactamente para hacer este sistema operativo? Cualquier comentario o tutoriales sería útil.

Codificador404
fuente
1
Puede configurar grub para arrancar un kernel de Linux. Hay muchos lugares para descubrir cómo hacerlo; el más autorizado sería el manual oficial ( gnu.org/software/grub/manual/grub.html ). Una vez que se inicia el kernel, intentará iniciar un programa ubicado en /sbin/init(a menos que esté configurado de otra manera). Este programa puede hacer lo que quieras. Hay algunas opciones comunes para usar /sbin/init, como Upstart, sysvinit, systemd o simplemente bash. A partir de ahí, ese programa está en control. Si alguna vez sale, el núcleo se bloqueará, por lo que debería ser capaz de iniciar otros programas.
Shawn J. Goff
44
El sitio web linuxfromscratch.org tiene mucha información para construir su propia distribución de linux.
daniel kullmann

Respuestas:

15

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

tshubitz
fuente
2
Estoy de acuerdo en que esto es lo que DEBERÍA estar haciendo, y le di el +1. Creo que lo que realmente quiere es los detalles del cambio de marca de Ubuntu, ya que se migró de askubuntu.
RobotHumans
Incluso si está intentando hacer algo ligeramente diferente, Linux From Scratch es sin duda el lugar para comenzar.
Vernon
Por lo menos, LFS es una excelente experiencia de aprendizaje.
tshubitz
@tshubitz Miré a LFS pero no tiene sentido para mí. ¿Es un sistema operativo preconstruido? ¿Es una guía para hacer un sistema operativo? ¿Qué es?
Coder404
LFS es una guía para crear un sistema operativo GNU / Linux desde cero. Esta página del sitio de LFS lo resume: linuxfromscratch.org/lfs
tshubitz
4

Un lugar para comenzar sería Buildroot .

¿Qué es? Es un conjunto de scripts / makefiles que le permite producir un sistema Linux literalmente desde cero. Despliega todos los componentes relevantes, construye el compilador cruzado en el host. - prácticamente todo.

Que está diseñado principalmente para el trabajo integrado - como tal, contiene uClibc en lugar de glibc y falta pasos de generación de muchos componentes, por ejemplo, Gnome y algunos entornos de escritorio - sin embargo, si usted está haciendo un CD en vivo que es absolutamente brillante. No se limita a los CD en vivo, por supuesto. Digo eso: viene con Qt incrustado.

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

Menciono esto porque si bien Linux From Scratch es excelente porque le dice cómo completar todo el proceso, es largo, requiere mucho tiempo y requiere mucha paciencia. Buildroot podría adaptarse para incluir lo que sea necesario; Como experiencia de aprendizaje, la capacidad de usar los menuconfigmenús de estilo y obtener algo que arranque y funcione es excelente. También puede ver cómo hace todo antes de agregar funciones posteriores.

En términos de configuración de su núcleo, no puedo recomendar más encarecidamente tomar su configuración existente (generalmente disponible en /boot), copiarla en el árbol del núcleo y .configluego ejecutar make oldconfigy pasar por las nuevas opciones. Las opciones predeterminadas están prácticamente garantizadas para funcionar desde su distribución; Si comienzas desde cero, puedes construir algo inutilizable.


fuente
3

Lo mínimo que necesita es el kernel y algunos procesos que puede ejecutar como init, junto con los cargadores y bibliotecas necesarios para el proceso init. Arrancas el kernel diciéndole que ejecute el proceso de inicio, y a dónde va allí está tu negocio.

Ignacio Vazquez-Abrams
fuente