Современные операционные системы

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

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

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

  • обеспечивающий работу компьютера по сменной программе;

  • создающий минимальный пользовательский интерфейс;

  • управляющий работой устройств и предоставляющий средства администрирования системы.

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

Запуск компьютера

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

У каждого персонального компьютера есть системная плата. На системной плате находится программа, которая называется базовой системой ввода-вывода — BIOS (Basic Input Output System). BIOS содержит низкоуровневое программное обеспечение ввода-вывода, включая процедуры считывания состояния клавиатуры, вывода информации на экран и осуществления, ко всему прочему, дискового ввода-вывода. В наши дни эта программа хранится в энерго- независимой флеш-памяти с произвольным доступом, которая может быть обновлена операционной системой в случае обнаружения в BIOS различных ошибок.

При начальной загрузке компьютера BIOS начинает работать первой. Сначала она проверяет объем установленной на компьютере оперативной памяти и наличие клавиатуры, а также установку и нормальную реакцию других основных устройств. Все начинается со сканирования шин PCIe и PCI с целью определения всех подключенных к ним устройств. Эти устройства регистрируются. Если присутствующие устройства отличаются от тех, которые были зарегистрированы в системе при ее последней загрузке, то производится конфигурирование новых устройств.

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

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

Необходимые понятия ОС

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

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

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

Каждому пользователю, которому разрешено работать с системой, системным администратором присваивается идентификатор пользователя (User IDentification (UID)). Каждый запущенный процесс имеет UID того пользователя, который его запустил. Дочерние процессы имеют такой же UID, как и у родительского процесса. Пользователи могут входить в какую-нибудь группу, каждая из которых имеет собственный идентификатор группы (Group IDentification (GID)). Пользователь с особым значением UID, называемый в UNIX суперпользователем (superuser), а в Windows администратором (administrator), имеет особые полномочия, позволяющие пренебрегать многими правилами защиты.

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

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

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

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

Современные операционные системы. Краткий обзор

Можно выделить следующие группы современных операционных систем:

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

  2. Операционные системы встраиваемых систем

  3. Операционные системы настольных компьютеров

  4. Корпоративные операционные системы.

Такая классификация хорошо согласуется с классификацией компьютеров.

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

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

  1. Системы являются однопользовательскими. Владельцами процессов являются либо система, либо активный пользователь (текущая учетная запись). Доступ на правах администратора запрещен по умолчанию. Так называемые “рутированные” устройства, где доступ к записи администратора получен, часто не принимаются в гарантийный ремонт.

  2. Системы полнофункциональны в случае наличия доступа к сети Интернет.

  3. Имеется ряд предустановленных производителем программ, отключаемых только в режиме “рутированного” устройства. Соответственно, у пользователя нет свободы выбора устанавливаемой системы.

  4. Стоимость операционной системы входит в стоимость устройства.

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

  6. Из-за малого размера устройств преобладает сенсорный тип пользовательского интерфейса.

Примерами современных операционных систем первой группы являются Google Android и Apple iOS.

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

  1. Работать в качестве клиента сетевой базы данных и со специальным программным обеспечением. Остальные задачи являются второстепенными.

  2. Поддерживать работу в сетевом режиме, без доступа к сети не функционировать.

  3. Работать в многопользовательском режиме.

    1. Обладать высокой надежностью.

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

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

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

  2. Стоимость сенсорных устройств резко возрастает при увеличении размеров, поэтому для решения типовых пользовательских задач предпочтителен графический пользовательский интерфейс. Задачи администрирования могут использовать и чаще всего используют текстовый пользовотельский интерфейс.

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

  4. Использование компьютерной сети для решения большинства задач не является обязательным.

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

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

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

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

  2. При входе в систему идентифицировать пользователя.

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

  4. Допускать явное администрирование системы с помощью средств операционной системы.

  5. Автоматически идентифицировать и настраивать подключаемые к компьютеру устройства вне зависимости от типа подключения (стандарт Plug-and-Play).

  6. Поддерживать компьютерную сеть и локальные приложения.

  7. Поддерживать установку большого количества программ.

Примерами таких операционных систем являются семейства операционных систем Microsoft Windows (варианты Home, Professional, Enterprise, Ultimate), Apple MacOS, значительная часть дистрибутивов Linux. Рассмотрим данные системы подробнее, поскольку в практической деятельности именно с ними чаще всего приходится взаимодействовать.

Microsoft Windows - группа семейств коммерческих проприетарных операционных систем корпорации Microsoft, ориентированных на управление с помощью графического интерфейса.

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

Используются следующие типы окон:

• окно приложения — окно программы;

• окно документа — окно, располагающееся внутри окна приложе¬ния, предназначенное для создания и правки документа;

• диалоговое окно — окно выводится на экран в случае, если для выполнения какого-либо действия требуются дополнительные инструкции пользователя;

• информационное окно — окно, выводящееся системой или при¬ложением с целью проинформировать пользователя о чем-либо.

В состав любого окна Windows входит строка заголовка, в которой справа располагается логотип приложения (документа), далее имя документа и название приложения, а справа — кнопки управления внешним видом окна и кнопка вызова справки по приложению.

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

Лента — настраиваемая панель инструментов с кнопками и параметрами, которые используются для выполнения команд. На ленте обычно выводятся наиболее часто используемые команды. Все ленты настраиваемы — пользователь имеет возможность самостоятельно определить количество кнопок на панели инструментов и команды, которые должны быть доступны для выполнения с панели инстру¬ментов. Для активизации диалогового окна «Настройка ленты и со¬четания клавиш» достаточно щелкнуть по правой кнопке мыши на панели инструментов и выбрать в открывшемся контекст¬ном меню команду Настройка ленты…. К аналогичному результату приведет выбор опции Настройка ленты (меню Файл → Параметры). Кнопки на панели инструментов доступны только при использова¬нии манипулятора «мышь». Под лентой находится рабочая область (область окна). Снизу она ограничивается строкой состояния, на которую выводится справочная информация о документе и текущих настройках приложения.

Панель задач обычно располагается в нижней части экрана.

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

Файловая система

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

Файловая система связывает носитель информации с одной стороны и программный интерфейс для доступа к файлам — с другой. Принцип работы такой системы – дисковый. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы.. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске). Каждый диск разбивается надве области: область хранения файлов и каталог, который содержит название файла и указание на начало его размещения на диске.

Поверхность жесткого диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора. Под цилиндром  понимается совокупность всех дорожек, принадлежащих разным поверхностям и находя­щихся на равном удалении от оси вращения. Данные о том, в каком месте диска записан файл, хранятся в системной области диска. Формат служебных данных определяется конкретной файловой системой. Нарушение целостности служебных данных приводит к невозможности воспользоваться данными, записан­ными на диске. К системной области предъявляются особые требования по надежности. Целостность, непротиворечивость и надежность этих данных регулярно контролируется средствами операционной системы. Наименьшей физической единицей хра­нения данных является сектор. Размер сектора равен 512 байт. Теоретически возможна самостоятельная адресация для каждого сектора. Но для дисков большого объема такой подход неэффек­тивен, поэтому группы секторов объединяются в кластеры. Кла­стер является наименьшей единицей адресации при обращении к данным. Размер кластера, в отличие от размера сектора, строго не фиксирован. Обычно он зависит от емкости диска.

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

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

Основные функции любой файловой системы нацелены на решение следующих задач:

·                    именование файлов;

·                    программный интерфейс работы с файлами для приложений;

·                    отображения логической модели файловой системы на физическую организацию хранилища данных;

·                    организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;

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

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

Часто файловая система поддерживает ассоциацию файлов – привязывание  файла  к прикладной программе, которая обрабатывает эти файлы. При «вызове» этого файла, например, в файловом менеджере, вызовется связанная с ним программа и откроет этот файл.

Наиболее распространенными сегодня являются файловые системы семейства FAT (File Allocation Table, которая в переводе на русский язык звучит, как таблица размещения файлов. Известно применение FAT12, FAT16,  FAT32 и  FAT64. Последние две сегодня интенсивно применяются в современных компьютерных сетях.

Файловая система FAT была разработана для небольших дисков и простых структур каталогов. Ее название происходит от названия метода, применяемого для организации файлов. Эта таб­лица размещается в начале тома. В целях защиты тома на нем хра­нятся две копии FAT. В случае повреждения первой копии FAT дис­ковые утилиты (например, Scandisk) могут воспользоваться второй копией для восстановления тома. Таблица размещения файлов и кор­невой каталог должны располагаться по строго фиксированным ад­ресам, чтобы файлы, необходимые для запуска системы, были раз­мещены корректно.

По принципу построения FAT похожа на оглавление книги, так как операционная система использует ее для поиска файла и опре­деления кластеров, которые этот файл занимает на жестком диске. Изначально компания Microsoft разработала FAT для управления файлами на дискетах и только затем приняла ее в качестве стандарта для управления дисками в MS-DOS.

Операционные системы MS-DOS, OS/2  ис­пользуют файловую структуру FAT 16. на основе таблиц размещения файлов,  состоящих из 16-разрядных полей. Она позволяет разместить в FAT-таблицах не более 65 536 записей (216).

32-разрядная файловая система FAT32 появилась в Windows 95 0SR2 и поддерживается в Windows 98/МЕ и Windows 2000/ХР, а также в Windows Vista/7. Она обеспечивает оптимальный доступ к жестким дискам, повышая скорость и производительность всех операций ввода-вы­вода. FAT32 предназначена для использования на томах, объем которых пре­вышает 2 Гбайта.

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

·           поддержка дисков размером до 8 Тбайт;

·           более эффективное расходование дискового пространства. FAT32 использует более мелкие кластеры, что позволяет повысить эф­фективность использования дискового пространства на 10— 15%;

·           повышенная надежность и более быстрая загрузка программ. В от­личие от FAT12 и FAT16 FAT32 обладает возможностью переме­щать корневой каталог и использовать резервную копию FAT, если первая копия получила повреждения. Кроме того, загрузочный сектор FAT32 был расширен по сравнению с FAT16 и содержит резервные копии жизненно важных структур данных.

Система NTFS (New Technology File System – в переводе  файловая система новая тех­нология). Основными целями разработки NTFS являлись обеспе­чение скоростного выполнения стандартных операций над файлами (включая чтение, запись, поиск), предоставления дополнительных возможностей, включая сжатие и восстановление поврежденной файловой системы на больших дисках.

Cистема NTFS обладает характеристиками защищенности, поддерживая контроль доступа к данным и права владельца в обеспечении защиты конфиденциальных данных. Папки и файлы NTFS могут иметь назначенные им права доступа вне зависимости оттого, явля­ются они общими или нет. Основную информацию о томе NTFS содержит загрузочный сектор раздела (Partition Boot Sector), который начинается с сектора 0 и может иметь длину до 16 секторов. Он со­стоит из двух структур. Блок параметров BIOS — структура, содержащая информацию о строении тома и структурах файловой системы.

Форматирование тома для NTFS приводит к созданию нескольких системных файлов и главной таблицы файлов  MFT, которая содержит информацию обо всех файлах и папках. Каждый занятый сектор на томе NTFS принад­лежит какому-нибудь файлу. Частью файла являются даже метадан­ные файловой системы (информация, которая представляет собой описание самой файловой системы)

Файловые системы CDFS (Compact Disc File System в переводе файловая система компакт-дисков) и  UDF (Universal Disk Format — универ­сальный формат диска) — две файловые системы, предназначенные для работы на устройствах CD-ROM и DVD.

Введение длинных имен потребовало внесения изме­нений в организацию файловых систем на основе FAT. Появился термин VFAT, обозначающий файловую систему на основе FAT с поддержкой длинных имен. Файловая система NTFS поддержива­ет длинные имена изначально. Использование длинных имен файлов в ОС семейства Windows имеет ряд особенностей.

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

2.В корневой папке диска нежелательно хранить файлы с длинными именами. В файловых системах на основе FAT коли­чество единиц хранения в этой папке ограниченно. Чем длиннее имена, тем меньше файлов можно разместить в корневой папке.

3.Кроме ограничения на длину имени файла (256 символов) существует гораздо более жесткое ограничение на длину полного имени файла. Полное имя не может быть длиннее 260 символов.

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

5.Прописные и строчные буквы в именах не различаются ОС.

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