~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 8D4C61C581215C49851BAC6B1F824A93__1717750200 ✰
Заголовок документа оригинал.:
✰ Operating system - Wikipedia ✰
Заголовок документа перевод.:
✰ Операционная система — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Operating_system ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/8d/93/8d4c61c581215c49851bac6b1f824a93.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/8d/93/8d4c61c581215c49851bac6b1f824a93__translat.html ✰
Дата и время сохранения документа:
✰ 08.06.2024 12:03:33 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 7 June 2024, at 11:50 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Операционная система — Википедия Jump to content

Операционная система

Страница полузащищенная
Из Википедии, бесплатной энциклопедии

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

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

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

На рынке персональных компьютеров по состоянию на сентябрь 2023 г. . Microsoft Windows занимает доминирующую долю рынка, составляющую около 68% macOS от Apple Inc. находится на втором месте (20%), а разновидности Linux , включая ChromeOS , в совокупности находятся на третьем месте (7%). [3] В мобильном секторе (включая смартфоны и планшеты ) по состоянию на сентябрь 2023 г. , доля Android составляет 68,92%, за ней следуют Apple iOS и iPadOS с 30,42% и другие операционные системы с 0,66%. [4] Дистрибутивы Linux доминируют в секторах серверов и суперкомпьютеров. Другие специализированные классы операционных систем (операционные системы специального назначения), [5] [6] такие как встроенные системы и системы реального времени, существуют для многих приложений. операционные системы, ориентированные на безопасность Также существуют . Некоторые операционные системы имеют низкие системные требования (например, облегченный дистрибутив Linux ). У других могут быть более высокие системные требования.

Некоторые операционные системы требуют установки или могут быть предустановлены на приобретенных компьютерах ( установка OEM ), тогда как другие могут запускаться непосредственно с носителя (например, Live CD ) или флэш-памяти (например, USB- накопителя).

Определение и цель

Операционную систему трудно определить, [7] но его называют « уровнем программного обеспечения , который управляет ресурсами компьютера для его пользователей и их приложений ». [8] Операционные системы включают в себя постоянно работающее программное обеспечение, называемое ядром , но могут включать и другое программное обеспечение. [7] [9] Два других типа программ, которые могут работать на компьютере, — это системные программы , которые связаны с операционной системой, но не могут быть частью ядра, и приложения — все остальное программное обеспечение. [9]

Операционная система выполняет три основные цели: [10]

  • Операционные системы распределяют ресурсы между различными приложениями, решая, когда они получат центрального процессора время или пространство (ЦП) в памяти . [10] На современных персональных компьютерах пользователям часто хочется запускать несколько приложений одновременно. Чтобы гарантировать, что одна программа не сможет монополизировать ограниченные аппаратные ресурсы компьютера, операционная система предоставляет каждому приложению долю ресурса либо во времени (ЦП), либо в пространстве (память). [11] [12] Операционная система также должна изолировать приложения друг от друга, чтобы защитить их от ошибок и уязвимостей безопасности — это код другого приложения, но обеспечить связь между различными приложениями. [13]
  • Операционные системы предоставляют интерфейс, который абстрагирует детали доступа к деталям оборудования (например, к физической памяти), чтобы упростить работу программистам. [10] [14] Виртуализация также позволяет операционной системе маскировать ограниченные аппаратные ресурсы; например, виртуальная память может создать программе иллюзию почти неограниченной памяти, превышающей реальную память компьютера. [15]
  • Операционные системы предоставляют общие службы, такие как интерфейс для доступа к сетевым и дисковым устройствам. Это позволяет запускать приложение на другом оборудовании без необходимости его переписывания. [16] Какие службы включать в операционную систему, сильно различаются, и эта функциональность составляет большую часть кода для большинства операционных систем. [17]

Типы операционных систем

Мультикомпьютерные операционные системы

В мультипроцессорах несколько процессоров совместно используют память. Мультикомпьютер или имеет несколько процессоров, каждый кластерный компьютер из которых имеет собственную память . Мультикомпьютеры были разработаны потому, что большие мультипроцессоры сложны в разработке и непомерно дороги; [18] они универсальны в облачных вычислениях из-за размера необходимой машины. [19] Разным процессорам часто необходимо отправлять и получать сообщения друг другу; [20] Чтобы обеспечить хорошую производительность, операционные системы для этих машин должны минимизировать копирование пакетов . [21] Новые системы часто имеют несколько очередей — группы пользователей разделяются на отдельные очереди — чтобы уменьшить необходимость копирования пакетов и поддерживать больше одновременных пользователей. [22] Другой метод — удаленный прямой доступ к памяти , который позволяет каждому процессору получать доступ к памяти, принадлежащей другим процессорам. [20] Мультикомпьютерные операционные системы часто поддерживают удаленные вызовы процедур , когда ЦП может вызвать процедуру на другом ЦП. [23] или распределенная общая память , в которой операционная система использует виртуализацию для создания общей памяти, которой на самом деле не существует. [24]

Распределенные системы

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

Встроенный

Встроенные операционные системы предназначены для использования во встроенных компьютерных системах , независимо от того, являются ли они объектами Интернета вещей или не подключены к сети. Встраиваемые системы включают в себя множество бытовой техники. Отличительным фактором является то, что они не загружают установленное пользователем программное обеспечение. Следовательно, им не требуется защита между различными приложениями, что позволяет упростить разработку. Очень маленькие операционные системы могут иметь размер менее 10 килобайт . [27] а самые маленькие предназначены для смарт-карт . [28] Примеры включают Embedded Linux , QNX , VxWorks и сверхмалые системы RIOT и TinyOS . [29]

В режиме реального времени

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

Виртуальная машина

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

История

Ранние компьютеры были созданы для выполнения ряда отдельных задач, как калькулятор. Основные функции операционной системы были разработаны в 1950-х годах, такие как функции резидентного монитора , которые могли автоматически запускать разные программы последовательно для ускорения обработки. Операционные системы в их современных и более сложных формах не существовали до начала 1960-х годов. [33] Были добавлены аппаратные функции, которые позволили использовать библиотеки времени выполнения , прерывания и параллельную обработку . Когда в 1980-х годах персональные компьютеры стали популярными, для них были созданы операционные системы, по своей концепции схожие с теми, которые используются на более крупных компьютерах.

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

Панель оператора IBM System 360/65. OS/360 использовалась на большинстве IBM, мейнфреймов начиная с 1966 года, включая компьютеры, используемые в программе Apollo .

В начале 1950-х годов компьютер мог одновременно выполнять только одну программу. Каждый пользователь имел единоличное пользование компьютером в течение ограниченного периода времени и приходил в назначенное время со своей программой и данными на перфокартах или перфоленте . Программа будет загружена в машину, и машина будет работать до тех пор, пока программа не завершится или не выйдет из строя . Программы обычно можно отлаживать через переднюю панель с помощью тумблеров и индикаторов панели. Говорят, что Алан Тьюринг был мастером в этом на ранней манчестерской машине Mark 1 , и он уже вывел примитивную концепцию операционной системы из принципов универсальной машины Тьюринга . [33]

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

К концу 1950-х годов начали появляться программы, которые можно было бы назвать операционной системой. Самым ранним узнаваемым примером часто называют GM-NAA I/O , выпущенный в 1956 году на IBM 704 . Первым известным примером, который фактически относился сам к себе, была операционная система SHARE , развитие ввода-вывода GM-NAA, выпущенная в 1959 году. В статье от мая 1960 года, описывающей систему, Джордж Рикман отметил:

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

Одним из наиболее известных примеров, который часто встречается в обсуждениях ранних систем, является Atlas Supervisor , работавший на Atlas в 1962 году. [35] Это упоминалось как таковое в статье, описывающей систему в декабре 1961 года, но контекст «Операционной системы» больше похож на «система работает модно». Сама команда Атласа использовала термин «супервайзер», [36] который широко использовался наряду с «монитором». Бринч Хансен назвал это «самым значительным прорывом в истории операционных систем». [37]

Мэйнфреймы

