Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Функции операционных систем персональных компьютеров (История операционных систем )

Содержание:

Введение

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

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

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

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

  • краткий экскурс в историю операционных систем;
  • дать определение ОС;
  • рассмотреть основные функции ОС.

История операционных систем

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

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

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

С дальнейшим увеличением производительности паузы между запросами одного пользователя стали неприемлемы, появилась концепция разделения времени: если подобрать оптимальную группу пользователей, то они смогут использовать один компьютер значительно эффективнее. Эта концепция была впервые описана Джоном Бэкусом в 1954 году: «с помощью разделения времени большой компьютер можно представить как несколько маленьких». Затем Боб Бемер в начале 1957 года в статье «How to consider a computer» для журнала «Automatic Control Magazine» в заключение написал: «…один или несколько компьютеров, намного производительнее, чем можно сейчас представить, будет обслуживать множество пользователей. Они (пользователи) больше не будут использовать компьютер как таковой, вместо этого они будут использовать оборудование для ввода-вывода (терминалы)»

Система с разделением времени начала разрабатываться Джоном Маккарти в конце 1957 года, на модификации IBM 704, и позже на модифицированном IBM 7090. В ноябре 1961 года им была продемонстрирована CTSS (Compatible Time-Sharing System). Другим претендентом на первую демонстрацию системы разделения времени была созданная Дональдом Блитцером система PLATO II, публично демонстрировавшаяся в Роберт Аллертон Парк в Университете Иллинойса в начале 1961 года. Первой же коммерчески успешной системой разделения времени была Dartmouth Time Sharing System (использовалась с 1964 по 1999).

В 1960 году Дагом Энгельбартом (он же изобрёл компьютерную мышь) была изобретена концепция GUI (Graphical user interface - графического интерфейса пользователя). В 1973 году на её основе в лаборатории Xerox PARC была разработана концепция WIMP (Windows, Icons, Menus, Pointers – окна, значки, меню, указатели), и создан первый персональный компьютер Xerox Alto с графической операционной системой, трёхкнопочной мышкой, с текстовым редактором WYSIWYG, сетевой платой, первой сетевой игрой с управлением мышкой (Alto Star). Из-за большой стоимости (себестоимость - 12000$), эта разработка так и не стала популярной, но идеи Alto были использованы компанией Apple спустя 10 лет и, в последствии, Microsoft.

Следующая значимая веха была в 1975 году, когда компания MITS выпустила один из первых персональных компьютеров Altair 8800 с микропроцессором Intel 8080 и с шиной S-100 которая стала первой промышленной интерфейсной шиной для микрокомпьютеров, который в виде набора «сделай сам» можно было купить менее, чем за 500$. Первое программное обеспечение Microsoft – Altair BASIC, было написано для этого компьютера, а заявление Била Гейтса по поводу «воровства» Altair BASIC многие считают рождением проприетарного программного обеспечения. Для Altair 8800 была написана первая операционная система для микрокомпьютеров с поддержкой дисковых магнитных накопителей CP/M (Control Program/Monitor, позднее Control Program for Microcomputers), которая была портирована на все популярные платформы того времени.

В 1981 вышел IBM PC особенностью которого была открытая архитектура, чем воспользовались многие энтузиасты и появилось много производителей программного и аппаратного обеспечения делающих «клоны IBM-PC», которые известны до сих пор, например, Dell и AMI. В качестве операционной системы была выбрана MS-DOS (в IBM называлась PC-DOS), которую Microsoft сделала из свежекупленной по этому случаю 86-DOS, которая в свою очередь была портом CP/M на процессор 8086.

Функции операционных системы

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

Рисунок 2. Многоуровневая схема вычислительной системы

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

Рисунок 3. Карта ядра ОС Linux

На примере карты ядра операционной системы Linux хорошо просматриваются функции современных операционных систем:

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

Загрузка операционной системы

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

Решением является использование начального загрузчика - BIOS (Basic Input/Output System), или более современный EFI (Extensible Firmware Interface). Эта встроенная программа обладает достаточной функциональностью, чтобы загрузить другую системную программу, которая будет загружать операционную систему с загрузочного диска.

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

Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера (процедуры POST, power-on self-test).

Загрузчик операционной системы:

  • обеспечивает необходимые средства для диалога с пользователем компьютера (например, загрузчик позволяет выбрать операционную систему для загрузки);
  • приводит аппаратуру компьютера в состояние, необходимое для старта ядра операционной системы (например, на не-x86 архитектурах перед запуском ядра загрузчик должен правильно настроить виртуальную память);
  • загружает ядро операционной системы в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с жесткого диска. Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это пригодиться на ранней стадии отладки создаваемой компьютерной системы);
  • формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы);
  • передаёт управление ядру операционной системы.

Например, включение IBM PC с загрузкой с HDD: процессор читает код BIOS из ПЗУ, записывает в ОЗУ и передаёт управление коду BIOS. Затем BIOS выполняет тестирование оборудования компьютера (POST), читает и применяет настройки из ПЗУ, производит чтение 512 байт первого сектора HDD (MBR) в ОЗУ по адресу 0x00007C00 (0x07C0:0x0000 в формате реального режима), затем прочитанному коду передаётся управление. Этот код читает и анализирует таблицу разделов жёсткого диска, а затем, в зависимости от вида загрузчика, либо передаёт управление загрузочному коду активного раздела жёсткого диска, либо самостоятельно загружает ядро с диска (например, сетевого или съёмного) в оперативную память и передаёт ему управление.

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

Пользовательский интерфейс

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

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

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

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

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

Периферийные устройства, драйверы, файловые системы

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

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

Рисунок 4. Наглядная иллюстрация драйвера

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

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

Примечательно, что абстракция «буква диска», используемая традиционно в операционных системах Windows для различия дисков и разделов друг от друга, в частности буквы «C» как диска на котором установлена операционная система, уходит корнями к MS-DOS, где буквы «A» и «B» зарезервированы для двух приводов гибких дисков, которая в свою очередь унаследовала это от CP/M в 1970-х, и, наконец от CP/CMS разработанной в 1967 году.

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

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

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

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

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

Процесс - программа, которая выполняется в текущий момент на компьютере. Стандарт ISO 9000:2000 определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе - это только пассивная последовательность инструкций, в то время как процесс - это непосредственное выполнение этих инструкций.

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

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

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

Более развитые многозадачные системы проводят распределение ресурсов динамически, когда задача стартует в памяти или покидает память в зависимости от её приоритета и от стратегии системы. Такая многозадачная среда обладает следующими особенностями:

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

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

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

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

Многопоточное выполнение программы имеет следующие преимущества перед многозадачным:

  • Упрощение программы в некоторых случаях за счёт использования общего адресного пространства;
  • Меньшие относительно процесса временные затраты на создание потока;

К достоинствам многопоточного выполнения программы перед однопоточным можно отнести следующее:

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

Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром операционной системы или процессом, использующим механизмы операционной системы и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети. Из механизмов, предоставляемых операционной системой для взаимодействия процессов выделяют:

  • механизмы обмена сообщениями;
  • механизмы синхронизации;
  • механизмы разделения памяти;
  • механизмы удалённых вызовов (RPC).

Для оценки производительности различных механизмов IPC используют следующие параметры:

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

Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами.

Сетевые функции операционных систем

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

Причины, по которым компьютеры объединяют сеть:

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

Вычислительные сети принято делить по территориальной распространённости, но к разным масштабам сети также применяются различные подходы для решения поставленных вопросов в рамках той или иной сети с различными протоколами:

