Гибридные операционные системы windows

Гибридное ядро

  • Гибридное ядро (англ. Hybrid kernel) — модифицированные микроядра, позволяющие для ускорения работы запускать модули OS в пространстве ядра.

Имеют «гибридные» достоинства и недостатки.

Все рассмотренные подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например сейчас, ядро «Linux» представляет собой монолитную систему с отдельными элементами модульного ядра. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра — так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.

Существуют варианты ОС GNU (Debian GNU/Hurd), в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него в пользовательском пространстве работают те же самые процессы, которые при использовании Linux были бы частью ядра.

Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной операционной системой, это не совсем так. Микроядро NT слишком велико (более 1 Мбайт, кроме того, в ядре системы находится, например, ещё и модуль графического интерфейса), чтобы носить приставку «микро». Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путём передачи сообщений, как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. Причина проста: чисто микроядерный дизайн коммерчески менее выгоден, поскольку менее эффективен (за счет накладных расходов на передачу сообщений там, где можно было обойтись вызовами функций).

Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.

Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер.

Связанные понятия

В компьютерной операционной системе, легковесный процесс является средством достижения многозадачности, в традиционном понимании этого термина. В Unix System V и Solaris, легковесный процесс работает в пространстве пользователя поверх одного потока выполнения ядра, разделяет виртуальное адресное пространство и системные ресурсы потока выполнения с другими легковесными процессами, в рамках того же процесса. Несколько потоков пользовательского уровня, управляемые с помощью библиотеки потоков, могут.

Функции и структура ОС Windows и Linux

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

Принцип работы системы

Большинство структур ОС используют подход разбиения на слои каждой задачи, включая файловые системы. Каждый уровень отвечает за определенные действия.

Когда прикладная программа запрашивает файл, первый запрос направляется в логическую файловую систему. Она содержит метаданные структур файлов и каталогов. Если прикладная программа не имеет необходимых прав доступа к файлу, то этот слой выдает ошибку.

Логические файловые системы также проверяют путь к файлу. Как правило, они делятся на различные логические блоки, хранятся на жестком диске и извлекаются с жесткого диска. Последний разделен на различные дорожки и сектора. Поэтому, чтобы хранить и извлекать файлы, логические блоки структуры ОС должны быть сопоставлены с физическими блоками. Это сопоставление выполняется модулем организации файлов. Он также отвечает за управление свободным пространством.

Читайте также:  Windows почему такое название

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

Существующая ОС и структура систем позволяет прикладным программам пользователя взаимодействовать с системным оборудованием. Поскольку операционная система является сложной структурой, ее следует создавать с максимальной осторожностью, чтобы можно было легко использовать и модифицировать. Простой способ сделать это — создать ее по частям. Каждая из этих частей должна быть четко определена с уточненными входами, выходами и функциями.

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

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

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

Дизайн архитектуры ОС

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

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

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

Современные монолитные конструкции

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

CP/M и DOS являются простыми примерами монолитных операционных систем. Это системы, которые совместно используют приложения с одним адресным пространством. В CP/M 16-разрядное адресное пространство начинается с системных переменных и области приложения и заканчивается тремя частями:

  • CCP — консольный командный процессор;
  • BDOS — базовая ОС;
  • BIOS — базовый ввод/вывод System.

В DOS 20-разрядное адресное пространство начинается с массива векторов прерываний и системных переменных, за которыми следует резидентная часть и область приложений, а заканчивается блоком памяти, используемым видеокартой и BIOS. Большинство современных систем, включая Linux и структуру ОС Windows, также считаются монолитными, хотя они, безусловно, значительно отличаются от простых примеров CP/M и DOS.

Многослойные системы

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

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

Конструкция микроядра

