Экспортированная страница участника

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Интерфейс операционной системы macOS Ventura

Операционная система (OS) — это базовое программное обеспечение на компьютере, и оно назначает различные ресурсы вашего компьютера для других приложений. Одним из типов ресурсов являются внешние устройства, такие как принтер. Операционная система подходит, например, для того, чтобы две программы не отправляли одновременно информацию на один и тот же принтер, но чтобы они добавлялись в список ожидания перед печатью[1]. Другой тип ресурсов — это внутренние устройства, такие как память и процессоры. Это базовые компоненты, за которыми также следит операционная система.

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

Основные понятия[править]

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

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

История[править]

Мейнфрейм IBM System360

После окончания Второй мировой войны, когда Говард Эйкен, Джон фон Нейман, Джон Преспер Экерт и Джон Уильям Мочли в США и Конрад Цузе в Германии создали компьютеры, которые занимали целые комнаты и состояли из десятков тысяч вакуумных ламп[5]. Эти компьютеры были спроектированы, построены, запрограммированы и управлялись одной и той же группой людей, но без операционной системы. Все программирование осуществлялось на языке машинного кода, часто путем подключения проводов в нужные разъёмы. Основной задачей этих машин было решение простых арифметических задач, таких как создание таблиц синусов и косинусов.

В 1964 году для мейнфремов IBM System/360 была разработана собственная операционная система. Система была написана на низкоуровневом языке программирования ассемблер[6]. ОС поддерживала широкий спектр приложений, это первая операционная система, которая требовала устройства хранения данных с прямым доступом.

Кен Томпсон и Денис Ритчи

В 1970 году была выпущена операционная система UNIX, разработчиками которой стали Кен Томпсон и Денис Ритчи[7]. Изначально она была написана на языке ассемблер, но позже переписана в начале на язык B (Би), а в 1973 году на язык С (Си). Система свободно распространялась на магнитных лентах в университетах и колледжах. UNIX был написан на машинно-независимом языке, это значит, что система могла работать на любом компьютерном оборудовании. На основе UNIX появились такие системы как BSD UNIX, FreeBSD, NetBSD, Linux.

Графический интерфейс Macintosh

В начале 1980-х годов Apple выпустил первую операционную систему с графическим интерфейсом. Операционная система могла использоваться не только на опытными пользователями и научными сотрудниками, но и подходила для рядового пользователя[8].

В 1985 году с выходом микропроцессора Intel 80386 который обладал 32-разрядной архитектурой, появилась возможность соpдавать и использовать многозадачные операционные системы[9].

В 1991 году финский студент Линус Торвальдс выпустил операционную систему на ядре Linux. Позже, благодаря другим разработчикам у системы появился графический интерфейс[10]. На основе Linux было выпущено множество операционных систем, такие как: Red Hat, Debian, OpenSUSE, Gentoo, Ubuntu, Android.

В 1995 году компанией Microsoft была выпущена коммерческая операционная система Windows 95. Это была многозадачная система с графическим интерфейсом[11].

В 2001 году была выпущена операционная система macOS, основанная на платформе NeXTSTEP и ядре BSD[8].

Компоненты[править]

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

Ядро[править]

Структура типичной компьютерной системы и положение операционной системы в ней.

Путем использования прошивки и драйверов устройств, ядро обеспечивает самый простой уровень контроля над всеми аппаратными устройствами компьютера. Оно регулирует доступ к памяти для программ в оперативной памяти, определяет, какие программы имеют доступ к каким аппаратным ресурсам, настраивает или сбрасывает рабочие состояния ЦП для максимальной эффективности в любое время, а также организует данные для долгосрочного сохранения файловых систем на устройствах хранения, таких как диски, ленты, флэш-память и т. д[12].

Выполнение программы[править]

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

Прерывания[править]

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

Прерывание программного обеспечения[править]

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

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

Аппаратное прерывание[править]

Устройства ввода/вывода (I/O) работают медленнее, чем процессор. Это может замедлить работу компьютера, если процессор будет ждать завершения каждой операции ввода-вывода. Однако существует решение — компьютер может использовать прерывания для завершения операций ввода-вывода, что позволяет избежать необходимости постоянного опроса или напряженного ожидания[16].

Ввод/Вывод[править]

Когда пользователь вводит символ на клавиатуре компьютера, он мгновенно появляется на экране. Аналогично, перемещение мыши приводит к мгновенному перемещению курсора по экрану. Каждый символ, нажатый на клавиатуре, и каждое движение мыши вызывает прерывание, известное как ввод-вывод на основе прерываний. Ввод на основе прерывания происходит, когда процесс вызывает прерывание для каждого передаваемого символа или слова[17].

Прямой доступ к памяти[править]

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

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

