2009-02-04 21 views
9

En mi clase de sistemas operativos estamos buscando modificar un kernel de Linux con algunas simples llamadas al sistema propias en C.¿Qué es una buena distribución barebones de Linux para el desarrollo de kernel para principiantes?

¿Cuál sería una buena distribución adecuada para este propósito? No necesitamos ningún lujo, ninguna GUI, un núcleo de vainilla, etc. Cuanto más básico, mejor.

+1

¿Qué es "un kernel simple"? –

+0

@Torsten Marek, una distribución que usa un kernel no modificado, sin modificar, posiblemente una versión anterior que es menos compleja que> 2.6 kernels de Linux. – mmcdole

Respuesta

9

Pude modificar el núcleo bastante fácilmente usando una instalación mínima de Gentoo. Sólo tiene que instalar gentoo, siga las instrucciones de instalación y, a continuación:

$ emerge gentoo-sources 
$ emerge emacs 
$ cd /usr/src/linux 
+0

+1 para los comandos necesarios para obtener "lo suficiente para editar/compilar un kernel", impresionante – dlamotte

+0

+1 creo que genkernel es la mejor cadena de herramientas para utilizar, mucho más fácil que cualquier distribución basada en DEB/RPM. – daisy

1

que necesariamente no diría cualquier distribución particular, se orienta hacia el desarrollo del núcleo como tal, pero si quieres una distribución tradicional de Linux que doesn Apila demasiadas cosas personalizadas de configuración entre tú y el kernel, Slackware es una opción decente.

2

En todas las distribuciones, puede instalar las fuentes vanilla kernel.org en lugar de los paquetes kernel relacionados con la distribución, lo que probablemente sea una buena idea cuando quiera hacer un desarrollo del kernel.

Sin embargo, tendrá problemas cuando quiera usar cualquier distribución reciente con núcleos que no sean 2.6, ya que a menudo crean libc6 de una manera que no se puede ejecutar con 2.4. Además, muchas de las agallas de la administración de hardware (como udev) requieren kernels bastante recientes.

Aparte de eso, el uso de Debian le da un sistema barebone, y la instalación de sus propios núcleos es muy fácil con kernel-package.

5

archlinux ++

pero realmente .. gentoo, floja, y el arco son todos más o menos buenas opciones

1

Mi sugerencia es para agarrar el último núcleo. Habrá más funciones de depuración dentro de él que en un kernel anterior. Además, los núcleos más antiguos se verían tan complejos como los más recientes para los principiantes.

En cuanto a la distribución en sí, no se puede equivocar. Si lo único que desea es probar algunas llamadas al sistema personalizadas, tome la distribución principal que le proporcione un entorno de desarrollo agradable. Luego compila y prueba tu glibc personalizado sin instalarlo sobre la distribución.

6

En mi curso de sistemas operativos usé User Mode Linux el último semestre, la gran ventaja es que cuando manguera el sistema, puede simplemente matar el proceso sin riesgo para el entorno host.

La adición/modificación de llamadas al sistema es tediosa pero trivial independientemente del kernel que utilice. Sin embargo, el kernel 2.6 es significativamente más masivo y complejo, por lo que si vas a modificar el código de una manera significativa, es más fácil trabajar con los kernels más antiguos y estar mucho mejor documentados. (Es decir: más fácil encontrar libros y referencias)

feliz :) piratería

+0

+1 para UML. Si solo HURD pudiera hacer esto, es un núcleo más pequeño e inmaduro con más lugares que se pueden mejorar. – new123456

0

Al elegir una distro para el desarrollo del kernel, recuerde que es el núcleo desea cortar, y no la distribución en sí. Por lo tanto, querrá una distribución fácil que se mantenga fuera de su camino tanto como sea posible. Ubuntu dice bastante bien.

IANAKH

+0

¿Cómo diablos llegaste a esa conclusión? Los núcleos de Ubuntu son un PITA para personalizar. –

3

Arch Linux proporciona una gran plataforma para el desarrollo del núcleo, que también es muy funcional. Si aprende a usar pacman, en realidad hará que las modificaciones de su kernel sean probadas con bastante facilidad y brindará las fuentes y herramientas de una manera sensata.

Creo que si se toma en serio el aprendizaje de linux y kernel hacking, hacer una instalación de Linux From Scratch debe estar en su lista. Es una gran distribución/libro y le permitirá construir la plataforma para el desarrollo usted mismo.

0

Una alternativa que no es linux es Geek OS, pero esto está muy dirigido al nivel educativo, y no es un kernel práctico. Sin embargo, es muy simple.

0

Bueno, he encontrado uno llamado "minix" no es realmente una distribución de Linux, pero fue hecho específicamente para la enseñanza, pero si solo puedes usar una distribución de Linux, entonces no debería importar, soy bonita Asegúrese de que todas las distribuciones tengan el mismo kernel

0

Gentoo si no le importa la compilación automatizada (la mayoría de las personas piensa que gentoo es Linux From Scratch => tiene que hacer todo por su cuenta).

Arch si tiene una computadora más lenta (laptop).

La mayor ventaja de estos dos es que tienen muy buena documentación y solo instalan Gentoo, es decir, le proporciona conocimientos básicos sobre el sistema init y qué servicios debe ejecutar. Si uno copia & pegue comandos de la guía, no vale la pena (afortunadamente el manual hace pensar a la gente un poco, evitando que los niños instalen gentoo y se hagan cargo de nuestro nítido #irc): D

Cuestiones relacionadas