В 1950-е годы в области операционных систем на мэйнфреймах были впервые реализованы многие важные функции , включая пакетную обработку ввода/вывода , прерывание , буферизацию , многозадачность , буферизацию , библиотеки времени выполнения , загрузку ссылок и программы для сортировки записей в файлах. Эти функции включались или не включались в прикладное программное обеспечение по усмотрению программистов приложений, а не в отдельную операционную систему, используемую всеми приложениями. В 1959 году операционная система SHARE была выпущена как интегрированная утилита для мэйнфреймов IBM 704 , а затем и для мэйнфреймов 709 и 7090 , хотя на мейнфреймах 709, 7090 и 7094 она была быстро вытеснена IBSYS /IBJOB, что, в свою очередь, повлияло на более поздние модели. 150 ( 7040/7044 ) и 1410-ПР-155 ( 1410/7010 ) 7040-ПР - Операционные системы .

В 1960-е годы IBM OS/360 представила концепцию единой ОС, охватывающую всю линейку продуктов, что имело решающее значение для успеха машин System/360. Текущие операционные системы для мэйнфреймов IBM являются дальними потомками этой исходной системы, а современные машины обратно совместимы с приложениями, написанными для OS/360. [ нужна цитата ]

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

Альтернативная система CP-67 для S/360-67 положила начало целому ряду операционных систем IBM, ориентированных на концепцию виртуальных машин . Другие операционные системы, используемые на мэйнфреймах серии IBM S/360, включали системы, разработанные IBM: DOS/360. [а] (Дисковая операционная система), TSS/360 (система разделения времени), TOS/360 (ленточная операционная система), BOS/360 (базовая операционная система) и ACP (программа управления авиакомпанией), а также несколько систем сторонних производителей. : MTS (Терминальная система Мичигана), MUSIC (Многопользовательская система для интерактивных вычислений) и ORVYL (Стэнфордская система разделения времени).

Корпорация Control Data разработала операционную систему SCOPE в 1960-х годах для пакетной обработки . В сотрудничестве с Университетом Миннесоты Kronos , а затем и NOS в 1970-х годах были разработаны операционные системы , которые поддерживали одновременное использование пакетной обработки и разделения времени. Как и многие коммерческие системы с разделением времени, его интерфейс был расширением операционной системы Dartmouth BASIC , одного из новаторских проектов в области разделения времени и языков программирования. В конце 1970-х годов компания Control Data и Университет Иллинойса разработали операционную систему PLATO , в которой использовались плазменные панели и сети с разделением времени на большие расстояния. Платон был удивительно новаторским для своего времени, предлагая чат в реальном времени и многопользовательские графические игры.

В 1961 году корпорация Burroughs представила B5000 с операционной системой MCP (Master Control Program). B5000 представлял собой стековую машину , предназначенную исключительно для поддержки языков высокого уровня без ассемблера; [б] действительно, MCP была первой ОС, написанной исключительно на языке высокого уровня ( ESPOL , диалект ALGOL ). MCP также представила множество других новаторских инноваций, таких как первая коммерческая реализация виртуальной памяти . MCP до сих пор используется в Unisys компании MCP/ClearPath линейке компьютеров .

UNIVAC , первый производитель коммерческих компьютеров, выпустил серию операционных систем EXEC. [38] [39] [40] Как и все ранние системы с мейнфреймами, эта пакетно-ориентированная система управляла магнитными барабанами, дисками, устройствами считывания карт и линейными принтерами. В 1970-х годах UNIVAC разработала базовую систему реального времени (RTB) для поддержки крупномасштабного разделения времени, также созданную по образцу системы Дартмутской Британской Колумбии.

Компания General Electric разработала программу General Electric Comprehensive Operating Supervisor (GECOS), которая в основном поддерживала пакетную обработку. После приобретения компанией Honeywell она была переименована в General Comprehensive Operating System (GCOS).

Лаборатории Белла , [с] General Electric и MIT разработали Multiplexed Information and Computing Service ( Multics ), который представил концепцию кольцевых уровней привилегий безопасности.

Корпорация Digital Equipment разработала множество операционных систем для различных линеек компьютеров, включая TOPS-10 и TOPS-20 системы разделения времени для 36-битных систем класса PDP-10. До широкого распространения UNIX система TOPS-10 была особенно популярной в университетах и ​​в раннем сообществе ARPANET . RT-11 представляла собой однопользовательскую ОС реального времени для миникомпьютера класса PDP-11 , а RSX-11 — соответствующую многопользовательскую ОС.

С конца 1960-х по конец 1970-х годов появилось несколько аппаратных возможностей, которые позволили аналогичному или портированному программному обеспечению работать более чем в одной системе. Ранние системы использовали микропрограммирование для реализации функций в своих системах, чтобы различные базовые компьютерные архитектуры выглядели такими же, как другие в серии. Фактически, большинство моделей 360 после 360/40 (за исключением 360/44, 360/75, 360/91, 360/95 и 360/195) представляли собой микропрограммные реализации.

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

Микрокомпьютеры

PC DOS была ранней операционной системой для персональных компьютеров с интерфейсом командной строки.

Самым ранним микрокомпьютерам не хватало мощности или требований для сложных операционных систем, используемых в мейнфреймах и миникомпьютерах . Вместо этого они использовали минималистичные операционные системы, часто загружаемые из ПЗУ и называемые мониторами . Важной ранней дисковой операционной системой была CP/M , широко поддерживаемая многими ранними микрокомпьютерами. Microsoft тесно имитировала CP/M со своей MS-DOS , которая получила широкую популярность в качестве операционной системы для IBM PC (версия IBM была известна как IBM DOS или PC DOS ).

В 1980-х годах компания Apple Computer Inc. (теперь Apple Inc. ) представила Apple Macintosh наряду со своей популярной Apple II серией микрокомпьютеров . Macintosh имел инновационный графический интерфейс пользователя (GUI) и мышь; на нем работала операционная система, позже известная как (классическая) Mac OS .

Выпуск процессора Intel 80286 в феврале 1982 года с 16-битной архитектурой и сегментацией , а также Intel 80386 в октябре 1985 года. процессора [41] Благодаря 32-битной архитектуре и возможностям подкачки персональные компьютеры могли запускать многозадачные операционные системы, подобные тем, что использовались на более ранних суперминикомпьютерах и мэйнфреймах . Microsoft отреагировала на этот прогресс, наняв Дэйва Катлера , который разработал операционную систему VMS для Digital Equipment Corporation . Он возглавил разработку операционной системы Windows NT , которая продолжает служить основой линейки операционных систем Microsoft. Стив Джобс , соучредитель Apple Inc. , основал компанию NeXT Computer Inc., которая разработала операционную систему NeXTSTEP . NeXTSTEP позже будет приобретен Apple Inc. и использован вместе с кодом из FreeBSD в качестве ядра Mac OS X (macOS после последнего изменения названия).

Проект GNU был начат активистом и программистом Ричардом Столлманом с целью создания полной замены свободного программного обеспечения проприетарной операционной системе UNIX . Хотя проект оказался очень успешным в дублировании функциональности различных частей UNIX, разработка ядра GNU Hurd оказалась непродуктивной. В 1991 году финский студент-компьютерщик Линус Торвальдс при сотрудничестве добровольцев, сотрудничающих через Интернет, выпустил первую версию ядра Linux . GNU, Вскоре он был объединен с компонентами пользовательского пространства и системным программным обеспечением чтобы сформировать полноценную операционную систему. С тех пор комбинация двух основных компонентов в индустрии программного обеспечения обычно называется просто «Linux» - соглашение об именах, против которого Столлман и Фонд свободного программного обеспечения по-прежнему выступают, предпочитая имя GNU/Linux. Распространение программного обеспечения Беркли, известное как BSD , является производной UNIX, распространяемой Калифорнийским университетом в Беркли, начиная с 1970-х годов. Свободно распространяется и портированная на многие миникомпьютеры, она в конечном итоге также получила распространение на ПК, в основном как FreeBSD , NetBSD и OpenBSD .

Примеры

