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 позволяет быстро адаптировать любой стороний код для совместимости с операционной системой, однако такая адаптация имеет свою цену - систему приходится перезагружать по любому мало-мальскому поводу.

0
Автор поста оценил этот комментарий

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

Например, и в Линукс и в Виндовс можно (при наличии прав пользователя и написания своего драйвера к своему оборудованию) тупо сделать мап адресов ввода-вывода устройства (например диапазон адресов памяти PCI устройства) прямо в пользовательское приложение. И тогда пользовательское приложение сможет напрямую обращаться в оборудование через указатель. Уж быстрее не куда.. Как вариант.. И все Ваши рассуждения о том какой вызов куда уходит и куда попадает - просто теряют смысл..

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Можно. Вы на практике так часто делаете?
показать ответы
0
Автор поста оценил этот комментарий

Это какая винда?

Позикс и вин16 выпилили же: "Но подсистемы POSIX и OS/2 последний раз поставлялись с Windows 2000." (С)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да ну? Её не выпилили, а переименовали. По крайней мере в 2008 сервере еще была: https://technet.microsoft.com/ru-ru/library/cc754351.aspx
показать ответы
0
Маячок
Автор поста оценил этот комментарий
Между чем и чем передача то?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Посмотри на схемы
показать ответы
0
Автор поста оценил этот комментарий

а что вы подразумеваете под "передачей данных"? это такое емкое понятие..

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Системный вызов Linux попадает в ядро и через систему виртуализации передается на оборудование. Вызов Windows API проходит последовательно через несколько исполняемых модулей и библиотек. Сперва Windows API уходит в Native API, потом в исполнительную систему, потом в Hal, а уже потом на оборудование.
показать ответы
0
DELETED
Автор поста оценил этот комментарий

браузер тоже начинаешь разворачивать и такие слова понавыдумываешь, шо диву даешься. Хоть в словарь записывай.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Бывает... Сейчас вообще с терминологией туго стало... Например, действие элемента презентации по условию триггером обозвали...
1
Автор поста оценил этот комментарий

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

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

Я с XP вообще упал. Это больше на какой-то Openbox смахивает, чем на xfce..

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
XFCE4 по умолчанию в Ubuntu 14.04 выглядит примерно так.
показать ответы
0
Автор поста оценил этот комментарий

кде это виндовс 7? ) а е17 это макотсос? )) чувствуется рука эксперта )

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Графическое окружение похоже. Или не так?
показать ответы
0
DELETED
Автор поста оценил этот комментарий

первый раз вижу, чтобы I3 кто-то упомянул. Этож мегахацкерная штука. Ток мегахацкеры, люди в фильме пятая власть и сотрудники гугля этим пользуются.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я им обычно пользуюсь. Учиться долго, но потом мегаудобно. К сожалению некоторые программы несколько неадекватно работают в данном окружении (например работающие в полноэкранном режиме и использующие трей).
показать ответы
0
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий
А я не бил. Есть 2 категории людей - одни видят "достоинства и недостатки", а другие видят только "особенности" которые могут использовать. Таким образом для них всё - только достоинства...
1
Автор поста оценил этот комментарий

Ой кряяя.. Несите попкорн.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Вот старался писать как раз так чтобы попкорн не понадобился, поэтому свое мнение и не высказал.
показать ответы
0
Маячок
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
3
Автор поста оценил этот комментарий
1. Гибрид - означает при монолитной архитектуре ядра есть особенность микроядерных систем - добавление драйверов и сервисов без перекомпиляции ядра. Оба ядра - гибридные.
2. Передача чего? Кому? От кого? Механизм виртуальной памяти реализован в обоих ядрах.
3. Поддержка этой подсистемой стандарта на уровне слабого поднятия левой руки. Простой пример: сделай fork() на этой подсистеме.
4. У меня дома win10, но на работе обязательно поищу. А не те ли это параметры которые отвечают за общесистемные настройки политик безопасности и т.п.? За ссылку на конкретный пункт буду благодарен.
5. Давай конкретные примеры с разбором что это действительно проблема в том что графическая подсистема внешняя/внутренняя, а то как-то голословно получается. Или тебе найти где /dev/mouse поллится?

Преимущества какой подсистемы? Графической? Вот плюсы:
- ее можно выгрузить там где она не нужна
- при ошибке в ней падает только она, а не вся система;
- писать в юзерспейсе проще, чем в кернеле.
раскрыть ветку (1)
Автор поста оценил этот комментарий
1. Войди в себя и перепиши. Linux без перекомпиляции позволяет только выключать/включать модули ядра. Чуть за порог и перекомпилируй.

2. Передача данных по цепочке. Ядро Linux обрабатывает запрос само, В Windows есть ряд внутренних слоев.

3. Странно что Вы на этот функционал так накинулись... Он вообще-то большой плюс Windows... Но раз он через жопу, так через жопу...

4. Угадали, настройки безопасности. В браузере. Тут вся соль в том, что если интегрирование графической оболочки еще как-то понять можно, но браузер...

5. Lenovo SL510 с встроенной графикой Intel GMA. Не смотря на увеличение оперативы до 6 Гб свежая Windows 8 тупит со страшной силой, а KDE летает. При этом установка Office 2010 на свежую систему не была завершена и была прервана примерно на 40-й минуте. На Windows 7 установка менее 20 минут. Аналогичный по железу комп с мощной видеокартой работает в разы быстрее. Более того замена видеокарты на более мощную ускоряет работу самой Windows 8-8.1.


Преимущества такой организации ядра, а не графики.

показать ответы
15
Автор поста оценил этот комментарий
Что ж отпишу и тут раз ты мне указал на этот пост:
1. Ядра ОС Windows и Linux - гибридные, оба.
2. Это каким же образом ядро Linux принципиально обеспечивает лучшее быстродействие и надежность? (монолитность = надежность? Нонсенс!)
3. Это как же windows позволяет адаптировать любой сторонний код? (при том что поддержки POSIX в windows фактически нет)
4. В windows начиная с vista, изменилась модель драйверов и перезагружать машину после каждого "маломальского" повода не нужно.
5. Включение графической подсистемы ядра - увеличивает производительность, т.к. не нужны лишние переключения контекста и есть доступ к событиям ядра. Если бы ты взглянул на код x-сервера, то мог бы увидеть, что события мыши там поллились , что не может быть эффективно в принципе (сейчас может уже и исправили)
6. Возможность смены графической оболочки на ходу - спорное преимущество, гораздо важнее возможность выключать и включать таковую.

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

2. Передача

3. Ссылку выше давал. Подсистему переименовали, а не исключили. Более того её постоянно адаптируют (запуск Android приложений в мобильных Windows 10 через неё и делается).

4. Ну-ну... Открой Internet Explorer и посмотри на настройки. Возле некоторых пометка - для изменения настроек (Браузера!) требуется перезагрузка ОС

5. На относительно слабых машинах. Когда производительность перешагивает определенную планку внешнее графическое ядро работает быстрее. На ноутбуках 2010-2015 года уже ощутимы тормоза графики Windows.

6. Спорно, согласен.


При этом (что удивительно) о преимуществах такой системы Вы не написали. А они есть и очень важные.

показать ответы

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества