Блог
Make и GCC: флаги для чистой сборки
Строгие предупреждения и отладочные символы ловят ошибки ещё на этапе компиляции.
СборкаCMake и Ninja: быстрая сборка вне дерева
Сборка в отдельном каталоге не пачкает исходники, а Ninja пересобирает только изменённое.
СборкаСборка deb-пакета с debhelper
Пакет ставится, обновляется и удаляется штатными средствами системы.
СборкаRPM: пишем spec-файл и собираем пакет
Spec описывает сборку, установку и состав пакета для Fedora, RHEL и их производных.
ЯдроСборка ядра Linux из исходников
Возьмите конфигурацию работающего ядра и пересоберите её под свои изменения.
ЯдроСвой модуль ядра: hello world
Минимальный модуль показывает цикл загрузки, выгрузки и вывода в журнал ядра.
ЯдроDKMS: модули, которые переживают обновление ядра
DKMS автоматически пересобирает внешние модули при установке нового ядра.
Ядроbpftrace: трассировка ядра в одну строку
eBPF позволяет смотреть системные вызовы и функции ядра без перезагрузки и пересборки.
Ядроkselftest: встроенные тесты ядра
В дереве ядра есть автотесты подсистем: сети, таймеров, памяти.
Тестированиеbats: автотесты для shell-скриптов
Тестируйте коды возврата и вывод скриптов так же, как обычный код.
Тестированиеtestinfra: проверяем состояние серверов на pytest
Тесты описывают, какими должны быть пакеты, службы и порты после настройки.
Тестированиеstress-ng: нагрузочное тестирование системы
Утилита нагружает процессор, память и диск и показывает пределы системы.
Тестированиеfio: измеряем производительность диска
fio воспроизводит нагрузку приложений: случайное чтение и запись, разные блоки и очереди.
ТестированиеAddressSanitizer и UBSan: ловим ошибки памяти
Компилятор встраивает проверки выхода за границы, утечек и неопределённого поведения.
ТестированиеValgrind: утечки памяти и профилирование
Valgrind запускает программу в виртуальной среде и находит утечки и чтение неинициализированной памяти.
ТестированиеФаззинг с AFL++
Фаззер подбирает входные данные, которые роняют программу, и находит уязвимости автоматически.
ТестированиеLinux Test Project: регрессионные тесты ядра
LTP проверяет системные вызовы и подсистемы ядра тысячами тестов.
CI/CDGitLab CI: сборка и тесты на каждый коммит
Конвейер из стадий собирает проект и запускает тесты в чистом контейнере.
CI/CDGitHub Actions для C-проектов
Workflow запускает сборку и тесты при каждом push и pull request.
CI/CDpre-commit: проверки до коммита
Хуки запускают линтеры и форматирование раньше, чем код попадёт в репозиторий.
ОтладкаGDB: пошаговая отладка
Точки останова, стек вызовов и локальные переменные помогают найти причину сбоя.
Отладкаstrace: что программа делает на самом деле
Трассировка системных вызовов показывает открытые файлы, сетевые вызовы и ошибки доступа.
Отладкаperf: профилирование без перекомпиляции
perf показывает, где программа тратит процессорное время, вплоть до функций ядра.
Отладкаgit bisect: ищем коммит, сломавший сборку
Бинарный поиск по истории находит виновный коммит за считанные шаги.
ОтладкаCore dump и coredumpctl
Дамп памяти упавшего процесса позволяет разобрать сбой уже после того, как он случился.
ОкруженияQEMU: запускаем собранное ядро за секунды
Виртуальная машина с минимальным образом проверяет ядро без перезагрузки основной системы.
ОкруженияDocker-образ для воспроизводимой сборки
Единый образ с компилятором и инструментами даёт всей команде одинаковую среду.
Окруженияsystemd-nspawn: лёгкие окружения для тестов
Контейнер с полноценной системой запускается за секунды и не требует Docker.
Ничего не найдено. Сбросьте фильтр или измените запрос.