Unix и Unix-подобные операционные системы

Эволюция Unix- систем

Первоначально Unix была написана на языке ассемблера . [42] Кен Томпсон написал B , в основном на основе BCPL , основываясь на своем опыте работы в проекте MULTICS . B был заменен на C , а Unix, переписанная на C, превратилась в большое и сложное семейство взаимосвязанных операционных систем, которые оказали влияние на каждую современную операционную систему (см. Историю ).

Семейство Unix-подобных систем представляет собой разнообразную группу операционных систем, состоящую из нескольких основных подкатегорий, включая System V , BSD и Linux . Название « UNIX » является товарным знаком компании The Open Group , которая лицензирует его для использования с любой операционной системой, которая соответствует их определениям. Термин «UNIX-подобный» обычно используется для обозначения большого набора операционных систем, напоминающих исходную UNIX.

Unix-подобные системы работают на самых разных компьютерных архитектурах . Они широко используются для серверов в бизнесе, а также для рабочих станций в академических и инженерных средах. бесплатные варианты UNIX, такие как Linux и BSD В этих областях популярны .

Пять операционных систем сертифицированы The Open Group (владелец торговой марки Unix) как Unix. от HP HP-UX и AIX от IBM являются потомками оригинальной System V Unix и предназначены для работы только на оборудовании соответствующего поставщика. Напротив, Sun Microsystems от Solaris может работать на различных типах оборудования, включая серверы x86 и SPARC , а также ПК. от Apple MacOS , замена более ранней (не Unix) классической Mac OS от Apple , представляет собой гибридный вариант BSD на основе ядра, полученный из NeXTSTEP , Mach и FreeBSD . IBM z/OS Системные службы UNIX включают оболочку и утилиты на основе продуктов InterOpen Мортиса Кернса .

Функциональная совместимость Unix была достигнута путем установления стандарта POSIX . Стандарт POSIX можно применять к любой операционной системе, хотя изначально он был создан для различных вариантов Unix.

BSD и его потомки

Первый сервер Всемирной паутины работал на NeXTSTEP, основанном на BSD.

Подгруппой семейства Unix является семейство Berkeley Software Distribution , которое включает FreeBSD , NetBSD и OpenBSD . Эти операционные системы чаще всего встречаются на веб-серверах , хотя они также могут функционировать как ОС персонального компьютера. Интернет во многом обязан своим существованием BSD, поскольку многие протоколы, которые сейчас обычно используются компьютерами для подключения, отправки и получения данных по сети, были широко реализованы и усовершенствованы в BSD. Всемирная паутина также была впервые продемонстрирована на ряде компьютеров под управлением ОС на базе BSD под названием NeXTSTEP .

В 1974 году Калифорнийский университет в Беркли установил свою первую систему Unix. Со временем студенты и сотрудники факультета информатики начали добавлять новые программы, упрощающие работу, например текстовые редакторы. Когда в 1978 году Беркли получил новые компьютеры VAX с установленной Unix, студенты школы еще больше модифицировали Unix, чтобы воспользоваться преимуществами аппаратных возможностей компьютера. Агентство перспективных исследовательских проектов США Министерства обороны заинтересовалось и решило профинансировать проект. Многие школы, корпорации и правительственные организации обратили на это внимание и начали использовать версию Unix Беркли вместо официальной версии, распространяемой AT&T.

Стив Джобс , покинув Apple Inc. в 1985 году, основал NeXT Inc. , компанию, которая производила высококлассные компьютеры, работающие на разновидности BSD под названием NeXTSTEP . Один из этих компьютеров использовался Тимом Бернерсом-Ли в качестве первого веб-сервера для создания Всемирной паутины.

Такие разработчики, как Кейт Бостик, призвали проект заменить любой несвободный код, созданный Bell Labs. Однако как только это было сделано, AT&T подала в суд. После двух лет юридических споров проект BSD породил ряд свободных производных, таких как NetBSD и FreeBSD (обе в 1993 году) и OpenBSD (от NetBSD в 1995 году).

macOS

macOS (ранее «Mac OS X», а затем «OS X») — это линейка графических операционных систем с открытым ядром , разработанная, продаваемая и продаваемая Apple Inc. , последняя из которых предварительно загружена на все поставляемые в настоящее время Macintosh компьютеры . macOS является преемником оригинальной классической Mac OS , которая была основной операционной системой Apple с 1984 года. В отличие от своей предшественницы, macOS — это операционная система UNIX , построенная на технологии, разработанной в NeXT на протяжении второй половины 1980-х годов и вплоть до Apple приобрела компанию в начале 1997 года. Операционная система была впервые выпущена в 1999 году как Mac OS X Server 1.0 , а в марте 2001 года последовала клиентская версия ( Mac OS X v10.0 «Cheetah» ). еще шесть отдельных «клиентских» и « серверных С тех пор было выпущено » редакций macOS, пока они не были объединены в OS X 10.7 «Lion» .

До слияния с macOS серверная версия — macOS Server — была архитектурно оборудования Apple Macintosh идентична своей настольной версии и обычно работала на линейке серверного . macOS Server включал в себя программные инструменты управления и администрирования рабочих групп, которые обеспечивают упрощенный доступ к ключевым сетевым службам , включая агент передачи почты , сервер Samba , сервер LDAP , сервер доменных имен и другие. В Mac OS X v10.7 Lion все серверные аспекты Mac OS X Server были интегрированы в клиентскую версию, а продукт был переименован в «OS X» (исключение «Mac» из названия). Серверные инструменты теперь предлагаются в виде приложений. [43]

Системные службы z/OS UNIX

Впервые представлено как обновление OpenEdition до системного продукта MVS/ESA версии 4, выпуска 3, анонсировано. [44] Февраль 1993 г. с поддержкой POSIX и других стандартов. [45] [46] [47] z/OS Системные службы UNIX построены на основе служб MVS и не могут работать независимо. Хотя IBM изначально представила OpenEdition для удовлетворения требований FIPS , некоторые компоненты z/OS теперь требуют служб UNIX, например TCP/IP.

Линукс

Ubuntu , настольный дистрибутив Linux
Изображение Тукса пингвина , талисмана Linux . Linux — Unix-подобная операционная система, впервые выпущенная 17 сентября 1991 года Линусом Торвальдсом . [48] [49] [50] [51]

Ядро Linux возникло в 1991 году как проект Линуса Торвальдса , когда он был студентом университета в Финляндии. Он разместил информацию о своем проекте в группе новостей для студентов-компьютерщиков и программистов и получил поддержку и помощь от волонтеров, которым удалось создать полное и функциональное ядро.

Linux похож на Unix , но был разработан без какого-либо кода Unix, в отличие от BSD и ее вариантов. Благодаря модели открытой лицензии код ядра Linux доступен для изучения и модификации, что привело к его использованию на широком спектре вычислительной техники — от суперкомпьютеров до умных часов. Хотя оценки показывают, что Linux используется только на 2,81% всех «настольных» (или портативных) ПК, [3] он получил широкое распространение для использования на серверах [52] и встроенные системы [53] например сотовые телефоны.

Linux вытеснил Unix на многих платформах и используется на большинстве суперкомпьютеров , включая все 500 самых мощных суперкомпьютеров из списка TOP500 — вытеснив всех конкурентов к 2017 году. [54] Linux также широко используется на других небольших энергоэффективных компьютерах, таких как смартфоны и умные часы . Ядро Linux используется в некоторых популярных дистрибутивах, таких как Red Hat , Debian , Ubuntu , Linux Mint и Google от Android , ChromeOS и ChromiumOS .

Майкрософт Виндоус

Microsoft Windows — это семейство проприетарных операционных систем, разработанных корпорацией Microsoft и ориентированных в первую очередь на x86 компьютеры с архитектурой . По состоянию на 2022 год , ее доля мирового рынка на всех платформах составила примерно 30%, [55] а на платформах настольных компьютеров и ноутбуков его доля рынка составляла примерно 75%. [56] Последняя версия — Windows 11 .

