Комментарии к статье

Вернуться к статье

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

Aku-Aku 2006-11-16 14:43:12.10002+03

Хм..
Тема очень давняя
Тот же Таненбаум еще с Торвальдсом на эту тему пререкался ;)

А "соображения" Билла Гейтса совпали,
потому что он книжки того же Таненбаума читал ;)
(или может кто думает что он сам ядро для своих виндов клепал :)) )

Сергей Кузнецов 2006-11-16 19:21:00.3449+03

Тема действительно старая, как и большинство идей (если не все идеи) в области операционных систем. Но мне очень нравится настойчивость Эндрью. И ведь на самом деле получается. А что касается Гейтса, то, во-первых, я бы не стал брать в кавычки "соображения", поскольку можно по разному к нему относиться, но отказать ему в уме и сообразительности, по-моему, нельзя. Во-вторых, если он действительно читал книжки Таненбаума и вспомнил об этой идее при ответе на вопрос, то честь ему и хвала. Не все миллиардеры читают хорошие книжки. А мне лично будет очень любопытно, если в Windows действительно разгрузят ядро.

Aku-Aku 2006-11-17 15:00:04.291455+03

Вряд ли они его разгрузят
Потому как основой их стратегией на сегодня
являеться ограничение доступа к внутреностям их оси
Попытка заставить програмиста пользоваться только интерфесами и фреймворками
Не добавят так же и потому, что тогда придеться давать юзверю возможность ручного управления

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

IMHO 2006-11-18 08:06:43.337821+03

Спасибо Сергею Кузнецову за позитив :)

аноним 2006-12-02 03:55:27.674122+03

У Гейтса все сходится только в одном: отобрать у юзера доступ в ядро их системы нафиг, чтобы вы не дай боже не сломали их драгоценный DRM.

аноним 2006-12-02 04:00:14.852464+03

> Попытка заставить програмиста пользоваться только интерфесами и фреймворками
А чтоб вы не могли поломать цифорвой ошейник в виде DRM.Ну и всякую спайварную дрянь типа WGA замочить.В 64-битной висте очень интересно сделано с подписью драйверов ядра, почитайте технические доки у MS на сайте, весьма познавательно.По сути MS все и за всех в итоге решает, какой драйвер вам загрузить можно а какой - низзя.А до кучи можно и вендоров железа на бабки ставить - не отвалишь денег, хрен подпишешь драйвер, железо будет никому нафиг не надо.Еруто придумано, да?Весь кернел-моде режим "модерируется" микрософтом.Красота... от вирусов конечно надолго это не спасет, но вот от ЮЗЕРА (т.е. вас) это (вашу) систему защищает неплохо.

аноним 2006-12-04 15:09:55.490781+03

"...QNX является коммерческой UNIX-подобной системой реального времени с закрытыми кодами [17]... Однако на основе последних проспектов мы заключаем, что Neutrino является гибридным ядром, поскольку менеджер процессов работает в адресном пространстве ядра..."

Зря Вы так считаете :-) ! PM не в адресном пространстве ядра. Читаем "QNX Architecture" на сайте QSSL

Сергей Кузнецов 2006-12-04 16:04:13.592221+03

Если авторы статьи в чем-то ошибаются, нужно дать им знать. Но я что-то не могу найти на http://www.qssl.com/ материал под названием "Архитектура QNX". Есть "Microkernel Architecture" (http://www.qssl.com/products/rtos/microkernel.html), но там ничего не говорится про менеджер процессов. Неплохо было бы в комментариях давать прямые ссылки на материалы для экономии общего времени.

Аку-Аку 2006-12-05 13:51:53.982194+03

Что касаеться MINIX 3 -- очередное творение кабинетного ученого

Основная "фича" -- надежность
В том виде как она там предлагаеться (ho-plug драйвера), в таком виде (сейчас?) никому не нужна

Рассмотрим ситуации

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