Рисунок 5. Территориальное деление сетей

  • WAN (Wide Area Network) – глобальная вычислительная сеть, покрывающая большие географические регионы;
  • RAN (Regional Area Network) – региональная вычислительная сеть;
  • MAN (Metropolitan Area Network) – городские сети между учреждениями в пределах одного или нескольких близлежащих городов;
  • CAN (Campus Area Network) – кампусная сеть, объединяет локальные сети близко расположенных зданий;
  • LAN (Local Area Network)– локальные сети, имеющие замкнутую инфраструктуру до выхода на поставщиков услуг;
  • PAN (Personal Area Network) – персональная сеть, предназначенная для взаимодействия различных устройств, принадлежащих одному владельцу;
  • BAN (Body Area Network) – Сеть надеваемых или имплантированных устройств;
  • В последнее время стали еще выделять класс корпоративных сетей, их масштаб и структура определяются потребностями предприятий – владельцев.

Сетевая модель OSI (ГОСТ Р ИСО/МЭК 7498-1-99) – сетевая модель стека сетевых протоколов, посредствам которой различные сетевые устройства могут взаимодействовать друг с другом.

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

Рисунок 6. Модель OSI

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

В процессе обмена с помощью стека протоколов TCP/IP используются адреса и порты, каждая пара которых определяет сокет (mmm.nnn.ppp.qqq:xxxxx). В основном используется два сокета – сокет отправителя и сокет получателя.

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

Разграничение доступа

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

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

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

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

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

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

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

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

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

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

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

Существуют две основные модели разграничения доступа:

  • избирательное (дискреционное) разграничение доступа;
  • полномочное (мандатное) разграничение доступа.

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

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

Система правил избирательного разграничения доступа формулируется следующим образом.

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

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

Заключение

Компьютеры за последние пол века сделали огромный скачок в своём развитие, и нашли применение практически во всех современных отраслях, но пользовательские интерфейсы практически не поменялись, не считая перехода к графическим оболочкам, но и тем уже больше сорока лет, в них легко угадываются сходства с первыми графическими оболочками Xerox Alto и Apple Lisa. Большинство современных компьютеров построено согласно классическим идеям, предложенным Чарльзом Бэббеджем более полутора столетий назад и принципам «фон-неймановской» архитектуры.

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

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

Список литературы

  1. Коньков К.А., Карпов В.Е. Основы операционных систем. М.: ИНТУИТ. РУ, 2005 – 536 с.
  2. Гордеев А.В. Операционные системы: Учебник для вузов. – 2-е изд. – СПб.: Питер, 2007 – 416 с.
  3. Синицын С.В., Батаев А.В., Налютин Н.Ю. Операционные системы. Учебник. – 3-е изд. – М.: Academia, 2013.
  4. Деннинг П.Дж., Браун Р.Л. Операционные системы // Современный компьютер. – М., 1986.
  5. Иртегов Д.В. Введение в операционные системы. – 2-е изд. – СПб.: BHV-СПб, 2007.
  6. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. – СПб.: Питер, 2002 – 544 с.
  7. Столлингс У. Операционные системы. — М.: Вильямс, 2004 — 848 с.
  8. Таненбаум Э.С. Многоуровневая организация ЭВМ. — М.: Мир, 1979 — 547 с.
  9. Таненбаум Э.С. Современные операционные системы. — 2-е изд. — СПб.: Питер, 2005 — 1038 с.
  10. Таненбаум Э.С., Вудхалл А.С. Операционные системы. Разработка и реализация. – 3-е изд. – СПб.: Питер, 2007 – 704 с.
  11. Кренкель Т.З., Коган А.Г., Тараторин А.М. Персональные ЭВМ в инженерной практике. – М.: Радио и связь, 1989 – 166 с.
  12. Бэкус Д.В. Computer Advanced Coding Techniques – MIT, 1954 – 16-2 с.
  13. Бэмер Р.У. How to consider a computer // Automatic Control Magazine – AADECA, 1957.
  14. Operating system // Википедия, свободная энциклопедия. — Электрон. дан. — Сан-Франциско: Фонд Викимедиа, 2018. — Режим доступа: https://ru.wikipedia.org/?oldid=874324757
  15. History of operating systems // Википедия, свободная энциклопедия. — Электрон. дан. — Сан-Франциско: Фонд Викимедиа, 2018. — Режим доступа: https://ru.wikipedia.org/?oldid=872881090