Автореферат

Наименование Операционные системы мобильных устройств

Автор А.В.Михалькевич

Специальность Программируемые мобильные системы,

Анотация Мобильная операционная система (мобильная ОС) — операционная система для смартфонов, планшетов, КПК или других мобильных устройств. Хотя ноутбуки и можно отнести к мобильным устройствам, однако операционные системы, обычно используемые на них, мобильными не считаются, так как изначально разрабатывались для крупных стационарных настольных компьютеров, которые традиционно ли специальных «мобильных» функций, да и не нуждались в них. Это различие размыто в некоторых новых операционных системах, представляющих гибрид того и другого.

Anotation in English Mobile operating system (mobile OS) - an operating system for smartphones, tablets, PDAs or other mobile devices. Although laptops can be attributed to mobile devices, the operating systems commonly used on them are not considered mobile, since they were originally developed for large stationary desktop computers, which traditionally had special “mobile” functions, and did not need them. This distinction is blurred in some new operating systems, which are a hybrid of both.

Ключевые слова Unix, Windows, OS, мобильное устройство, ооп

Количество символов 256672

Содержание

Введение

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

Мобильные операционные системы сочетают в себе функциональность ОС для ПК с функциями для мобильных и карманных устройств: сенсорный экран, сотовая связь, Bluetooth, Wi-Fi, GPS-навигация, камера, видеокамера, распознавание речи, диктофон, музыкальный плеер, NFC и инфракрасное дистанционное управление.

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

Современные операционные системы для мобильных устройств: Android, Kai OS, Lineage OS, Fire OS, Flyme OS, iOS, , Sailfish OS, Tizen, Remix OS. Устаревшие, ныне не поддерживаемые программные платформы: Windows 10 Mobile, Symbian, Windows Mobile, Palm OS, webOS, Maemo, MeeGo, LiMo, BlackBerry OS, Firefox OS, Ubuntu Touch.

1 Что такое операционная система

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

Файловая система, планировщик и драйверы – всё это основные инструменты работы ОС.

Три ключевых элемента операционной системы:

  1. Абстракции (процессы, потоки, файлы, сокеты, память).
  2. Механизмы (создание, управление, открытие, запись, распределение).
  3. Реализации (алгоритмы LRU, EDF).

Два основных принципа проектирования операционных систем:

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

Теперь подробнее разберём глобальные концепции, которые помогут сформировать понимание того, как работают операционные системы.

Вопросы: Понятие операционной системы Эволюция операционных систем Операционные системы, классификация Структура операционных систем Понятие мобильной операционной системы Три ключевых элемента операционной системы Абстракции операционной системы Механизмы операционной системы Алгоритмы LRU, EDF

1 .1 Ядро операционной системы

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

  • обработка прерываний;
  • создание и уничтожение процессов;
  • переключение процессов из состояния в состояние;
  • диспетчирование ;
  • приостановка и активизация процессов ;
  • синхронизация процессов ;
  • организация взаимодействия между процессами;
  • манипулирование блоками управления процессами;
  • поддержка операций ввода-вывода;
  • поддержка распределения и перераспределения памяти;
  • поддержка работы файловой системы ;
  • поддержка механизма вызова-возврата при обращении к проце¬дурам;
  • поддержка определенных функций по ведению учета работы
  • машины.
Вопросы: Ядро операционной системы

1 .2 Процессы

Проце́сс — это в выполняемая в данный момент программа. Выполнение процесса должно осуществляться последовательно. Процесс определяется как сущность, представляющая основную единицу работы, которая должна быть реализована в системе.

На любой ЭВМ всегда имеется процесс соответствующий операционной системе (ОС) этой ЭВМ, а также один или несколько процессов отвечающих пользовательским программам. На однопроцессорных ЭВМ в любой момент времени может выполнятся только один процесс. Любая ОС должна уметь производить запуск процессов, приостановку, их выполнение, завершение их выполнения и синхронизацию процессов между собой. Для каждого процесса ОС предоставляет собственное адресное пространство. Это адресное пространство начинается от нуля и продолжается непрерывно до предела соответствующего ЭВМ и ОС. С целью обеспечения переносимости адресное пространство всегда начинается с нуля. Ни один процесс кроме ОС не знает в какой именно части физической памяти и каким образом располагается его адресное пространство. Это прерогатива ОС, которая должна наиболее эффективным образом выполнять выполняющиеся процессы.

Операционная система контролирует следующую деятельность, связанную с процессами:

  1. создание и удаление процессов
  2. планирование процессов
  3. синхронизация процессов
  4. коммуникация процессов
  5. разрешение тупиковых ситуаций

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

Создание процесса

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

  • При запуске ОС;
  • При появлении запроса на создание процесса.

Инициализация

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

В UNIX системах устанавливаются строгая иерархия процессов по принципу родитель потомок. Родитель имеет право контролировать работу потомка, приостанавливать или завершать его выполнение. Потомок не имеет никаких прав по отношению к родителям, «братьям», «дядям».

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

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

Порождение нового процесса