Сервер -- набор драйверов там строго ограничен и гарантированно отлично протестирован.. зачем там эта "фича"???

Единстенный вариант для которого может быть удобна такая супернадежность -- для сервера удаленного тестирования драйверов :)))
Представте.. вы заливаете свой глючный драйвер на комп где-то_там.. он естественно вылетает.. но вы все равно имеете возможность посмотреть логи ;)

sir 2006-12-06 00:21:41.399104+03

дайте мне подходящий дрйвер и я ядро переверну!

Сергей Кузнецов 2006-12-06 15:17:04.24704+03

Очень интересно было бы знать, по каким признакам госп. Аку-Аку отличает кабинетных ученых от ученых некабинентных. Насколько я знаю Таненбаума, он наименее кабинетен из всех знакомых мне профессоров. На абсолютно практической конференции Usenix он является одним из основных авторитетов. И мне кажется, что в настоящее время он один из наиболее авторитетных исследователей в области эволюционных подходов к совершенствованию операционных систем. Я не собираюсь спорить по поводу правильности подхода Minix 3 к повышению надежности операционных систем, здесь каждый имеет право на собственное мнение, но лично мне всегда претит излишняя уверенность в правоте.

Аку-Аку 2006-12-06 16:22:40.431863+03

>>...но лично мне всегда претит излишняя уверенность в правоте.

если вас так беспокоит мое "нахальство"
то скажу что правота не моя, а фактической ситуации (еще со времен появления ядра Линукса)

и ничего оскорбительного против Таненбаума я не писал.. с чего бы мне выступать против такого уважаемого и знающего человека?

единственно.. мое кредо "сначала истина, а потом авторитет"

исследования Таненбаума -- важны, но именно как академические (кабинетные) и могут быть полезны.. когда-нибудь потом

Alex 2006-12-06 17:07:04.058154+03

Я не спец в данном вопросе, но настораживает вот что: ни слова не сказано о надежности средств обеспечения надежности. Такая славная вещь, как "сервер реинкарняции". А сколько ошибок в нем? Если мало строк кода, то мала функциональность и наоборот . А ведь согласно "некоторым источникам" ошибки есть все равно. Не так ли?

unihum 2006-12-06 20:01:00.106421+03

Аку-Аку.

Прежде чем рассуждать об этом, Вы могли бы попоробовать Миникс 3. Его можно запросто скачать и под ВМВарей запустить. Почитать манаул по Миниксу. Там очень подробно описана архитектура и демон "восстановления".

А заодно купите журнал "Хакер" и посмотрите, какие методы используют, для распространения вирусов, троянов и прочей гадости в Виндоус.

Вот после этого, у Вас есть полное право рассуждать по этой теме.

На мой взгляд, архитектура ОС предложенная Танненбаумом еще несколько лет назад, является более устойчивой к сбоям и "вредным" изменениям, чем используемые ныне в Виндоус и Линуксе.

Сергей Кузнецов 2006-12-08 02:11:10.974508+03

Подозреваю, что на замечание госп. Alex'а должен ответить я, хотя это мог бы сделать любой опытный программист. Конечно, в любой программе могут содержаться ошибки. Чем больше и сложнее программа, тем больше в ней ошибок и тем сложнее их выловить. Наиболее сложными и трудно обнаруживаемыми ошибками являются те, которые редко проявляются. В архитектуре MINIX 3 объем кода, ошибки в котором фатальны для системы в целом, существенно меньше, чем в других ОС. Сам этот код архитектурно проще. Поэтому вероятность его достаточно полной отладки становится выше. В принципе, становится возможным исчерпывающее тестирование, хотя на практике в условиях университета его вряд ли возможно выполнить. Но повышается вероятность постепенного вылавливания всех ошибок при использовании системы другими людьми, поскольку код открыт и сравнительно прост. Естественно, минимальность и простота кода минимального ядра и сервера реинкарнации не означает снижение функциональных возможностей ОС в целом. Просто эта функциональность обеспечивается компонентами, выполняемыми в пользовательском режиме.

