Algunas notas cognitivas básicas sobre el kernel de Linux

1. El proceso de inicio de Raspberry Pi y otros chips con sistemas operativos

  • C51, stm32 (bare metal) -> C controla directamente los registros subyacentes para implementar servicios relacionados, que también es un código bare metal de tipo proceso de negocio

  • x86, proceso de inicio entre Windows
    : encendido–>BIOS–>núcleo de Windows–>unidad C, D–>inicio del programa (WeChat)

  • Productos integrados: Raspberry Pi, mini2440, HiSilicon, etc.
    Proceso de inicio: Encendido -> BootLoader (inicia el sistema operativo) -> Kernel de Linux -> Sistema de archivos (organiza las carpetas según la funcionalidad, con permisos de acceso) -> Inicio del programa de aplicación

  • Proceso de inicio de Android
    : Encendido->fastBoot (equivalente a BootLoader)->Núcleo de Linux->Sistema de archivos->Máquina virtual->Aplicación HOME->Haga clic en el ícono para abrir una APLICACIÓN

BootLoader guía las dos etapas del inicio del sistema operativo:
Etapa 1: Deje que la CPU se ocupe de la memoria, FLASH, puerto serie, IIC, IIS, etc., y controle estos dispositivos (ensamblador y controlador combinado en lenguaje C) Etapa 2: Guíe
Linux kernel para iniciar (lenguaje C puro)

2. Comprensión básica de la estructura de árbol del directorio del código fuente del kernel de Linux

Artículo de referencia

  • arch: Contiene código relacionado con la arquitectura del hardware, cada plataforma ocupa un directorio correspondiente. El código relacionado con las PC de 32 bits se almacena en el directorio i386. Los más importantes incluyen kernel (parte central del kernel), mm (administración de memoria), math-emu (simulación de unidades de coma flotante), lib (herramienta relacionada con el hardware). funciones), arranque (programa de arranque), pci (bus PCI) y alimentación (estado relacionado con la CPU).
  • block: Controlador de dispositivo de bloqueo parcial.
  • criptografía: algoritmos de cifrado y hash de uso común (como AES, SHA, etc.), así como algunos algoritmos de compresión y verificación CRC.
  • Documentación: Explicaciones generales y comentarios sobre varias partes del kernel.
  • drivers: controlador de dispositivo, cada controlador diferente ocupa un subdirectorio.
  • fs: varios sistemas de archivos compatibles, como ext, fat, ntfs, etc.
  • incluir: archivo de encabezado. Entre ellos, los archivos de encabezado relacionados con el sistema se colocan en el subdirectorio de Linux.
  • init: código de inicialización del kernel (tenga en cuenta que no es el código de inicio del sistema).
  • ipc: código para comunicación entre procesos.
  • Kernel: la parte central del kernel, incluida la programación de procesos, temporizadores, etc. Parte del código relacionado con la plataforma se coloca en el directorio arch/*/kernel.
  • lib: código de archivo de biblioteca.
  • mm: Código de administración de memoria, parte del código relacionado con la plataforma se coloca en el directorio arch/*/mm.
  • net: código relacionado con la red, que implementa varios protocolos de red comunes.
  • scripts: archivos de script utilizados para configurar archivos del kernel.
  • sonido: Controladores para dispositivos de audio de uso común, etc.

Supongo que te gusta

Origin blog.csdn.net/m0_68038554/article/details/132004569
Recomendado
Clasificación