Порождение нового процесса это длительная процедура, так как ОС должна выполнить множество действий:

  1. Выделить процессу необходимые ресурсы (адресное пространство, файлы, устройство и т.д.);
  2. Произвести инициализацию этих ресурсов (загрузить выполняемую программу в ОП, инициализировать первое начальное значение регистров и стеков, открыть файлы и т.д.);
  3. Занести всю необходимую информацию в специальную таблицу, описывающую процессу в системе;
  4. Передать управление новому процессу.

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

Планирование процессов

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

Для всех ОС соблюдается следующие принципы планирования:

  1. Предоставление каждому процессу справедливого (одинакового) количество процессорного времени.
  2. Производится принудительное выполнение политики приоритетов выполняющихся процессов.
  3. Планирование производится таким образом чтобы поддерживался максимальный баланс занятости системы. Например: в очереди на выполнение имеются 4 процесса, 2 из которых требуют значительного количество работы устройств ввода вывода и малого количество процессорного времени, а 2 других процесса требуют большого количество процессорного времени и малого времени работы устройств ввода вывода. Все процессы будут выполнятся значительно скорее если они будут запускаться попарно: процесс требующий большого количество работы устройств ввода вывода и малого количество времени процессора, а так же процесс требующий большого количество процессорного времени и малого времени работы устройств ввода вывода.

Для ОС пакетной обработки данных кроме того используются следующие критерии планирования:

  1. Максимальная пропускная способность ЭВМ в целом.
  2. Максимальное использование процессора.
  3. Минимальное время выполнения одного задания (процесса).

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

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

Состояния процесса

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

Linux Процесс в ОС Linux может находиться в одном из следующих состояний:

R (running) — процесс исполняется или ожидает своей очереди;

D — непрерываемый сон (ожидает события);

S — прерываемый сон (ожидает определённого события или сигнала);

T — остановка — процесс приостановлен чем-либо;

Z (zombie) — процесс уже завершился, но ещё не передал родительскому процессу свой код возврата.

Взаимоблокировка процессов

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

Взаимоблокировка возникает в многозадачных многопользовательских ОС. Чем большее количество различных задач выполняется на машине, и чем меньше ее ресурсы, тем больше вероятность возникновение взаимоблокировок. При этом ситуация напоминает подающий с горы снежный ком. Количество блокированных процессов быстро возрастает до тех пор, пока в системе не останется не одного работающего процесса. ОС практически полностью прекращает полезное функционирование а ЭВМ простаивает. Блокировки процессов возникают либо сами собой, либо инициализируются внешними атаками. Например: атаки вирусов (хакеров) на определенный сайт приводят к возникновению блокировки на обслуживающим этот сайт ЭВМ. Это вызвано перегрузкой работы соответствующей ЭВМ, когда в условии ограниченности ресурсов (хотя эти ресурсы у майнфреймов могут быть очень большими: несколько сотен дисков, десятки терабайт ОП и т.д. ) ЭВМ должна одновременно обработать очень большое количество запросов.

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

  1. Снятие оператором выполняющихся процессов до тех пор, пока не исчезнет взаимоблокировка. Этот путь эффективен лишь в том случае, когда количество выполняющихся процессов не очень велико (не превышает 100). При большом количестве выполняющихся процессов этот путь чаще всего не помогает преодолеть блокировку.
  2. Перезагрузка системы этот путь преодоления блокировок наиболее радикальный, но и наиболее дорогой.
  3. Рестарт системы с так называемой контрольной точки.

Контрольная точка - это полное состояние ЭВМ запомненное на внешнем носители. Для больших ЭВМ организация контрольной точки требует больших ресурсов и времени, поскольку на внешний носитель нужно будет запомнить полное состояние всех регистров ЭВМ, всей ее ОП (несколько десятков терабайт на майнфреймах), а так же полное состояние регистров и ОП каждого из устройств ЭВМ (несколько десятков тысяч устройств на майнфреймах). Несмотря на то что организация контрольной точки требует большого количества времени и ресурсов, ее регулярно проводят с различной периодичностью (раз в час) для того чтобы уменьшить неизбежные финансовые потери от рестарта ЭВМ.

Имеются два противоположных способа борьбы с взаимоблокировками:

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

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

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

1 .3 Управление процессами

Управление процессами

Процесс – не что иное, как исполнение программы. Так как программа записана в виде последовательности действий в текстовый файл, процессом она становится только при запуске.

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

  • Stack: стек процесса содержит временные данные, такие как параметры метода, адрес возврата и локальные переменные.
  • Heap: это динамически распределяемая память процесса времени его выполнения.
  • Text: хранит состояние регистров, состояние программного счетчика, режим работы процессора, незавершенные операции ввода-вывода, информацию о выполненных системных вызовах.
  • Data: раздел содержит глобальные и статические переменные.

Когда процесс выполняется, он проходит через разные состояния. Эти этапы могут различаться в разных операционных системах.

Общая схема выглядит так:

  • Start: начальное состояние при создании процесса.
  • Ready: процесс ожидает исполнения на процессоре. В течение работы процессор может переключаться между процессами, переводя одни в режим готовности, другие – в режим исполнения.
  • Running: выполнение инструкций.
  • Wait: процесс переходит в состояние ожидания. Например, ждёт ввода данных или получения доступа к файлу.
  • Terminated: как только процесс завершится, он перейдёт в это состояние и будет ожидать удаления.