аноним 2006-12-08 11:07:08.395546+03

>>Вот после этого, у Вас есть полное право
>>рассуждать по этой теме.
Ну вот и я нарвался на "специалиста" (по посту уровня подготовки не видать ;)) ) готового поучать
Что ж.. может быть -- поделом

>>На мой взгляд, архитектура ОС предложенная
>>Танненбаумом еще несколько лет назад, является
>>более устойчивой к сбоям и "вредным"
>>изменениям, чем используемые ныне в Виндоус и
>>Линуксе.
Устойчива ТА система, в которой НЕ происходит сбоев, а не та которая умеет их "быстренько и прикольненько" исправлять.
Потому как основной фактор такой нестабильности -- человек.
Исходя из этого можно предположить даже меньшую устойчивость из-за вмешательства человека в работу ядра (настраивать сервер реинкарнаций, кто будет?)

А вот какраз исчерпывающего анализа факторов ненадежности и тем самым аргументированного подтверждения необходимости указанных "фич" -- нету (возможно есть в другой статье)
Есть только псевдоумное "а кто откажеться от большей надежности?"

Аку-Аку 2006-12-08 11:08:35.817631+03

>>Вот после этого, у Вас есть полное право
>>рассуждать по этой теме.
Ну вот и я нарвался на "специалиста" (по посту уровня подготовки не видать ;)) ) готового поучать
Что ж.. может быть -- поделом

>>На мой взгляд, архитектура ОС предложенная
>>Танненбаумом еще несколько лет назад, является
>>более устойчивой к сбоям и "вредным"
>>изменениям, чем используемые ныне в Виндоус и
>>Линуксе.
Устойчива ТА система, в которой НЕ происходит сбоев, а не та которая умеет их "быстренько и прикольненько" исправлять.
Потому как основной фактор такой нестабильности -- человек.
Исходя из этого можно предположить даже меньшую устойчивость из-за вмешательства человека в работу ядра (настраивать сервер реинкарнаций, кто будет?)

А вот какраз исчерпывающего анализа факторов ненадежности и тем самым аргументированного подтверждения необходимости указанных "фич" -- нету (возможно есть в другой статье)
Есть только псевдоумное "а кто откажеться от большей надежности?"

аноним 2006-12-08 21:17:21.597092+03

Ну вынесут драйвера из ядра. Всё равно для каких-нибудь специальных нужд понадобяться модули, работающие внутри ядра, хотя они и могут называться отличным от "драйвера" словом. Процесс пойдет по кругу...

Аку-Аку 2006-12-09 11:17:10.327268+03

Вот-вот...

Захочиться ВГ DRM какой непробиваемый на уровне ядра поцепить :)))
Или супер-пупер Just-in-time-C#-VM :)))))

аноним 2006-12-22 13:01:50.283249+03

нужен компромиссный подход

аноним 2007-01-11 13:31:43.885085+03

Аку-Аку, вторник, 5 декабря 2006 г. 13:51:54:
Вы пишете:
...
Домашний\офисный комп -- перезагрузки из-за сбойных драйверов неприятны, но отнюдь НЕ критичны
Зато негарантированная работа драйвера после восставновления.. это означает, что когда вы посылаете напечатать стостраничный отчет, где-то в середина драйвер сбиваеться и печать возобновляеться с первого листа :)))) до следующего сбоя... :)) оч нужная фича
...

По поводу перезгрузок очень многие считают сильно иначе. На некоторых офисных компьютерах выполняют дорогостоящие операции и перезагрузки, мягко говоря, весьма не кстати.
А про начало печати с первой страницы вы сами придумали и, как вы правильно заметили, это никому не надо. Уверен, вы можете придумать и что-то стоящее.

аноним 2007-01-11 16:09:44.588838+03

