Эксперт перезагрузил Linux 292 612 раз, чтобы найти баг ядра

Эксперт перезагрузил Linux 292 612 раз, чтобы найти баг ядра

Эксперт перезагрузил Linux 292 612 раз, чтобы найти баг ядра

Ричард Джонс, один из разработчиков Red Hat, нашёл баг в системе Linux и сделал это очень интересным способом. Специалист заметил, что ОС виснет на этапе загрузки один из тысячи раз. Чтобы доказать свои выводы, Джонс загрузил компьютер 292 612 раз.

По словам эксперта, баг затрагивает ядро Linux версии 6.4. После того как Джонс перезагрузил устройство 292 612 раз, ещё тысяча перезагрузок понадобилась на подтверждение проблемы. Все манипуляции заняли у разработчика 21 час.

Эксперт показал, что брешь реже встречается на железе Intel, чем на AMD. Впервые Джонс заподозрил наличие бага, когда ряд софтовых тестов с протоколом nbdkit «рандомно зависали» при работе с инструментом libguestsfs (для доступа к образам дисков виртуальной машины и их модификации).

Несмотря на общую фазу тестирования в 21 час и 292 612 перезагрузок, Джонс отметил, что к этому он шёл несколько дней. Исследователь метался между Linux v6.0 и v6.4-rc6, чтобы выявить виновника бага. Последним оказалась регрессия функции printk.

Определить причину помог тот факт, что ошибка всегда возникала на одном и том же раннем этапе загрузки ОС (при запуске последней версии qemu). По ссылке можно увидеть, что самый простой способ воспроизвести баг — запустить команду guestfish в цикле со множеством параллельных копий.

Джонс, например, запускал guestfish в цикле 10 тыс. раз. Разработчик утверждает, что проблема зависания при загрузке возникает реже в системах Intel, чем в AMD. Ожидается, что на баг обратят внимание и поправят его.

В Windows нашли способ получать Insider-сборки без аккаунта Microsoft

Пока Microsoft всё сильнее привязывает пользователей Windows к своей экосистеме, энтузиасты продолжают искать обходные пути. На этот раз обновление получил инструмент OfflineInsiderEnroll, который позволяет устанавливать предварительные сборки Windows без входа в учётную запись Microsoft.

Обычно для участия в программе Windows Insider требуется зарегистрироваться через аккаунт Microsoft и официально подключить устройство к одному из тестовых каналов. Но OfflineInsiderEnroll предлагает альтернативный сценарий.

Утилита представляет собой небольшой скрипт, который настраивает необходимые параметры локально через системный реестр. После этого компьютер получает доступ к тестовым версиям Windows через обычный механизм Windows Update, как будто устройство официально участвует в программе предварительного тестирования.

В основе схемы лежит параметр реестра TestFlags. Если установить для него значение 0x20, Windows перестаёт обращаться к онлайн-сервисам регистрации Insider Program.

Благодаря этому локальные настройки больше не перезаписываются серверами Microsoft, а выбранный канал тестирования сохраняется на устройстве.

 

Проще говоря, система начинает верить настройкам, которые ей подсовывает сам скрипт.

Ранее OfflineInsiderEnroll уже поддерживал классические каналы Dev, Beta и Release Preview. Теперь разработчики обновили утилиту до версии 2.6.6 и добавили поддержку новой структуры каналов Windows Insider, которую Microsoft недавно начала внедрять.

Помимо Beta и Release Preview пользователи получили доступ к новым экспериментальным каналам тестирования. Также в комплекте остались инструменты для очистки кеша Insider, сброса настроек и полного отключения участия в программе.

Впрочем, запускать скрипт придётся с правами администратора.

RSS: Новости на портале Anti-Malware.ru