Изменения

м
Содержимое страницы заменено на «Хуй»
Строка 1: Строка 1: −
'''Операцио́нная систе́ма''', '''ОС''' ({{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-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
  −
 
  −
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) [[центральный процессор]] и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких, как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие, как массивные вычисления) — в пакетном режиме.
  −
 
  −
=== Разделение полномочий ===
  −
 
  −
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности модификации исполняемой программы или данных одной программы в памяти компьютера другой (содержащей ошибку или злонамеренно подготовленной) программы, а также модификации самой ОС прикладной программой.
  −
 
  −
Реализация разделения полномочий в ОС была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё [[адресное пространство]] компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
  −
 
  −
=== Реальный масштаб времени ===
  −
 
  −
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
  −
 
  −
Включение функции реального масштаба времени в ОС позволило создавать системы, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и (или) в режиме разделения времени).
  −
 
  −
=== Файловые системы и структуры ===
  −
 
  −
Постепенная замена носителей с последовательным доступом ([[перфолента|перфолент]], [[перфокарта|перфокарт]] и [[стример|магнитных лент]]) накопителями произвольного доступа (на [[магнитный диск|магнитных диск]])
  −
 
  −
== Примечания ==
  −
<references />
  −
 
  −
== См. также ==
  −
* [[Список операционных систем]]
  −
* [[Многозадачность]]
  −
* [[Хронология операционных систем]]
  −
* [[Операционное окружение]]
  −
 
  −
== Литература ==
  −
* Отставнов Максим «[http://www.otstavnov.com/fsft Свободные программы и системы в школе]». — М., 2003.
  −
* [[Эрик Рэймонд|Raymond Eric S]]. [http://www.catb.org/~esr/writings/taoup/ The Art of Unix Programming]. — 2003.
  −
 
  −
== Ссылки ==
  −
 
  −
{{википедия|Операционная система}}
  −
 
  −
[[Категория:Операционные системы]]
 
Анонимный участник