Board.KolibriOS.org
http://board.kolibrios.org/

Любопытный вопрос
http://board.kolibrios.org/viewtopic.php?f=1&t=2661
Page 1 of 1

Author:  elexio [ Thu Apr 10, 2014 11:10 am ]
Post subject:  Любопытный вопрос

Я на днях наткнулся на занятную статейку одного амстердамского товарища, который занимается проектированием ос(автор Minix). Так вот, он весьма убедительно доказывал, что для надежной работы ос необходимо, чтобы все драйвера были вынесены из ядра и выполнялись в пространстве пользователя, типа в таком случае ошибка в коде драйверов не будет приводить к краху всей системы, при этом от честно отметил, что при таком подходе общая производительность системы уменьшается на 5-10 процентов. Что вы обо этом думаете?))

Author:  art_zh [ Thu Apr 10, 2014 11:27 am ]
Post subject:  Re: Любопытный вопрос

На производительность системы это не сильно влияет: в некоторых случаях Ring3-драйверы крутятся даже быстрее, чем в Ring0.

Проблема в другом: свободный доступ к критичным системным ресурсам (порты, MMIO, физ.память, прерывания) из юзерспейса - это фатальная дыра в системной защите. Злонамеренные юзеры из Ring3 смогут делать с ядром (буквально) всё, что им заблагорассудится.

Author:  elexio [ Thu Apr 10, 2014 12:25 pm ]
Post subject:  Re: Любопытный вопрос

вот здесь та статейка, если кому интересно http://www.iakovlev.org/index.html?p=886
Там в общих чертах расписана конструкция его оси ну и много всякого прочего написано, может, я чего-то недопонял, вы лучше поймете все тонкости, не мог же такой пожилой и умный дядька так по-детски лохануться, там наверняка есть какие-то моменты, которые я не понял)

Author:  art_zh [ Thu Apr 10, 2014 12:54 pm ]
Post subject:  Re: Любопытный вопрос

Хитромудрые выверты Танненбаума оказались ненамного эффективнее тупого нагромождения ядерных модулей а-ля-Торвальдс.
Ни по скорости, ни по размеру, ни по общей надежности кода.

Не надо всё многообразие системных решений сводить к двум (уже всем надоевшим) академическим подходам.
Существуют и другие пути.

И один из них - наш.

P.S. "...полная сборка системы, требующая более 120 компиляций, укладывается в 10 секунд" - вах! :mrgreen:

Author:  elexio [ Thu Apr 10, 2014 1:06 pm ]
Post subject:  Re: Любопытный вопрос

Ну вам виднее, я не спец в этом деле, поэтому и спросил))
просто стало любопытно)
Мне вообще все эти юниксы и прочие оси не очень нравятся - в них не встроен гуй :D При этом весят ого-го - больше винды.
Я, конечно, понимаю, что единственный интуитивно-понятный интерфейс — это женская грудь, но если сравнивать между гуем и командной строкой, то первое проще в освоении))

Author:  Serge [ Thu Apr 10, 2014 1:53 pm ]
Post subject:  Re: Любопытный вопрос

На каждый плюс микроядра найдётся свой минус.
Падение драйвера сделает систему неработоспособной в любом случае, микроядро это или монолит.
Танненбаум сделал reincarnation manager - специальное приложение которое пингует критические сервисы и перезапускает их в случае падения. Приложения должны учитывать это и восстанавливать ресурсы после восстановления сервисов. Программисты конечно в восторге, вместо abort() им предлагают сделать вид, что ничего страшного не случилось.
Теперь представте что у вас 100 раз в секунду падает сетевой стек или usb. Ещё веселее если видеодрайвер.

Author:  elexio [ Thu Apr 10, 2014 2:13 pm ]
Post subject:  Re: Любопытный вопрос

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

Author:  irkant [ Thu Oct 09, 2014 7:42 pm ]
Post subject:  Re: Любопытный вопрос

art_zh wrote:
Проблема в другом: свободный доступ к критичным системным ресурсам (порты, MMIO, физ.память, прерывания) из юзерспейса - это фатальная дыра в системной защите.

А кто говорит о свободном доступе? Несколько предопределенных системных процессов, каждый в аппаратно защищенной области памяти, выполняют предопределенные функции. Все.
Serge wrote:
На каждый плюс микроядра найдётся свой минус.
Падение драйвера сделает систему неработоспособной в любом случае, микроядро это или монолит.
Вообще-то падение драйвера принтера не должно приводить ни к чему, кроме невозможности отправить документ на печать.
Serge wrote:
Теперь представьте что у вас 100 раз в секунду падает сетевой стек или usb. Ещё веселее если видеодрайвер.
Зачем они это делают? :) И почему сервер после n падений не может отказаться от затеи с поднятием такого драйвера? :)

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