Microsoft Windows была впервые выпущена в 1985 году как операционная среда , работающая поверх MS-DOS , которая в то время была стандартной операционной системой, поставляемой на большинство персональных компьютеров с архитектурой Intel. В 1995 году была выпущена Windows 95 , в которой в качестве начальной загрузки использовалась только MS-DOS. Для обратной совместимости Win9x может запускать MS-DOS в реальном режиме. [57] [58] и 16-битная Windows 3.x [59] водители. Windows ME , выпущенная в 2000 году, была последней версией семейства Win9x. Все более поздние версии были основаны на Windows NT ядре . Текущие клиентские версии Windows работают на IA-32 , x86-64 и Arm микропроцессорах . [60] Раньше Windows NT поддерживала дополнительные архитектуры.

Серверные версии Windows широко используются, однако использование Windows на серверах не так широко, как на персональных компьютерах, поскольку Windows конкурирует с Linux и BSD за долю рынка серверов. [61] [62]

ReactOS — это альтернативная Windows операционная система, которая разрабатывается на принципах Windows — без использования какого-либо кода Microsoft.

Другой

Было много операционных систем, которые были значимыми в свое время, но уже не таковыми, например AmigaOS ; OS/2 от IBM и Microsoft; классическая Mac OS , не-Unix-предшественница macOS от Apple; БеОС ; ХТС-300 ; РИСК ОС ; МорфОС ; Хайку ; BareMetal и FreeMint . Некоторые из них до сих пор используются на нишевых рынках и продолжают разрабатываться как второстепенные платформы для сообществ энтузиастов и специализированных приложений.

Операционная система z/OS IBM z/Architecture для мэйнфреймов все еще используется и разрабатывается. OpenVMS , ранее работавшая в DEC , все еще находится в стадии активной разработки компанией VMS Software Inc. Операционная система IBM i для IBM AS/400 и IBM Power Systems компьютеров среднего класса также все еще используется и разрабатывается.

Однако другие операционные системы используются почти исключительно в научных кругах, для обучения операционным системам или для исследования концепций операционных систем. Типичным примером системы, выполняющей обе роли, является MINIX , тогда как, например, Singularity используется исключительно для исследований. Другим примером является система «Оберон» , разработанная в ETH Zürich Никлаусом Виртом , Юргом Гуткнехтом и группой студентов бывшего Института компьютерных систем в 1980-х годах. Он использовался в основном для исследований, преподавания и повседневной работы в группе Вирта.

Другие операционные системы не смогли завоевать значительную долю рынка, но представили инновации, которые повлияли на основные операционные системы, и не в последнюю очередь Plan 9 от Bell Labs .

Компоненты

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

Ядро

Ядро соединяет прикладное программное обеспечение с аппаратным обеспечением компьютера.

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

Выполнение программы

Операционная система обеспечивает интерфейс между прикладной программой и аппаратным обеспечением компьютера, так что прикладная программа может взаимодействовать с аппаратным обеспечением, только подчиняясь правилам и процедурам, запрограммированным в операционной системе. Операционная система также представляет собой набор сервисов, упрощающих разработку и выполнение прикладных программ. Выполнение прикладной программы обычно включает в себя создание процесса ядром системы операционной , которое назначает пространство памяти и другие ресурсы, устанавливает приоритет процесса в многозадачных системах, загружает двоичный код программы в память и инициирует выполнение приложения. программа, которая затем взаимодействует с пользователем и с аппаратными устройствами. Однако в некоторых системах приложение может запросить, чтобы операционная система выполнила другое приложение в рамках того же процесса либо в виде подпрограммы, либо в отдельном потоке, например, LINK и ATTACH средства OS/360 и его преемников .

Прерывания

Прерывание прерывание (также известное исключение , , , ошибка , сигнал как [63] или ловушка ) [64] обеспечивает эффективный способ для большинства операционных систем реагировать на окружающую среду. Прерывания заставляют центральный процессор (ЦП) переключать поток управления с текущей запущенной программы на обработчик прерываний , также известный как процедура обслуживания прерываний (ISR). [65] [66] Процедура обслуживания прерывания может привести к тому, что центральный процессор (ЦП) переключит контекст . [67] [д] Детали того, как компьютер обрабатывает прерывание, варьируются от архитектуры к архитектуре, а детали того, как ведут себя процедуры обслуживания прерываний, различаются от операционной системы. [68] Однако некоторые функции прерываний являются общими. [68] Архитектура и операционная система должны: [68]

  1. передать управление подпрограмме обслуживания прерываний.
  2. сохранить состояние текущего запущенного процесса.
  3. восстановить состояние после обслуживания прерывания.
Программное прерывание

Программное прерывание — это сообщение процессу о том, что произошло событие. [63] Это контрастирует с аппаратным прерыванием , которое представляет собой сообщение центральному процессору (ЦП) о том, что произошло событие. [69] Программные прерывания аналогичны аппаратным прерываниям — они отличаются от текущего процесса. [70] Аналогично, как аппаратные, так и программные прерывания выполняют процедуру обслуживания прерываний .

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

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

Пользователи могут отправлять сообщения ядру, чтобы изменить поведение текущего процесса. [72] Например, в среде командной строки нажатие символа прерывания (обычно Control-C ) может завершить текущий запущенный процесс. [72]

Для генерации программных прерываний для x86 процессоров INT . ассемблера доступна инструкция [73] Синтаксис: INT X, где X — номер смещения (в шестнадцатеричном формате) в таблице векторов прерываний .

Сигнал

Для генерации программных прерываний в Unix-подобных операционных системах kill(pid,signum) системный вызов отправит сигнал другому процессу. [74] pid идентификатор процесса -получателя. signum номер сигнала (в мнемоническом формате) [Это] быть отправленным. (абразивное название kill был выбран, потому что ранние реализации только завершали процесс.) [75]

В Unix-подобных операционных системах сигналы сообщают процессам о возникновении асинхронных событий. [74] Для асинхронного взаимодействия необходимы прерывания. [76] Одна из причин, по которой процессу необходимо асинхронно взаимодействовать с другим процессом, заключается в решении вариации классической проблемы чтения/записи . [77] Модуль записи получает канал от оболочки для отправки его вывода во входной поток устройства чтения. [78] Синтаксис командной строки : alpha | bravo. alpha запишет в канал, когда его вычисления будут готовы, а затем перейдет в очередь ожидания. [79] bravo затем будет перемещен в очередь готовности и вскоре будет прочитан из своего входного потока. [80] Ядро будет генерировать программные прерывания для координации конвейерной обработки. [80]

Сигналы можно разделить на 7 категорий. [74] Категории:

  1. когда процесс завершается нормально.
  2. когда процесс имеет исключение ошибки.
  3. когда процессу не хватает системного ресурса.
  4. когда процесс выполняет недопустимую инструкцию.
  5. когда процесс устанавливает тревожное событие.
  6. когда процесс прерывается с клавиатуры.
  7. когда процесс имеет предупреждение трассировки для отладки.
Аппаратное прерывание

ввода/вывода (I/O) Устройства работают медленнее, чем ЦП. это замедлит работу компьютера Следовательно, если ЦП придется ждать завершения каждого ввода-вывода, . Вместо этого компьютер может реализовать прерывания для завершения ввода-вывода, избегая необходимости опроса или ожидания занятости. [81]

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

Ввод, вывод

Ввод-вывод, управляемый прерываниями

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

Прямой доступ к памяти

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

Если компьютерная программа выполняет системный вызов блока ввода- для выполнения операции записи вывода , то системный вызов может выполнить следующие инструкции:

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

  • Доступ к таблице состояний устройств.
  • Извлеките блок управления процессом.
  • Выполните переключение контекста обратно в процесс записи.

процесса записи Когда время истечет, операционная система: [90]

  • Извлеките из стека вызовов регистры, кроме регистра состояния и счетчика программ.
  • Извлеките из стека вызовов регистр состояния.
  • Извлеките из стека вызовов адрес следующей инструкции и установите его обратно в счетчик программы.