>>По поводу перезгрузок очень многие считают
>>сильно иначе.
имеються в виду перегрузки из-за использования некачественных драйверов (для которых Миних и называеться панацеей)
и для которых имееться вполне логичное решение -- использовать качественные драйвера

>> На некоторых офисных компьютерах выполняют
>>дорогостоящие операции и перезагрузки, мягко
>>говоря, весьма не кстати.
А чем в таком случае поможет реинкарнация драйвера
который например обслуживает обращение к диску сервиса базы данных
Вы внимательно читали?
Сервер реинкарнаций НЕ ОБЕСПЕЧИВАЕТ прерваной из-за сбоя сесии работы с драйвером,
так же как и возможные повреждения информации внесенные некорректно работающим драйвером

>>А про начало печати с первой страницы вы сами
>>придумали и, как вы правильно заметили, это
>>никому не надо.
Это какраз пример демонстрирующий выше написаное

>> Уверен, вы можете придумать и что-то стоящее.
Спасибо.. и думаю, да -- смогу
Но вряд ли это будет система восстановления глючно работающих драйверов ;))

Аку-Аку 2007-01-23 13:24:24.791754+03

>> Уверен, вы можете придумать и что-то стоящее.
Например вот такая идея
Современные процесоры поддерживают страничный обмен с виртуальной памятью.
Но тем не менее, скажем образ програмы когда грузиться в память, остаеться там практически весь
Хотя большая часть кода программы выполняеться редко и\или только в начале.

Вот можно было бы заняться проблемами такой оптимизации исполняемого кода, чтобы в памяти можно было оставлять только несколько 4k страниц из мегабайтового объектного файла, и только те что постоянно используеться.

Думаю такая работ и интересна и актуальна,
особенно учитывая тенденцию роста скоростей и количества ядер.
Например можно было бы помещать такие часто используемые страницы полностью в кешпамять (механизмами ОСи)

Кернел 2007-01-29 18:40:52.641056+03

Ох уж и достали меня эти глючные драйверы.

Реально надо специфицировать аппаратные интерфейсы и аппаратную поддержку и защиту строить аппаратную.

А то каждый производитель своей железки (сетевой карты к примеру) имеет свой интерфейс для ее программирования (разные порты, разные dma ).

Аку-Аку 2007-04-04 15:06:08.733868+04

То как заглохла данная тема.. только еще раз подтверждает её малоперспективность.

AmRin 2007-05-18 23:11:04.540815+04

Статья и концепция микроядерных ОС верная.
Мешает на практике инерция мышления, а главное - инерция "больших систем". Это - корень бед и переходящих из поколения в поколение проблем. Это так особенно в технически сложных областях, таких как построение ОС.
Наблюдаемая не более чем 10% потеря производительности при переключении пользовательских процессов CPU не существенна на фоне резкого повышения надёжности ОС. Особенно в нынешних и будущих быстрых процессорах.
Будущее - за мультисерверной операционной системой, полностью использующей заложенные аппаратно ещё в 1985 году (фактически с Intel386 CPU*) возможности по изоляции пользовательских задач в защищённом режиме процессора, с драйверами устройств, работающими в пользовательском режиме.
* Но в те времена - при существовавших тогда тактовых частотах - вопрос производительности стоял на первом месте...
Реинкарнация драйверов - мечта всех, кому приходится сталкиваться со сбоями этой подсистемы...
Замечу только, авторами или оформителями статьи была допущена небольшая ошибка: в иллюстрациях 6-7 вместо фактически использованных миллисекунд указаны микросекунды (что в 1000 раз меньше)... :)

Аку-Аку 2007-05-21 11:13:49.615153+04

>>Статья и концепция микроядерных ОС верная.
А никто и не оспаривает её методологическую ценность. Эксперименты проводить -- нужно.