Author:  art_zh [ Fri Oct 10, 2014 9:40 am ]
Post subject:  Re: Любопытный вопрос

irkant

Драйверы Ring-3 в Колибри есть, и уже давно. Работают на прямую с железом, причем (в отличие от Ring-0 драйверов) будучи полноценными пользовательскими приложениями, они могут иметь свое окно (со всеми API-печеньками) и тестироваться в отладчике.

Что вообще нужно полноценному драйверу устройства? чаще всего - порты, прерывания (выделенные или расшаренные - непринципиально), сервисы для работы с конфигурационным пространством PCI и чтение из MSR. Это все есть.

Часто нужен доступ к MMIO : он тоже есть. Только у одной программы и только к одному PCI-устройству. Чайникам такую бритву в руки давать нельзя, поэтому MMIO-доступ по умолчанию не активизирован (надо раскомментировать одну строчку и перекомпилировать ядро).

Реже требуется DMA, причем у каждой железяки он свой, нестандартный. Еще реже - расширенный конфигспейс PCIe, APIC и MSI-прерывания.
Это все тоже есть, в Колибри-А.

Author:  irkant [ Fri Oct 10, 2014 10:42 am ]
Post subject:  Re: Любопытный вопрос

art_zh, спасибо за подробности, буду углубляться.

Author:  Serge [ Fri Oct 10, 2014 10:57 pm ]
Post subject:  Re: Любопытный вопрос

Quote:
Вообще-то падение драйвера принтера не должно приводить ни к чему, кроме невозможности отправить документ на печать.
А падение usb оставит без клавиатуры и мыши.
Btw, 3D драйверы в Линуксе и Колибри работают в user-mode.

Author:  irkant [ Sat Oct 11, 2014 7:57 am ]
Post subject:  Re: Любопытный вопрос

Serge wrote:
А падение usb оставит без клавиатуры и мыши.
Но не мешает, скажем, запущенной дефрагментации. Не могу согласиться, что падение драйвера должно быть равно BSOD. Без клавиатуры и мыши система могла бы спокойно доделать не требующие участия пользователя дела, вывести инфу и штатно перезагрузиться.
Serge wrote:
Btw, 3D драйверы в Линуксе и Колибри работают в user-mode.
Уже уяснил. Справочной информации остро не хватает. Все-таки, что по поводу viewtopic.php?f=1&t=677&start=645#p58603? Разумно ведь сначала обсудить и описать как все "должно быть в идеальной вселенной", тогда видно направление и есть где с чувством выполненного долга ставить галочки :)

Author:  irkant [ Sat Oct 11, 2014 8:27 am ]
Post subject:  Re: Любопытный вопрос

План такой:
1. Готовлю опросник на тему как я провел лето как чего фунциклирует (сейчас, и что нужно доделать / как должно быть на самом деле).
2. Люди в теме и прочие праздношатающиеся качают txt файлик, набивают в него ответы и присылают мне обратно. Свои общие соображения (ибо никакой конкретики от меня на данном этапе ждать не стоит) выложу в первую очередь, чтобы особо ленивые могли просто написать "сделать все наоборот" ;)
3. Делаю из ответов компиляцию.
4. Обсуждение компиляции. На этом этапе надо понимать, что любая критика будет критикой одного человека против обобщенного мнения "всех". Принимаются расширения, дополнения, конкретизация, но не смена парадигмы.
5. По результатам обсуждения пишу справку и SDK.
6. Выясняется, что получившееся никого не устраивает и никому не нужно ; )

П.С. Да, на пункт 1 нужны будут консультации / правки.

Author:  Mario_r4 [ Sat Oct 11, 2014 1:27 pm ]
Post subject:  Re: Любопытный вопрос

irkant wrote:
5. По результатам обсуждения пишу справку и SDK.
6. Выясняется, что получившееся никого не устраивает и никому не нужно ; )

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

З.Ы. Ничего личного - только по делу и если я ошибусь в своих подозрениях, то я буду только рад.

Author:  irkant [ Sat Oct 11, 2014 3:29 pm ]
Post subject:  Re: Любопытный вопрос

Mario_r4 Я надеюсь как на самоценность полученного (если) документа, так и на участие в его реализации.

Page 1 of 1 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/