Instalé Linux, ¿cómo puedo ver el código fuente? El código fuente del kernel de Linux está disponible en www.hernel.org en el directorio /pub/linux. El código fuente del software está disponible en la página de inicio general del proyecto o en la "fuente" del mismo. Distribución u otros sitios web de software de código abierto: Con la popularidad gradual de Linux, muchas personas ahora están familiarizadas con la instalación y configuración de Linux. Con la popularidad gradual de Linux, muchas personas ahora están familiarizadas con la instalación y configuración de Linux. A medida que Linux está en auge, cada vez más personas quieren saber más sobre Linux. Una comprensión profunda de Linux requiere leer y analizar el código fuente del kernel de Linux. El código fuente del kernel de Linux está disponible de varias formas. En términos generales, en un sistema Linux instalado, el contenido del directorio /usr/src/linux es el código fuente del kernel. El código fuente del kernel también se puede descargar de Internet y los archivos extraídos generalmente se encuentran en el directorio de Linux. Existen muchas versiones del código fuente del kernel, la última versión estable es la 2.2.14. Mucha gente tiene miedo de leer el kernel de Linux, pero no es necesario. Por supuesto, el código de un sistema tan grande y complejo como el kernel de Linux tiene muchas dificultades para leerlo, pero no es tan inalcanzable como podría pensar. Mientras se tenga perseverancia, las dificultades se pueden superar. No te preocupes por cuestiones de nivel, de hecho, hay muchas cosas que aún no sabemos, así que debemos aprender haciendo, ¿verdad? Para hacer cualquier cosa necesitas métodos y herramientas. El método correcto puede guiar el trabajo y unas buenas herramientas pueden obtener el doble de resultado con la mitad de esfuerzo. Lo mismo ocurre con la lectura del código fuente del kernel de Linux. A continuación, presentaré mi experiencia en la lectura del código fuente del kernel y, finalmente, presentaré una herramienta de lectura en la plataforma Windows. Para la lectura del código fuente, si desea que sea más fluido, es mejor tener una cierta comprensión de los antecedentes del código fuente de antemano. Para el código fuente del kernel de Linux, creo que los requisitos básicos son 1. Conocimiento básico del sistema operativo 2. Familiarizado con el lenguaje C, preferiblemente con conocimiento del lenguaje ensamblador y la extensión del conocimiento del lenguaje C estándar de GNU C; Además, antes de leer, también debes comprender la distribución general del código fuente del kernel de Linux. Sabemos que los sistemas operativos modernos generalmente constan de gestión de procesos, gestión de memoria, sistemas de archivos, controladores, redes, etc. Si observa el código fuente del kernel de Linux, encontrará que cada directorio corresponde aproximadamente a uno de estos aspectos. El código fuente del kernel de Linux consta de las siguientes partes (se supone que son relativas al directorio de Linux): arch Este subdirectorio contiene el código del kernel relevante para la arquitectura de hardware soportada por el código fuente del kernel. Este subdirectorio contiene el código del kernel para la arquitectura de hardware compatible con el código fuente del kernel, como i386 para la plataforma X86. incluir Este directorio contiene la mayoría de los archivos de inclusión del kernel. init Este directorio contiene el código de inicio del kernel. mm Este directorio contiene todo el código de administración de memoria. El código de administración de memoria relacionado con una arquitectura de hardware específica se encuentra en el directorio arch/*/mm, como arch/i386/mm/fault.c para X86. Todos los controladores de dispositivos se encuentran en este directorio. ipc Este directorio contiene el código principal de comunicación entre procesos. módulos Este directorio contiene módulos construidos y cargables dinámicamente. fs Código del sistema de archivos compatible con Linux. Los diferentes sistemas de archivos tienen diferentes subdirectorios; por ejemplo, un sistema de archivos ext2 corresponde a un subdirectorio ext2. Código del núcleo principal del kernel. El código relacionado con la arquitectura del procesador se coloca en el directorio arch/*/kernel. net La parte de red del código del kernel. Cada subdirectorio dentro de este directorio corresponde a un aspecto de la red. lib Este directorio contiene el código de la biblioteca principal. El código de la biblioteca relacionado con la arquitectura del procesador se coloca en el directorio arch/*/lib/. scripts Este directorio contiene archivos de script utilizados para configurar el kernel. Documentación Este directorio contiene documentación de referencia. Una vez que conozca la estructura del código fuente, puede comenzar a leer. Los métodos de lectura se dividen en métodos de lectura vertical y horizontal. Los llamados verticales significan proceder paso a paso según el orden de ejecución del programa; los llamados horizontales significan proceder en módulos. De hecho, no son absolutos sino que a menudo se combinan.
Para el código fuente de Linux, el código de inicio se puede ejecutar paso a paso de acuerdo con la secuencia de inicio de Linux. El proceso es aproximadamente el siguiente (tomando la plataforma X86 como ejemplo): ./larch/i386/boot/bootSect.S-. ->./larch/i386/boot/setup.S-->./larch/i386/boot/bootSect.S-->.S-->./larch/i386/kernel/head.S-->. start_kernel() de /init /main.c. La gestión de la memoria y otras partes se pueden leer y analizar por separado. Mi experiencia es que es mejor leer el código de inicio en orden primero y luego leer por tema, como la parte del proceso, la parte de administración de la memoria, etc. Dentro de cada función, debes leer el código paso a paso. Dentro de cada función debes hacerlo paso a paso. De hecho, este es un proceso iterativo y es imposible entenderlo después de leerlo una vez. Como dice el refrán: "Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas". Leer un programa tan complejo como el código del kernel de Linux resulta intimidante. Es como una bola de nieve que se hace cada vez más grande; leer una parte del kernel a menudo requiere varios otros archivos relacionados y pronto olvidas lo que estás haciendo. Por tanto, es imposible sin buenas herramientas. Dado que la mayoría de los entusiastas están familiarizados con la plataforma Windows y es una plataforma de la serie Windows de uso común, aquí presento una herramienta de software en Windows: Source Insight. Este software es gratuito durante 30 días y se puede descargar desde www.sourcedyn.com. La instalación es muy sencilla. Al igual que otras instalaciones, simplemente haga doble clic en el nombre del archivo de instalación y siga las instrucciones. Una vez que se completa la instalación, puede iniciar el programa. El software es muy fácil de usar y una gran herramienta para leer el código fuente. Su uso se describe brevemente de la siguiente manera: Primero, seleccione Nuevo en el menú del proyecto, cree un nuevo proyecto, ingrese el nombre del proyecto y luego agregue el código fuente que se le pedirá que lea (puede agregar el directorio completo) y el El software procesará el código fuente que agregó. Una vez que se completa el análisis, estará listo para leer. Para un archivo de lectura abierto, si desea ver la definición de una variable, primero coloque el cursor en la variable y luego haga clic en la opción correspondiente en la barra de herramientas, se mostrará la definición de la variable. Lo mismo ocurre con las definiciones e implementaciones de funciones. No entraré en detalles sobre otras funciones aquí. Los amigos interesados pueden instalar Source Insight, lo que mejorará en gran medida la eficiencia de la lectura del código fuente. ¿Qué te parece? ¡Pruébalo!