Глава 1 🔧 5. C Runtime и системные вызовы в Linux — как программы общаются с ядром
Автор: KONTAKT`S
Загружено: 2025-05-27
Просмотров: 58
Описание:
В этом видео мы разбираемся с фундаментом userspace в Linux — C runtime и интерфейсом системных вызовов.
Это ключевой материал, если вы хотите понять, как приложения взаимодействуют с ядром, и как это используется при написании драйверов.
📌 Что вы узнаете:
✅ Что такое glibc и зачем она нужна
Зачем нам printf, malloc, open, если всё делает ядро?
Как glibc превращает функции языка C в системные вызовы (syscall)
Где находится libc.so.6, как проверить её версию
Чем отличается glibc от самого ядра Linux
🔍 Как работает syscall()
Что происходит, когда программа вызывает open() или write()
Почему ядро не вызывает напрямую printf
Как номер вызова (SYS_open, SYS_write) попадает в ядро
Как strace позволяет наблюдать вызовы вживую
🧠 Практика:
Запустим strace ./a.out и посмотрим, какие именно вызовы делает программа
Разберём, как glibc использует инструкцию svc/int 0x80 (в ARM/x86)
Объясним, почему для ioctl() нужен номер устройства и специальная структура
🔐 Почему это важно:
Когда вы пишете драйвер ядра, вы реализуете функции, которые вызываются через syscalls.
Понимая, как userspace и kernelspace обмениваются информацией, вы будете:
Лучше проектировать интерфейсы
Эффективнее отлаживать драйверы
Безошибочно интерпретировать поведение программ в Linux
📘 Это часть 5 главы 1 из курса
Linux Driver Development Guide for Raspberry Pi 3 (2025)
Раздел документации: c_runtime/
🌐 Онлайн-доступ: http://dochub.local
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: