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

Урок 3. Что такое операционная система? Виды операционных систем

Все мы постоянно слышим такое словосочетание, как «операционная система» и «Windows», но мало кто понимает, о чем вообще идет речь. Когда меня просят помочь в каком-то вопросе, и я спрашиваю человека, какая у него операционная система на компьютере мне отвечают, что либо не понимают о чем речь, либо честно говорят, что не знают. Знать, какая операционная система установлена на вашем компьютере, надо обязательно, т.к. они все разные и настройки у них разные. И если вы хотите чему-то научится по компьютерной тематике, то должны это понимать и уметь определять свою операционную систему. А какие виды операционных систем существуют? Этот вопрос мы тоже рассмотрим в нашем уроке.

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

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

Операционная система, сокр. ОС (англ. operating system, OS) — комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем. (Википедия)

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

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

Виды операционных систем

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

Существуют три основные и самые популярные операционные системы:

Microsoft Windows (Microsoft – это фирма, выпускающая эту систему, а Windows (виндовс), в переводе с английского, означает – окна):

Apple Mac Os X (сокращенно ее называют Mac, а Apple – это фирма (в переводе с английского, означает — яблоко);

Каждая операционная система имеет свой вид, так называемый графический интерфейс (от англ. – лицо).

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

В середине 1980-х годов компания Microsoft создала операционную систему Windows, и началась новая эра, благодаря которой, мы с вами теперь на компьютере писать письма, книги, работать с фотографиями, картинками, создавать свои фильмы, сайты, «гулять» по интернету и учиться новым наукам и ремеслам.

Семейство Windows 9x, в которых уже могли работать такие, как мы с вами:

Семейство Windows NT

Семейство ОС для смартфонов:

Это только семейство Windows, и то еще не все. Остальные вам никогда и не встретятся, т.к. они не предназначены для домашнего пользования.

Вам, скорее всего, знакомы только эти:

Как определить свою операционную систему:

Посмотрите этот видеоролик, определите свою операционную систему, и напишите в комментарии, какая ОС стоит на вашем компьютере.

Чтобы запустить видео кликните левой кнопкой мыши по его картинке или на значок треугольника.

Источник

Что такое операционная система и как она работает?¶

Цель конспекта — последовательно рассмотреть и объяснить принципы устройства и функционирования операционной системы, её основных компонентов и абстракций.

Введение¶

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

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис. 1. Общее представление архитектуры компьютера

Например, процессор умеет выполнять только четыре базовых типа инструкции:

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

Возникает вопрос — Как заставить всё это слаженно и эффективно работать, сделав пользование компьютером удобным как для обычного человека, так и для прикладного программиста?

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

Немного истории¶

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

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

Далее, термины: процесс, приложение идут как синонимы термину пользователь ресурсов.

Зачем нужна Операционная Система?¶

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

Фунции ОС¶

Основные абстракции ОС¶

Положение ОС в многоуровневой иерархии организации компьютера¶

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис. 2. Основные уровни устройства ПК

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

В целом, общей схемой это можно отобразить так:

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис. 3. Место ОС в компьютерной системе

Интерфейс — набор правил и средств взаимодействия двух систем. Иными словами способ взаимодействия.

Kernel space — адресное пространство ядра ОС, в котором процессы имеют привилегированный доступ к ресурсам компьютера и другим процессам.

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

Как операционная система загружается в компьютер?¶

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

Что делает ядро ОС?¶

Ядро ОС – центральная часть операционной системы. По сути, это и есть ОС.

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

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Прерывания¶

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

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

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

Инициализация данной таблицы первично осуществялется BIOS’ом в соответствии с архитектурой процессора. После, её инициализирует операционная система для дополнения этой таблицы какими-либо своими прерываниями.

Как приложения взаимодействуют с ОС?¶

Взаимодействие процессов с ОС осуществляется с помощью системных вызовов.

Механизм системных вызовов — это интерфейс, который предоставляет ядро ОС (kernel space) пользовательским процессам (user space).

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

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

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

Схема организации ОС расширяется добавлением интерфейса для взаимодействия приложений с ядром ОС — механизмом системных вызовов:

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 4. Интерфейс системных вызовов

Как оборудование взаимодействует с ОС?¶

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

Что это значит?¶

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 5. Интерфейс драйверов

Сервисы ОС¶

Функции ОС заключены в её сервисах (модулях). Реализация организации которых зависит от архитектуры ядра. Рассмотрим на примере монолитного ядра:

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 6. Основные компоненты ОС

Основные¶

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

Дополнительные¶

Основные абстракции¶

Процесс¶

Компьютерная программа сама по себе — лишь пассивная последовательность инструкций. В то время как процесс — непосредственное выполнение этих инструкций.

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

Состояние (контекст) процесса¶

Изнутри, процесс можно условно разделена на четыре части: Stack, Heap (кучу), Text (код) и данные (Data).

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 7. Сегменты памяти процесса

Состояния исполнения¶

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

Общая картина выглядит так:

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 8. Состояния исполнения процесса

Информация о процессе¶

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 9. Process Control Block

Информацию о процессах в целом, ОС хранит в специальной таблице процессов.

Поток¶

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

Поток выполнения (нить, thread) — последовательность исполнения инструкций. Ход исполнения программы**.

Процесс является контейнером ресурсов (адресное пространство, процессорное время и тд), а поток – последовательность инструкций, которые исполняются внутри этого контейнера.

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 10. Многопоточный процесс

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

Также поток называют легковесный процесс.

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

Рассмотрим на примере утилиты htop.

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 11. Вывод утилиты мониторинга процессов htop

PID — Process ID; Уникальное число идентификатор для каждого процесса

TGID — Tread Group ID; Индентификатор группы потоков

Чем хороши потоки¶

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

А файловая система — это система имён. То есть возможность выделять те или иные объекты данных и присваивать им имена, а также выделять иерархию.

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

Реализация многозадачности¶

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

Переключение контекста¶

Контекст процесса — это состояние регистров, при его выполнении на процессоре.

Но происходит прерывание и «процесс 1» снимается с выполнения на процессоре, чтобы вместо него выполнялся «процесс 2». Следовательно, нужно заполнить регистры уже теми данными, что относятся к «процессу 2».

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

В целом, смена контекста происходит между состояниями «Готов», «Ожидает» и «Исполняется».

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Критические секции и блокировки¶

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

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 12. Критические секции в потоках процесса

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

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

Все эти механизмы обеспечиваются операционной системой

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

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Рис 13. Аналогия пробки на перекрёстке с Deadlock

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

Пример Deadlock’a на псевдокоде¶

ШагПоток 1Поток 2
0Хочет захватить A и B, начинает с AХочет захватить A и B, начинает с B
1lock(A) — Захват Аlock(B) — Захват B
2lock(B) — Ожидает освобождения ресурса Block(A) — Ожидает освобождения ресурса A
DEADLOCK –> Далее код не выполнится, так как произошел Deadlock в коде выше
nunlock(A) — освобждение Aunlock(B) — освобждение B
n+1unlock(B) — освобждение Bunlock(A) — освобждение A

Схематично, Deadlock можно изобразить так:

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Адреса и управление памятью¶

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

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

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

Основные механизмы (сервисы)¶

Рассмотрели основные механизмы реализации этой цели: Scheduler (планировщик), Inter Process Communication (межпроцессное взаимодействие), Memory manager (управление памятью) и другие.

Абстракции¶

Ряд абстракций, которые вводит ОС: Process (процесс), Thread (поток исполнения), File (файл).

Заключение¶

Ух, и вот наконец-то я закончил писать этот материал. Надеюсь, вам было интересно и полезно.

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

Также, вы можете сделать Fork данного репозитория и после внести свои дополнения с помощью Pull Request. Спасибо за внимание!

Источник

Операционная система

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

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

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

В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows и системы класса UNIX (особенно Linux и Mac OS).

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Что такое операционная система кратко. Смотреть фото Что такое операционная система кратко. Смотреть картинку Что такое операционная система кратко. Картинка про Что такое операционная система кратко. Фото Что такое операционная система кратко

Содержание

Функции

Компоненты операционной системы:

Понятие

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

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

Операционные системы нужны, если:

Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как:

Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой операционной системе. В составе операционной системы различают три группы компонентов:

Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.

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

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

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

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

Эволюция и основные идеи

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

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

Пакетный режим

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

Разделение времени и многозадачность

Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.

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

Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.

Разделение полномочий

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

Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).