>>Мешает на практике инерция мышления, а главное
>>- инерция "больших систем". Это - корень бед и
>>переходящих из поколения в поколение проблем.
Это -- заключение неспециалиста. Явно.
НЕ СУЩЕСТВУЕТ общей методики поэтапной модернизации.. а тем более больших информационных систем.
Система -- каждый раз создаеться "с нуля" (с учетом предыдущего опыта)


>>Наблюдаемая не более чем 10% потеря
>>производительности при переключении
>>пользовательских процессов CPU не существенна
>>на фоне резкого повышения надёжности ОС.
Еще раз.. В ЧЕМ ВЫ УСМАТРИВАЕТЕ "повышение надежности".. дажэе у самого автора, ЭТО -- всего лишь предположение.
Общая же инженерная наука говорит другое -- более простая по устройству система, состоящая из меньшего количества подсистем -- БОЛЕЕ НАДЕЖНА (при прочьих равных)
А уж если в системе появляеться звено (сервер реинкарнаций) зависящее от человеческого фактора, ТО.. вся система преобретает надежность этого, самого слабого, звена. И никакие ухищрения ТУТ не помогут.

>>Будущее - за мультисерверной операционной
>>системой, полностью использующей заложенные
>>аппаратно ещё в 1985 году (фактически с
>>Intel386 CPU*) возможности по изоляции
>>пользовательских задач в защищённом режиме
>>процессора, с драйверами устройств, работающими
>>в пользовательском режиме.
Будущее.. за многоядерными системами.
Подходящую операционку для которых -- еще только НУЖНО разработать.


>>Реинкарнация драйверов - мечта всех, кому
>>приходится сталкиваться со сбоями этой
>>подсистемы...
И плодить недоотлаженный код драйверов :))))
Ведь это програмистская аксиома.
Чем ниже требования к коду, тем ниже его качество.

Никас 2007-07-03 08:52:41.984783+04

Дали блин бабам тему для болтовни!!! Я считаю что подобные разработки очень даже полезны, большинство ламеров Линух тоже за стоящую ОС не считают. А вообщето к большинству заданных сдесь вопросов можно применить выражение "Грамотно сформулированный вопрос не требует ответа!!"

аноним 2007-07-19 16:44:26.419102+04

ааа...

Tanenbaum is nothing but architect astronaut with academical background

Светочка 2007-07-19 23:54:52.845899+04

Можно сделать операционную систему, которую можно будет компилировать по усмотрению пользователя как микроядерную или как монолитную

В.А. 2007-07-20 07:40:03.827677+04

To: Светочка, четверг, 19 июля 2007 г. 23:54:53:
> Можно сделать операционную систему, которую можно будет компилировать по усмотрению пользователя как микроядерную или как монолитную<
Так Линукс таковой и является, есть ведь возможность большую часть ядра компилировать как модули.

Светочка 2007-07-20 15:12:23.039691+04

To В.А.
Linux, к сожалению, не может быть скомпилирован как микроядерная система.

В.А. 2007-07-20 17:08:53.044226+04

To: Светочка, пятница, 20 июля 2007 г. 15:12:23:
>Linux, к сожалению, не может быть скомпилирован как микроядерная система.<
Светочка, а с какого размера ядро считать микро? Надеюсь, вы понимаете, что что-то просто невозможно компилировать как модуль? Например, работа с некоторой файловой системой в ядро должна быть вкомпилирована монолитно. Или вы считаете, что микроядерные - это те системы, у которых есть диспетчер модулей а-ля Миникс?

Сайрус 2007-07-20 21:24:42.13963+04

To В.А., вы глубоко ошибаетесь, модульность и микроядерность разые вещи, почитайте хотябы на википедии
основные отличия именно в межмодульном воимодействии

В.А. 2007-07-22 14:03:58.84454+04

To: Сайрус, пятница, 20 июля 2007 г. 21:24:42:
>To В.А., вы глубоко ошибаетесь, модульность и микроядерность разые вещи<
Спасибо. Хотя всё-таки это не совсем разные вещи. В микроядре, как я понял, модули выполняются как пользовательские процессы, а в модульном - в пространстве ядра. Размер значения не имеет :-). Просто виденные мною дискуссии акцентировали внимание именно на размерах ядра, а не функциях.

аноним 2007-07-22 16:56:48.702845+04

Вопрос:
А когда Билл Гейтс с Танненбаумом умрут? Тоже в один день?

Танненбаум ваще казёл, он переходит на сторону негрософта, кидая нас , opensourseников!

vleo 2007-07-24 20:27:08.013861+04

Теме этой минимум 20, а то и 30 лет.
Я практически занимаюсь разработкой драйверов под Линукс более 10 лет.
Мое мнение такое - на сегодня в Линуксе существует 3 способа загрузки драйвера - в соответствии с установками конфигурации ядра - n - то есть не загружать :-), y - то есть выполнить в качестве части монолитного ядра, и, наконец - m - то есть загружать в виде модуля, хотя и не монолитной части ядра, но модуля исполняемого в режиме ядра. А вот варианта - u - то есть пользовательского драйвера на уровне собственно ядра не предусмотрено, хотя для подсистемы USB (и некоторых других) такие варианты имеются.
Отсутствие user land драйверов под Линуксом обусловленно принципиальными установками Линуса/Сталлмана на необходимость поддержания Линукса в целом как ОС с открытыми кодами. Создание "сертифицированной" Линусом системы драйверов работающих в пользовательском режиме эквивалентно созданию бинарного интерфейса, что существенно облегчит поддержку бинарных драйверов устройств для Линукса, что неприемлемо по идеологическо-техническим соображениям.
Микрософт и его сателлиты это опасный противник, и отсутствие драйверов пользовательского уровня в Линуксе это именно средство обороны, которое несколько затрудняет жизнь разработчикам драйверов, но однако, стратегические преимущества превалируют.
А Таненбаум этого не хочет понимать. Ну что же - на то он и НЕ Линус.

fyjybv 2007-07-24 21:43:01.680719+04

2 vleo

Тогда как это понимать?

http://osnews.com/story.php/18304/Linux-Kernel-2.6.23-To-Have-Stable-Userspace-Driver-API/

В ядро Linux 2.6.23 включен стабильный Userspace Driver API

406-й 2007-07-25 07:26:01.614244+04

То В.А
>В микроядре, как я понял, модули выполняются как
>пользовательские процессы, а в модульном - в
>пространстве ядра
Опять так и хочется повторить вам что: "модульность и микроядерность разые вещи" и Линух "не может быть скомпилирован как микроядерная система"

406-й 2007-07-25 07:33:46.174776+04

>Тогда как это понимать?
>..........
>В ядро Linux 2.6.23 включен стабильный Userspace
>Driver API
А так и понимать, что это фактически всего лишь "мост", позволяющий осуществлять работу с аппаратурой из пользовательского режима, через сервис предоставляемый ядром. Так что это отнюдь не делает архитектуру линуха микроядерной. В винде к примеру тоже есть ряд API функций позволяющий работать в таком же режиме, но это всего лишь навсего транзит.

fyjybv 2007-07-25 08:01:13.697093+04

2 406-й
Имел в виду вот это

>...что существенно облегчит поддержку бинарных драйверов устройств...

>...стратегические преимущества...

>...неприемлемо по идеологическо-техническим соображениям...

406-й 2007-07-25 08:20:38.621033+04

to fyjybv
>Имел в виду вот это .....
Понятно.
"Ну что же - на то он и НЕ Линус" :-)))

Аку-Аку 2007-07-25 12:39:51.060048+04

2vleo, вторник, 24 июля 2007 г. 20:27:08:
\\А вот варианта - u - то есть пользовательского
\\драйвера на уровне собственно ядра не
\\предусмотрено, хотя для подсистемы USB (и
\\некоторых других) такие варианты имеются.
Что есть драйвер, а что есть надстройка над драйвером?

