Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт ноя 24, 2017 7:44 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 15 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 11:10 am 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 11:27 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
На производительность системы это не сильно влияет: в некоторых случаях Ring3-драйверы крутятся даже быстрее, чем в Ring0.

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

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 12:25 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 12:54 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Хитромудрые выверты Танненбаума оказались ненамного эффективнее тупого нагромождения ядерных модулей а-ля-Торвальдс.
Ни по скорости, ни по размеру, ни по общей надежности кода.

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

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

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


Последний раз редактировалось art_zh Чт апр 10, 2014 1:07 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 1:06 pm 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 1:53 pm 
Не в сети
Kernel Developer

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт апр 10, 2014 2:13 pm 
Не в сети

Зарегистрирован: Вт дек 03, 2013 1:33 pm
Сообщения: 41
Дак я и не спорю, я понял, что нет простого решения, которое позволило бы разом увеличить надежность и ничего при этом не потерять) Ось - это слишком сложная система, в ней любая задача может быть достигнута только с помощью комплексных мер))


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Чт окт 09, 2014 7:42 pm 
Не в сети

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

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

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Пт окт 10, 2014 9:40 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
irkant

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

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

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

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Пт окт 10, 2014 10:42 am 
Не в сети

Зарегистрирован: Ср сен 24, 2014 5:47 pm
Сообщения: 34
art_zh, спасибо за подробности, буду углубляться.


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Пт окт 10, 2014 10:57 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Цитата:
Вообще-то падение драйвера принтера не должно приводить ни к чему, кроме невозможности отправить документ на печать.
А падение usb оставит без клавиатуры и мыши.
Btw, 3D драйверы в Линуксе и Колибри работают в user-mode.


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Сб окт 11, 2014 7:57 am 
Не в сети

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Сб окт 11, 2014 8:27 am 
Не в сети

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

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


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Сб окт 11, 2014 1:27 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
irkant писал(а):
5. По результатам обсуждения пишу справку и SDK.
6. Выясняется, что получившееся никого не устраивает и никому не нужно ; )

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

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

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Любопытный вопрос
СообщениеДобавлено: Сб окт 11, 2014 3:29 pm 
Не в сети

Зарегистрирован: Ср сен 24, 2014 5:47 pm
Сообщения: 34
Mario_r4 Я надеюсь как на самоценность полученного (если) документа, так и на участие в его реализации.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 15 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB