CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.03.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дискуссионный клуб

Дистрибутивы :: Идеология

Сергей Кузнецов: Драйверы вне ядра - мнения Таненбаума и Гейтса сходятся?

В библиотеке CITForum.ru опубликован перевод статьи Эндрью Таненбаума «Построение надежных операционных систем, допускающих наличие ненадежных драйверов устройств», в которой описываются методы, используемые в open source операционной системе MINIX 3 для повышения ее надежности. Эти методы, главным образом, направлены на извлечение из ядра ОС основного кода драйверов устройств и выполнение этого кода в пользовательском режиме в отдельных процессах. Идеи этой статьи интересным образом перекликаются с соображениями Билла Гейтса по поводу совершенствования операционных систем, недавно высказанными на семинаре в Москве.
Здесь вы можете оставить свой комментарий, а также задать вопросы профессору Кузнецову.




Комментарии

Страницы комментариев: 1 :: 2 :: 3 :: ... :: 6 :: следующая

aperon, Thu Aug 23 17:10:52 2007:
аноним, четверг, 23 августа 2007 г. 01:44:32
Тогда это что?

>>406-й, среда, 25 июля 2007 г. 13:51:17
>>Винда поддерживает несколько драйверов пользовательского режима:
- драйверы виртуальных устройств;
- драйверы принтеров...
аноним, Thu Aug 23 01:44:32 2007:
>Могу посмотреть точнее, если интересует.
Чего я парюсь-то? Вот же написано у 406-й, среда, 25 июля 2007 г. 13:51:17:
Драйверы, которые в режиме ядра, и вызывают синий экран (как и kernel panic в Linux).
аноним, Wed Aug 22 23:18:26 2007:
>Так все ж не пойму, если дрова в юзер-спейс
Они не совсем в юзер-спейс. Могу посмотреть точнее, если интересует.
aperon, Wed Aug 22 22:11:05 2007:
Аку-Аку, среда, 22 августа 2007 г. 13:26:52
>>Вам приходилось заглядывать в файлы этих драйверов, видеть что они из себя представляют?

Честно говоря, нет. Так все ж не пойму, если дрова в юзер-спейс, то какого падает Венда? Или это из серии вирусов в mp3 и wmf в Виндовс? :)
Аку-Аку, Wed Aug 22 13:26:52 2007:
Вам приходилось заглядывать в файлы этих драйверов, видеть что они из себя представляют?

\\singular, это дотнет без низкоуровневых вызовов.
да нет.. если и дотнет, то именно его managed часть, доведенная до абсурда.

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

Я просто всцыкаюсь от этой их уверенности, что вся проблема в низкоурвневом коде, и что без его использования система не будет глючить. :)))))) (видно уже самих мелкософтовцев достало их гребанное ядро)
aperon, Wed Aug 22 13:07:16 2007:
406-й, среда, 25 июля 2007 г. 13:51:17
Если драйверы принтеров в Виндовс находятся в user-space, то почему тогда дрова МФУ Lexmark 4010 вызывыют синий экран смерти, к примеру. Можно еще вспомнить "знаменитые" драйверы Mustek.

singular, это дотнет без низкоуровневых вызовов.

А почему никто не вспоминает fuse. Определенная разумная альтернатива ведь?
Аку-Аку, Wed Aug 22 11:21:11 2007:
406-й, четверг, 26 июля 2007 г. 21:42:49:
Вот это уже серьозный разговор.
Жаль только вовремя ответа не заметил (на форуме такого бы не случилось)

\\>про небезопасность где?
\\и в винде и в линухе (короче в любом монолитном \\ядре) ошибка в драйвере режима ядра может \\привести к модификации практически любой \\страницы памяти (коду исполняющемся в нулевом \\кольце защиты доступно практически всё адресное \\пространство, и даже виртуальные таблицы \\дескрипторов виртуальных адресов), за \\исключением только тех, что имеют атрибут \\"только чтение". Так что драйвер режима ядра \\потенциально опасен.
Да, правда.. но только при условии что он действительно баговый, или специально создан злоумышленником.
И даже если баговый... специфика драйвера такова, что он или правильный, или мертвый.. то есть -- если сбоит, его меняют

Драйвера же пользовательского режима, потенциально позволяют более безалаберное к себе отношение -- "ну и что, что сбоит.. все равно реинкарнирует"



\\Драйверу же пользовательского режима в \\микроядерных системах доступно только его \\закрытое виртуальное адресное пространство, \\поэтому вред от его сбоя на первый взгляд \\минимален. Вроде бы всё хорошо.
Действительно. Есть своя память, которую можна засырать временными структурами.. а то и вообще, уборщик мусора туду поцепить.
Зачем думать об эффективном алгоритме драйвера, он ведь все равно -- "безопасный"? ;)