Блок управления процессов (Process Control Block) – это структура данных, поддерживаемая операционной системой для каждого процесса. PCB имеет идентификатор PID. Именно PCB хранит всю информацию, необходимую для отслеживания процесса.

  • Process ID: идентификатор каждого из процессов в ОС.
  • State: текущее состояние процесса.
  • Privileges: разрешения доступа к системным ресурсам.
  • Pointer: указатель на родительский процесс.
  • Priority: приоритет процесса и другая информация, которая требуется для планирования процесса.
  • Program Counter: указатель на адрес следующей команды, которая должна быть выполнена.
  • CPU registers: регистры процессора, необходимые для состояния исполнения.
  • Accounting Information: уровень нагрузки на процессор, статистика и другие данные.
  • I/O Information: список ресурсов, использующих чтение и запись.

1 .4 Память

Распределенная общая память (DSM) – это компонент управления ресурсами распределенной операционной системы. В DSM доступ к данным осуществляется из общего пространства, аналогично способу доступа к виртуальной памяти. Данные перемещаются между дополнительной и основной памятью, а также между разными узлами. Изменения прав собственности происходят, когда данные перемещаются с одного узла на другой.

Преимущества распределенной общей памяти:

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

1 .5 Управление памятью

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

Адресное пространство процесса – набор логических адресов, к которым программа обращается в коде. Например, если используется 32-битная адресация, то допустимые значения варьируются от 0 до 0x7fffffff, то есть 2 Гб виртуальной памяти.

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

  • Символьные адреса: или по-другому адреса, используемые в исходном коде. Имена переменных, константы и метки инструкций являются основными элементами символического адресного пространства.
  • Относительные адреса: компилятор преобразует символические адреса в относительные адреса.
  • Физические адреса: загрузчик генерирует эти адреса в момент загрузки программы в основную память.

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

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

1 .6 Межпроцессорное взаимодействие

Существует два типа процессов: независимые и взаимодействующие. На независимые не оказывается влияние процессов сторонних, в отличие от взаимодействующих.

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

Межпроцессная коммуникация (IPC) – это механизм, который позволяет процессам взаимодействовать друг с другом и синхронизировать действия. Связь между этими процессами может рассматриваться как сотрудничество.

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

Метод использования общей памяти

Допустим, есть два процесса: исполнитель (производитель) и потребитель. Один производит некоторый товар, а второй его потребляет. Эти два процесса имеют общее пространство или ячейку памяти, известную как «буфер». Там хранится элемент, созданный исполнителем, оттуда же потребитель получает этот элемент.

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

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

Аналогично потребитель сначала проверит наличие товара, и если ни один элемент не будет доступен, придётся ждать его освобождения.

Метод анализа сообщений

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

  • Устанавливается связь (если её ещё не существует).
  • Начинается обмен сообщениями с помощью базовых примитивов. Нам нужно как минимум два примитива – отправить (сообщение, пункт назначения) или получить (сообщение).

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

1 .7 Управление вводом и выводом

Одной из важнейших задач операционной системы является управление различными устройствами ввода и вывода вроде мыши, клавиатуры, дисководов, etc.

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

  • Блочные: то есть устройства, с которыми драйверы связываются, отправляя целые блоки данных. Например, жесткие диски, USB-камеры, Disk-On-Key.
  • Символьные: те устройства, с которыми драйвер связывается, отправляя и получая одиночные символы (байты или октеты). Например, последовательные порты, параллельные порты, звуковые карты и так далее.

ЦПУ должен иметь способ передачи информации на устройство ввода-вывода и обратно. И есть три способа сделать это:

1. Специальные инструкции

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

2. Входы и выходы с отображением памяти

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

3. Прямой доступ к памяти (DMA)

Медленные устройства, такие как клавиатуры, генерируют прерывания ЦПУ после передачи каждого байта. Если бы быстрые устройства работали похожим образом, то ОС бы тратила большую часть времени впустую, на обработку этих прерываний. Поэтому для снижения нагрузки обычно используется прямой доступ к памяти (DMA).

Это означает, что ЦПУ предоставляет модулю ввода и вывода полномочия для чтения или записи в память. Сам модуль управляет обменом данными между основной памятью и устройством ввода-вывода. ЦПУ участвует в начале и конце передачи, а прерывается только после полной передачи блока.

Организация прямого доступа к памяти требует специального оборудования, называемого контроллером DMA (DMAC). Он управляет передачей данных и доступом к системной шине. Контроллеры запрограммированы с указателями источника и места назначения, счетчиками для отслеживания количества переданных байтов и прочими настройками.

1 .8 Система файловой дистрибуции

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

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

Сетевая файловая система Sun Microsystems (NFS), Novell NetWare, распределенная файловая система Microsoft и DFS от IBM являются примерами распределенных файловых систем.

Вопросы: Файловые системы

1 .9 Потоки

Поток (нить, thread) – это ход исполнения программы. Он также имеет свой program counter, переменные, стек.

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

Поток – это легковесный процесс. Вместе они обеспечивают производительность приложений и ОС за счет параллелизма на уровне программы.

Каждый поток относится к какому-то процессу и не может существовать без него. Сегодня потоки широко применяются в работе серверов и многопроцессорных устройств с общей памятью.

Задачи потоков:

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

Потоки имеют два уровня реализации:

  • Пользовательский уровень, то есть потоки, управляемые приложениями;
  • Уровень ядра, то есть потоки, управляемые ядром операционной системы.

В первом случае ядро ​​управления потоками ничего не знает о существовании потоков вообще. А библиотека потоков просто содержит код для создания и уничтожения потоков, а также передачи сообщений и данных между ними для планирования выполнения потоков и сохранения (восстановления) контекстов потоков.

Во втором случае ядро выполняет создание потоков, а ещё планирование и управление в пространстве ядра. Заметим, что потоки ядра обычно медленнее, чем потоки пользователей.

 

Вопросы: Потоки

1 .10 Планирование

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

ОС поддерживает все блоки управления процессом (PCB) в очередях планирования процесса:

  • Очередь задач (job queue) поддерживает все процессы в системе.
  • Очередь ожидания (ready queue) хранит информацию обо всех процессах, находящихся в основной памяти в состоянии ожидания. В эту очередь попадают и новые процессы.
  • Очереди из устройств (device queue) – это процессы, заблокированные из-за недоступности устройств ввода-вывода.

ОС может использовать разные методы реализации для управления очередями (FIFO, Round Robin, Priority). Планировщик ОС определяет, когда и как перемещать процессы между готовыми и запущенными очередями (могут иметь только одну запись на ядро ​​процессора в системе). На приведенной выше диаграмме он был объединен с процессором.

Модели состояния делятся на активные и неактивные:

  • Активные: при создании нового процесса он переходит в класс активных.
  • Неактивные: процессы, которые не выполняются, а ждут завершения других процессов. Каждая запись в очереди является указателем на конкретный процесс. Очередь реализуется с использованием связанного списка. Использование диспетчера заключается в следующем: когда процесс прерывается, то переносится в очередь ожидания. Если процесс завершен или отменен – он отменяется вовсе.

Переключение контекста – это механизм сохранения (в PCB) и восстановления контекста процессора с ранее запущенного промежутка времени. При использовании этого метода, коммутатор контекста позволяет использовать один процессор для нескольких действий одновременно. Кстати, контекстное переключение является неотъемлемой частью многозадачной операционной системы.

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

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

1 .11 Требование мультипроцессорного программирования

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

//process 1
input(in);
ountput(in);
//process 2
input(in);
ountput(in);

2 Список операционных систем

Это список известных операционных систем. Операционные системы могут быть классифицированы по базовой технологии (UNIX-подобные, пост-UNIX/потомки UΝΙΧ), типу лицензии (проприетарная или открытая), развивается ли в настоящее время (устаревшие или современные), по назначению (универсальные, ОС встроенных систем, ОС PDA, ОС реального времени, для рабочих станций или серверов), а также по множеству других признаков.

Вопросы: Список операционных систем

2 .1 Unix-подобные

Существует множество принципов программирования, выработанных для Unix-систем. Вот некоторые из них:

  • Децентрализация разработки (сотни фирм-разработчиков и миллионы разработчиков некоммерческих версий), наличие развитой системы стандартизации
  • Открытость архитектур, методов и средств (идеология свободно распространяемого ПО GNU, открытость ядра Linux)
  • Стабильность основных идей и разработка на их основе новых методов и средств (идеи процесса, файла, пользователя, ресурса)
  • Универсальная направленность инструментальных средств (ориентация на различные категории пользователей)
  • Эволюционность развития архитектур UNIX-подобных ОС и переносимость приложений
  • Цивилизованные способы распространения ПО
Вопросы: Unix-подобные операционные системы UNIX-подобные

2 .2 Не-Unix-подобные

  • ReactOS  — это современная, свободная и открытая операционная система, основанная на лучших принципах архитектуры Windows NT (такие продукты компании Microsoft, как Windows XP, Windows 7, Windows Server 2012 построены на архитектуре Windows NT). Система была разработана с нуля, и таким образом не основана на Linux и не имеет ничего общего с архитектурой UNIX.
  • FreeDOS
  • Haiku
Вопросы: Не Unix-подобные операционные системы

