nixp.ru v3.0

21 января 2017,
суббота,
03:07:38 MSK

DevOps с компанией «Флант»
Аватар пользователя fly4life
fly4life написал 5 марта 2003 года в 01:05 (1239 просмотров) Ведет себя как мужчина; открыл 182 темы в форуме, оставил 5340 комментариев на сайте.

И всё-таки создам заново тему про кернел паник. Как в линуксе искусственно (программно или ещё как) вызвать kernel panic??? Есть идеи?

Anarchist

>Как в линуксе искусственно (программно или ещё как) вызвать kernel panicHuh Есть идеи?

Например попробовать прибить idle task (с правами root, вестимо)…

fly4life
Anarchist
Например попробовать прибить idle task (с правами root, вестимо)…

Чего я только не пытался прибить ;)))) Я точно не знаю, но начинаю подумывать, что просто так (я про убивание процессов) кернел паник не вызвать…

Если даже предположить, что, прибив какой-то процесс, линукс повиснет, то я думаю, что всё равно либо само ядро, либо утилита kill (killall) просто напросто тогда не позволит убить этот процесс… =)

fly4life

Вдогонку… может можно как-то ещё «уронить» процесс (_не_ kill’ом) ?? Идеи?

RXL

Если целт просто уронить ядро, то напиши модуль с вызовом функции panic(«vot i vse chto bylo…») ;)

fly4life
RXL
Если целт просто уронить ядро, то напиши модуль с вызовом функции panic(«vot i vse chto bylo…») ;)

Была подобная идея… Только с написанием драйвера, управляемым прерыванием. Есть очень хорошая книжка: «Ядро ОС Линукс. Руководство системного программиста» и там написано, что во время работы прерывания не все макросы (например, memcpy_fromfs() и memcpy_tofs()) можно использовать, иначе они могут «повергнуть ядро в ужас» (с)

Но как-то сложно всё это… Обязательно разберусь с написанием модуля или драйвера, но это позже, а сейчас я надеялся найти более простые способы ;)

Anarchist

>сейчас я надеялся найти более простые способы

Простой способ есть. Мог бы подумать над моим предложением :)

На самом деле все просто: запускаешь cdrecord и после того, как он начнет писать из шелла с правами root посылаешь ему

kill -s 9 или killall,

после чего наслаждаешься зрелищем kernel panic’а.

P.S. Можешь попробовать удалить fdisk’ом корневой раздел. При загрузке заметишь подобный эффект.

fly4life
Anarchist
Простой способ есть. Мог бы подумать над моим предложением :)

На самом деле все просто: запускаешь cdrecord и после того, как он начнет писать из шелла с правами root посылаешь ему

kill -s 9 или killall,

после чего наслаждаешься зрелищем kernel panic’а.

Во! Вот это идея. Проверю… Осталось тока резак найти ;))

Anarchist
P.S. Можешь попробовать удалить fdisk’ом корневой раздел. При загрузке заметишь подобный эффект.

=)))))))))) Прикольно! =))) Только мне хочется всё-таки сохранить данные и операционку в порядке… ;)

З.Ы. ещё идеи?

Anarchist

>Осталось тока резак найти

Не обязательно.

Читаешь доки по Linux development, kernel development, возможно также будут полезны сырцы cdrecord’а.

Создаешь программу реализующую достаточно продолжительный idle task, и из шелла с правами root удиваешь его (kill -s 9 PID)

Anarchist

Попробуй

# kill -s 9 1

Должно помочь;)

fly4life
Anarchist
Попробуй

# kill -s 9 1

Должно помочь;)

Хм… Я ж писал, что пробовал — не помогло… Ну не вырубается так инит-процесс у меня! =)

Или, судя по улыбке, у тебя получилось? ;)

Anarchist

Так это надо посылать из шелла с правами root.

Или root уже != GOD ?

fly4life
Anarchist
Так это надо посылать из шелла с правами root.

Или root уже != GOD ?

А ты попробуй ;))

Anarchist

Да, не работает.

init работает на более высоком уровне и даже root не может его прибить. Увы.

Ninja

да тут парни Brain Panic скорее :))

polachok

А ЗАЧЕМ???

fly4life
Chubacca
А ЗАЧЕМ???

А интересно =)

Ninja

(отпруживанивает)

а если сюрьёзно попытайся перенаправить входные данные в /proc (например бинарник )

2) оптимизируй до распределённых выходов /proc одновременно

3) напиши многопотоковый ./proc задаць (16_ти битный, 32_х и в конце конов поддерживающий IPv6X)

anonymous

Попробуй после установки линуха на второй диск. поставить win 98se на первый…

fly4life
RootKit
Попробуй после установки линуха на второй диск. поставить win 98se на первый…

И что будет?

«На второй диск» имеется ввиду на второй раздел или вообще на второй физический хард? Хотя не важно… я, собственно, раньше несколько раз ставил вин98 (да и вин2000) на первый раздел жёсткого диска при уже установленном линуксе на втором… Просто вин затирал MBR и всё (вроде ничего страшного =)). Грузишься с дискетки, набиваешь в консоли lilo и всё норм ;). Кстати, та же история, если ставить виндовс на первый физический хард (primary master), при уже установленном линуксе на другом (secondary slave) — у меня так сейчас и стоят эти операционки..

Или я тебя не понял?

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.