Теперь, когда счетчик программ сброшен, прерванный процесс возобновит свой временной интервал. [68]

Режимы привилегий

Кольца привилегий для микропроцессорной архитектуры x86 доступны в защищенном режиме . Операционные системы определяют, какие процессы выполняются в каждом режиме.

Современные компьютеры поддерживают несколько режимов работы. Процессоры с такой возможностью предлагают как минимум два режима: режим пользователя и режим супервизора . В общем, работа в режиме супервизора обеспечивает неограниченный доступ ко всем ресурсам машины, включая все инструкции MPU. Работа в пользовательском режиме устанавливает ограничения на использование инструкций и обычно запрещает прямой доступ к ресурсам машины. ЦП могут иметь и другие режимы, аналогичные пользовательскому режиму, например виртуальные режимы для эмуляции старых типов процессоров, например, 16-битных процессоров на 32-битном или 32-битных процессоров на 64 -битном .

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

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

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

Термин «ресурс пользовательского режима» обычно относится к одному или нескольким регистрам ЦП, которые содержат информацию, которую работающей программе не разрешено изменять. Попытки изменить эти ресурсы обычно приводят к переключению в режим супервизора, в котором операционная система может справиться с незаконной операцией, которую пыталась выполнить программа; например, принудительно завершив («уничтожив») программу.

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

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

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

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

Как при сегментации, так и при подкачке определенные регистры защищенного режима указывают ЦП, к какому адресу памяти он должен разрешить доступ работающей программе. Попытки доступа к другим адресам вызывают прерывание, которое заставляет ЦП повторно войти в режим супервизора , передавая управление ядру . Это называется нарушением сегментации или сокращенно Seg-V, и поскольку такой операции сложно присвоить значимый результат, а также поскольку это обычно является признаком неправильного поведения программы, ядро ​​обычно прибегает к завершению программы-нарушителя. и сообщает об ошибке.

Windows версий от 3.1 до ME имел некоторый уровень защиты памяти, но программы могли легко обойти необходимость его использования. сегментации ; Будет выдан общий сбой защиты, указывающий на то, что произошло нарушение однако система все равно часто давала сбой.

Виртуальная память

Многие операционные системы могут «обмануть» программы, заставляя их использовать память, разбросанную по жесткому диску и оперативной памяти, как если бы это был один непрерывный фрагмент памяти, называемый виртуальной памятью.

Использование адресации виртуальной памяти (например, подкачки или сегментации) означает, что ядро ​​может выбирать, какую память каждая программа может использовать в любой момент времени, что позволяет операционной системе использовать одни и те же области памяти для нескольких задач.

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

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

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

«Виртуальная память» дает программисту или пользователю ощущение, что в компьютере гораздо больший объем оперативной памяти, чем на самом деле. [91]

Параллелизм

Параллелизм означает способность операционной системы выполнять несколько задач одновременно. [92] Практически все современные операционные системы поддерживают параллелизм. [93]

Потоки позволяют разделить работу процесса на несколько частей, которые могут выполняться одновременно. [94] Количество потоков не ограничено количеством доступных процессоров. Если потоков больше, чем процессоров, ядро ​​операционной системы планирует, приостанавливает и возобновляет потоки, контролируя, когда каждый поток запускается и сколько процессорного времени он получает. [95] Во время переключения контекста работающий поток приостанавливается, его состояние сохраняется в блоке и стеке управления потоком , а состояние нового потока загружается. [96] Исторически сложилось так, что во многих системах поток мог выполняться до тех пор, пока не утратил управление ( кооперативная многозадачность ). Поскольку эта модель позволяет одному потоку монополизировать процессор, большинство операционных систем теперь могут прерывать поток ( вытесняющая многозадачность ). [97]

Потоки имеют собственный идентификатор потока, счетчик программ (ПК), набор регистров и стек , но совместно используют код, данные кучи и другие ресурсы с другими потоками того же процесса. [98] [99] Таким образом, на создание потока требуется меньше накладных расходов, чем на создание нового процесса. [100] В однопроцессорных системах параллелизм — это переключение между процессами. Многие компьютеры имеют несколько процессоров. [101] Параллелизм с несколькими потоками, выполняющимися на разных процессорах, может ускорить работу программы в зависимости от того, какая часть ее может выполняться одновременно. [102]

Файловая система

Файловые системы позволяют пользователям и программам организовывать и сортировать файлы на компьютере, часто с помощью каталогов (или папок).

Постоянные запоминающие устройства, используемые в компьютерах двадцать первого века, в отличие от энергозависимой динамической оперативной памяти (DRAM), по-прежнему доступны после сбоя или сбоя питания . Постоянное ( энергонезависимое ) хранилище обходится гораздо дешевле в расчете на байт, но для доступа, чтения и записи требуется на несколько порядков больше времени. [103] [104] Две основные технологии — это жесткий диск , состоящий из магнитных дисков , и флэш-память ( твердотельный накопитель , хранящий данные в электрических цепях). Последний дороже, но быстрее и долговечнее. [105] [106]

Файловые системы — это абстракция , используемая операционной системой для упрощения доступа к постоянному хранилищу. Они предоставляют удобочитаемые имена файлов и другие метаданные , повышают производительность за счет амортизации обращений, предотвращают доступ нескольких потоков к одному и тому же разделу памяти и включают контрольные суммы для выявления повреждений . [107] Файловые системы состоят из файлов (названных наборов данных произвольного размера) и каталогов (также называемых папками), в которых перечислены удобочитаемые имена файлов и других каталогов. [108] Абсолютный путь к файлу начинается с корневого каталога и перечисляет подкаталоги, разделенные знаками препинания, а относительный путь определяет расположение файла в каталоге. [109] [110]

Системные вызовы (которые иногда оборачиваются библиотеками) позволяют приложениям создавать, удалять, открывать и закрывать файлы, а также связывать их, читать и записывать в них. Все эти операции выполняются операционной системой от имени приложения. [111] Усилия операционной системы по сокращению задержки включают сохранение недавно запрошенных блоков памяти в кеше и предварительную выборку данных, которые приложение не запрашивало, но которые могут понадобиться в следующий раз. [112] Драйверы устройств — это программное обеспечение, специфичное для каждого устройства ввода-вывода (I/O), которое позволяет операционной системе работать без изменений на различном оборудовании. [113] [114]

Другим компонентом файловых систем является словарь , который сопоставляет имя файла и метаданные с блоком данных , в котором хранится его содержимое. [115] Большинство файловых систем используют каталоги для преобразования имен файлов в номера файлов. Чтобы найти номер блока, операционная система использует индекс (часто реализованный в виде дерева ). [116] Отдельно существует карта свободного пространства для отслеживания свободных блоков, обычно реализуемая в виде растрового изображения . [116] Хотя для хранения нового файла можно использовать любой свободный блок, многие операционные системы пытаются группировать файлы в одном каталоге, чтобы максимизировать производительность, или периодически реорганизовывать файлы, чтобы уменьшить фрагментацию . [117]

Еще одной проблемой является поддержание надежности данных в случае сбоя компьютера или аппаратного сбоя. [118] Протоколы записи файлов разработаны с использованием атомарных операций, чтобы не оставлять постоянное хранилище в частично записанном, противоречивом состоянии в случае сбоя на любом этапе записи. [119] Повреждение данных устраняется с помощью резервного хранилища (например, RAID — резервного массива недорогих дисков ). [120] [121] и контрольные суммы для обнаружения повреждения данных. Благодаря нескольким уровням контрольных сумм и резервным копиям файлов система может восстановиться после нескольких аппаратных сбоев. Фоновые процессы часто используются для обнаружения и восстановления поврежденных данных. [121]

Безопасность

