Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Добавление спецификаций тестируемого кода в Linux Ke... Чак Волбер, Габриэле Паолони и Кейт Стюарт

Автор: Linux Plumbers Conference

Загружено: 2025-12-18

Просмотров: 17

Описание:

Добавление тестируемых спецификаций кода в ядро ​​Linux — Чак Волбер, Габриэле Паолони (Red Hat) и Кейт Стюарт (Linux Foundation)

В ядре Linux замысел проектирования является эмергентным свойством. Этому есть ряд хорошо понятных причин, наиболее важными из которых являются меняющиеся потребности пользовательского пространства и распределенный характер его разработки. Также разумно предположить, что, несмотря на свою исключительную сложность, замысел проектирования ядра можно сформулировать в довольно простых высокоуровневых терминах: действовать как арбитражный слой между аппаратным обеспечением и прикладным программным обеспечением. Поэтому на практике ядро ​​Linux считается «работоспособным», когда пользовательское пространство ведет себя ожидаемым образом как в заданных (например, POSIX), так и в неопределенных (например, поведение планировщика) режимах.

Хотя это разумное объяснение пути, пройденного от скромных начинаний до того, где мы находимся сегодня, процесс разработки ядра Linux испытывает напряжение под тяжестью своего успеха. Сообщество отреагировало, создав такие инструменты, как syzkaller, kselftest, KUnit и наборы тестов, специфичные для каждого поставщика, чтобы помочь ядру соответствовать ожиданиям. Кроме того, существует обширная документация и большой архив знаний сообщества, документирующих проектирование и использование ядра Linux. Несмотря на всё это, сохраняется разрыв между детальным замыслом проектирования и всеми формами тестирования. Это важно, потому что тесты рискуют привести к несоответствию без явного одобрения разработчика.

Возможно, в очень узких ситуациях можно найти подтверждение от сопровождающего, что тест точно отражает детали его предполагаемого проекта. Но в широком смысле нет никаких доказательств того, что замысел разработчика можно однозначно отследить с помощью какой-либо формы воспроизводимого тестирования. Даже среди сопровождающих ядра это так, например, разработчикам PREEMPT_RT, как известно, приходится проводить обратное проектирование поведения планирования ядра, чтобы определить его свойства справедливости и задержки. По сути, всё тестирование ядра в значительной степени основано на системе фрагментарного обратного проектирования и обоснованных предположений. Это не умаляет значительной ценности тестирования, проводимого сообществом, но важно признать, что ни один репозиторий, содержащий тестовый код, не может претендовать на использование метафорического (или буквального) тега «Проверено сопровождающим».

Отложив на мгновение в сторону огромный размер ядра Linux, мы можем поразмышлять над решением этой проблемы, а затем проложить путь к разумному подходу. Выражение проектных решений встречается на многих уровнях, некоторые из которых становятся непрактичными для анализа на уровне исходного кода ядра, поскольку они основаны на сложных предположениях об использовании. Поэтому мы ограничиваемся самым низким разумным уровнем проектного замысла, описанным в RTCA DO-178C как «требования к программному обеспечению, из которых исходный код может быть непосредственно реализован без дополнительной информации». Лучшие практики разработки этих требований, которые мы будем называть «проверяемыми ожиданиями», выходят за рамки этой презентации. Достаточно сказать, что создание проверяемых ожиданий — это специализированный навык, который заставляет очень глубоко размышлять о замысле кода.

Имея на руках проверяемые ожидания, мы получаем необходимый уровень ясности для применения замкнутого цикла к коду ядра Linux, который однозначно связывает код с проектным замыслом отслеживаемым образом. При согласии сопровождающих (своеобразном «подписании»), тестовый пример может быть получен из проверяемого ожидания. Когда тестовый пример проходит успешно, можно использовать инструменты анализа покрытия кода, такие как llvm-cov и gcov, чтобы убедиться, что соответствующий код не был упущен. Согласовав ожидания, тесты и покрытие, мы можем подтвердить, что код точно отражает проектный замысел, достигая цели верификации программного обеспечения.