2 .3 Другие Unix-подобные и POSIX-совместимые

  • TAILS
  • Whonix
  • Aegis/OS (Apollo Computer)
  • CLIX от Intergraph
  • Cromix (Unix-emulating OS from Cromemco)
  • Coherent (Эмулирующая Unix ОС от Mark Williams Co. для персональных компьютеров)
  • DNIX
  • DYNIX — Unix-подобная ОС, разработана компанией Sequent Computer Systems, которая позже была поглощена IBM
  • Idris
  • IRIX от SGI
  • NeXTStep — своё развитие получила в ОС Mac OS X после объединения компаний NeXT и Apple
  • OPENSTEP
  • OS-9 — Unix-подобная RTOS, эмулирующая Unix от Microware для процессора Motorola 6809
    • OS-9/68k (Эмулирующая Unix от Microware для процессора Motorola 680x0; создана из OS-9)
    • OS-9000 (портативная эмуляция Unix от Microware; одна из реализаций предназначена для Intel x86)
  • QNX (POSIX, микроядерная операционная система; используется, в основном, во встроенных системах реального времени)
  • Rhapsody
  • RiscOS
  • SCO UNIX (от Santa Cruz Operation, куплена компанией Caldera, позже переименованной в SCO)
  • System V (реализация AT&T Unix, 'SVr4' 4й релиз). Фактически последний «чистый» UNIX. Всё остальное обычно называют UNIX-подобным.
  • UNIflex (Эмулирующая Unix ОС от TSC для DMA-совместимых, Motorola 6809 с расширенной адресацией; например, SWTPC, GIMIX, …)
  • Ultrix (первая версия Unix для VAX и PDP-11 от DEC, основана на BSD)
  • Unicos (Unix для суперкомпьютеров Cray Research Inc.)
  • Venix
Вопросы: Другие Unix-подобные и POSIX-совместимые

2 .4 Microsoft

Вопросы: Операционная система Windows

2 .5 Apple

Вопросы: Операционная система Mac

2 .6 Linux

Линукс (от англ. «Linux») — это операционная система на основе Unix-подобных систем, включающая утилиты GNU. Распространяется бесплатно.

Помимо самой ОС Линукс, все пакеты (программы) бесплатны.

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

Собственно говоря усилиями десятков тысяч программистов и был создан Линукс. Изначально первыми пользователями были опытные пользователи ПК. Сейчас все больше становится и обычных пользователей Линукса.

Отличительно и то, что Линукс работает на всех архитектурах: DEC Alpha, x86, x86-64, ARM и PowerPC.

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

Примечание 2 Зачастую в различных источниках можно увидеть название «GNU/Linux» (по сути это то же самое, что и Linux). Однако в среде профессионалов даже разгораются жаркие дискуссии по этому поводу.

Примечание 3 Тех, кто пользуюется ОС Линукс зачастую называют «линуксойдам».

Говоря про Linux нельзя не упомянуть про проект GNU — это концепция свободного бесплатного программного обеспечения. Основатель Ричард Столлман.
 

Вопросы: Операционная система Linux

2 .6 .1 Особенности Linux

Рассмотрим отличительные особенности Linux

1 Большинство пользователей среду Линукса являются программисты и администраторы. Это довольно опытные и «прошаренные» пользователи. Поэтому их не пугает то, что очень много действий приходится делать через терминал (консольная строка).

2 Большинство серверов (хостинги, хранилища и прочее) используют в качестве основной ОС Линукс. Это связано с тем, что она бесплатна, проще настраивается и более стабильна. Однако среди обычных пользователей бесспорное лидерство занимает Windows. Лишь 5% населения пользуются Линуксом в качестве домашней операционной системы.

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

4 В Linux нету жестких дисков, как на Windows. Здесь все хранится в едином каталоге, который начинается с «/» (корневой каталог, root directory). Файлы пользователей лежат в каталогах «/home/name_users/».

5 Программные оболочки bash или tcsh. С помощью них Linux выполняет команды пользователей. Отдаваемая команда относится к текущему каталогу (current directory). Домашний каталог можно обозначать символом «~» (тильда). Это аналог «/home/name_users/»

6 Файловые системы в Linux отличны от Windows:

  • ext4 — журналируемая файловая система (стандарт для Linux)
  • btrfs — новая файловая система, основанная на структурах B-деревьев
  • xfs — данную файловую систему отличает достаточно высокая производительность в части записи и чтения данных.

Стоит отметить, что Линукс поддерживает очень много файловых систем (в том числе Windows-ие NTFS, FAT32). Напомню, что Windows не поддерживает ext4. Про файловые системы Linux будет рассказано более подробно в отдельной статье.

7 Существует два вида дистрибутивов Linux, которые делятся по способу организации и управления программным обеспечением (пакетами)

  1. DEB — используются в дистрибутиве Debian и во всех основанных на нем дистрибутивах
  2. RPM — менеджер пакетов, использующийся в дистрибутиве Red Hat, а также во многих других популярных дистрибутивах (Fedora)

8 Процессы разделены по ресурсам. Чтобы добавить новое устройств нужен драйвер. Его можно написать самостоятельно и запустить в ядре. Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, загружаемых во время работы системы.

9 В Linux все считается файлами: жесткие диски, разделы, папки, приводы оптических дисков, съемные носители информации.

2 .6 .2 Дистрибутивы Linux

Дистрибутив Linux — разновидность ОС Линукс.

Существуют множество видов дистрибутивов Linux. Самые распространённые в мире дистрибутивами являются:

  • Linux Mint. Самый простой для пользователя дистрибутив. Очень напоминает Windwos 7. Основан на Ubuntu и Debian
  • Ubuntu. Долгое время считался самым популярным дистрибутивом. Стабильная и интуитивно понятная версия для ежедневного использования Основан на Debian
  • Debian. Лег в основу множества других популярных Линуксов.
  • Mageia. Предок бывшей и популярной ОС Mandriva.
  • Fedora. Универсальный, быстро развивающейся и современный Linux. Каждый год появляются новые версии.
  • OpenSUSE. стабильный и мощный дистрибутив
  • ArchLinux. Современный и быстро обновляющейся дистрибутив.
  • CentOS
  • PCLinuxOS
  • Kali
  • Slackware. Консервативный подход разработки и использования

Интересными дистрибутивами также являются и те, которые можно самостоятельно собрать. К таким относятся LFS, Gentoo, CRUX.

Линукс также практикует такой вид дистрибутивов, которые не требуют установки на жесткий диск. Они работают в режиме «LiveCD». Информация загружается в оперативную память и уже работает с нее. Примеры таких систем: Knoppix, Fedora.

2 .6 .3 Интерфейсы Linux

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

  • GNOME (GNU Network Object Model Environment) и Unity. Концепцию значков лаунчеров и отображения в стиле панели мониторинга для выбора
  • KDE (K Desktop Environment). Традиционная среда рабочего стола, но она имеет огромное количество функций и основной набор приложений
  • Cinnamon. Основан на GNOME. Традиционная среда рабочего стола, которая похожа на Windows 7.
  • LXDE (Lightweight X11 Desktop Environment). Легкая и приятная среда.
  • MATE является продолжением классического интерфейса GNOME
  • XFCE быстрая и легкая

 

2 .6 .4 Репозитории Linux

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

Для Линукса репозиторий это аналог Play Market для Android.

Чтобы скачать пакет необходимо в терминале написать:

#Для Ubuntu, Linux Mint и Debian

apt-get "имя пакета"

#Для Fedora и CentOS 

yum install "имя пакета"

#Для Arch и Manjaro 

Pacman "имя пакета"
Вопросы: Репозитории Linux

2 .6 .5 Установка Ubuntu

Версиии Ubuntu (операционная система на основе ядра Linux) доступны по адресу:

http://ftp.uni-kl.de/pub/linux/ubuntu-dvd/

Для установки Unux-подобных операционных систем без скачивания, можем воспольжоваться дистрибьютивом программы unetbootin, которую предворительно нужно установить. Существуют варианты этой программы для Linux, Windows и Mac.

http://unetbootin.github.io/

Установим и запустим программу.

После запуска получим такое окно, которое изображено на рисунке.

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

UNetbootin может создавать загрузочный USB-диск либо через скаченный iso-образ, либо через удаленные репозитории. Воспользуемся удаленным репозиторием и выберем последнюю версию дистрибьютива, рисунок 2.

Устанавливаем операционную систему с загрузочной флэшки, отвечая на вопросы установщика выбранной операционной системы.

2 .7 Сравнение ядер операционных систем Linux, Mac и Windows

Существует единая система, на которой базируются ядра таких операционных системы, как Linux, Mac и Windows, и др. — это Unix.

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

Таблица 1 – Сравнение операционных систем Linux, Mac и Windows.

Критерии сравнения

Linux

Windows

Mac

Стоимость

Бесплатно

Платное программное обеспечение

Платное железо

Системные требования

Достаточно одноядерного процессора, 256 Мб оперативки и любой видеокарты.

Для стабильной работы понадобится процессор с двумя ядрами, 1 Гб оперативки и хорошей видеокартой. Cистема закрыта, и однозначного вывода сделать не получится. Теоретически Mac получится запустить с 512 Мб оперативки, одноядерным процессором с частотой 1 ГГц и 9 свободными Гб памяти на жестком диске.

Слежка за пользователями

Нет

Да

Да

Расширения

Любые

.exe

Понятие расширений отсутствует. Установка программ осуществляется только через AppStore

Наличие альтернативных сборок

Имеется огромное количество

Нет

Нет

Видимость папок других операционных систем

Видит все папки

Нет

Нет

Встроенный сервер

Есть

Нет

Нет

Возможность конфигурирования  системы

Есть

Нет

Нет

Предзагрузчик

Имеется предзагрузчик GRUB, который дает возможность пользователю выбирать операционную систему

Удаляет предзагрузчик GRUB, что не дает возможность поставить Windows поверх Linux. Linux же ставится поверх Windows.

-

Наличие вирусов и вредоносных программ

Нет

Да

Нет

Возможность использования облачных сервисов

Да

Нет

Нет

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

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

В добавок к этому, Microsoft продает лицензию для Windows 10 Pro более чем за 14 000 рублей, но сейчас ее временно можно приобрести более чем в 40 раз дешевле - всего за 300 рублей. Ноутбуки под управлением Windows 10 стоят дороже на 600 рублей. Конечно, мы можем скачать пиратское программное обеспечение и установить Windows бесплатно, однако при этом остается лишь надеяться на то, что вместе с операционной системой не установятся вирусы.

По всем критериям сравнения Linux превосходит другие системы, что обосновывает наш выбор данной операционной системы. Документация по наиболее актуальной версии ядра Linux расположена в Интернете по адресу:

