Операционная система: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
Нет описания правки |
EyeBot (обсуждение | вклад) м автоматическая отмена правки участника 77.50.166.148 - R:1 ORES: 0.9347 Метка: откат |
||
(не показано 277 промежуточных версий, сделанных более чем 100 участниками) | |||
Строка 1: | Строка 1: | ||
{{другие значения}} |
{{другие значения}} |
||
{{redirect|OS}} |
{{redirect|OS}} |
||
{{Обобщённая архитектура ОС}} |
|||
'''Операцио́нная систе́ма''', сокр. '''ОС''' ({{lang-en|operating system, OS}}) — комплекс взаимосвязанных программ, предназначенных для управления ресурсами вычислительного устройства и организации взаимодействия с пользователем. |
|||
'''Операцио́нная систе́ма''', [[Аббревиатура|сокр.]] '''ОС''' ({{lang-en|operating system, OS}}) — [[программное обеспечение]], управляющее [[компьютер]]ами (включая [[микроконтроллер]]ы) и позволяющее запускать на них [[Прикладное программное обеспечение|прикладные программы]]{{Sfn|Таненбаум|2015|loc=1.1 Что такое операционная система?|p=20—21}}. Предоставляет [[программный интерфейс]] для взаимодействия с компьютером, управляет прикладными программами{{Sfn|Таненбаум|2015|loc=1.1 Что такое операционная система?|p=20—21}} и занимается распределением предоставляемых ресурсов, в том числе между прикладными программами<ref>{{Британника|Q9135|дата обновления=2022-12-02|дата проверки=2023-02-04}}</ref>. Некоторые операционные системы позволяют прикладным программам работать с [[Аппаратное обеспечение|аппаратным обеспечением]] напрямую<ref name=":0">{{Источник информации||qid издания=Q116678027|заглавие=1.4. Basic Operating System Concepts|ссылка=https://www.oreilly.com/library/view/understanding-the-linux/0596005652/ch01s04.html}}</ref>. В широком смысле под операционной системой понимается совокупность [[Ядро операционной системы|ядра операционной системы]] и работающих поверх него [[Компьютерная программа|программ]] и утилит, предоставляющих интерфейс для взаимодействия пользователя с компьютером<ref name=":0" />. |
|||
В логической структуре типичной [[вычислительная система|вычислительной системы]] операционная система занимает положение между |
В логической структуре типичной [[вычислительная система|вычислительной системы]] операционная система занимает положение между устройствами с их микроархитектурой, [[машинный язык|машинным языком]] и, возможно, [[Встроенное программное обеспечение|собственными (встроенными) микропрограммами (драйверами)]] — с одной стороны — и прикладными программами с другой. |
||
Разработчикам [[программное обеспечение|программного обеспечения]] операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см. |
Разработчикам [[программное обеспечение|программного обеспечения]] операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см. [[интерфейс программирования приложений]]). |
||
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью [[системное программное обеспечение|системного программного обеспечения]]. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства [[Windows]], [[ |
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью [[системное программное обеспечение|системного программного обеспечения]]. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства [[Windows]], [[Unix]] и [[UNIX-подобная операционная система|UNIX-подобные системы]]. |
||
== История == |
|||
{{нет источников в разделе|дата=2023-11-30}} |
|||
Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых [[подпрограмма|подпрограмм]], начавшие разрабатываться с появлением универсальных [[История вычислительной техники#Первое поколение компьютеров с архитектурой фон Неймана|компьютеров 1-го поколения]] (конец [[1940-е годы|1940-х годов]]). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций [[ввод-вывод|ввода-вывода]], вычисления математических функций и т. п.). |
|||
В [[1950-е|1950]]—[[1960-е годы|1960-х годах]] сформировались и были реализованы основные идеи, определяющие функциональность ОС: [[Пакетное задание|пакетный режим]], разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и [[файловая система|файловые системы]]. Одной из самых первых операционных систем была [[GM-NAA I/O]], разработанная в 1955 году для компьютера [[IBM 704]]. |
|||
=== Пакетный режим === |
|||
Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора. |
|||
=== Разделение времени и многозадачность === |
|||
{{главная|Разделение времени}} |
|||
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ. |
|||
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода [[телетайп]]ов (а позднее, терминалов с электронно-лучевыми дисплеями) ([[1960-е|1960-е годы]]). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором намного ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов. |
|||
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) [[центральный процессор]] и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме. |
|||
=== Разделение полномочий === |
|||
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы [[Прикладное программное обеспечение|прикладной программой]]. |
|||
Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё [[адресное пространство]] компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение). |
|||
=== Масштаб реального времени === |
|||
{{main|Операционная система реального времени}} |
|||
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами. |
|||
Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени). |
|||
=== Файловые системы и структуры === |
|||
Постепенная замена носителей с последовательным доступом ([[перфолента (носитель информации)|перфолент]], [[перфокарта|перфокарт]] и [[Ленточный накопитель|магнитных лент]]) накопителями произвольного доступа (на [[Гибкий магнитный диск|магнитных дисках]]). |
|||
Файловая система — способ хранения данных на внешних запоминающих устройствах. |
|||
== Функции == |
== Функции == |
||
{{нет источников в разделе|дата=2023-11-30}} |
|||
Основные функции: |
Основные функции: |
||
* Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.). |
* Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.). |
||
Строка 18: | Строка 53: | ||
* Обеспечение [[Интерфейс пользователя|пользовательского интерфейса]]. |
* Обеспечение [[Интерфейс пользователя|пользовательского интерфейса]]. |
||
* Сохранение информации об ошибках системы. |
* Сохранение информации об ошибках системы. |
||
[[Файл:IBM360-65-1.corestore.jpg|thumb|[[OS/360]] использовалась на большинстве компьютеров [[IBM]] начиная с 1966, включая те компьютеры, которые помогали [[NASA]] отправить человека на Луну |
[[Файл:IBM360-65-1.corestore.jpg|thumb|[[OS/360]] использовалась на большинстве компьютеров [[IBM]] начиная с 1966, включая те компьютеры, которые помогали [[NASA]] отправить человека на Луну]] |
||
Дополнительные функции: |
Дополнительные функции: |
||
* Параллельное или псевдопараллельное выполнение задач ([[многозадачность]]). |
* Параллельное или псевдопараллельное выполнение задач ([[многозадачность]]). |
||
Строка 27: | Строка 62: | ||
* Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений. |
* Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений. |
||
* Многопользовательский режим работы и разграничение прав доступа (см.: [[аутентификация]], [[авторизация]]). |
* Многопользовательский режим работы и разграничение прав доступа (см.: [[аутентификация]], [[авторизация]]). |
||
Компоненты операционной системы{{Нет АИ|7|10|2013}}: |
|||
* [[Загрузчик операционной системы|Загрузчик]] |
|||
* [[Ядро операционной системы|Ядро]] |
|||
* [[Оболочка операционной системы|Командный процессор]] |
|||
* [[Драйвер]]ы устройств |
|||
* [[Встроенное программное обеспечение]] |
|||
== Понятие == |
== Понятие == |
||
{{нет источников в разделе|дата=2023-11-30}} |
|||
Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система. |
Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система. |
||
Строка 42: | Строка 70: | ||
Операционные системы нужны: |
Операционные системы нужны: |
||
* если нужен универсальный механизм сохранения данных |
* если нужен универсальный механизм сохранения данных; |
||
* для предоставления [[ |
* для предоставления программам [[системная библиотека|системных библиотек]] с часто используемыми подпрограммами; |
||
* для распределения полномочий |
* для распределения полномочий; |
||
* необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере |
* необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере; |
||
* для управления процессами выполнения отдельных программ |
* для управления процессами выполнения отдельных программ. |
||
Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как: |
Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как: |
||
Строка 64: | Строка 92: | ||
== Ядро == |
== Ядро == |
||
{{main|Ядро операционной системы}} |
{{main|Ядро операционной системы}} |
||
{{нет источников в разделе|дата=2023-11-30}} |
|||
Ядро — центральная часть операционной системы, управляющая выполнением [[вычислительный процесс|процессов]], ресурсами [[вычислительная система|вычислительной системы]] и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются [[процессорное время]], [[запоминающее устройство с произвольным доступом|память]] и [[устройства ввода-вывода]]. Доступ к [[файловая система|файловой системе]] и сетевое взаимодействие также могут быть реализованы на уровне ядра. |
Ядро — центральная часть операционной системы, управляющая выполнением [[вычислительный процесс|процессов]], ресурсами [[вычислительная система|вычислительной системы]] и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются [[процессорное время]], [[запоминающее устройство с произвольным доступом|память]] и [[устройства ввода-вывода]]. Доступ к [[файловая система|файловой системе]] и сетевое взаимодействие также могут быть реализованы на уровне ядра. |
||
Строка 71: | Строка 100: | ||
Объекты ядра ОС: |
Объекты ядра ОС: |
||
* [[Процесс (информатика)| |
* [[Процесс (информатика)|процессы]], |
||
* [[ |
* [[файл]]ы, |
||
* события, |
|||
* [[Событие (информатика)|События]] |
|||
* [[Поток выполнения|потоки]], |
|||
* [[Многопоточность|Потоки]] |
|||
* [[Семафор (информатика)| |
* [[Семафор (информатика)|семафоры]], |
||
* [[ |
* [[мьютекс]]ы, |
||
* [[Именованный канал| |
* [[Именованный канал|каналы]], |
||
* [[Отображение файла в память| |
* [[Отображение файла в память|файлы, проецируемые в память]]. |
||
== Основные семейства == |
|||
== Развитие и основные идеи == |
|||
{{Раздел не написан|дата=2023-03-08}} |
|||
Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых [[подпрограмма|подпрограмм]], начавшие разрабатываться с появлением универсальных [[поколения ЭВМ|компьютеров 1-го поколения]] (конец [[1940-е годы|1940-х годов]]). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций [[ввод-вывод|ввода-вывода]], вычисления математических функций и т. п.). |
|||
[[Windows|Семейство Windows]] |
|||
[[Unix|Семейство UNIX]] |
|||
В [[1950-е|1950]]—[[1960-е годы|1960-х годах]] сформировались и были реализованы основные идеи, определяющие функциональность ОС: [[Пакетное задание|пакетный режим]], разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и [[файловая система|файловые системы]]. |
|||
=== Пакетный режим === |
|||
Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора. |
|||
=== Разделение времени и многозадачность === |
|||
{{главная|Разделение времени}} |
|||
Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ. |
|||
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) ([[1960-е|1960-е годы]]). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов. |
|||
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) [[центральный процессор]] и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме. |
|||
=== Разделение полномочий === |
|||
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой. |
|||
Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё [[адресное пространство]] компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение). |
|||
=== Масштаб реального времени === |
|||
{{main|Операционная система реального времени}} |
|||
Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами. |
|||
Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени). |
|||
=== Файловые системы и структуры === |
|||
Постепенная замена носителей с последовательным доступом ([[перфолента (носитель информации)|перфолент]], [[перфокарта|перфокарт]] и [[стример|магнитных лент]]) накопителями произвольного доступа (на [[Гибкий магнитный диск|магнитных дисках]]). |
|||
Файловая система — способ хранения данных на внешних запоминающих устройствах. |
|||
== Существующие операционные системы == |
|||
{{main|Список операционных систем}} |
|||
== UNIX, стандартизация операционных систем и POSIX == |
== UNIX, стандартизация операционных систем и POSIX == |
||
{{нет источников в разделе|дата=2023-11-30}} |
|||
К концу [[1960-е годы|1960-х годов]] отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся [[Atlas (компьютер)|Atlas]] ([[Манчестерский университет]]), [[CTTS]] и [[ITSS]] ([[Массачусетский технологический институт]], MIT), [[THE]] ([[Технический университет Эйндховена|Эйндховенский технологический университет]]), [[RS4000]] ([[Орхусский университет|Университет Орхуса]]) и др. (всего эксплуатировалось более сотни различных ОС). |
|||
К концу [[1960-е годы|1960-х годов]] отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся [[Atlas (компьютер)|Atlas]] ([[Манчестерский университет]]), {{Не переведено 3|Compatible Time-Sharing System|CTSS|4=Compatible Time-Sharing System}} и {{Не переведено 3|Incompatible Timesharing System|ITS|4=Incompatible Timesharing System}} ([[Массачусетский технологический институт]], MIT), [[THE]] ([[Технический университет Эйндховена|Эйндховенский технологический университет]]), RS4000 ([[Орхусский университет|Университет Орхуса]]) и др. (всего эксплуатировалось более сотни различных ОС). |
|||
Наиболее развитые операционные системы, такие как [[OS/360]] ([[IBM]]), |
Наиболее развитые операционные системы, такие как [[OS/360]] ([[IBM]]), SCOPE ([[Control Data Corporation|CDC]]) и завершённый уже в [[1970-е годы|1970-х годах]] [[Multics]] (MIT и [[Bell Labs]]), предусматривали возможность исполнения на многопроцессорных компьютерах. |
||
Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо |
Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и полностью несовместимыми между собой, их разработка и совершенствование затягивались. |
||
Задуманная и реализованная в [[1969 |
Задуманная и реализованная в [[1969 год]]у [[Томпсон, Кен|Кеном Томпсоном]] при участии нескольких коллег (включая [[Ритчи, Деннис|Денниса Ритчи]] и [[Керниган, Брайан|Брайана Кернигана]]), операционная система [[UNIX]] (первоначально UNICS, что обыгрывало название Multics) собрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц: |
||
* простая метафорика (два ключевых понятия: [[вычислительный процесс]] и файл); |
* простая метафорика (два ключевых понятия: [[вычислительный процесс]] и файл); |
||
* компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»); |
* компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»); |
||
Строка 135: | Строка 136: | ||
Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и [[Столлман, Ричард Мэттью|Ричард Столлман]], основатель [[проект GNU|проекта GNU]]. |
Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и [[Столлман, Ричард Мэттью|Ричард Столлман]], основатель [[проект GNU|проекта GNU]]. |
||
Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — [[ISO/IEC 9945]]<ref>Свежая версия ISO/IEC 9945 принята [[Международная организация по стандартизации|Международной организацией по стандартизации]] (ISO) в [[2003 |
Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — [[ISO/IEC 9945]]<ref>Свежая версия ISO/IEC 9945 принята [[Международная организация по стандартизации|Международной организацией по стандартизации]] (ISO) в [[2003 год]]у.</ref> (POSIX). |
||
Только системы, отвечающие спецификации [[Single UNIX Specification]], имеют право носить имя UNIX. К таким системам относятся [[AIX]], [[HP-UX]], [[IRIX]], [[Mac OS X]], [[SCO OpenServer]], [[Solaris]], [[Tru64]] и [[z/OS]]. |
Только системы, отвечающие спецификации [[Single UNIX Specification]], имеют право носить имя UNIX. К таким системам относятся [[AIX]], [[HP-UX]], [[IRIX]], [[Mac OS X]], [[SCO OpenServer]], [[Solaris]], [[Tru64]] и [[z/OS]]. |
||
Строка 141: | Строка 142: | ||
Операционные системы, следующие стандарту [[POSIX]] или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «[[UNIX-подобная операционная система|UNIX-подобные]]» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму [[The Open Group]] и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу. |
Операционные системы, следующие стандарту [[POSIX]] или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «[[UNIX-подобная операционная система|UNIX-подобные]]» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму [[The Open Group]] и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу. |
||
К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs ([[System V]]), на разработках университета Беркли ([[FreeBSD]], [[OpenBSD]], [[NetBSD]]), на основе Solaris ([[OpenSolaris]], [[BeleniX]], [[Nexenta]]), а также [[Linux]], разработанная в части утилит и библиотек [[Проект GNU|проектом GNU]] и в части ядра — сообществом, возглавляемым [[Торвальдс, Линус|Линусом Торвальдсом]]. |
К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs ([[System V]]), на разработках университета Беркли ([[FreeBSD]], [[OpenBSD]], [[NetBSD]]), на основе Solaris ([[OpenSolaris]], [[BeleniX]], [[Nexenta OS]]), а также [[Linux]], разработанная в части утилит и библиотек [[Проект GNU|проектом GNU]] и в части ядра — сообществом, возглавляемым [[Торвальдс, Линус|Линусом Торвальдсом]]. |
||
Стандартизация операционных систем преследует цель упрощения замены самой системы или оборудования при развитии вычислительной системы или сети и упрощении переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей. |
Стандартизация операционных систем преследует цель упрощения замены самой системы или оборудования при развитии вычислительной системы или сети и упрощении переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей. |
||
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание [[Интернет]]а в [[1990-е годы|1990-х годах]]. |
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание [[Интернет]]а в [[1990-е годы|1990-х годах]]. |
||
== Пост-UNIX-архитектуры == |
|||
Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство — это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно — это файл». Эта концепция стала одним из основных принципов системы [[Plan 9]] (название было позаимствовано из фантастического триллера «[[План 9 из открытого космоса]]» [[Вуд, Эдвард|Эдварда Вуда-младшего]]), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в [[1992 год]]у. |
|||
Кроме реализации всех объектов системы в виде файлов и размещения их на едином и персональном для каждого терминала вычислительной сети пространстве (namespace), были пересмотрены другие архитектурные решения UNIX. Например, в Plan 9 отсутствует понятие «суперпользователь», и, соответственно, исключаются любые нарушения режима безопасности, связанные с нелегальным получением прав суперпользователя в системе. Для представления (хранения, обмена) информации [[Пайк, Роб|Роб Пайк]] и Кен Томпсон разработали универсальную кодировку [[UTF-8]], на сегодняшний день ставшую стандартом де-факто. Для доступа к файлам используется единый универсальный протокол 9P, по сети работающий поверх сетевого протокола (TCP или UDP). Таким образом, для прикладного ПО сети не существует — доступ к локальным и к удалённым файлам единообразен. 9P — байт-ориентированный протокол, в отличие от других подобных протоколов, являющихся блок-ориентированными. Это также результат работы концепции: доступ побайтно — к унифицированным файлам, а не поблочно — к разнообразным и сильно изменяющимися с развитием технологий устройствам. Для контроля доступа к объектам не требуется иных решений, кроме уже существующего в операционной системе контроля доступа к файлам. Новая концепция системы хранения избавила администратора системы от изнурительного труда по сопровождению архивов и предвосхитила современные системы управления версиями файлов. |
|||
Операционные системы, созданные на базе или идеях UNIX, такие как всё семейство BSD и системы Linux, постепенно перенимают новые идеи из Bell Labs. Возможно, эти новые идеи ждёт большое будущее и признание ИТ-разработчиков. |
|||
Новые концепции были использованы Робом Пайком в [[Inferno (операционная система)|Inferno]]. |
|||
На основе Plan 9 в [[Испания|Испании]] разрабатываются системы [[Off++]] и [[Plan B (операционная система)|Plan B]], носящие экспериментальный характер. |
|||
К попыткам создать пост-UNIX-архитектуру можно также отнести разработку [[Оберон (язык программирования)|языка программирования]] и [[Оберон (операционная_система)|операционной среды]] Оберон в [[Швейцарская высшая техническая школа Цюриха|Швейцарской высшей технической школе]] (ETH Zurich) под руководством профессора [[Вирт, Никлаус|Никлауса Вирта]]. |
|||
== См. также == |
|||
* [[Хронология операционных систем]] |
|||
* [[Операционное окружение]] |
|||
* [[Аппаратная платформа компьютера]] |
|||
* [[Открытая операционная система]] |
|||
* [[Сетевая операционная система]] |
|||
== Примечания == |
== Примечания == |
||
Строка 179: | Строка 160: | ||
* {{книга | автор = [[Таненбаум, Эндрю|Таненбаум Э. С.]] | заглавие = Многоуровневая организация ЭВМ | оригинал = Structured Computer Organization | место = М. | издательство = Мир | год = 1979 | страниц = 547}} |
* {{книга | автор = [[Таненбаум, Эндрю|Таненбаум Э. С.]] | заглавие = Многоуровневая организация ЭВМ | оригинал = Structured Computer Organization | место = М. | издательство = Мир | год = 1979 | страниц = 547}} |
||
* {{книга | автор = [[Таненбаум, Эндрю|Таненбаум Э. С.]] | заглавие = Современные операционные системы | оригинал = Modern Operating Systems | издание = 2-е изд | место = СПб. | издательство = [[Питер (издательство)|Питер]] | год = 2005 | страниц = 1038 | isbn = 5-318-00299-4}} |
* {{книга | автор = [[Таненбаум, Эндрю|Таненбаум Э. С.]] | заглавие = Современные операционные системы | оригинал = Modern Operating Systems | издание = 2-е изд | место = СПб. | издательство = [[Питер (издательство)|Питер]] | год = 2005 | страниц = 1038 | isbn = 5-318-00299-4}} |
||
* {{источник информации|Q115645152 |
|||
|заглавие = Современные операционные системы |
|||
|ref = Таненбаум |
|||
}} |
|||
* {{книга | автор = [[Таненбаум, Эндрю|Таненбаум Э. С.]], Вудхалл А. С. | заглавие = Операционные системы. Разработка и реализация | оригинал = Operating Systems: Design and Implementation | издание = 3-е изд | место = СПб. | издательство = [[Питер (издательство)|Питер]] | год = 2007 | страниц = 704 | isbn = 978-5-469-01403-4}} |
* {{книга | автор = [[Таненбаум, Эндрю|Таненбаум Э. С.]], Вудхалл А. С. | заглавие = Операционные системы. Разработка и реализация | оригинал = Operating Systems: Design and Implementation | издание = 3-е изд | место = СПб. | издательство = [[Питер (издательство)|Питер]] | год = 2007 | страниц = 704 | isbn = 978-5-469-01403-4}} |
||
* {{книга | автор = Шоу А. | заглавие = Логическое проектирование операционных систем | оригинал = The Logical Design of Operating Systems | место = М. | издательство = Мир | год = 1981 | страниц = 360}} |
* {{книга | автор = Шоу А. | заглавие = Логическое проектирование операционных систем | оригинал = The Logical Design of Operating Systems | место = М. | издательство = Мир | год = 1981 | страниц = 360}} |
||
Строка 186: | Строка 171: | ||
== Ссылки == |
== Ссылки == |
||
{{wiktionary|операционная система}} |
{{wiktionary|операционная система}} |
||
* [http://www.pub2me.net/server-os-election/ Выбор операционной системы для сервера] |
|||
{{dmoz|World/Russian/Компьютеры/Программное_обеспечение/Операционные_системы/}} |
{{dmoz|World/Russian/Компьютеры/Программное_обеспечение/Операционные_системы/}} |
||
* [http://tdocs.su/16951 Операционная система (Operating system) по ГОСТ 15971-90 ] {{Wayback|url=http://tdocs.su/16951 |date=20141007021558 }} |
|||
* [http://www.internet-web.ru/tema2.html Обзор различных операционных систем]. |
|||
* {{cite web|author=[[Отставнов, Максим Евгеньевич|Отставнов М. Е.]]|date=2003|url=http://www.otstavnov.com/fsft/fsft-articles.html|title=Свободное программное обеспечение в школе|work=Свободное ПО для школы|accessdate=2010-04-16|deadlink=unknown-host|archiveurl=http://web.archive.org/20080706125644/www.otstavnov.com/fsft/fsft-articles.html|archivedate=2008-07-06}} |
|||
{{нет сносок|В данной статье|дата=2022-05-30}} |
|||
* [http://tdocs.su/16951 Операционная система (Operating system) по ГОСТ 15971-90 ] |
|||
{{rq|refless}} |
|||
{{Операционные системы}} |
{{Операционные системы}} |
||
{{Аспекты операционных систем}} |
|||
{{Операционная система}} |
|||
{{Внешние ссылки}} |
|||
[[Категория:Операционная система| |
[[Категория:Операционная система| ]] |
||
[[Категория:Изобретения США]] |
|||
[[Категория:Компьютерная терминология]] |
Текущая версия от 16:49, 18 декабря 2024
Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) — программное обеспечение, управляющее компьютерами (включая микроконтроллеры) и позволяющее запускать на них прикладные программы[1]. Предоставляет программный интерфейс для взаимодействия с компьютером, управляет прикладными программами[1] и занимается распределением предоставляемых ресурсов, в том числе между прикладными программами[2]. Некоторые операционные системы позволяют прикладным программам работать с аппаратным обеспечением напрямую[3]. В широком смысле под операционной системой понимается совокупность ядра операционной системы и работающих поверх него программ и утилит, предоставляющих интерфейс для взаимодействия пользователя с компьютером[3].
В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами (драйверами) — с одной стороны — и прикладными программами с другой.
Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см. интерфейс программирования приложений).
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows, Unix и UNIX-подобные системы.
История
[править | править код]В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).
В 1950—1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы. Одной из самых первых операционных систем была GM-NAA I/O, разработанная в 1955 году для компьютера IBM 704.
Пакетный режим
[править | править код]Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
Разделение времени и многозадачность
[править | править код]Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.
Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором намного ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.
Разделение полномочий
[править | править код]Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой.
Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение).
Масштаб реального времени
[править | править код]Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.
Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени).
Файловые системы и структуры
[править | править код]Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках).
Файловая система — способ хранения данных на внешних запоминающих устройствах.
Функции
[править | править код]В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Основные функции:
- Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).
- Загрузка программ в оперативную память и их выполнение.
- Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
- Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).
- Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.
- Обеспечение пользовательского интерфейса.
- Сохранение информации об ошибках системы.
Дополнительные функции:
- Параллельное или псевдопараллельное выполнение задач (многозадачность).
- Эффективное распределение ресурсов вычислительной системы между процессами.
- Разграничение доступа различных процессов к ресурсам.
- Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам.
- Взаимодействие между процессами: обмен данными, взаимная синхронизация.
- Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
- Многопользовательский режим работы и разграничение прав доступа (см.: аутентификация, авторизация).
Понятие
[править | править код]В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система.
Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры, содержащиеся во многих бытовых приборах, автомобилях (иногда по десятку в каждом), простейших сотовых телефонах, постоянно исполняют лишь одну программу, запускающуюся по включении. Многие простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске.
Операционные системы нужны:
- если нужен универсальный механизм сохранения данных;
- для предоставления программам системных библиотек с часто используемыми подпрограммами;
- для распределения полномочий;
- необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере;
- для управления процессами выполнения отдельных программ.
Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как:
- использующие файловые системы (с универсальным механизмом доступа к данным),
- многопользовательские (с разделением полномочий),
- многозадачные (с разделением времени).
Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов в самой операционной системе. В составе операционной системы различают три группы компонентов:
- ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевая подсистема, файловая система;
- системные библиотеки;
- оболочка с утилитами.
Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.
В определении состава операционной системы значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав операционной системы включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков).
Ядро
[править | править код]В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Ядро — центральная часть операционной системы, управляющая выполнением процессов, ресурсами вычислительной системы и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются процессорное время, память и устройства ввода-вывода. Доступ к файловой системе и сетевое взаимодействие также могут быть реализованы на уровне ядра.
Как основополагающий элемент операционной системы, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам вычислительной системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.
Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.
Объекты ядра ОС:
Основные семейства
[править | править код]Этот раздел статьи ещё не написан. |
UNIX, стандартизация операционных систем и POSIX
[править | править код]В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
К концу 1960-х годов отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся Atlas (Манчестерский университет), CTSS[англ.] и ITS[англ.] (Массачусетский технологический институт, MIT), THE (Эйндховенский технологический университет), RS4000 (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).
Наиболее развитые операционные системы, такие как OS/360 (IBM), SCOPE (CDC) и завершённый уже в 1970-х годах Multics (MIT и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.
Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и полностью несовместимыми между собой, их разработка и совершенствование затягивались.
Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ритчи и Брайана Кернигана), операционная система UNIX (первоначально UNICS, что обыгрывало название Multics) собрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц:
- простая метафорика (два ключевых понятия: вычислительный процесс и файл);
- компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
- минимизация ядра (кода, выполняющегося в «реальном» (привилегированном) режиме процессора) и количества системных вызовов;
- независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования Си стал побочным продуктом разработки UNIX);
- унификация файлов.
UNIX, благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), обрела популярность сначала в университетах, а затем и в отрасли, получившей прототип единой операционной системы, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.
В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD (Berkeley Software Distribution).
Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и Ричард Столлман, основатель проекта GNU.
Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945[4] (POSIX).
Только системы, отвечающие спецификации Single UNIX Specification, имеют право носить имя UNIX. К таким системам относятся AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 и z/OS.
Операционные системы, следующие стандарту POSIX или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «UNIX-подобные» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму The Open Group и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу.
К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs (System V), на разработках университета Беркли (FreeBSD, OpenBSD, NetBSD), на основе Solaris (OpenSolaris, BeleniX, Nexenta OS), а также Linux, разработанная в части утилит и библиотек проектом GNU и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.
Стандартизация операционных систем преследует цель упрощения замены самой системы или оборудования при развитии вычислительной системы или сети и упрощении переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 1990-х годах.
Примечания
[править | править код]- ↑ 1 2 Таненбаум, 2015, 1.1 Что такое операционная система?, p. 20—21.
- ↑ Hemmendinger D. Operating system : [англ.] // Encyclopædia Britannica : online encyclopedia. — Дата обновления: 2 декабря 2022. — Дата обращения: 4 февраля 2023.
- ↑ 1 2 Daniel Pierre Bovet[d]. 1.4. Basic Operating System Concepts : [англ.] // Understanding the Linux Kernel[d] / Daniel Pierre Bovet, Marco Cesati[d]. — 3rd Edition. — O’Reilly Media, 2005, 1 November. — 944 p. — ISBN 978-0-596-00565-8. — WD Q116678027.
- ↑ Свежая версия ISO/IEC 9945 принята Международной организацией по стандартизации (ISO) в 2003 году.
Литература
[править | править код]- Гордеев А. В. Операционные системы: Учебник для вузов. — 2-е изд. — СПб.: Питер, 2007. — 416 с. — ISBN 978-5-94723-632-3.
- Деннинг П. Дж., Браун Р. Л. Операционные системы // Современный компьютер. — М., 1986.
- Иртегов Д. В. Введение в операционные системы. — 2-е изд. — СПб.: BHV-СПб, 2007. — ISBN 978-5-94157-695-1.
- Керниган Б. У., Пайк Р. У. UNIX — универсальная среда программирования = The UNIX Programming Environment. — М., 1992.
- Олифер В. Г., Олифер Н. А. Сетевые операционные системы. — СПб.: Питер, 2002. — 544 с. — ISBN 5-272-00120-6.
- Столлингс У. Операционные системы = Operating Systems: Internals and Design Principles. — М.: Вильямс, 2004. — 848 с. — ISBN 0-1303-1999-6.
- Таненбаум Э. С. Многоуровневая организация ЭВМ = Structured Computer Organization. — М.: Мир, 1979. — 547 с.
- Таненбаум Э. С. Современные операционные системы = Modern Operating Systems. — 2-е изд. — СПб.: Питер, 2005. — 1038 с. — ISBN 5-318-00299-4.
- Таненбаум Э. Современные операционные системы. — 3-е издание. — СПб : Питер, 2015. — 1120 с. — (Серия «Классика Computer science»). — ISBN 978-5-496-00301-8. — WD Q115645152.
- Таненбаум Э. С., Вудхалл А. С. Операционные системы. Разработка и реализация = Operating Systems: Design and Implementation. — 3-е изд. — СПб.: Питер, 2007. — 704 с. — ISBN 978-5-469-01403-4.
- Шоу А. Логическое проектирование операционных систем = The Logical Design of Operating Systems. — М.: Мир, 1981. — 360 с.
- Рэймонд Э. С. Искусство программирования для UNIX = The Art of UNIX Programming. — М.: Вильямс, 2005. — 544 с. — ISBN 5-8459-0791-8.
- Mark G. Sobell. UNIX System V. A Practical Guide. — 3rd ed. — 1995.
Ссылки
[править | править код]- Операционная система в каталоге ссылок Curlie (dmoz)
- Операционная система (Operating system) по ГОСТ 15971-90 Архивная копия от 7 октября 2014 на Wayback Machine
В статье есть список источников, но в этом разделе не хватает сносок. |