Микроядерный дизайн архитектуры системы обеспечивает надежность. Привилегии, предоставляемые отдельным ее частям, ограничиваются как можно больше, а связь между ними зависит от специализированных механизмов, которые при необходимости обеспечивают соблюдение привилегий. Накладные расходы на связь внутри системы с микроядрами могут быть выше, чем накладные расходы на связь внутри другого программного обеспечения. Исследования показали, что эти накладные расходы являются управляемыми.

Читайте также:  Создать пользователя для ftp windows server 2012

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

MACH является ярким примером микроядра, который использовался в современных системах, включая системы NextStep и OpenStep и, в частности, OS X. Большинство исследовательских систем также квалифицируются как ОС с микроядрами.

Виртуальные гипервизоры

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

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

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

Также возможна комбинация родных и размещенных подходов. Гипервизор может реализовать некоторые свои функции на голом оборудовании и обратиться к размещенным системам для реализации других его функций. Общим примером такого подхода является внедрение поддержки виртуализации процессоров на голом оборудовании и использование выделенной ОС для доступа к устройствам, которые гипервизор виртуализирует для других размещенных систем.

Гибридные операционные системы

Большинство ОС сегодня не строго придерживаются одной архитектуры, а являются гибридами нескольких.

Архитектура Max OSX опирается на микроядро Mach для базовых служб управления системой и ядро BSD для дополнительных сервисов. Остальные функциональные возможности ОС предоставляют сервисы приложений и динамически загружаемые модули (расширения ядра):

  1. IOS операционная система была разработана Apple для iPhone и IPADS. Она работает с меньшим потреблением памяти и вычислительной мощностью, чем Max OS X, и поддерживает сенсорный интерфейс и графику для небольших экранов.
  2. Android OS была разработана для Android-смартфонов и планшетов Open Handset Alliance, в первую очередь Google. Android — это ОС с открытым исходным кодом, в отличие от iOS, что привело к ее популярности. Android имеет структуру ОС Linux и виртуальную машину Java, оптимизированные для небольших платформ. Приложения для Android разработаны с использованием специальной среды разработки для Java-for-Android.

Микроядра и модули

Основная идея микроядер заключается в том, чтобы удалить все несущественные сервисы из ядра и вместо этого реализовать их как системные приложения, тем самым делая ядро настолько малым и эффективным, насколько это возможно. Mach был первым и самым известным микроядром, и теперь он является основным компонентом Mac OSX. Windows NT изначально представляла собой микроядро, но она страдала от проблем с производительностью (по сравнению с Windows 95). Усовершенствованная производительность NT 4.0 за счет перемещения большего количества сервисов в ядро возвратила XP к более монолитному. Другим примером микроядра является QNX, ОС реального времени для встроенных систем.

Современная разработка ОС объектно-ориентированная, с относительно небольшим ядром и набором модулей, которые могут быть связаны динамически (например, структура Solaris). Модули аналогичны слоям в том, что каждая подсистема имеет четко определенные задачи и интерфейсы, но любой модуль может контактировать с любым другим модулем, устраняя проблемы прохождения через несколько промежуточных слоев. Ядро относительно мало в этой архитектуре, подобно микроядрам ему не нужно реализовывать передачу сообщений, так как модули могут напрямую связываться друг с другом.

Манипуляции с файловой системой

Файл представляет собой сборник связанной информации. Компьютеры могут хранить файлы на диске (вторичное хранилище) для целей долгосрочного хранения. Примерами носителей информации являются магнитная лента, магнитный диск и дисководы для оптических дисков, такие как CD, DVD. Каждый из этих носителей имеет свои собственные свойства, такие как скорость, емкость, скорость передачи данных и методы доступа к данным. Файловая система обычно организована в каталоги для удобной навигации и использования. Эти каталоги могут содержать файлы и другие направления.

Основные виды деятельности операционной системы в отношении управления файлами:

  1. Прочитывает или записывает файл.
  2. Дает разрешение программе на работу с файлом, которое зависит от чтения, записи, отказа.
  3. Предоставляет пользователю интерфейс для создания/удаления файлов.
  4. Предоставляет интерфейс для создания резервной копии файловой системы.
