42

Архитектура ОС Windows и Linux

Добрый день Пикабушники!


Сегодня я решил показать Вам различия между ядрами операционных систем Windows и Linux.


Начнем с относительно простого ядра Linux.

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

GNOME3

KDE (Windows 7)

E17 (MacOS)

XFCE4 (WindowsXP)

I3 (фреймовый)


Теперь перейдем к Windows:

Как видим структура ядра намного более сложная. Преимущество это или недостаток? Каждый решает для себя сам. Программа под Windows обращается через документированный Windows API к "своей" библиотеке (например Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll), эти библиотеки по внутреннему протоколу (документация для разработчиков не из Microsoft не доступна) обращается по протоколу Native API к Ntdll.dll и далее передается через диспетчер системных сервисов ядру (все это внутри Ntoskrnl.exe).


После обработки в режиме ядра и использованию драйверов данные передаются Hal.dll - библиотеке которая непосредственно управляет оборудованием. Второй системой управляющей оборудованием является графическое ядро (проприетарные функции видеокарт в основном касаются именно этого).


Важно отметить одну особенность пользовательского режима ядра Windows - "Подсистемы окружения". Эта компонента позволяет Windows использовать коды стандартов POSIX, Win16 и т.п. Данный механизм по сути является набором виртуальных ядер сторонних ОС и позволяет быстро адаптировать под Windows любой сторонний код.


Не менее важным является включение графической подсистемы в ядро (в современных серверных ОС данная система отключена или отсутствует), что во-первых не дает сменить графическую оболочку "на ходу", а во-вторых уже не способствует быстродействию...


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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества