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

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.05.2023

Просмотров: 223

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

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

Рисунок 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» могут работать только в графическом режиме.

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

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

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

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