LINUX.ORG.RU

Искусственные тесты на выживание


0

0

Вот, собственно о чем идет речь: в ходе ковыряния скальпелем внутри пары самых распространенных систем, был получен интересный результат, фрагмент которого видно на скриншоте. В частности, был написан искусственный драйвер, который должен был делать Access Violation в момент загрузки. Хваленые "суперстабильные и работающие неделями" Win*** мгновенно уходят в синие трапы (скриншот и исходники для форточек только за деньги :-)), а "глючный и кривой" линукс продолжает бежать даже после сбоя в ядре... Исходники драйвера - недоубийцы следуют:

/*

Linux Killer Driver

Copyright 2002 by No-dashi

This program is free software; you may redistribute and/or
modify it under the terms of the GNU General Public License
Version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for complete details.

The author respectfully requests that any modifications to this
software be sent directly to him for evaluation and testing.

*/

#include <linux/config.h>
#include <linux/module.h>
#include <linux/init.h>
#include <asm/uaccess.h>

int __init
trap_init (void)
{
int * n=NULL;
n[1024]=255;
return 0;
}

void
trap_exit (void)
{
return;
}

module_init (trap_init);
module_exit (trap_exit);

>>> Просмотр (1024x768, 60 Kb)

★★★★★

Проверено: maxcom

А как в гноме2 сделать иконки на рабочем столе. Я так и не понял :(

anonymous
()

Смотря как линукс трапанеш :-) Когда драйвер делал для своей железячки, видел всякое. Невозможно гарантировать что после любого трапа в ядре система сможет выжить.

anonymous
()

и что?
такойже хренотни можно добиться сделав например
#dd if=/dev/zero of=/dev/kmem

anonymous
()

А на реальной машине слабо ??

а если сделать #cat /dev/zero > /dev/mem ,
то вообще 'vmware' грохнется :-)

anonymous
()

Сделующим шагом предлогаю сравнить сколько ножек процессора позволяют отогнуть операционные системы без потери стабильнсти.

Какая из операционных систем дольше проработает без электричества.

И какая быстрее опьянеет если мышь опустить в спирт.

ezhikov
()

бред какой...

anonymous
()

Ну положим много денег за прогу, которая делает тоже под виндой не надо.... Скачай ДДК, да в ДрайверЕнтри напиши тоже самое...
А по поводу БСОДа(Blue Screen Of Death) в Винде, так это у Микрософтов идейное...
Можно предложить ещё следующее сравнение
Написать для винды и для линукса драйвер, у которого в init_module или в DriverEntry написать cnt=0; while(1) {cnt++;};
И посмотреть что произойдет на однопроцессорной машине с ядром типа 2.4.18....
Винда продолжит работать, хоть и медленно, а линукс встанет намертво...
Но это же ничего не показывает кроме того, что ядро винды приэмптивное, а Линюкса нет(ну в 2.4 ветке, о том что есть такой патч и что он включен в 2.5 кричать пожалуйста не надо)

anonymous
()

ну и к чему такие эксперименты кроме демонстрации собственной глупости?

anonymous
()

> Написать для винды и для линукса драйвер, у которого в
> init_module или в DriverEntry написать
> cnt=0; while(1) {cnt++;};
> И посмотреть что произойдет на однопроцессорной машине
> с ядром типа 2.4.18.... Винда продолжит работать, хоть
> и медленно, а линукс встанет намертво...

Неважно, что при первом же чихе в синий трап улетает, важно что "ядро преемптивное"? :-) Бывает - кому ехать, а кому "с шашечками"... Что насчет "не после всякого трапа выжить можно" - это верно, хотя за две недели интенсивного тестирования винда влетала "синий трап" раз этак 15, а линукс за месяц в "kernel panic" был всего трижды... <offtopic> ДДК на микрософте не дадут. Зато предложат подписаться на МСДН, ибо отныне ДДК "неотъемлемая часть МСДН", или предложат купить за отдельные бабки (типа shipping cost :-)). А к этому еще и MSVC Pro либо Enterprise. Имхо несколько нагловато это - не давать людям писать под систему... Впрочем, это их дело </offtopic> Вдогонку: в ситуациях "малой и средней тяжести" сбой драйвера блочного устройства в Линуксе, как правило, приводит только к недоступности этого устройства, и не более (на ядре 2.4.18, например). В Win то же самое 100% приводит к "синему трапу".

no-dashi ★★★★★
() автор топика

Я вот чего-то не пойму, разве в DDK (винды) не написано что не обработанные исключения в режиме ядра приводят к бсод? Т.е. все согласно плану. Это где то даже верно, зачем в работать продолжать работать, лучше дамп, и административный алерт, чтобы админ прибежал :)

anonymous
()

у меня машина i486 работает не первый месяц после того как трапнула модуль который я ей грузанул с инструкциями от i686) перегружаться чтобы заглохший модуль изничтожить как-то нужды не вижу... :-)

anonymous
()

А чем для регистрации событий Eventlog не подходит? И зачем трапать сервер, если упал драйвер видяшки? А, понял... Это типа чтобы юзер постоянно думал о покупке очередных апдейтов!? :-)

no-dashi ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.