Безопасность означает защиту пользователей от других пользователей того же компьютера, а также от тех, кто ищет к нему удаленный доступ по сети. [122] Безопасность операционных систем основывается на достижении триады CIA : конфиденциальность (неавторизованные пользователи не могут получить доступ к данным), целостность (неавторизованные пользователи не могут изменять данные) и доступность (гарантия того, что система остается доступной для авторизованных пользователей даже в случае отказа в обслуживании). атака ). [123] Как и в случае с другими компьютерными системами, изоляция доменов безопасности (в случае операционных систем, ядра, процессов и виртуальных машин ) является ключом к достижению безопасности. [124] Другие способы повышения безопасности включают простоту минимизации поверхности атаки , блокировку доступа к ресурсам по умолчанию, проверку всех запросов на авторизацию, принцип наименьших полномочий (предоставление минимальных привилегий, необходимых для выполнения задачи), разделение привилегий и сокращение общих данных. [125]

Некоторые конструкции операционных систем более безопасны, чем другие. Те, у которых нет изоляции между ядром и приложениями, наименее безопасны, в то время как системы с монолитным ядром, как и большинство операционных систем общего назначения, по-прежнему уязвимы, если какая-либо часть ядра скомпрометирована. Более безопасная конструкция включает микроядра , которые разделяют привилегии ядра на множество отдельных доменов безопасности и уменьшают последствия единичного нарушения ядра. [126] Unikernels — это еще один подход, который повышает безопасность за счет минимизации ядра и разделения функций других операционных систем по приложениям. [126]

Большинство операционных систем написаны на C или C++ , что создает потенциальные уязвимости для использования. Несмотря на попытки защиты от них, уязвимости вызваны атаками переполнения буфера , которые возможны из-за отсутствия проверки границ . [127] Уязвимости оборудования, некоторые из которых вызваны оптимизацией ЦП , также могут быть использованы для компрометации операционной системы. [128] Известны случаи, когда программисты операционных систем намеренно внедряли уязвимости, например бэкдоры . [129]

Безопасность операционных систем снижается из-за их возрастающей сложности и, как следствие, неизбежности ошибок. [130] Поскольку формальная проверка операционных систем может оказаться неосуществимой, разработчики используют усиление операционной системы для уменьшения уязвимостей. [131] например, рандомизация структуры адресного пространства , целостность потока управления , [132] ограничения доступа , [133] и другие техники. [134] Нет никаких ограничений на то, кто может вносить код в операционные системы с открытым исходным кодом; такие операционные системы имеют прозрачную историю изменений и распределенные структуры управления. [135] Разработчики с открытым исходным кодом стремятся работать сообща над поиском и устранением уязвимостей безопасности, используя проверку кода и проверку типов для удаления вредоносного кода. [136] [137] Эндрю С. Таненбаум советует публиковать исходный код всех операционных систем, утверждая, что это не позволяет разработчикам доверять секретности и, таким образом, полагаться на ненадежную практику обеспечения безопасности посредством неизвестности . [138]

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

Пользовательский интерфейс (UI) необходим для поддержки взаимодействия человека с компьютером. Два наиболее распространенных типа пользовательского интерфейса для любого компьютера:

Для персональных компьютеров, включая смартфоны и планшетные компьютеры , а также для рабочих станций пользовательский ввод обычно осуществляется с помощью клавиатуры , мыши и трекпада или сенсорного экрана , все из которых подключены к операционной системе с помощью специализированного программного обеспечения. [139] Пользователи персональных компьютеров, которые не являются разработчиками программного обеспечения или программистами, часто предпочитают графические интерфейсы как для ввода, так и для вывода; Графические интерфейсы поддерживаются большинством персональных компьютеров. [140] Программное обеспечение для поддержки графических интерфейсов более сложное, чем командная строка для ввода и вывода обычного текста. Программисты часто предпочитают простой текстовый вывод, и его легко поддерживать. [141]

Разработка операционных систем как хобби

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

В некоторых случаях хобби-разработки заключаются в поддержке « доморощенного » вычислительного устройства, например, простого одноплатного компьютера на базе микропроцессора 6502 . Или же разработка может вестись для архитектуры, которая уже широко используется. Разработка операционной системы может исходить из совершенно новых концепций или может начинаться с моделирования существующей операционной системы. В любом случае любитель является собственным разработчиком или может взаимодействовать с небольшой, а иногда и неструктурированной группой людей, имеющих схожие интересы.

Примеры операционных систем для хобби включают Syllable и TempleOS .

Разнообразие операционных систем и портативность

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

Этих затрат на поддержку разнообразия операционных систем можно избежать, написав вместо этого приложения для программных платформ , таких как Java или Qt . Эти абстракции уже понесли затраты на адаптацию к конкретным операционным системам и их системным библиотекам .

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

Доля рынка

Смотрите также

Примечания

  1. ^ Комбинация DOS/360 и программного обеспечения эмуляции была известна как совместимая операционная система (COS).
  2. ^ Однако ESPOL позволял исходным программам указывать все операции из репертуара инструкций.
  3. Bell Labs быстро вышла из состава, оставив GE и MIT.
  4. ^ Современные процессоры предоставляют инструкции (например, SYSENTER) для вызова выбранных служб ядра без прерываний. Посетите https://wiki.osdev.org/SYSENTER для получения дополнительной информации.
  5. ^ Примеры: SIGINT , SIGSEGV и SIGBUS .
  6. ^ часто в виде чипа DMA для небольших систем и каналов ввода-вывода для более крупных систем.
  7. ^ Современные материнские платы имеют контроллер DMA. Кроме того, устройство также может иметь один. Посетите протокол SCSI RDMA .

Рекомендации

  1. ^ Столлингс (2005). Операционные системы, внутреннее устройство и принципы проектирования . Пирсон: Прентис Холл. п. 6.
  2. ^ Дотре, Айова (2009). Операционные системы . Технические публикации. п. 1.
  3. ^ Перейти обратно: а б «Доля рынка настольных операционных систем в мире» . Глобальная статистика StatCounter . Архивировано из оригинала 2 октября 2023 года . Проверено 3 октября 2023 г.
  4. ^ «Доля операционных систем для мобильных и планшетов в мире» . Глобальная статистика StatCounter . Проверено 2 октября 2023 г.
  5. ^ «VII. Системы специального назначения — Концепции операционных систем, седьмое издание [Книга]» . www.oreilly.com . Архивировано из оригинала 13 июня 2021 года . Проверено 8 февраля 2021 г.
  6. ^ «Операционные системы специального назначения - Институт автоматизации сложных энергосистем RWTH ACHEN UNIVERSITY - английский» . www.acs.eonerc.rwth-aachen.de . Архивировано из оригинала 14 июня 2021 года . Проверено 8 февраля 2021 г.
  7. ^ Перейти обратно: а б Таненбаум и Бос 2023 , с. 4.
  8. ^ Андерсон и Далин 2014 , с. 6.
  9. ^ Перейти обратно: а б Зильбершац и др. 2018 , с. 6.
  10. ^ Перейти обратно: а б с Андерсон и Далин 2014 , с. 7.
  11. ^ Андерсон и Далин 2014 , с. 9–10.
  12. ^ Таненбаум и Бос 2023 , стр. 6–7.
  13. ^ Андерсон и Далин 2014 , с. 10.
  14. ^ Таненбаум и Бос 2023 , с. 5.
  15. ^ Перейти обратно: а б с д Андерсон и Далин 2014 , с. 11.
  16. ^ Андерсон и Далин 2014 , с. 7, 9,
  17. ^ Андерсон и Далин 2014 , с. 12–13.
  18. ^ Таненбаум и Бос 2023 , с. 557.
  19. ^ Таненбаум и Бос 2023 , с. 558.
  20. ^ Перейти обратно: а б Таненбаум и Бос 2023 , с. 565.
  21. ^ Таненбаум и Бос 2023 , с. 562.
  22. ^ Таненбаум и Бос 2023 , с. 563.
  23. ^ Таненбаум и Бос 2023 , с. 569.
  24. ^ Таненбаум и Бос 2023 , с. 571.
  25. ^ Таненбаум и Бос 2023 , с. 579.
  26. ^ Таненбаум и Бос 2023 , с. 581.
  27. ^ Таненбаум и Бос 2023 , стр. 37–38.
  28. ^ Таненбаум и Бос 2023 , с. 39.
  29. ^ Перейти обратно: а б с д Таненбаум и Бос 2023 , с. 38.
  30. ^ Зильбершац и др. 2018 , стр. 701.
  31. ^ Зильбершац и др. 2018 , стр. 705.
  32. ^ Андерсон и Далин 2014 , с. 12.
  33. ^ Перейти обратно: а б Хансен, Пер Бринч, изд. (2001). Классические операционные системы . Спрингер. стр. 4–7. ISBN  0-387-95113-Х . Архивировано из оригинала 11 января 2023 года . Проверено 19 декабря 2020 г.
  34. ^ Рикман, Джордж (1960). «Язык работы компьютера» . IRE-AIEE-ACM '60 (западный) : 341. doi : 10.1145/1460361.1460406 . S2CID   30745551 .
  35. ^ Лавингтон, Саймон (1998). История компьютеров в Манчестере (2-е изд.). Суиндон: Британское компьютерное общество. стр. 50–52. ISBN  978-1-902505-01-5 .
  36. ^ Килберн, Т.; Пейн, РБ; Ховарт, ди-джей (декабрь 1961 г.). «Супервайзер Атласа» . Институт инженеров-электриков : 279–294. дои : 10.1145/1460764.1460786 . S2CID   16466990 . Архивировано из оригинала 9 июня 2022 года . Проверено 17 июня 2022 г.
  37. ^ Бринч Хансен, Пер (2000). Классические операционные системы: от пакетной обработки к распределенным системам . Спрингер-Верлаг.
  38. ^ Исполнительная система EXEC I UNIVAC 1107 (PDF) (1-е изд.). Сперри Рэнд . УП-2577. Архивировано (PDF) из оригинала 15 июня 2022 года . Проверено 15 мая 2022 г.
  39. ^ Справочное руководство для программистов многопроцессорной системы UNIVAC Data Processing Division EXEC II (PDF) . Сперри Рэнд . 1966. УП-4058. Архивировано (PDF) из оригинала 15 июня 2022 года . Проверено 15 мая 2022 г.
  40. ^ Справочник программистов многопроцессорной системы UNIVAC 1108 EXEC 8 (PDF) (1-е изд.). Сперри Рэнд . 1968. УП-4144. Архивировано (PDF) из оригинала 25 мая 2022 года . Проверено 15 мая 2022 г.
  41. ^ «Краткое справочное руководство по микропроцессорам Intel® — год» . Интел . Архивировано из оригинала 25 апреля 2016 года . Проверено 24 апреля 2016 г.
  42. ^ Ричи, Деннис. «Руководство Unix, первое издание» . Люсент Технологии. Архивировано из оригинала 18 мая 2008 года . Проверено 22 ноября 2012 г.
  43. ^ «OS X Mountain Lion – продвиньте свой Mac еще дальше» . Яблоко. Архивировано из оригинала 23 мая 2011 года . Проверено 7 августа 2012 г.
  44. ^ «Объявлены услуги открытия MVS/ESA SP версии 4 выпуска 3 и доступность MVS/ESA SP версии 4 выпуска 3 с дополнительными улучшениями» . Информационные письма . ИБМ. 9 февраля 1993 г. 293-060 . Проверено 16 июля 2023 г.
  45. ^ Представляем OpenEdition MVS . Первое издание. ИБМ. Декабрь 1993 г. GC23-3010-00.
  46. ^ Документ соответствия OpenEdition MVS POSIX.1 . Первое издание. ИБМ. Февраль 1993 г. GC23-3011-00.
  47. ^ Документ соответствия OpenEdition MVS POSIX.2 . Первое издание. ИБМ. Декабрь 1993 г. GC23-3012-00.
  48. ^ «Двадцать лет Linux по мнению Линуса Торвальдса» . ЗДНет. 13 апреля 2011 года. Архивировано из оригинала 19 сентября 2016 года . Проверено 19 сентября 2016 г.
  49. ^ Линус Бенедикт Торвальдс (5 октября 1991 г.). «Бесплатные миникс-подобные исходники ядра для 386-AT» . Группа новостей : comp.os.minix . Архивировано из оригинала 2 марта 2013 года . Проверено 30 сентября 2011 г.
  50. ^ «Что такое Linux: обзор операционной системы Linux» . Середина. 11 апреля 2020 г. Проверено 16 июля 2023 г.
  51. ^ Линукс Онлайн (2008). «Логотипы и талисманы Linux» . Архивировано из оригинала 15 августа 2010 года . Проверено 11 августа 2009 г.
  52. ^ «Отчет IDC о доле рынка серверов» . Idc.com. Архивировано из оригинала 27 сентября 2012 года . Проверено 7 августа 2012 г.
  53. ^ Персонал LinuxDevices (23 апреля 2008 г.). «Linux по-прежнему является лучшей встраиваемой ОС» . LinuxGizmos.com . Архивировано из оригинала 19 апреля 2016 года . Проверено 5 апреля 2016 г.
  54. ^ «Семейство операционных систем/Linux | ТОП500» . www.top500.org . Проверено 30 июля 2023 г.
  55. ^ «Доля рынка операционных систем в мире, январь – декабрь 2022 г.» . 2022 . Проверено 4 ноября 2023 г.
  56. ^ «Доля рынка операционных систем для настольных компьютеров в мире, январь – декабрь 2022 г.» . 2022 . Проверено 4 ноября 2023 г.
  57. ^ «Устранение неполадок режима совместимости MS-DOS на жестких дисках» . Поддержка Майкрософт. Архивировано из оригинала 10 августа 2012 года . Проверено 7 августа 2012 г.
  58. ^ «Использование драйверов сетевой карты NDIS 2 PCMCIA в Windows 95» . Поддержка Майкрософт. Архивировано из оригинала 17 февраля 2013 года . Проверено 7 августа 2012 г.
  59. ^ «ИНФОРМАЦИЯ: Драйверы устройств Multimedia Wave для Windows 95 должны быть 16-разрядными» . Поддержка Майкрософт. Архивировано из оригинала 17 февраля 2013 года . Проверено 7 августа 2012 г.
  60. ^ Артур, Чарльз (5 января 2011 г.). « Windows 8 будет работать на чипах ARM, но сторонние приложения придется переписывать» . Хранитель . Архивировано из оригинала 12 октября 2016 года.
  61. ^ «Распределение операционных систем по группам для сайтов во всех местоположениях, январь 2009 г.» . Архивировано из оригинала 6 июля 2009 года . Проверено 3 мая 2010 г.
  62. ^ «По данным IDC: Windows по-прежнему №1 среди серверных операционных систем» . ЗДНет . 26 февраля 2010 г. Архивировано из оригинала 1 марта 2010 г.
  63. ^ Перейти обратно: а б Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН  978-1-59327-220-3 . Сигнал — это уведомление процесса о том, что произошло событие. Сигналы иногда называют программными прерываниями.
  64. ^ Хайд, Рэндалл (1996). «Глава семнадцатая: Прерывания, ловушки и исключения (Часть 1)» . Искусство программирования на языке ассемблера . Нет крахмального пресса. Архивировано из оригинала 22 декабря 2021 года . Проверено 22 декабря 2021 г. Концепция прерывания с годами расширилась. Семейство 80x86 только усугубило путаницу вокруг прерываний, представив инструкцию int (программное прерывание). Действительно, разные производители использовали такие термины, как исключения, сбои, прерывания, ловушки и прерывания, для описания явлений, обсуждаемых в этой главе. К сожалению, нет четкого консенсуса относительно точного значения этих терминов. Разные авторы используют в своих целях разные термины.
  65. ^ Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 308 . ISBN  978-0-13-854662-5 . Как и ловушка, прерывание останавливает работающую программу и передает управление обработчику прерывания, который выполняет соответствующее действие. По завершении обработчик прерывания возвращает управление прерванной программе.
  66. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 32. ISBN  978-0-201-50480-4 . При возникновении прерывания (или ловушки) оборудование передает управление операционной системе. Во-первых, операционная система сохраняет состояние ЦП, сохраняя регистры и счетчик программ. Затем он определяет, какой тип прерывания произошел. Для каждого типа прерывания отдельные сегменты кода операционной системы определяют, какое действие следует предпринять.
  67. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 105. ИСБН  978-0-201-50480-4 . Переключение ЦП на другой процесс требует сохранения состояния старого процесса и загрузки сохраненного состояния для нового процесса. Эта задача известна как переключение контекста.
  68. ^ Перейти обратно: а б с д Это Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 31. ISBN  978-0-201-50480-4 .
  69. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 30. ISBN  978-0-201-50480-4 . Аппаратное обеспечение может вызвать прерывание в любой момент, отправив сигнал в ЦП, обычно через системную шину.
  70. ^ Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН  978-1-59327-220-3 . Сигналы аналогичны аппаратным прерываниям в том смысле, что они прерывают нормальный поток выполнения программы; в большинстве случаев невозможно точно предсказать, когда поступит сигнал.
  71. ^ Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН  978-1-59327-220-3 . Среди типов событий, которые заставляют ядро ​​генерировать сигнал для процесса, можно выделить следующие: Произошло программное событие. Например,... превышен лимит времени ЦП процесса[.]
  72. ^ Перейти обратно: а б с д Это Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН  978-1-59327-220-3 .
  73. ^ «Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32» (PDF) . Корпорация Интел . Сентябрь 2016. с. 610. Архивировано (PDF) из оригинала 23 марта 2022 года . Проверено 5 мая 2022 г.
  74. ^ Перейти обратно: а б с Бах, Морис Дж. (1986). Проект операционной системы UNIX . Прентис-Холл. п. 200. ИСБН  0-13-201799-7 .
  75. ^ Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 400. ИСБН  978-1-59327-220-3 .
  76. ^ Перейти обратно: а б Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 308 . ISBN  978-0-13-854662-5 .
  77. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 182. ИСБН  978-0-201-50480-4 .
  78. ^ Хэвиленд, Кейт; Салама, Бен (1987). Системное программирование UNIX . Издательство Аддисон-Уэсли. п. 153. ИСБН  0-201-12919-1 .
  79. ^ Хэвиленд, Кейт; Салама, Бен (1987). Системное программирование UNIX . Издательство Аддисон-Уэсли. п. 148. ИСБН  0-201-12919-1 .
  80. ^ Перейти обратно: а б Хэвиленд, Кейт; Салама, Бен (1987). Системное программирование UNIX . Издательство Аддисон-Уэсли. п. 149. ИСБН  0-201-12919-1 .
  81. ^ Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 292 . ISBN  978-0-13-854662-5 .
  82. ^ IBM (сентябрь 1968 г.), «Основное хранилище» (PDF) , Принципы работы IBM System / 360 (PDF) , восьмое издание, стр. 7, заархивировано (PDF) из оригинала 19 марта 2022 г. , получено 13 апреля 2022 г.
  83. ^ Перейти обратно: а б Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 294 . ISBN  978-0-13-854662-5 .
  84. ^ «Контроллер программных прерываний (PIC)» (PDF) . Руководство пользователя — PDP-7 (PDF) . Корпорация цифрового оборудования . 1965. С. 48 . Ф-75. Архивировано (PDF) из оригинала 10 мая 2022 года . Проверено 20 апреля 2022 г.
  85. ^ Руководство по системам ввода-вывода PDP-1 (PDF) . Корпорация цифрового оборудования . стр. 19–20. Архивировано (PDF) из оригинала 25 января 2019 года . Проверено 16 августа 2022 г.
  86. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 32. ISBN  978-0-201-50480-4 .
  87. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 34. ISBN  978-0-201-50480-4 .
  88. ^ Перейти обратно: а б Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 295 . ISBN  978-0-13-854662-5 .
  89. ^ Перейти обратно: а б Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 309 . ISBN  978-0-13-854662-5 .
  90. ^ Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание . Прентис Холл. п. 310 . ISBN  978-0-13-854662-5 .
  91. ^ Столлингс, Уильям (2008). Компьютерная организация и архитектура . Нью-Дели: Prentice-Hall of India Private Limited. п. 267. ИСБН  978-81-203-2962-1 .
  92. ^ Андерсон и Далин 2014 , с. 129.
  93. ^ Зильбершац и др. 2018 , с. 159.
  94. ^ Андерсон и Далин 2014 , с. 130.
  95. ^ Андерсон и Далин 2014 , с. 131.
  96. ^ Андерсон и Далин 2014 , с. 157 ,
  97. ^ Андерсон и Далин 2014 , с. 139.
  98. ^ Зильбершац и др. 2018 , с. 160.
  99. ^ Андерсон и Далин 2014 , с. 183.
  100. ^ Зильбершац и др. 2018 , с. 162.
  101. ^ Зильбершац и др. 2018 , стр. 162–163.
  102. ^ Зильбершац и др. 2018 , с. 164.
  103. ^ Андерсон и Далин 2014 , с. 492, 517.
  104. ^ Таненбаум и Бос 2023 , стр. 259–260.
  105. ^ Андерсон и Далин 2014 , с. 517, 530.
  106. ^ Таненбаум и Бос 2023 , с. 260.
  107. ^ Андерсон и Далин 2014 , с. 492–493.
  108. ^ Андерсон и Далин 2014 , с. 496.
  109. ^ Андерсон и Далин 2014 , с. 496–497.
  110. ^ Таненбаум и Бос 2023 , стр. 274–275.
  111. ^ Андерсон и Далин 2014 , с. 502–504.
  112. ^ Андерсон и Далин 2014 , с. 507.
  113. ^ Андерсон и Далин 2014 , с. 508.
  114. ^ Таненбаум и Бос 2023 , с. 359.
  115. ^ Андерсон и Далин 2014 , с. 545.
  116. ^ Перейти обратно: а б Андерсон и Далин 2014 , с. 546.
  117. ^ Андерсон и Далин 2014 , с. 547.
  118. ^ Андерсон и Далин 2014 , с. 589, 591.
  119. ^ Андерсон и Далин 2014 , с. 591–592.
  120. ^ Таненбаум и Бос 2023 , стр. 385–386.
  121. ^ Перейти обратно: а б Андерсон и Далин 2014 , с. 592.
  122. ^ Таненбаум и Бос 2023 , стр. 605–606.
  123. ^ Таненбаум и Бос 2023 , с. 608.
  124. ^ Таненбаум и Бос 2023 , с. 609.
  125. ^ Таненбаум и Бос 2023 , стр. 609–610.
  126. ^ Перейти обратно: а б Таненбаум и Бос 2023 , с. 612.
  127. ^ Таненбаум и Бос 2023 , стр. 648, 657.
  128. ^ Таненбаум и Бос 2023 , стр. 668–669, 674.
  129. ^ Таненбаум и Бос 2023 , стр. 679–680.
  130. ^ Таненбаум и Бос 2023 , стр. 605, 617–618.
  131. ^ Таненбаум и Бос 2023 , стр. 681–682.
  132. ^ Таненбаум и Бос 2023 , с. 683.
  133. ^ Таненбаум и Бос 2023 , с. 685.
  134. ^ Таненбаум и Бос 2023 , с. 689.
  135. ^ Рише и Буайная, 2023 , с. 92.
  136. ^ Рише и Буайная, 2023 , стр. 92–93.
  137. ^ Бернтссо, Странден и Варг 2017 , стр. 130–131.
  138. ^ Таненбаум и Бос 2023 , с. 611.
  139. ^ Таненбаум и Бос 2023 , стр. 396, 402.
  140. ^ Таненбаум и Бос 2023 , стр. 395, 408.
  141. ^ Таненбаум и Бос 2023 , с. 402.
  142. ^ Холверда, Том (20 декабря 2009 г.). «Моя ОС менее хобби, чем ваша» . Новости ОС . Проверено 4 июня 2024 г.

дальнейшее чтение

Внешние ссылки

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 8D4C61C581215C49851BAC6B1F824A93__1717750200
URL1:https://en.wikipedia.org/wiki/Operating_system
Заголовок, (Title) документа по адресу, URL1:
Operating system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)