Реальный масштаб времени

Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.

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

Файловые системы и структуры

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

Файловая система — способ хранения данных на внешних запоминающих устройствах.

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

UNIX, стандартизация операционных систем и POSIX

К концу 1960-х годов отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся Atlas (Манчестерский университет), CTTS и ITSS (Массачусетский технологический институт, MIT), THE (Эйндховенский технологический университет), RS4000 (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).

Наиболее развитые операционные системы, такие как OS/360 (IBM), SCOPE (CDC (англ.)) и завершённый уже в 1970-х годах Multics (MIT и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.

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

Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ритчи и Брайана Кернигана), операционная система UNIX (первоначально UNICS, что обыгрывало название Multics) вобрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц:

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

В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD (Berkeley Software Distribution).

Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и Ричард Столлман, основатель проекта GNU.

Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945 [1] (POSIX).

Только системы, отвечающие спецификации Single UNIX Specification, имеют право носить имя UNIX. К таким системам относятся AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 и z/OS.

Операционные системы, следующие стандарту POSIX или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «UNIX-подобные» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму The Open Group и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу.

К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs (System V), на разработках университета Беркли (FreeBSD, OpenBSD, NetBSD), на основе Solaris (OpenSolaris, BeleniX, Nexenta), а также Linux, разработанная в части утилит и библиотек проектом GNU и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.

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

Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 1990-х годах.