\\ Но Винда и Линух потому и монолитны, что \\производительность микроядра очень низка \\(потоки то всё равно планируются ядром и \\межпроцессное взаимодействие тоже дорого \\обходится ввиду частого переключения их \\защищённого режима в пользовательский). К тому \\же сбой в ядре легче диагностируется и его \\последствий посему легче избежать.
Чем проще, тем надежнее. Общеинженерный принцып.

\\Есть ещё так называемые экзоядерные \\архитектуры. Суть их в том, что часть кода \\драйвера загружается в адрессные пространства \\приложений, нуждающихся в его услугах. Тем \\самым увеличивается производительность \\(приложение наиболее непосредственно общается с \\драйверными библиотеками).
Это так, как в ДОСе было. :)))

\\Тем не менее, на сегодняшний день наиболее \\перспективными решениями являются решения на \\базе технологий виртуализации \\(паравиртуализация на основе гипервизора не катит).
А вот об этом, поподробнее.
Насколько я знаю, виртуализация не устраняет необходимости иметь ядро и драйвера в нем.. или тут есть что-то новое?
Сбой же виртуальной машины -- это все равно сбой.
Из-за которого например может быть повреждена файловая система и т.п.
Да и гипрвизор -- в нем ведь тоже аналог драйверов нужен.. та же проблема надежности.


\\ И здесь кстати мелкософт далеко впереди \\вовремя сориентировавшись и прикупив конторку \\которая занималась исследованиями в этой \\области. Их экспериментальная система singular \\- передовик этой области.
На сколько я знаю.
Их Сингуларити -- вообще непричем к виртуализации.
Там у них предлагаеться заведомо глупая система, основанная на недопущении програмиста до низкого уровня, вообще. Да еще и с их гребаным дотНЕТом. :)))
По сути, то что они там хотят сделать -- это Визуал Васик для системного програмиста. :))) во, уроды
406-й, Thu Jul 26 21:42:49 2007:
to Аку-Аку
>про небезопасность где?
и в винде и в линухе (короче в любом монолитном ядре) ошибка в драйвере режима ядра может привести к модификации практически любой страницы памяти (коду исполняющемся в нулевом кольце защиты доступно практически всё адресное пространство, и даже виртуальные таблицы дескрипторов виртуальных адресов), за исключением только тех, что имеют атрибут "только чтение". Так что драйвер режима ядра потенциально опасен. Драйверу же пользовательского режима в микроядерных системах доступно только его закрытое виртуальное адресное пространство, поэтому вред от его сбоя на первый взгляд минимален. Вроде бы всё хорошо. Но Винда и Линух потому и монолитны, что производительность микроядра очень низка (потоки то всё равно планируются ядром и межпроцессное взаимодействие тоже дорого обходится ввиду частого переключения их защищённого режима в пользовательский). К тому же сбой в ядре легче диагностируется и его последствий посему легче избежать.
Есть ещё так называемые экзоядерные архитектуры. Суть их в том, что часть кода драйвера загружается в адрессные пространства приложений, нуждающихся в его услугах. Тем самым увеличивается производительность (приложение наиболее непосредственно общается с драйверными библиотеками).
Тем не менее, на сегодняшний день наиболее перспективными решениями являются решения на базе технологий виртуализации (паравиртуализация на основе гипервизора не катит). И здесь кстати мелкософт далеко впереди вовремя сориентировавшись и прикупив конторку которая занималась исследованиями в этой области. Их экспериментальная система singular - передовик этой области.
Аку-Аку, Thu Jul 26 10:25:23 2007:
То есть являеться драйвером процессора и памяти. ;)

Это все понятно.. про небезопасность где?


PS Может зайдеш на форум minix.ru и там расскажеш... оно им ОЙ как требуеться (чтоб кто-то азы рассказал)
406-й, Thu Jul 26 09:20:40 2007:
to Аку-Аку
>Нууу.. если так, то в линухе тоже полно таких
>драйверов.. называються они демонами
Драйвер - это программа, которая управляет каким-либо "устройством" (физическим или виртуальным - неважно). Демон - фоновый процесс, и не обязательно в принципе он должен чем-то управлять.
Просто многие не понимают, что в архитектурах и Линуха и Винды, всё управление осуществляется через ядро, и неважно, что некоторая часть кода может работать в пользовательском режиме. Так что драйвера пользовательского режима в этих и подобных им архитектурах, это лишь верхушка айсберга. Микроядро же тем и отличается, что вообще не дерижирует устройствами, а только управляет памятью и планирует процессы (или потоки - это зависит от реализации).

Страницы комментариев: 1 :: 2 :: 3 :: ... :: 6 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds