Структура исходников ядра 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