Instalé el sistema operativo Linux en mi computadora. El código fuente de Linux debe estar en un directorio determinado del sistema. Gracias.
Makefile: este archivo es el archivo MAKE de nivel superior para todo el árbol del código fuente. Define muchas variables y reglas útiles, como los indicadores de compilación de gcc predeterminados.
Documentación/: este directorio contiene mucha información útil (pero a menudo desactualizada) sobre la configuración del kernel, la ejecución de discos RAM y otras tareas. Sin embargo, las entradas de ayuda correspondientes a las diferentes opciones de configuración no están aquí; están en el archivo Kconfig en cada directorio fuente.
arch/: Todo el código relacionado con la arquitectura se encuentra en este directorio, así como en el directorio include/asm-. Cada arquitectura tiene su propio directorio bajo este directorio. Por ejemplo, el código para computadoras basadas en PowerPC se encuentra en el directorio arch/ppc. En estos directorios puede encontrar administración de memoria de bajo nivel, manejo de interrupciones, inicialización temprana, rutinas de ensamblaje y más.
crypto/: Esta es la API criptográfica utilizada por el propio kernel.
drivers/: Por convención, el código para ejecutar periféricos se puede encontrar en los subdirectorios de este directorio. Esto incluye controladores de vídeo, controladores de tarjetas de red, controladores SCSI de bajo nivel y otros controladores similares. Por ejemplo, la mayoría de los controladores de tarjetas de red se pueden encontrar en drivers/net. Parte del código de alto nivel que reúne una clase de controladores puede (o no) estar contenido en el mismo directorio que los propios controladores subyacentes.
fs/: El sistema de archivos ext2 es uno de los sistemas de archivos más utilizados y utilizados en Linux; el código para leer el formato ext2 se puede encontrar en fs/ext2. No todos los sistemas de archivos se compilan o ejecutan; para alguien que busca un proyecto de kernel, los sistemas de archivos menos populares siempre son buenos candidatos.
include/: la mayoría de los archivos de encabezado incluidos al principio del archivo .c se pueden encontrar en este directorio. El directorio asm- contiene archivos de inclusión específicos de la arquitectura. Parte del proceso de compilación del kernel es crear un enlace simbólico desde el directorio asm especificando asm-. De esta manera obtendrá los archivos correctos para la arquitectura sin tener que #incluir la codificación en el archivo .c. Los otros directorios contienen archivos de encabezado independientes de la arquitectura. Si se utiliza una estructura, constante o variable en varios archivos .c, probablemente debería colocarse en uno de los archivos de encabezado.
init/: los archivos en este directorio incluyen main.c, código para crear espacio de usuario inicial y otro código de inicialización. Piense en main.c como el "pegamento" del núcleo. El espacio de usuario inicial proporciona la funcionalidad requerida por el kernel de Linux para arrancar y no es necesario ejecutarlo en el kernel.
IPC/: IPC significa Comunicación entre procesos. Contiene código para que *** explote la memoria, los semáforos y otras formas de IPC.
kernel/: El código común a nivel de kernel que no cabe en ningún otro lugar se encuentra aquí. Hay un código de llamada al sistema de alto nivel, un código printk(), un programador, un código de manejo de señales, etc. Los nombres de los archivos contienen mucha información, por lo que puedes usar ls kernel/ sin tener que adivinar siempre qué hace cada archivo.
lib/: Aquí se muestran rutinas de utilidad comunes a todo el código del kernel. La manipulación de cadenas comunes, las rutinas de depuración y el código de análisis de la línea de comandos se encuentran aquí.
mm/: Este directorio contiene código de administración avanzada del kernel. Estas rutinas, junto con las rutinas subyacentes relacionadas con la arquitectura (generalmente ubicadas en el directorio arch//mm/), se utilizan para implementar la memoria virtual (VM).
Aquí se realiza la gestión temprana de la memoria (requerida antes de que el subsistema de memoria esté completamente establecido), así como el mapeo de la memoria de los archivos, la gestión de la caché de páginas, la asignación de memoria, el borrado de páginas en la RAM (y muchas otras funciones).
net/: Este es un código de red avanzado. El controlador de red de bajo nivel intercambia paquetes con código en este nivel, que puede pasar los datos a la aplicación de nivel de usuario en función del paquete, descartar los datos o utilizar los datos en el kernel. net/core contiene código que se puede utilizar para la mayoría de los diferentes protocolos de red, al igual que algunos de los archivos del directorio net/. Los protocolos de red específicos se implementan en subdirectorios de net/. Por ejemplo, el código IP (versión 4) se puede encontrar en el directorio net/ipv4.
Scripts/: este directorio contiene scripts que se pueden usar para compilaciones del kernel, pero no agrega ningún código al kernel en sí. Por ejemplo, varias herramientas de configuración pueden colocar sus archivos aquí.
seguridad/: El código para diferentes modelos de seguridad de Linux, como NSA Security-Enhanced Linux y ganchos de seguridad de red y sockets, así como otras opciones de seguridad, se pueden encontrar aquí.
sonido/: el controlador de la tarjeta de sonido y otros códigos relacionados con el sonido se colocan aquí.
usr/: el código de este directorio se utiliza para crear archivos comprimidos en formato cpio que contienen imágenes del sistema de archivos raíz para el espacio de usuario inicial.