Одной из задач многопрограммного ядра операционной системы является управление всей системной памятью, используемой программами. Это гарантирует, что каждая программа имеет независимый доступ к памяти и не нарушает работу других программ[19]. Ранее использовалось совместное управление памятью, когда все программы использовали менеджер памяти ядра и не превышали выделенный им объем. Однако такая система стала редкостью из-за возможности ошибок в программах, которые могут привести к перезаписи памяти других программ или даже операционной системы. Вредоносные программы или вирусы также могут изменять память других программ или нарушать работу всей системы. Таким образом, для сбоя системы достаточно только одной программы с неправильным поведением.

Многозадачность[править]

Многозадачность — это запуск нескольких независимых программ на одном компьютере, которые работают параллельно. Однако, поскольку большинство компьютеров не может выполнить более одной или двух задач одновременно, многозадачность достигается за счет разделения времени, когда каждая программа использует компьютер в определенный промежуток времени[20].

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

Драйверы устройств[править]

Драйвер устройства — это специальный вид программного обеспечения, созданный для взаимодействия с аппаратными устройствами. Он представляет собой интерфейс для связи с устройством через конкретную компьютерную шину или подсистему связи, к которой подключено оборудование, и обеспечивает передачу команд и получение данных от устройства[21]. Для этого драйвер также взаимодействует с операционной системой и программными приложениями. Это специализированное программное обеспечение, которое зависит от аппаратного обеспечения и является специфичным для конкретной операционной системы. Драйвер позволяет другим программам, таким как операционная система, пакет программного обеспечения приложений или компьютерная программа, работающая под управлением ядра операционной системы, взаимодействовать с аппаратным устройством без проблем. Кроме того, драйвер обеспечивает необходимую обработку прерываний для любых асинхронных временных аппаратных потребностей в интерфейсе.

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

Консоль системы Novell Netware

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

Примечания[править]

  1. Олег Довбня Какие бывают операционные системы? (01.08.2013). Проверено 8 ноября 2023.
  2. Системное и прикладное программное обеспечение (30.12.2016). Проверено 8 ноября 2023.
  3. Устройство ПК: название всех частей, их назначение и краткое описание (12.08.2020). Проверено 8 ноября 2023.
  4. Наталия Елманова, Олег Татарников Операционные системы (01.07.2005). Проверено 8 ноября 2023.
  5. The Modern History of Computing (англ.) (09.06.2006). Проверено 8 ноября 2023.
  6. IBM OS/360 (англ.). Проверено 8 ноября 2023.
  7. Что такое UNIX и зачем он нужен. Проверено 8 ноября 2023.
  8. 8,0 8,1 Андрей Созинов История компании Apple в компьютерах: от Apple I до новейшего Mac Studio (08.07.2022). Проверено 8 ноября 2023.
  9. INTEL 80386 & 80387 (англ.). Проверено 8 ноября 2023.
  10. Руслан Богатырев Linux: истоки новой философии программирования (16.01.2001). Проверено 8 ноября 2023.
  11. Microsoft Windows 95: First Retail Release (англ.). Проверено 8 ноября 2023.
  12. Архитектура ос. ядро и его функции. Проверено 8 ноября 2023.
  13. Операционные системы. — СПб: Питер, 2009. — С. 14,15. — 415 с. — ISBN 9785947236323, 594723632X.
  14. Операционные системы. — СПб: Питер, 2009. — С. 18—20. — 415 с. — ISBN 9785947236323, 594723632X.
  15. Операционные системы. — СПб: Питер, 2009. — С. 21—22. — 415 с. — ISBN 9785947236323, 594723632X.
  16. Алиева Е.В. Аппаратные прерывания. Контроллер прерываний (23.01.2017). Проверено 8 ноября 2023.
  17. Операционные системы. — СПб: Питер, 2009. — С. 131—133. — 415 с. — ISBN 9785947236323, 594723632X.
  18. Эндрю Таненбаум Прямой доступ к памяти. Проверено 8 ноября 2023.
  19. Макаров П.С. Операционные системы: Управление памятью (рус.) // Ульяновский государственный технический университет : Пособие. — 2008. — С. 31—35.
  20. Макаров П.С. Операционные системы: Управление памятью (рус.) // Ульяновский государственный технический университет : Пособие. — 2008. — С. 17—18.
  21. Олег Довбня Как работает драйвер? (13.08.2013). Проверено 8 ноября 2023.
  22. Виды интерфейсов пользователя операционных систем. Проверено 8 ноября 2023.
Ruwiki logo.png Одним из источников этой статьи является статья в википроекте «Рувики» («Багопедия», «ruwiki.ru») под названием «Участник:Destroyer87/Черновик/Операционная система», находящаяся по адресу:

«https://ru.ruwiki.ru/wiki/Участник:Destroyer87/Черновик/Операционная_система»

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий.
Всем участникам Рувики предлагается прочитать материал «Почему Циклопедия?»