Читайте также:  Как выгрузить реестр windows

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

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

Основные виды деятельности ОС в отношении коммуникации:

  1. Два процесса часто требуют передачи данных между ними.
  2. Оба процесса могут быть на одном компьютере или на разных компьютерах, но подключены через компьютерную сеть.
  3. Коммуникация может быть реализована двумя способами: либо при помощи общей памяти, либо путем передачи сообщений.

Функциональная операционная система Linux

Это самая известная и наиболее используемая система с открытым исходным кодом. Многие программисты используют термин Linux для обозначения ядра Linux, а также набора программ, инструментов и сервисов, которые обычно поставляются вместе с ядром Linux. Некоторые пользователи относятся к этой коллекции GNU, поскольку многие инструменты включают компоненты GNU. Хотя и не все установки Linux используют компоненты GNU как часть системы. Android, например, использует структуру ядра ОС Linux и очень мало полагается на инструменты GNU.

Linux отличается от других систем:

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

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

На протяжении многих лет было создано несколько различных систем, которые пытались быть unix-like или unix-compatible, но Linux был самым успешным, намного превосходящим предшественников в популярности.

Большая часть ядра Linux написана на языке программирования C с небольшим количеством сборок из других языков. Каждый дистрибутив содержит сотни или тысячи программ, которые могут быть распределены вместе с ним и для каждой из этих программ.

Типы файловых систем Linux

Стандартный дистрибутив Linux предоставляет выбор дискового пространства с форматами файловой структуры ОС, каждый из которых имеет особое значение.

Прогрессивная версия Extended Filesystem (ext), которая в первую очередь была разработана для MINIX. Вторая расширенная версия (Ext2) была улучшенной версией. Ext3 добавил улучшение производительности, Ext4 обеспечил еще больше дополнительных возможностей.

Journaled File System (JFS) была разработана IBM для AIX UNIX. JFS является альтернативой Ext4 в настоящее время и применяется там, где требуется стабильная работа при использовании очень немногих ресурсов. JFS подходит для случаев, когда мощность процессора ограничена.

ReiserFS был представлен как альтернатива Ext3 с улучшенной производительностью и расширенными функциями. Было время, когда файл формата SuSE Linux по умолчанию был ReiserFS, но позже «Рейзер» вышел из бизнеса, и у SuSe не было другого варианта, кроме как вернуться к Ext3. ReiserFS динамически поддерживает расширение файлов, что является относительно расширенной функцией, системе не хватало определенной области производительности.

XFS — это высокоскоростная JFS, которая направлена на параллельную обработку ввода-вывода. NASA по-прежнему использует эту файловую структуру ОС на своих 300-терабайтных серверах хранения.

B-Tree File System (Btrfs) фокусируется на отказоустойчивости, управлении развлечениями, ремонте системы, большой конфигурации хранилища и все еще находится в разработке. Btrfs не рекомендуется для производства.

Существует много форматов файлов, недоступных в Linux, но использующихся при работе с другими ОС: VIS, NTFS от Microsoft, HFS от Apple. Тем не менее работу с файловой структурой ОС можно выполнять в Linux при помощи определенных инструментов, таких как ntfs-3g, для монтирования файловой системы NTFS, не привилегированных под Linux.

Процессор. Совместное использование

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

Назначение ОС, структуры ОС связаны с мультипрограммированием:

  1. Система одновременно сохраняет несколько заданий в памяти.
  2. Этот набор является подмножеством заданий, хранящихся в пуле.
  3. Система выбирает и начинает выполнять одно из заданий в памяти.
  4. Многопрограммные операционные системы контролируют состояние всех активных программ и ресурсов с использованием программ управления памятью, чтобы гарантировать, что ЦП никогда не будет работать, если нет рабочих процессов для обработки.

Такая схема работы помогает эффективно использовать ЦП.

Оцените статью