\\Отсутствие user land драйверов под Линуксом
\\обусловленно принципиальными установками Линуса/
\\Сталлмана на необходимость поддержания Линукса
\\в целом как ОС с открытыми кодами.
Это тут причем. Зачем валить все в кучу.
Ядром занимаеться Линус. (у Столмана свое ядро ;) )
Причем тут идеология к тех. реализации?


\\Создание "сертифицированной" Линусом системы
\\драйверов работающих в пользовательском режиме
\\эквивалентно созданию бинарного интерфейса, что
\\существенно облегчит поддержку бинарных
\\драйверов устройств для Линукса, что
\\неприемлемо по идеологическо-техническим
\\соображениям.
Нет.. просто потому что при работе в пользовательском режиме они будут тормознутее.

А что такое бинарный интерфейс (в данном контексте)???

\\Микрософт и его сателлиты это опасный
\\противник, и отсутствие драйверов
\\пользовательского уровня в Линуксе это именно
\\средство обороны,
???
Где у мелкософта драйвера пользовательского уровня? Чем это защищает?

\\но однако, стратегические преимущества
\\превалируют.
Какие???

\\А Таненбаум этого не хочет понимать. Ну что же
\\- на то он и НЕ Линус.
Не знаю как сам профессор.
Я вот лично заходил на рускоязычный форум пользователей его системы. Хотел пообщаться на тему надежности ОС.
Но убедился, что там находяться всего лишь малограмотные фанаты, которых хлебом не корми, а дай поюзать какую-то новомодную штучку.
А вместо логических доводов, есть только слепо-глухо-немое кивание на авторитетов.

406-й 2007-07-25 13:51:16.774979+04

to Аку-Аку
>Где у мелкософта драйвера пользовательского
>уровня?
Винда поддерживает несколько драйверов пользовательского режима:
- драйверы виртуальных устройств;
- драйверы принтеров;
- драйверы файловой системы;
- PnP драйверы
- прочие;

Драйверы режима ядра:
- WDM драйверы (шины, функциональные, фильтров);
- многоуровневые драйверы (классов устройств, порт, минипорт драйверы).

(Из книги Русиновича и Соломона "внутреннее устройство Win 2000 и XP")

Аку-Аку 2007-07-25 17:27:47.651141+04

А по остальным моментам? Более одиозным
Хочеться всетаки понять откуда ветер дует и почему это "облегчение поддержки бинарных
драйверов устройств для Линукса" небезопасно?

\\Винда поддерживает несколько драйверов
\\пользовательского режима:
Нууу.. если так, то в линухе тоже полно таких драйверов.. называються они демонами ;)

Все же.. это больше терминологическая неточность.

Например драйверы принтера -- это не совсем драйвера.. (по структуре)
Демон печати в Линухе использует такой же подход.

406-й 2007-07-26 09:20:39.674413+04

to Аку-Аку
>Нууу.. если так, то в линухе тоже полно таких
>драйверов.. называються они демонами
Драйвер - это программа, которая управляет каким-либо "устройством" (физическим или виртуальным - неважно). Демон - фоновый процесс, и не обязательно в принципе он должен чем-то управлять.
Просто многие не понимают, что в архитектурах и Линуха и Винды, всё управление осуществляется через ядро, и неважно, что некоторая часть кода может работать в пользовательском режиме. Так что драйвера пользовательского режима в этих и подобных им архитектурах, это лишь верхушка айсберга. Микроядро же тем и отличается, что вообще не дерижирует устройствами, а только управляет памятью и планирует процессы (или потоки - это зависит от реализации).

Аку-Аку 2007-07-26 10:25:23.164582+04

То есть являеться драйвером процессора и памяти. ;)

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


PS Может зайдеш на форум minix.ru и там расскажеш... оно им ОЙ как требуеться (чтоб кто-то азы рассказал)

406-й 2007-07-26 21:42:49.257741+04

