Структура исходников ядра Linux

Исходный код ядра Linux организован по подсистемам. Ключевые каталоги:

  • arch/ архитектурно-зависимый код (например, arm/, x86/)

  • drivers/ драйверы устройств: SPI, I2C, USB, GPIO, net и др.

  • fs/ поддержка файловых систем (ext4, FAT, tmpfs и т.д.)

  • kernel/ ядро как таковое: планировщик, сигналы, ядро процессов

  • mm/ управление памятью

  • net/ сетевой стек

  • init/ код, запускаемый при старте ядра

  • include/ заголовочные файлы

  • scripts/ вспомогательные скрипты сборки

  • Documentation/ документация к ядру

Пример: где искать SPI-драйвер

drivers/spi/spi-bcm2835.c    SPI-драйвер для Raspberry Pi
arch/arm/boot/dts/           Device Tree для RPi
drivers/tty/serial/          UART-драйверы

Для сборки ядра нужно сконфигурировать .config:

make menuconfig
make