В заключение мы рассмотрим «слона в комнате» — огромный размер ядра Linux и потенциальную дополнительную нагрузку на сообщество сопровождающих. Как известно любому сопровождающему, сортировка ошибок — огромная часть работы, и хотя ошибки никогда не исчезнут, этот замкнутый цикл перенесет нагрузку с верификации («правильно ли код делает то, что нужно») на валидацию («правильно ли код делает то, что нужно»). Как верификация, так и валидация являются необходимыми составляющими работы сопровождающего, но этот подход обещает значительно облегчить аспект верификации. Таким образом, «сок стоит того», но необходим значительный скептицизм, и для уточнения подхода требуется обратная связь от сообщества разработчиков ядра.

В этом докладе будут рассмотрены следующие темы:
1) текущие ограничения рекомендаций по низкоуровневому проектированию ядра Linux (как в Documentation/doc-guide/kernel-doc.rst)

2) Подробные примеры поведения в рамках замкнутого ...

Добавление спецификаций тестируемого кода в Linux Ke... Чак Волбер, Габриэле Паолони и Кейт Стюарт

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Безопасность на траншеях — Алекса Сарай (SUSE LLC)

Безопасность на траншеях — Алекса Сарай (SUSE LLC)

Многоядерная архитектура: изоляция между ядрами и управление ресурсами — Конг Ван

Многоядерная архитектура: изоляция между ядрами и управление ресурсами — Конг Ван

Обзор Junie AI (2026) | Я протестировал агента по программированию с использованием ИИ от JetBrai...

Обзор Junie AI (2026) | Я протестировал агента по программированию с использованием ИИ от JetBrai...

Why I Left Quantum Computing Research

Why I Left Quantum Computing Research

Building the PERFECT Linux PC with Linus Torvalds

Building the PERFECT Linux PC with Linus Torvalds

Perf Test of CachyOS SCX LAVD sched-ext scheduler with LOWLATENCY profile & POWERSAVE flag enabled

Perf Test of CachyOS SCX LAVD sched-ext scheduler with LOWLATENCY profile & POWERSAVE flag enabled

ПОЛНЫЙ ПРОВАЛ «ОРЕШНИКА». Путин выставил себя на посмешище

ПОЛНЫЙ ПРОВАЛ «ОРЕШНИКА». Путин выставил себя на посмешище

Может ли у ИИ появиться сознание? — Семихатов, Анохин

Может ли у ИИ появиться сознание? — Семихатов, Анохин

Начинающим (Ликбез)

Начинающим (Ликбез)

Stop Rambling: The 3-2-1 Speaking Trick That Makes You Sound Like A CEO

Stop Rambling: The 3-2-1 Speaking Trick That Makes You Sound Like A CEO

Мониторы проверки в реальном времени — Нам Као (Linutronix)

Мониторы проверки в реальном времени — Нам Као (Linutronix)

Самый бюджетный дом за 10 дней. Полный процесс строительства

Самый бюджетный дом за 10 дней. Полный процесс строительства

Rust для Linux - Мигель Охеда

Rust для Linux - Мигель Охеда

The Windows 11 Disaster That's Killing Microsoft

The Windows 11 Disaster That's Killing Microsoft

Как Сделать Настольный ЭЛЕКТРОЭРОЗИОННЫЙ Станок?

Как Сделать Настольный ЭЛЕКТРОЭРОЗИОННЫЙ Станок?

Assim era a Vida no Mundo ANTES DO DILÚVIO há 5.000 Anos | (DOCUMENTÁRIO)

Assim era a Vida no Mundo ANTES DO DILÚVIO há 5.000 Anos | (DOCUMENTÁRIO)

Полная катастрофа в Украине: без света и тепла в Киеве, Одессе и других городах

Полная катастрофа в Украине: без света и тепла в Киеве, Одессе и других городах

Изоляция ЦП и межпроцессное взаимодействие — Валентин Шнайдер (Red Hat)

Изоляция ЦП и межпроцессное взаимодействие — Валентин Шнайдер (Red Hat)

Управление переключением устройств для каждой группы приложений — Крис Ли (Google), ЯнгДжун Парк ...

Управление переключением устройств для каждой группы приложений — Крис Ли (Google), ЯнгДжун Парк ...

Планирование с учетом кэша — г-н Тим Чен (Intel), г-н Ю Чен (Intel)

Планирование с учетом кэша — г-н Тим Чен (Intel), г-н Ю Чен (Intel)

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com