to Аку-Аку
>про небезопасность где?
и в винде и в линухе (короче в любом монолитном ядре) ошибка в драйвере режима ядра может привести к модификации практически любой страницы памяти (коду исполняющемся в нулевом кольце защиты доступно практически всё адресное пространство, и даже виртуальные таблицы дескрипторов виртуальных адресов), за исключением только тех, что имеют атрибут "только чтение". Так что драйвер режима ядра потенциально опасен. Драйверу же пользовательского режима в микроядерных системах доступно только его закрытое виртуальное адресное пространство, поэтому вред от его сбоя на первый взгляд минимален. Вроде бы всё хорошо. Но Винда и Линух потому и монолитны, что производительность микроядра очень низка (потоки то всё равно планируются ядром и межпроцессное взаимодействие тоже дорого обходится ввиду частого переключения их защищённого режима в пользовательский). К тому же сбой в ядре легче диагностируется и его последствий посему легче избежать.
Есть ещё так называемые экзоядерные архитектуры. Суть их в том, что часть кода драйвера загружается в адрессные пространства приложений, нуждающихся в его услугах. Тем самым увеличивается производительность (приложение наиболее непосредственно общается с драйверными библиотеками).
Тем не менее, на сегодняшний день наиболее перспективными решениями являются решения на базе технологий виртуализации (паравиртуализация на основе гипервизора не катит). И здесь кстати мелкософт далеко впереди вовремя сориентировавшись и прикупив конторку которая занималась исследованиями в этой области. Их экспериментальная система singular - передовик этой области.

Аку-Аку 2007-08-22 11:21:11.48568+04

406-й, четверг, 26 июля 2007 г. 21:42:49:
Вот это уже серьозный разговор.
Жаль только вовремя ответа не заметил (на форуме такого бы не случилось)

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

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



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

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

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

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


\\ И здесь кстати мелкософт далеко впереди \\вовремя сориентировавшись и прикупив конторку \\которая занималась исследованиями в этой \\области. Их экспериментальная система singular \\- передовик этой области.
На сколько я знаю.
Их Сингуларити -- вообще непричем к виртуализации.
Там у них предлагаеться заведомо глупая система, основанная на недопущении програмиста до низкого уровня, вообще. Да еще и с их гребаным дотНЕТом. :)))
По сути, то что они там хотят сделать -- это Визуал Васик для системного програмиста. :))) во, уроды

aperon 2007-08-22 13:07:16.28901+04

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

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

А почему никто не вспоминает fuse. Определенная разумная альтернатива ведь?

Аку-Аку 2007-08-22 13:26:51.608488+04

Вам приходилось заглядывать в файлы этих драйверов, видеть что они из себя представляют?

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

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

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

aperon 2007-08-22 22:11:05.138927+04

Аку-Аку, среда, 22 августа 2007 г. 13:26:52
>>Вам приходилось заглядывать в файлы этих драйверов, видеть что они из себя представляют?

Честно говоря, нет. Так все ж не пойму, если дрова в юзер-спейс, то какого падает Венда? Или это из серии вирусов в mp3 и wmf в Виндовс? :)

аноним 2007-08-22 23:18:26.13364+04

>Так все ж не пойму, если дрова в юзер-спейс
Они не совсем в юзер-спейс. Могу посмотреть точнее, если интересует.

аноним 2007-08-23 01:44:32.412304+04

>Могу посмотреть точнее, если интересует.
Чего я парюсь-то? Вот же написано у 406-й, среда, 25 июля 2007 г. 13:51:17:
Драйверы, которые в режиме ядра, и вызывают синий экран (как и kernel panic в Linux).

aperon 2007-08-23 17:10:51.853827+04

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

>>406-й, среда, 25 июля 2007 г. 13:51:17
>>Винда поддерживает несколько драйверов пользовательского режима:
- драйверы виртуальных устройств;
- драйверы принтеров...

Вернуться к статье