Изменения

Перейти к навигации Перейти к поиску
32 323 байта добавлено ,  17 лет назад
Новая: '''Операцио́нная систе́ма''', '''ОС''' ({{lang-en|operating system}}) — базовый комплекс [[компьютерная программа|компь...
'''Операцио́нная систе́ма''', '''ОС''' ({{lang-en|operating system}}) — базовый комплекс [[компьютерная программа|компьютерных программ]], обеспечивающий управление аппаратными средствами [[компьютер]]а, работу с [[файл]]ами, ввод и вывод данных, а также выполнение [[прикладное программное обеспечение|прикладных программ]] и [[Утилиты|утилит]].

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

С [[1990-е|1990-х]] наиболее распространёнными операционными системами для [[персональный компьютер|персональных компьютеров]] и [[сервер]]ов являются ОС семейства [[Microsoft]] [[Microsoft Windows|Windows]] и [[Windows NT]], [[Mac OS]] и [[Mac OS X]], системы класса [[UNIX]], и Unix‐подобные (особенно [[GNU/Linux]]).

== Функции ==

Основные функции (простейшие ОС):
* Загрузка приложений в оперативную память и их выполнение;
* Стандартизованный доступ к периферийным устройствам ([[устройства ввода-вывода]]);
* Управление оперативной памятью (распределение между процессами, [[виртуальная память]]);
* Управление доступом к данным на энергонезависимых носителях (таких как [[Жёсткий диск]], [[Компакт-диск]] и т. д.), как правило с помощью [[Файловая система|файловой системы]];
* Пользовательский интерфейс;
* Сетевые операции, поддержка стека протоколов

Дополнительные функции:
* Параллельное или [[псевдопараллельное выполнение задач]] ([[многозадачность]]);
* Взаимодействие между процессами;
* Защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений;
* Разграничение прав доступа и многопользовательский режим работы ([[аутентификация]], [[авторизация]]).

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

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

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

Операционные системы, в свою очередь, нужны, если:

* вычислительная система используется для различных задач, причём программы, исполняющие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев ОС отвечает на неё реализацией файловой системы. Современные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы с вводом другой, минуя относительно медленные дисковые операции;
* различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, ОС предоставляют [[системные библиотеки]] часто используемых подпрограмм (функций);
* между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от чужого взора, а возможная ошибка в программе не вызывала тотальных неприятностей;
* необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «[[разделение времени]]». При этом специальный компонент, называемый планировщиком, «нарезает» процессорное время на короткие отрезки и предоставляет их поочередно различным исполняющимся программам (процессам);
* наконец, оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат [[операционная среда|операционные среды]], одна из которых — оболочка и набор стандартных утилит — является частью ОС (прочие, такие, как графическая операционная среда, образуют независимые от ОС прикладные платформы). Таким образом, современные универсальные ОС можно охарактеризовать прежде всего как
*# использующие файловые системы (с универсальным механизмом доступа к данным),
*# многопользовательские (с разделением полномочий),
*# многозадачные (с разделением времени).

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

* [[ядро операционной системы|ядро]], содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевую подсистему, файловую систему;
* [[системная библиотека|системные библиотеки]] и
* [[оболочка операционной системы|оболочку]] с [[утилита]]ми.

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

Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов и других библиотечных [[подпрограмма|подпрограмм]] (часть из которых должна реализоваться только в определённых классах систем; напр., в системах «реального времени») и около 200 команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относительно способов их реализации.

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

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

== Эволюция операционных систем и основные идеи ==

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

== «[[Unix]]», стандартизация ОС и POSIX ==

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

Наиболее развитые ОС, такие как «[[OS/360]]» (компания «[[IBM]]»), «[[SCOPE]]» (компания «[[CDC]]») и завершённый уже в [[1970-е|1970-х годах]] «[[MULTICS]]» (МТИ и компания «[[Bell Labs]]»), предусматривали возможность исполнения на многопроцессорных компьютерах.

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

Задуманная и реализованная в [[1969]] году [[Томпсон, Кен|Кеном Томпсоном]] при участии нескольких коллег (включая [[Ричи, Деннис|Денниса Ричи]] и [[Керниган, Брайан|Брайана Кернигана]]), ОС «[[Unix]]» («[[Unix]]»; первоначально «UNICS», что обыгрывало название «MULTICS») вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих её от большинства предшественниц:

* простая метафорика (два ключевых понятия: [[вычислительный процесс]] и файл);

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

* минимизация ядра (кода, выполняющегося в «реальном» («привилегированном») режиме процессора) и количества системных вызовов;

* независимость от аппаратной архитектуры и реализация на машиннонезависимом [[язык программирования|языке программирования]] (язык программирования «[[Си (язык программирования)|Си]]» стал «побочным продуктом» разработки «[[Unix]]»);

* унификация файлов.

«[[Unix]]», благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и в отрасли, получившей прототип единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.

В конце 70-х годов XX века сотрудники [[Калифорнийский университет Беркли|Калифорнийского университета в Беркли]] внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами [[TCP/IP]]. Их разработка стала известна под именем [[BSD]] — «[[Berkeley Software Distribution]]».

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

Благодаря конкурентности реализаций архитектура ОС «[[Unix]]» стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — [[ISO/IEC 9945]]<ref>Свежая версия ISO/IEC 9945 принята [[ISO|Международной организацией стандартизации (ИСО)]] в [[2003|2003 г.]]</ref>.

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

К Unix-подобным ОС относятся системы, базирующиеся на последней версии «[[Unix]]», выпущенной «Bell Labs» («System V»), на разработках Университета Беркли («[[FreeBSD]]», «[[OpenBSD]]», «[[NetBSD]]»), а также ОС «[[GNU/Linux]]», разработанная в части утилит и библиотек проектом «GNU» и в части ядра — сообществом, возглавляемым [[Торвальдс, Линус|Линусом Торвальдсом]].

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

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

== «Post Unix» архитектуры ОС ==

Коллектив, создавший ОС «Юникс», попытался позднее повторить свой успех, обобщив и дополнив исходную концепцию. Таким образом появились ОС «[[Plan9]]» и «[[Inferno (операционная система)|Inferno]]», не получившие, впрочем, широкого распространения..

Позднее на основе «Plan9» в [[Испания|Испании]] были разработаны ОС «[[Off++]]» и «[[Plan B]]», носящие экспериментальный характер.

К попыткам создать постюниксовскую архитектуру можно также отнести разработку системы программирования и операционной среды «[[Оберон (язык программирования)|Оберон]]» в [[Швейцарский федеральный технологический институт|Швейцарском федеральном технологическом институте]] (ETH Zurich) под руководством [[профессор|проф.]] [[Вирт, Никлаус|Никлауса Вирта]].

== Примечания ==
<references />

== См. также ==
* [[Список операционных систем]]
* [[Многозадачность]]
* [[Хронология операционных систем]]
* [[Операционное окружение]]

== Литература ==
* [[Деннинг, П.Дж.|Деннинг П.Дж.]], [[Браун, Р.Л.|Браун Р. Л.]] «Операционные системы.» В сб.: «Современный компьютер». — М.: 1986.
* [[Керниган, Брайан|Керниган Брайан]] и [[Пайк, Роб|Пайк Роб]]. «UNIX — универсальная среда программирования». — М., 1992 (классическое введение в открытые ОС, по большей части сохранившее актуальность).
* [[Отставнов, Максим Евгеньевич|Отставнов Максим]]. «[http://www.otstavnov.com/fsft Свободные программы и системы в школе]». — М., 2003.
* [[Таненбаум, Эндрю|Э. Таненбаум]], [[Вудхалл, А.|А. Вудхалл]]. [http://os24.org/files/books/tanenbaum-os.zip «Операционные системы: Разработка и реализация.»] — СПб.: 2006. — ISBN 5-469-00148-2
* [[Таненбаум, Эндрю|Э. Таненбаум]]. «Современные операционные системы. 2-е изд.» — СПб.: Питер, 2005. — 1038 с.: ил. ISBN 5-318-00299-4
* [[Иртегов Д.В.|Дмитрий Иртегов]]. «Введение в операционные системы 2-е. изд.» — BHV-СПб, 2007. ISBN 978-5-94157-695-1
* [[А. Гордеев]]. «Операционные системы» — СПб.: Питер, 2007. ISBN 978-5-94723-632-3 (учебник для [[ВУЗ]]ов)
* [[Рэймонд, Эрик С.|Raymond Eric S]]. [http://www.catb.org/~esr/writings/taoup/ The Art of Unix Programming]. — 2003.
* [[Собелл, Марк Дж.|Sobell Mark G]]. Unix System V. A Practical Guide. 3rd ed. — 1995.

== Ссылки ==

{{википедия|МСВС}}

[[Категория:Операционные системы]]
Анонимный участник

Реклама:

Навигация