http://www.kernel.org/doc/Documentation

2 .8 Android

Операционная система Андроид — это программное ядро более 60% смартфонов и других устройств, выпущенных по всему миру. Благодаря ей стало возможным производство «портативного компьютера», дающего своему владельцу доступ к любым медиафайлам и сети интернет. Рассмотрим особенности и историю разработки ОС.

Работа системы основана на ядре Linux, ОС, которая доступна для установки на ПК. Google позаботился о том, чтобы для её разработки использовалась виртуальная машина Java, применяющаяся так же для создания разнообразных приложений. Впоследствии за стабильное развитие операционной системы отвечает альянс Open Handset Alliance (OHA), состоящий из 84 компаний со всего мира. Скачивать и устанавливать приложения для Android можно прямиком из универсального интернет-магазина — Google Play. Именно в нём представлены всё функциональное ПО, которое может корректно работать на созданном движке. На данный момент существует масса альтернативных ОС, которые разрабатываются энтузиастами по всему миру. Можно отметить одну из них — MIUI, разработанную китайской компанией Xiaomi Inc.

Ниже представлены все компоненты системы.

Вопросы: Операционная система Android

2 .8 .1 Сервисы Google

На всех устройствах Android доступно использование сервисов компании и её наиболее популярного инструмента — поиска. На данный момент с помощью поисковой системы Гугл осуществляется более 60% запросов в интернете по всему миру.

Наиболее популярные сервисы компании:

  • Gmail — электронная почта, которая обязательно используется при создании учётной записи и может объединять в себе письма и контакты других аккаунтов и даже почтовых ящиков;
  • Google Maps — крупнейший сервер, позволяющий отслеживать своё и чужое местоположение (с согласия пользователя), ориентироваться на местности, задавать маршруты и многое другое;
  • Hangout — аналог Skype, позволяющий обмениваться мгновенными сообщениями и участвовать в видеоконференциях пользователям со всего мира;
  • YouTube — видеохостинг, дающий возможность просматривать видеоконтент и загружать его;
  • Google Play — магазин приложений для различных устройств на базе Android;
  • Google Translate — сервис машинного перевода.
Вопросы: Сервисы Google в операционной системе Android

2 .8 .2 Ядро Linux

Linux — это ядро операционной системы, ставшее базой для разработки Android.

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

Вопросы: Ядро Linux

3 Командная оболочка

Командная оболочка, или командная строка (shell) - это программа, которая принимает команды, введенные с клавиатуры, и передает их операционной системе для выполнения.

Вопросы: Основные команды командной строки SSH

3 .1 Эмуляторы терминалов

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

cntrl + alt + T

либо

Win + T

Т.к. эмулятор терминала - это стандартная программа, то она также может  быть запущена с помощью ярлыка либо через список программ.

Вопросы: Безопасный вход на удаленные компьютеры

3 .1 .1 Команды навигации

Основные команды для навигации:

pwd
cd
ls
Вопросы: Команды навигации

3 .1 .2 Команды системы

Несколько команд, которые пригодятся для исследования системы:

ls
file
less
Вопросы: Команды системы

3 .1 .3 Команды работы с файлами и каталогами

Основные команды работы с файлами и каталогами:

cp
mv
mkdir
rm
ln
Вопросы: Команды работы с файлами и каталогами

3 .1 .4 Команды перенаправления

Перенаправления ввода и вывода:

cat
sort
uniq
wc
grep
head
tail
tee
Вопросы: Команды перенаправления

3 .1 .5 Создание команд

Для создания собственных команд могут  быть использованы следующие системные команды:

type
which
man
apropos
info
whatis
alias

4 Виртуализация

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

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

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

Операционная система создает иллюзию одновременного исполнения нескольких процессов, каждого в своей (виртуальной) памяти.

Особенности виртуальных машин:

Типы виртуализации

  1. Данные: позволяет компаниям обеспечивать вычислительные мощности для объединения данных из нескольких источников, размещения новых источников и преобразования данных в соответствии с потребностями пользователя.
  2. Рабочий стол: легко спутать с виртуализацией операционной системы. Виртуализация рабочего стола позволяет центральному администратору одновременно развёртывать смоделированные среды на сотнях физических машин. Виртуальные системы позволяют администраторам выполнять массовые конфигурации, обновления и проверки безопасности на всех устройствах сразу.
  3. Серверы: программная имитация с помощью специального ПО аппаратного обеспечения компьютера: процессор, память, жесткий диск, и т. д. На такой виртуальный компьютер можно установить операционную систему, и она будет на нем работать точно так же, как и на простом, «железном» компьютере. Самое интересное достоинство этой технологии – это возможность запуска нескольких виртуальных компьютеров внутри одного физического. При этом, все виртуальные компьютеры могут работать независимо друг от друга.
    Сервер – компьютер, спроектированный под выполнение большого объема специфических задач. Виртуализация сервера позволит ему выполнять больше этих специальных задач, а также разделить функционал на разные компоненты.
  4. ОС: это способ одновременного запуска Linux и Windows-сред. Преимущество в том, что это уменьшает затраты на оборудование, повышает безопасность и экономит время на обслуживании.
  5. Сетевые функции: разделяет ключевые функции сети (например, службы каталогов, общий доступ к файлам и IP-конфигурацию) для распределения между средами. Виртуальные сети сокращают количество физических компонентов: коммутаторов, маршрутизаторов, серверов, кабелей.
