2011-02-23 7 views
66

Tengo dos libros para este propósito: Linux Kernel Development de Robert Love y O'Reilly's Comprensión del núcleo de Linux. Empecé a leer estos libros y he descargado el último código fuente para Linux.¿Cómo comenzar a aprender a programar, codificar o leer el kernel de Linux?

Ahora, de aquí en adelante, debería seguir leyendo estos libros hasta el final o debería comenzar a buscar el código ... Y si debería comenzar a codificar, ¿desde dónde empezar? Hay tantos directorios y archivos que estoy confundido en cuanto a cuál es el mejor lugar para comenzar a entender el código. También podría agregar que he tenido mi curso en Sistemas Operativos y estoy bastante cómodo con los conceptos ... Por favor, denme cualquier sugerencia que me ayude a seguir adelante. ¿También dime cómo aprendiste a comenzar a programar el kernel? Gracias de antemano ...

+4

"Hay tantos directorios y archivos que estoy confundido en cuanto a que es el mejor lugar para empezar a entender el código". Toma la pista. Haz más lectura –

+0

El libro de Robert Love es absolutamente el mejor. Fácil de seguir, comprensible, se centra en la teoría y la implementación, y tiene un estilo muy bueno que es un placer leer. – ldx

+1

http://stackoverflow.com/a/27782191/220386 –

Respuesta

28

Has elegido dos libros realmente buenos para empezar a aprender. Principalmente, sugiero terminar los libros e intentar seguir los ejemplos de la mejor manera posible.

Personalmente, aprendí metiéndome hasta las rodillas en el código del kernel después de obtener un trabajo de la universidad escribiendo controladores de dispositivos Linux para dispositivos integrados (muchas tarjetas de adquisición analógicas y digitales). No tenía experiencia previa y los dos libros que mencionaste me ayudaron inmensamente a comenzar en la dirección correcta.

Mi pregunta es, ¿por qué quiere aprender la programación del kernel de Linux? Esto puede ayudarnos a sugerir tal vez un proyecto de código abierto para que participe.

Además, aquí se puede encontrar una buena fuente para los proyectos del kernel que necesitan los desarrolladores: http://kernelnewbies.org/KernelProjects

+5

Quiero aprender programación kernel porque me gusta la teoría de los sistemas operativos y quiero aprender cómo el código lo implementa. Esto es puramente por interés. Aprendí un poco de programación de controladores de dispositivo el semestre pasado y me pareció muy interesante. Además, me gusta programar en C y ensamblar. – pflz

+1

Es genial que tenga un interés general, pero hace que sea difícil sugerir un buen punto de partida en términos de codificación. Consulte el enlace que proporcioné y seleccione uno de los proyectos de dificultad más baja o empiece con parte del trabajo 'KernelJanitor' aquí http://kernelnewbies.org/KernelJanitors –

0

Te aconsejaría que vayas a la tienda de libros favorita (en línea) y busques un libro sobre el desarrollo del kernel de Linux. Para comenzar, no es realmente importante tener un libro que describa las últimas tecnologías. En cambio, el libro debe coincidir con tus habilidades de programación.

Como segunda opción para una revista Linux (en línea) donde los artículos técnicos describen las nuevas tecnologías.

2

Esta es una pregunta muy difícil de responder.

¿Qué es lo que quiere que esté codificando (en el futuro). Quizás podamos ir desde allí.

Mi inicio y mi única experiencia fue escribir un simple controlador USB para un gadget con algunos LED y botones que obtuve en una feria hace algún tiempo.

Leí un buen artículo sobre la codificación de controladores para tales dispositivos en Linux Magazine o algo similar.

http://www.kernel.org/doc/htmldocs/gadget.html tiene alguna información buena (desactualizada?

Desafortunadamente perdí el código (la computadora portátil estaba encendida) y el dispositivo de luces parpadeantes desde hace mucho tiempo.

Cuestiones relacionadas