fly4life
написал 5 марта 2003 года в 01:05 (2705 просмотров)
Ведет себя
как мужчина; открыл 182 темы в форуме, оставил 5340 комментариев на сайте.
И всё-таки создам заново тему про кернел паник. Как в линуксе искусственно (программно или ещё как) вызвать kernel panic??? Есть идеи?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
>Как в линуксе искусственно (программно или ещё как) вызвать kernel panicHuh Есть идеи?
Например попробовать прибить idle task (с правами root, вестимо)…
Чего я только не пытался прибить ;)))) Я точно не знаю, но начинаю подумывать, что просто так (я про убивание процессов) кернел паник не вызвать…
Если даже предположить, что, прибив какой-то процесс, линукс повиснет, то я думаю, что всё равно либо само ядро, либо утилита kill (killall) просто напросто тогда не позволит убить этот процесс… =)
Вдогонку… может можно как-то ещё «уронить» процесс (_не_ kill’ом) ?? Идеи?
Если целт просто уронить ядро, то напиши модуль с вызовом функции panic(«vot i vse chto bylo…») ;)
Была подобная идея… Только с написанием драйвера, управляемым прерыванием. Есть очень хорошая книжка: «Ядро ОС Линукс. Руководство системного программиста» и там написано, что во время работы прерывания не все макросы (например, memcpy_fromfs() и memcpy_tofs()) можно использовать, иначе они могут «повергнуть ядро в ужас» (с)
Но как-то сложно всё это… Обязательно разберусь с написанием модуля или драйвера, но это позже, а сейчас я надеялся найти более простые способы ;)
>сейчас я надеялся найти более простые способы
Простой способ есть. Мог бы подумать над моим предложением :)
На самом деле все просто: запускаешь cdrecord и после того, как он начнет писать из шелла с правами root посылаешь ему
kill -s 9 или killall,
после чего наслаждаешься зрелищем kernel panic’а.
P.S. Можешь попробовать удалить fdisk’ом корневой раздел. При загрузке заметишь подобный эффект.
Во! Вот это идея. Проверю… Осталось тока резак найти ;))
=)))))))))) Прикольно! =))) Только мне хочется всё-таки сохранить данные и операционку в порядке… ;)
З.Ы. ещё идеи?
>Осталось тока резак найти
Не обязательно.
Читаешь доки по Linux development, kernel development, возможно также будут полезны сырцы cdrecord’а.
Создаешь программу реализующую достаточно продолжительный idle task, и из шелла с правами root удиваешь его (kill -s 9 PID)
Попробуй
# kill -s 9 1
Должно помочь;)
Хм… Я ж писал, что пробовал — не помогло… Ну не вырубается так инит-процесс у меня! =)
Или, судя по улыбке, у тебя получилось? ;)
Так это надо посылать из шелла с правами root.
Или root уже != GOD ?
А ты попробуй ;))
Да, не работает.
init работает на более высоком уровне и даже root не может его прибить. Увы.
да тут парни Brain Panic скорее :))
А ЗАЧЕМ???
А интересно =)
(отпруживанивает)
а если сюрьёзно попытайся перенаправить входные данные в /proc (например бинарник )
2) оптимизируй до распределённых выходов /proc одновременно
3) напиши многопотоковый ./proc задаць (16_ти битный, 32_х и в конце конов поддерживающий IPv6X)
Попробуй после установки линуха на второй диск. поставить win 98se на первый…
И что будет?
«На второй диск» имеется ввиду на второй раздел или вообще на второй физический хард? Хотя не важно… я, собственно, раньше несколько раз ставил вин98 (да и вин2000) на первый раздел жёсткого диска при уже установленном линуксе на втором… Просто вин затирал MBR и всё (вроде ничего страшного =)). Грузишься с дискетки, набиваешь в консоли lilo и всё норм ;). Кстати, та же история, если ставить виндовс на первый физический хард (primary master), при уже установленном линуксе на другом (secondary slave) — у меня так сейчас и стоят эти операционки..
Или я тебя не понял?