Вопросы: Виртуализация Типы виртуализации

5 Гипервизор

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

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

Физическая машина с гипервизором называется хостом, а виртуальные машины, которые используют ресурсы данного хоста – гостями. Для них ангаром ресурсов являются процессор, память, хранилище. Для получения доступа к этим ресурсам операторы управляют виртуальными экземплярами.

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

История гипервизоров

В конце 60-х и до конца 70-х годов ХХ века работа по виртуализации и гипервизорам проводилась на универсальных ЭВМ от IBM. С помощью виртуализации программисты разрабатывали и отрабатывали ошибки кода, не рискуя стабильностью основной производительной системы.

В середине 2000-х гипервизоры оказались в центре внимания. Это случилось, когда Unix, Linux и другие ОС на базе Unix начали использовать технологии виртуализации. Причинами роста гипервизоров и развития виртуализации стали более производительные машины, благодаря которым один компьютер мог делать больше одновременной работы; также благодаря улучшенной архитектуре гипервизоров виртуализация стала безопаснее и надежнее. Кроме этого, можно было запускать ОС-зависимые приложения на разных машинах или в разных средах ОС.

Преимущества и типы гипервизоров

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

Виртуальные машины также очень мобильны. Это потому, что они не зависят от аппаратного обеспечения, их можно перевозить между локальными или удаленными виртуализированными серверами гораздо проще, чем традиционные приложения, которые привязаны к физическому аппаратному обеспечению.
Существует два вида гипервизоров: Type 1 и Type 2. Гипервизоры Type 1, которые иногда еще называют нативными или металлическими, работают прямо на аппаратном обеспечении хоста, чтобы контролировать его и управлять гостевыми машинами. Современные гипервизоры включают Xen, Oracle VM Server для SPARC, Oracle VM Server для x86, Microsoft Hyper-V и VMware’s ESX/ESXi.

Гипервизоры Type 2, которые иногда называются гостевыми, работают на обычной ОС, как и другие приложения в системе. В этом случае гостевая ОС работает как процесс на хосте, тогда как гипервизоры отделяют гостевую ОС от операционной системы виртуальных машин. Примеры гипервизоров Type 2: VMware Workstation, VMware Player, VirtualBox и Parallels Desktop для Mac.

На уровне датацентров поставщики гипервизоров объединились, что дало 3 основных игрока на рынке: VMware, Microsoft и Citrix Systems.

Контейнеры и гипервизоры

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

«Виртуальные машины отбирают много системных ресурсов. На каждой виртуальной машине работает не только полная копия ОС, но и виртуальная копия всего аппаратного обеспечения, которое нужно ОС для работы. Это сразу занимает много оперативной памяти и мощности процессора. В отличие от этого, все, что нужно контейнеру, — это ОС, которая поддерживает программы и библиотеки, а также системные ресурсы, чтобы запускать их», — говорит Steven J. Vaughan-Nichols в статье от 2016 года в издании Network World.

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

Проблемы безопасности гипервизоров

Тогда как гипервизоры считаются более безопасным вариантом, чем контейнеры, это не значит, что проблем безопасности с ними не существует. Например, в теории хакеры могут создать вредоносное ПО, которое установится как гипервизор под ОС. Этот процесс известен как «гиперджекинг», и его сложнее выявить. Это потому, что эти вредоносные программы могут перехватывать операции ОС (например, ввод пароля), и антивирусное ПО может не заметить их, потому что вредоносный код работает под ОС.

Заключение

Список использованных источников

1. [url] Как работает операционная система https://proglib.io/p/how-os-work/
2. [url] Что такое компьютер и операционная система https://youtu.be/FDVGRWdtsWI
3. [url] Эволюция ОС. Фундаментальные проблемы. Слои абстракции. https://youtu.be/r4hKmM5hk1A
4. [url] Представление и обработка процессов. Структуры данных. Очереди. https://youtu.be/EwtEOdzBv40
5. [url] Треды. SMP. Микроядро https://youtu.be/R_ehFYaRcZA
6. [url] Взаимное исключение. Семафоры. Мониторы. Передача сообщений. Проблема чтения/записи. https://youtu.be/mgDy68YWe1Q
7. [url] Дедлок. Проблема обедающих философов. https://youtu.be/GsZGBnwtLJ8
8. [url] Организация памяти. Виртуальная память. https://youtu.be/x4FQ6ASzkso
9. [url] Планирование выполнения задач. Диспетчеризация. https://youtu.be/jFUQp9DkRL4
10. [url] Ввод и вывод https://youtu.be/hKbCuu5DGT0

Приложения

1. [Вопросы] Вопросы 5e68d976c07bc_Билеты_ОСМУ_1019-2020.docx