Операционная система: различия между версиями
>Семён Соколов м (Содержимое страницы заменено на «Хуй») |
|||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 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. | ||
+ | |||
+ | == Ссылки == | ||
+ | |||
+ | {{википедия|Операционная система}} | ||
+ | |||
+ | {{Блок новостей|категория=Новости:Операционные системы}} | ||
+ | |||
+ | [[Категория:Операционные системы]] | ||
+ | [[Категория:Материалы Антикопирайта]] |
Текущая версия от 19:25, 8 мая 2024
Операцио́нная систе́ма, ОС (англ. operating system) — базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.
При включении компьютера операционная система загружается в память раньше остальных программ и затем служит платформой и средой для их работы. Помимо вышеуказанных функций ОС может осуществлять и другие, например, предоставление пользовательского интерфейса, сетевое взаимодействие и т. п.
С 1990-х наиболее распространёнными операционными системами для персональных компьютеров и серверов являются ОС семейства Microsoft Windows и Windows NT, Mac OS и Mac OS X, системы класса UNIX, и Unix‐подобные (особенно GNU/Linux).
ФункцииПравить
Основные функции (простейшие ОС):
- Загрузка приложений в оперативную память и их выполнение;
- Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);
- Управление оперативной памятью (распределение между процессами, виртуальная память);
- Управление доступом к данным на энергонезависимых носителях (таких как Жёсткий диск, Компакт-диск и т. д.), как правило с помощью файловой системы;
- Пользовательский интерфейс;Сетевые операции, поддержка стека протоколов
Дополнительные функции:
- Параллельное или псевдопараллельное выполнение задач (многозадачность);
- Взаимодействие между процессами;
- Защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений;
- Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).
Понятие операционной системыПравить
Существуют две группы определений ОС: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.
Есть приложения вычислительной техники, для которых ОС излишни. Напр., встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без ОС, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске. (Многие встроенные компьютеры и даже некоторые игровые приставки на самом деле работают под управлением своих ОС).
Операционные системы, в свою очередь, нужны, если:
- вычислительная система используется для различных задач, причём программы, исполняющие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев ОС отвечает на неё реализацией файловой системы. Современные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы с вводом другой, минуя относительно медленные дисковые операции;
- различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, ОС предоставляют системные библиотеки часто используемых подпрограмм (функций);
- между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от чужого взора, а возможная ошибка в программе не вызывала тотальных неприятностей;
- необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, «нарезает» процессорное время на короткие отрезки и предоставляет их поочередно различным исполняющимся программам (процессам);
- наконец, оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат операционные среды, одна из которых — оболочка и набор стандартных утилит — является частью ОС (прочие, такие, как графическая операционная среда, образуют независимые от ОС прикладные платформы). Таким образом, современные универсальные ОС можно охарактеризовать прежде всего как
- использующие файловые системы (с универсальным механизмом доступа к данным),
- многопользовательские (с разделением полномочий),
- многозадачные (с разделением времени).
Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В составе ОС различают три группы компонентов:
- ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевую подсистему, файловую систему;
- системные библиотеки и
- оболочку с утилитами.
Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудованием.
Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов и других библиотечных подпрограмм (часть из которых должна реализоваться только в определённых классах систем; напр., в системах «реального времени») и около 200 команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относительно способов их реализации.
Стандарт, кроме этого, определяет способ адресации файлов в системе, локализацию (установки, касающиеся национально-специфических моментов, таких, как язык сообщений или формат даты и времени), совместимый набор символов, синтаксис регулярных выражений, структуру каталогов в файловой системе, формат командной строки и некоторые другие аспекты поведения ОС.
В определении состава ОС значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав ОС включается и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков). Операциональной замкнутостью обладают системы, удовлетворяющие «разработческому» профилю в терминах стандарта.
Эволюция операционных систем и основные идеиПравить
Предшественником ОС следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).
В 1950-60-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы.
Пакетный режимПравить
Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём ОС может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
Разделение времени и многозадачностьПравить
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких, как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие, как массивные вычисления) — в пакетном режиме.
Разделение полномочийПравить
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности модификации исполняемой программы или данных одной программы в памяти компьютера другой (содержащей ошибку или злонамеренно подготовленной) программы, а также модификации самой ОС прикладной программой.
Реализация разделения полномочий в ОС была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).
Реальный масштаб времениПравить
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
Включение функции реального масштаба времени в ОС позволило создавать системы, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и (или) в режиме разделения времени).
Файловые системы и структурыПравить
Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных диск)
ПримечанияПравить
См. такжеПравить
ЛитератураПравить
- Отставнов Максим «Свободные программы и системы в школе». — М., 2003.
- Raymond Eric S. The Art of Unix Programming. — 2003.