Пост-UNIX-архитектуры

Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство — это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно — это файл». Эта концепция стала одним из основных принципов системы Plan 9 (название было позаимствовано из фантастического триллера «План 9 из открытого космоса» Эдварда Вуда-младшего), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в 1992 году.

Кроме реализации всех объектов системы в виде файлов и размещения их на едином и персональном для каждого терминала вычислительной сети пространстве (namespace), были пересмотрены другие архитектурные решения UNIX. Например, в Plan 9 отсутствует понятие «суперпользователь», и, соответственно, исключаются любые нарушения режима безопасности, связанные с нелегальным получением прав суперпользователя в системе. Для представления (хранения, обмена) информации Роб Пайк и Кен Томпсон разработали универсальную кодировку UTF-8, на сегодняшний день ставшую стандартом де-факто. Для доступа к файлам используется единый универсальный протокол 9P, по сети работающий поверх сетевого протокола (TCP или UDP). Таким образом, для прикладного ПО сети не существует — доступ к локальным и к удалённым файлам единообразен. 9P — байт-ориентированный протокол, в отличие от других подобных протоколов, являющихся блок-ориентированными. Это также результат работы концепции: доступ побайтно — к унифицированным файлам, а не поблочно — к разнообразным и сильно изменяющимися с развитием технологий устройствам. Для контроля доступа к объектам не требуется иных решений, кроме уже существующего в операционной системе контроля доступа к файлам. Новая концепция системы хранения избавила администратора системы от изнурительного труда по сопровождению архивов и предвосхитила современные системы управления версиями файлов.

Операционные системы, созданные на базе или идеях UNIX, такие как всё семейство BSD и системы GNU/Linux, постепенно перенимают новые идеи из Bell Labs. Возможно, эти новые идеи ждёт большое будущее и признание ИТ-разработчиков.

Новые концепции были использованы Робом Пайком в Inferno.

На основе Plan 9 в Испании разрабатываются системы Off++ и Plan B, носящие экспериментальный характер.

К попыткам создать пост-UNIX-архитектуру можно также отнести разработку системы программирования и операционной среды Оберон в Швейцарской высшей технической школе (ETH Zurich) под руководством профессора Никлауса Вирта.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *