The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Проект Haiku перешел на стадию альфа-тестирования"
Отправлено User294, 15-Сен-09 20:46 
>С чего бы это ? Зачем дровам  ютится в юзермоде? Для тормозов ?

Прикиньте, да. Одна из основных черт микроядра на которую некоторые местные и дро^W как раз состоит в том что сбой в процессе драйвера может быть не фатален. Отсюда же следуют и тормоза, собственно. Потому что ничто не дается на халяву - разделение дров, ядра и аппликух по разным уровням привелегий означает гемор и тормоза от этого разделения. Этот же гемор и тормоза есть и у монолитов при переключении между уровнями привилегий ядра и апликух, только он там менее злобно из-за того что дрова считаются доверяемыми и работают там же где и ядро, так что не надо педалить переключения контекстов кучу раз. Если кто не верит что даже в монолитах есть при переключении контекстов тормоза - тогда скажите, а почему провайдеры, авторы фирварей для мелких роутеров и прочие ссут кипятком от ядерного PPTP Accel вместо юзермоде-демона, когда такая замена поднимает производительность PPTP на том же железе чуть ли не в разы? Резонно позволяя экономить на железе. Видимо, на отсутствии переключений режимов проца экономия некислая даже в монолитах в ряде случаев выходит, а? Ценник за это есть, да - если оно сбойнет, ну извини, чувак... :)

>Где ядро,а где API? Ты сильно путаешь вообще. zw Функций намного меньше,

Пардон, zw* в ядре == nt* в юзермоде, грубо говоря. И для NT ее нативное апи - не винапи ни разу а именно это самое nt*. Через оное далее изображаются все остальные апи, хоть win32, хоть черт лысый, ядру NT без разницы и это не его трудности. С таким же успехом можно сказать что для пингвина нативное апи - его системные вызовы а wine изображает из этого винапи. Точно так же как обвязка подсистемы win32 изображает винапи из nt api. Для ядра NT вообще строго говоря не обязано быть никаких winapi (некоторые boot time приблуды работают прямо в нативном режиме). Ядро NT сущностью winapi не оперирует. Собссно ядро NT с таким же успехом могло бы и posix поверх native api изображать, etc. Или там какое еще угодно апи (дело ядра - разрулить даденные ему запросы, а из чего и как их другие подсистемы сгенерят - не его трудности). Другое дело что MS-у оно нафиг не надо, только и всего. И - как видим, весь функционал реализован именно в ядре. То есть, другие подсистемы изображают другие апи из того что реализует ядро нт.

>чем всего WinApi вместе взятого.

Ядро NT вообще никаким винапи не оперирует, строго говоря. Там свое NTшное API, которое рюхает native subsystem. Остальное - то что надо (например винапи) делается из того что есть (nt api). Ну оно и в пингвинах как видим делается похожим манером, только вместо ядра нт - ядро пингвина, вместо подсистемы win32 - wine. И?

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

>Никто кстати  не запрещает тебе использовать DeviceIoControl для прямого обращения.

Прямого обращений? Куда? DeviceIoControl как я помню всего лишь запрос к драйверу. Что там дальше драйвер девайса сделает - его проблемы. И кстати как я помню даже они должны по идее все делать не напрямую а через HAL(для портабельности кода дров между разными платформами).На что конечно же половина дровописателей кладет (ради скорости, etc) большой болт.

>WinAPI для этого и создавалось - высокий уровень изоляции.

Издеваетесь?! За знание кишков NT и истории винды - два балла. За ламерство - пять баллов. Для начала, чтоб вы знали, ядро нтей вообще никакими винапи не занимается (для него только нативное NTшное апи существует). Вы этой вашей заявой показали что не понимаете какая взаимосвязь между ядром нти и винапи, для начала. Более того - ядро нт (рассмотренное в виде его нативной реализации, забудем про винапи, ибо нет его для ядра нт по большому счету) не изолировано нифига от дров и прочая. Большой кус ядерного кода, вывешивающий некое апи, видимое в юзермоде как nt* и в кернел-моде как zw*.

А теперь краткая историческая справка для тех кто в танке: Win32 API по сути был портом древнего и убогого WinAPI из виндов 3.1 с некоторыми улучшениями по мелочи и исправлением совсем уж откровенных дебилизмов. Изначально (в '95) это самое апи вообще было без задумок по части нормальной изоляции (в 95 дележа прав вообще не было, да и изоляция ядра от юзера была паршивенькой а само ядро представляло из себя пипецкий мяу-микс из нескольких легаси частей барахла от 3.11 и расширений). Даже правов не делило изначально, в 9х всем было можно все. В нтях винапи прикрутили к упомянутому выше ядру. И, в силу организации системы (ядро один хрен вывешивает не винапи а что-то свое, которое необходимо транслировать в винапи), стало возможно устроить более нормальную изоляцию. Тем не менее, изоляция нормальная только прог друг от друга и от ядра. А в ядре все болтается в одном кольце и адресном пространстве. Прямо как в типовом монолите.

Заслуги винапи в изоляции кстати нет - никакой изоляции в нем изначально не предусматривалось и его под это попросту расширили (к слову, это объясняет почему при затяжке гаек старые вин-программы перестают работать - они тупо не в курсе что оказывается еще и система то с разделением прав работать могет, etc - никто этим сроду не заморачивался, тем более что изначально этот функционал вообще в `95 отсутствовал).

>В другую степь тебя понесло.

Остается только вопрос - куда же понесло вас? oO

>Ты нашёл в ядре Internet Explorer?

Код IE дергает винапи. Для реализации винапи дергаются функции реализованные в ядре. В итоге разруливает все запрошенные действия именно ядро нт. И большая часть возможностей системы реализовано именно в ядре. И дрова ФС, и дрова периферии, и куча всяких функций, нужных и не очень. Это ну никак не микроядро в его академическом понимании.

>Если Windows поставляется ни как голое ядро, это не значит, что там ВСЁ есть ядро.

Но в конечном итоге - все запросы выполняет ядро. Тогда как в микроядрах обычно много выпихивается в юзермод. А вот этого то в виндусе и нет по сути. Есть огромный кернел который делает все и вся :).Прямо как в монолитах...

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру