stringtranslate.com

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

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

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

Для аппаратных функций, таких как ввод и вывод , а также распределение памяти , операционная система действует как посредник между программами и компьютерным оборудованием, [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- накопителя).

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

Однозадачность и многозадачность

Однозадачная система может запускать только одну программу одновременно, тогда как многозадачная операционная система позволяет одновременно запускать более одной программы . Это достигается за счет разделения времени , когда доступное процессорное время делится между несколькими процессами. Каждый из этих процессов неоднократно прерывается подсистемой планирования задач операционной системы. Многозадачность можно охарактеризовать как упреждающую и кооперативную. При вытесняющей многозадачности операционная система распределяет время процессора и выделяет слот для каждой программы. Unix-подобные операционные системы, такие как Linux , а также не-Unix-подобные, такие как AmigaOS , поддерживают вытесняющую многозадачность. Совместная многозадачность достигается за счет того, что каждый процесс определенным образом выделяет время другим процессам. 16-битные версии Microsoft Windows использовали совместную многозадачность; 32-битные версии Windows NT и Win9x использовали вытесняющую многозадачность.

Одно- и многопользовательские

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

Распределенный

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

Встроенный

Встроенные операционные системы предназначены для использования во встроенных компьютерных системах . Они предназначены для работы на небольших машинах с меньшей автономностью (например, КПК ). Они очень компактны и чрезвычайно эффективны по своей конструкции и способны работать с ограниченным количеством ресурсов. Windows CE и Minix 3 являются примерами встроенных операционных систем.

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

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

Библиотека

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

История

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

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

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

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

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

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

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

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

Мэйнфреймы

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

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

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

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

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

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

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

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

Bell Labs , [c] 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 MS-DOS , которая стала широко популярной в качестве операционной системы, выбранной для IBM PC (ее версия IBM называлась IBM DOS или PC DOS ).

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

Появление в октябре 1985 года процессора Intel 80386 [17] с 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 была написана на языке ассемблера . [18] Кен Томпсон написал 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-UX от HP и AIX от IBM являются потомками оригинальной System V Unix и предназначены для работы только на оборудовании соответствующего поставщика. Напротив, Solaris от Sun Microsystems может работать на различных типах оборудования, включая серверы x86 и SPARC , а также ПК. MacOS от Apple , замена более ранней (не 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» из названия). Серверные инструменты теперь предлагаются в виде приложений. [19]

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

Впервые представлен как обновление OpenEdition до MVS/ESA System Product Version 4 Release 3, анонсированное [20] февраля 1993 г., с поддержкой POSIX и других стандартов. [21] [22] [23] Системные службы z/OS UNIX построены на основе служб MVS и не могут работать независимо. Хотя IBM изначально представила OpenEdition для удовлетворения требований FIPS , некоторые компоненты z/OS теперь требуют служб UNIX, например TCP/IP.

Линукс

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

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

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

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

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

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

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

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

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 и его преемников .

Прерывания

Прерывание (также известное как прерывание , исключение , ошибка , сигнал , [39] или ловушка ) [ 40] обеспечивает эффективный способ для большинства операционных систем реагировать на окружающую среду. Прерывания заставляют центральный процессор (ЦП) переключать поток управления с текущей запущенной программы на обработчик прерываний , также известный как процедура обслуживания прерываний (ISR). [41] [42] Процедура обслуживания прерывания может привести к тому, что центральный процессор (ЦП) переключит контекст . [43] [d] Детали того, как компьютер обрабатывает прерывание, варьируются от архитектуры к архитектуре, а детали того, как ведут себя процедуры обслуживания прерываний, различаются от операционной системы к операционной системе. [44] Однако некоторые функции прерываний являются общими. [44] Архитектура и операционная система должны: [44]

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

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

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

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

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

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

Сигнал

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

В Unix-подобных операционных системах сигналы сообщают процессам о возникновении асинхронных событий. [50] Для асинхронной связи необходимы прерывания. [52] Одна из причин, по которой процессу необходимо асинхронно взаимодействовать с другим процессом, заключается в решении вариации классической проблемы чтения/записи . [53] Устройство записи получает канал от оболочки для отправки вывода во входной поток устройства чтения. [54] Синтаксис командной строки : alpha | bravo. alphaзапишет в канал, когда его вычисления будут готовы, а затем перейдет в очередь ожидания. [55] bravo затем будет перемещен в очередь готовности и вскоре будет прочитан из своего входного потока. [56] Ядро будет генерировать программные прерывания для координации конвейерной обработки. [56]

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

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

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

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

Ввод, вывод

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

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

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

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

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

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

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

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

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

Режимы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Многозадачность

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

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

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

Современные операционные системы расширяют концепцию вытеснения приложений на драйверы устройств и код ядра, так что операционная система также имеет вытесняющий контроль над внутренней средой выполнения.

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

Во многих однопользовательских операционных системах совместная многозадачность вполне достаточна, поскольку на домашних компьютерах обычно работает небольшое количество хорошо протестированных программ. AmigaOS является исключением: с первой версии у нее вытесняющая многозадачность. Windows NT была первой версией Microsoft Windows , которая обеспечивала вытесняющую многозадачность, но она не достигла рынка домашних пользователей до Windows XP (поскольку Windows NT была ориентирована на профессионалов).

Доступ к диску и файловые системы

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

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

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

В то время как многие более простые операционные системы поддерживают ограниченный набор возможностей доступа к системам хранения, такие операционные системы, как UNIX и Linux , поддерживают технологию, известную как виртуальная файловая система или VFS. Операционная система, такая как UNIX, поддерживает широкий спектр устройств хранения данных, независимо от их конструкции или файловых систем , обеспечивая доступ к ним через общий интерфейс прикладного программирования (API). Это избавляет программы от необходимости иметь какие-либо сведения об устройстве, к которому они обращаются. VFS позволяет операционной системе предоставлять программам доступ к неограниченному количеству устройств с бесконечным разнообразием установленных на них файловых систем за счет использования определенных драйверов устройств и драйверов файловой системы.

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

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

Различные различия между файловыми системами затрудняют поддержку всех файловых систем. Допустимые символы в именах файлов, чувствительность к регистру и наличие различного рода атрибутов файлов делают реализацию единого интерфейса для каждой файловой системы сложной задачей. Операционные системы обычно рекомендуют использовать (и, следовательно, поддерживать) файловые системы, специально разработанные для них; например, NTFS в Windows и ReiserFS , Reiser4 , ext3 , ext4 и Btrfs в Linux. Однако на практике обычно доступны драйверы сторонних производителей, обеспечивающие поддержку наиболее широко используемых файловых систем в большинстве операционных систем общего назначения (например, NTFS доступна в Linux через NTFS-3g , а ext2/3 и ReiserFS доступны). в Windows через стороннее программное обеспечение).

Поддержка файловых систем в современных операционных системах сильно различается, хотя существует несколько распространенных файловых систем, для которых почти все операционные системы включают поддержку и драйверы. Операционные системы различаются по поддержке файловой системы и форматам дисков, на которых они могут быть установлены. В Windows каждая файловая система обычно ограничена в применении к определенному носителю; например, компакт-диски должны использовать ISO 9660 или UDF , а начиная с Windows Vista NTFS является единственной файловой системой, на которой может быть установлена ​​операционная система. Linux можно установить на многие типы файловых систем. В отличие от других операционных систем, Linux и UNIX позволяют использовать любую файловую систему независимо от носителя, на котором она хранится, будь то жесткий диск, диск ( CD , DVD ...), USB-накопитель или даже содержащий внутри файла, расположенного в другой файловой системе.

Драйверы устройств

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

Ключевой целью разработки драйверов устройств является абстракция . Каждая модель оборудования (даже в пределах одного класса устройств) различна. Производители также выпускают новые модели, которые обеспечивают более надежную или лучшую производительность, и эти новые модели часто управляются по-другому. Нельзя ожидать, что компьютеры и их операционные системы будут знать, как управлять каждым устройством, как сейчас, так и в будущем. Чтобы решить эту проблему, операционные системы по сути диктуют, как следует управлять каждым типом устройств. Функция драйвера устройства заключается в преобразовании этих вызовов функций, предусмотренных операционной системой, в вызовы, специфичные для устройства. Теоретически новое устройство, управляемое по-новому, должно работать корректно при наличии подходящего драйвера. Этот новый драйвер гарантирует, что устройство будет работать как обычно с точки зрения операционной системы.

В версиях Windows до Vista и версиях Linux до 2.6 выполнение всех драйверов было совместным, а это означает, что если драйвер войдет в бесконечный цикл, это приведет к зависанию системы. Более поздние версии этих операционных систем включают вытеснение ядра, при котором ядро ​​прерывает работу драйвера, чтобы дать ему задачи, а затем отделяется от процесса до тех пор, пока не получит ответ от драйвера устройства или не предоставит ему дополнительные задачи.

сеть

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

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

Многие операционные системы также поддерживают один или несколько специфичных для конкретного поставщика или открытых сетевых протоколов, например, SNA в системах IBM , DECnet в системах Digital Equipment Corporation и протоколы, специфичные для Microsoft ( SMB ) в Windows. Также могут поддерживаться определенные протоколы для конкретных задач, например NFS для доступа к файлам. Такие протоколы, как ESound или esd, можно легко расширить по сети для обеспечения звука из локальных приложений на звуковом оборудовании удаленной системы.

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

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

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

В дополнение к разрешающей или запрещающей модели безопасности система с высоким уровнем безопасности также предлагает возможности аудита. Это позволит отслеживать запросы на доступ к ресурсам (например, «кто читал этот файл?»). Внутренняя безопасность или защита от уже запущенной программы возможна только в том случае, если все потенциально вредоносные запросы должны выполняться через прерывания ядра операционной системы. Если программы могут напрямую обращаться к оборудованию и ресурсам, их невозможно защитить. [ нужна цитата ]

Внешняя безопасность предполагает запрос снаружи компьютера, например вход в подключенную консоль или какое-либо сетевое соединение. Внешние запросы часто передаются через драйверы устройств в ядро ​​операционной системы, где они могут передаваться приложениям или выполняться напрямую. Безопасность операционных систем уже давно вызывает беспокойство из-за очень конфиденциальных данных, хранящихся на компьютерах, как коммерческого, так и военного характера. Министерство обороны США (DoD) создало Критерии оценки доверенных компьютерных систем (TCSEC), которые представляют собой стандарт, устанавливающий основные требования для оценки эффективности безопасности. Это стало жизненно важным для производителей операционных систем, поскольку TCSEC использовался для оценки, классификации и выбора надежных операционных систем , рассматриваемых для обработки, хранения и поиска конфиденциальной или секретной информации .

Сетевые службы включают такие предложения, как обмен файлами, услуги печати, электронная почта, веб-сайты и протоколы передачи файлов (FTP), большинство из которых могут поставить под угрозу безопасность. На переднем крае безопасности находятся аппаратные устройства, известные как межсетевые экраны или системы обнаружения/предотвращения вторжений. На уровне операционной системы имеется ряд программных межсетевых экранов, а также систем обнаружения/предотвращения вторжений. Большинство современных операционных систем включают программный брандмауэр, который включен по умолчанию. Программный брандмауэр можно настроить так, чтобы разрешать или запрещать сетевой трафик к службе или приложению, работающему в операционной системе, или от него. Таким образом, можно установить и запустить небезопасную службу, такую ​​как Telnet или FTP, и вам не придется подвергаться угрозе нарушения безопасности, поскольку брандмауэр будет блокировать весь трафик, пытающийся подключиться к службе через этот порт.

Альтернативная стратегия и единственная стратегия «песочницы» , доступная в системах, которые не отвечают требованиям виртуализации Попека и Голдберга , заключается в том, что операционная система не запускает пользовательские программы как собственный код, а вместо этого либо эмулирует процессор, либо предоставляет хост для ПК. -система на основе кода , такая как Java.

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

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

Скриншот командной строки bash . Каждая команда вводится после «подсказки», а затем ее вывод появляется ниже, продвигаясь вниз по экрану. Текущая командная строка находится внизу.

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

Графические пользовательские интерфейсы

Снимок экрана графического пользовательского интерфейса KDE Plasma 5 . Программы принимают форму изображений на экране, а файлы, папки (каталоги) и приложения — значки и символы. Для навигации по компьютеру используется мышь.

Большинство современных компьютерных систем поддерживают графические интерфейсы пользователя (GUI) и часто включают их. В некоторых компьютерных системах, таких как первоначальная реализация классической Mac OS , графический интерфейс интегрирован в ядро .

Хотя технически графический интерфейс пользователя не является службой операционной системы, включение его поддержки в ядро ​​операционной системы может позволить графическому интерфейсу быть более отзывчивым за счет уменьшения количества переключателей контекста , необходимых графическому интерфейсу для выполнения своих функций вывода. Другие операционные системы являются модульными , отделяя графическую подсистему от ядра и операционной системы. В 1980-х годах UNIX, VMS и многие другие имели операционные системы, построенные таким образом. Linux и macOS также построены таким образом. Современные выпуски Microsoft Windows, такие как Windows Vista, реализуют графическую подсистему, которая в основном находится в пользовательском пространстве; однако процедуры рисования графики версий между Windows NT 4.0 и Windows Server 2003 существуют в основном в пространстве ядра. В Windows 9x было очень мало различий между интерфейсом и ядром.

Многие компьютерные операционные системы позволяют пользователю устанавливать или создавать любой пользовательский интерфейс по своему желанию. Система X Window в сочетании с GNOME или KDE Plasma 5 — это обычно встречающаяся установка в большинстве Unix и Unix-подобных (BSD, Linux, Solaris) систем. Для Microsoft Windows был выпущен ряд замен оболочки Windows , которые предлагают альтернативы включенной оболочке Windows , но саму оболочку нельзя отделить от Windows.

С течением времени существовало множество графических интерфейсов на базе Unix, большинство из которых произошли от X11. Конкуренция между различными поставщиками Unix (HP, IBM, Sun) привела к значительной фрагментации, хотя попытки стандартизации COSE и CDE в 1990-х годах провалились по разным причинам и в конечном итоге были затмлены широким распространением GNOME и K Desktop Environment. . До появления наборов инструментов и сред рабочего стола на основе бесплатного программного обеспечения Motif был преобладающей комбинацией набора инструментов и рабочего стола (и послужил основой для разработки CDE).

Графические пользовательские интерфейсы со временем развиваются. Например, Windows меняла свой пользовательский интерфейс почти каждый раз, когда выпускалась новая основная версия Windows, а графический интерфейс Mac OS кардинально менялся с появлением Mac OS X в 1999 году. [69]

Операционные системы реального времени

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

Ранним примером крупномасштабной операционной системы реального времени была Transaction Processing Facility, разработанная American Airlines и IBM для системы бронирования авиакомпаний Sabre .

Встраиваемые системы с фиксированными сроками выполнения используют операционные системы реального времени, такие как VxWorks , PikeOS , eCos , QNX , MontaVista Linux и RTLinux . Windows CE — это операционная система реального времени , которая использует те же API-интерфейсы, что и настольная Windows, но не использует кодовую базу настольной Windows. [70] ОС Symbian также имеет ядро ​​​​RTOS (EKA2), начиная с версии 8.0b.

Некоторые встроенные системы используют такие операционные системы, как Palm OS , BSD и Linux , хотя такие операционные системы не поддерживают вычисления в реальном времени.

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

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

В некоторых случаях хобби-разработки заключаются в поддержке « доморощенного » вычислительного устройства, например, простого одноплатного компьютера на базе микропроцессора 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. ^ ab «Доля рынка операционных систем для настольных компьютеров в мире» . Глобальная статистика StatCounter . Архивировано из оригинала 2 октября 2023 года . Проверено 3 октября 2023 г.
  4. ^ «Доля рынка операционных систем для мобильных и планшетов в мире» . Глобальная статистика StatCounter . Проверено 2 октября 2023 г.
  5. ^ «VII. Системы специального назначения - Концепции операционных систем, седьмое издание [Книга]» . www.oreilly.com . Архивировано из оригинала 13 июня 2021 года . Проверено 8 февраля 2021 г.
  6. ^ «Операционные системы специального назначения - Институт автоматизации сложных энергетических систем RWTH ААХЕНСКОГО УНИВЕРСИТЕТА - английский» . www.acs.eonerc.rwth-aachen.de . Архивировано из оригинала 14 июня 2021 года . Проверено 8 февраля 2021 г.
  7. ^ Лорх, Джейкоб Р.; Смит, Алан Джей (1996). «Снижение энергопотребления процессора за счет улучшения управления процессорным временем в однопользовательской операционной системе». Материалы 2-й ежегодной международной конференции по мобильным вычислениям и сетям . Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 143–154. дои : 10.1145/236387.236437 . ISBN 089791872X.
  8. ^ Мишра, Б.; Сингх, Н.; Сингх, Р. (2014). «Модель выбора координатора на основе группы ведущий-подчиненный, улучшение алгоритма хулигана». Международная конференция по параллельным, распределенным и грид-вычислениям (PDGC) . стр. 457–460. дои : 10.1109/PDGC.2014.7030789. ISBN 978-1-4799-7682-9. S2CID  13887160.
  9. ^ Аб Хансен, Пер Бринч, изд. (2001). Классические операционные системы. Спрингер. стр. 4–7. ISBN 0-387-95113-Х. Архивировано из оригинала 11 января 2023 года . Проверено 19 декабря 2020 г.
  10. ^ Рикман, Джордж (1960). «Язык работы компьютера». IRE-AIEE-ACM '60 (западный) : 341. doi : 10.1145/1460361.1460406. S2CID  30745551.
  11. ^ Лавингтон, Саймон (1998). История компьютеров в Манчестере (2-е изд.). Суиндон: Британское компьютерное общество. стр. 50–52. ISBN 978-1-902505-01-5.
  12. ^ Килберн, Т.; Пейн, РБ; Ховарт, ди-джей (декабрь 1961 г.). «Супервайзер Атласа». Институт инженеров-электриков : 279–294. дои : 10.1145/1460764.1460786. S2CID  16466990. Архивировано из оригинала 9 июня 2022 года . Проверено 17 июня 2022 г.
  13. ^ Бринч Хансен, Пер (2000). Классические операционные системы: от пакетной обработки к распределенным системам . Спрингер-Верлаг.
  14. ^ Исполнительная система EXEC I UNIVAC 1107 (PDF) (1-е изд.). Сперри Рэнд . УП-2577. Архивировано (PDF) из оригинала 15 июня 2022 года . Проверено 15 мая 2022 г.
  15. ^ Справочное руководство для программистов многопроцессорной системы UNIVAC Data Processing Division EXEC II (PDF) . Сперри Рэнд . 1966. УП-4058. Архивировано (PDF) из оригинала 15 июня 2022 года . Проверено 15 мая 2022 г.
  16. ^ Справочник программистов многопроцессорной системы UNIVAC 1108 EXEC 8 (PDF) (ред. 1-е изд.). Сперри Рэнд . 1968. УП-4144. Архивировано (PDF) из оригинала 25 мая 2022 года . Проверено 15 мая 2022 г.
  17. ^ «Краткое справочное руководство по микропроцессорам Intel® — год» . Интел . Архивировано из оригинала 25 апреля 2016 года . Проверено 24 апреля 2016 г.
  18. ^ Ричи, Деннис. «Руководство Unix, первое издание». Люсент Технологии. Архивировано из оригинала 18 мая 2008 года . Проверено 22 ноября 2012 г.
  19. ^ «OS X Mountain Lion — продвиньте свой Mac еще дальше» . Яблоко. Архивировано из оригинала 23 мая 2011 года . Проверено 7 августа 2012 г.
  20. ^ «Объявлены услуги Openedition Services для MVS/ESA SP версии 4 выпуска 3 и доступности MVS/ESA SP версии 4 выпуска 3 с дополнительными улучшениями» . Информационные письма . ИБМ. 9 февраля 1993 г. 293-060 . Проверено 16 июля 2023 г.
  21. ^ Представляем OpenEdition MVS . Первое издание. ИБМ. Декабрь 1993 г. GC23-3010-00.
  22. ^ Документ соответствия OpenEdition MVS POSIX.1 . Первое издание. ИБМ. Февраль 1993 г. GC23-3011-00.
  23. ^ Документ соответствия OpenEdition MVS POSIX.2 . Первое издание. ИБМ. Декабрь 1993 г. GC23-3012-00.
  24. ^ «Двадцать лет Linux по мнению Линуса Торвальдса». ЗДНет. 13 апреля 2011 года. Архивировано из оригинала 19 сентября 2016 года . Проверено 19 сентября 2016 г.
  25. ^ Линус Бенедикт Торвальдс (5 октября 1991 г.). «Бесплатные миникс-исходники ядра для 386-AT». Группа новостей : comp.os.minix. Архивировано из оригинала 2 марта 2013 года . Проверено 30 сентября 2011 г.
  26. ^ «Что такое Linux: обзор операционной системы Linux». Середина. 11 апреля 2020 г. Проверено 16 июля 2023 г.
  27. ^ Linux Online (2008). «Логотипы и талисманы Linux». Архивировано из оригинала 15 августа 2010 года . Проверено 11 августа 2009 г.
  28. ^ «Отчет IDC о доле рынка серверов» . Idc.com. Архивировано из оригинала 27 сентября 2012 года . Проверено 7 августа 2012 г.
  29. ^ Сотрудники LinuxDevices (23 апреля 2008 г.). «Linux по-прежнему является лучшей встраиваемой ОС». LinuxGizmos.com . Архивировано из оригинала 19 апреля 2016 года . Проверено 5 апреля 2016 г.
  30. ^ «Семейство операционных систем / Linux | TOP500» . www.top500.org . Проверено 30 июля 2023 г.
  31. ^ «Доля рынка операционных систем в мире, январь – декабрь 2022 г.» . 2022 . Проверено 4 ноября 2023 г.
  32. ^ «Доля рынка операционных систем для настольных компьютеров в мире, январь – декабрь 2022 г.» . 2022 . Проверено 4 ноября 2023 г.
  33. ^ «Устранение неполадок режима совместимости MS-DOS на жестких дисках» . Поддержка Майкрософт. Архивировано из оригинала 10 августа 2012 года . Проверено 7 августа 2012 г.
  34. ^ «Использование драйверов сетевой карты NDIS 2 PCMCIA в Windows 95» . Поддержка Майкрософт. Архивировано из оригинала 17 февраля 2013 года . Проверено 7 августа 2012 г.
  35. ^ «ИНФОРМАЦИЯ: Драйверы устройств Multimedia Wave для Windows 95 должны быть 16-разрядными» . Поддержка Майкрософт. Архивировано из оригинала 17 февраля 2013 года . Проверено 7 августа 2012 г.
  36. Артур, Чарльз (5 января 2011 г.). «Windows 8 будет работать на чипах ARM, но сторонние приложения придется переписывать». Хранитель . Архивировано из оригинала 12 октября 2016 года.
  37. ^ «Доля операционной системы по группам для сайтов во всех местах, январь 2009 г.» . Архивировано из оригинала 6 июля 2009 года . Проверено 3 мая 2010 г.
  38. ^ «За данными IDC: Windows по-прежнему № 1 среди серверных операционных систем» . ЗДНет . 26 февраля 2010 г. Архивировано из оригинала 1 марта 2010 г.
  39. ^ Аб Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН 978-1-59327-220-3. Сигнал — это уведомление процесса о том, что произошло событие. Сигналы иногда называют программными прерываниями.
  40. ^ Хайд, Рэндалл (1996). «Глава семнадцатая: Прерывания, ловушки и исключения (Часть 1)». Искусство программирования на языке ассемблера . Нет крахмального пресса. Архивировано из оригинала 22 декабря 2021 года . Проверено 22 декабря 2021 г. Концепция прерывания с годами расширилась. Семейство 80x86 только усугубило путаницу вокруг прерываний, представив инструкцию int (программное прерывание). Действительно, разные производители использовали такие термины, как исключения, сбои, прерывания, ловушки и прерывания, для описания явлений, обсуждаемых в этой главе. К сожалению, нет четкого консенсуса относительно точного значения этих терминов. Разные авторы используют в своих целях разные термины.
  41. ^ Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 308. ИСБН 978-0-13-854662-5. Как и ловушка, прерывание останавливает работающую программу и передает управление обработчику прерывания, который выполняет соответствующее действие. По завершении обработчик прерывания возвращает управление прерванной программе.
  42. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 32. ISBN 978-0-201-50480-4. При возникновении прерывания (или ловушки) оборудование передает управление операционной системе. Во-первых, операционная система сохраняет состояние ЦП, сохраняя регистры и счетчик программ. Затем он определяет, какой тип прерывания произошел. Для каждого типа прерывания отдельные сегменты кода операционной системы определяют, какое действие следует предпринять.
  43. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 105. ИСБН 978-0-201-50480-4. Переключение ЦП на другой процесс требует сохранения состояния старого процесса и загрузки сохраненного состояния для нового процесса. Эта задача известна как переключение контекста.
  44. ^ abcde Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 31. ISBN 978-0-201-50480-4.
  45. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 30. ISBN 978-0-201-50480-4. Аппаратное обеспечение может вызвать прерывание в любой момент, отправив сигнал в ЦП, обычно через системную шину.
  46. ^ Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН 978-1-59327-220-3. Сигналы аналогичны аппаратным прерываниям в том смысле, что они прерывают нормальный поток выполнения программы; в большинстве случаев невозможно точно предсказать, когда поступит сигнал.
  47. ^ Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН 978-1-59327-220-3. Среди типов событий, которые заставляют ядро ​​генерировать сигнал для процесса, можно выделить следующие: Произошло программное событие. Например,... превышен лимит времени ЦП процесса[.]
  48. ^ abcde Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 388. ИСБН 978-1-59327-220-3.
  49. ^ «Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32» (PDF) . Корпорация Интел . Сентябрь 2016. с. 610. Архивировано (PDF) из оригинала 23 марта 2022 года . Проверено 5 мая 2022 г.
  50. ^ abc Бах, Морис Дж. (1986). Проект операционной системы UNIX . Прентис-Холл. п. 200. ИСБН 0-13-201799-7.
  51. ^ Керриск, Майкл (2010). Программный интерфейс Linux . Нет крахмального пресса. п. 400. ИСБН 978-1-59327-220-3.
  52. ^ аб Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 308. ИСБН 978-0-13-854662-5.
  53. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 182. ИСБН 978-0-201-50480-4.
  54. ^ Хэвиленд, Кейт; Салама, Бен (1987). Системное программирование UNIX . Издательство Аддисон-Уэсли. п. 153. ИСБН 0-201-12919-1.
  55. ^ Хэвиленд, Кейт; Салама, Бен (1987). Системное программирование UNIX . Издательство Аддисон-Уэсли. п. 148. ИСБН 0-201-12919-1.
  56. ^ аб Хэвиленд, Кейт; Салама, Бен (1987). Системное программирование UNIX . Издательство Аддисон-Уэсли. п. 149. ИСБН 0-201-12919-1.
  57. ^ Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 292. ИСБН 978-0-13-854662-5.
  58. ^ IBM (сентябрь 1968 г.), «Основное хранилище» (PDF) , Принципы работы IBM System / 360 (PDF) , восьмое издание, стр. 7, заархивировано (PDF) из оригинала 19 марта 2022 г. , получено 13 апреля 2022 г.
  59. ^ аб Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 294. ИСБН 978-0-13-854662-5.
  60. ^ «Контроллер программных прерываний (PIC)» (PDF) . Руководство пользователя — PDP-7 (PDF) . Корпорация цифрового оборудования . 1965. С. 48. Ф-75. Архивировано (PDF) из оригинала 10 мая 2022 года . Проверено 20 апреля 2022 г.
  61. ^ Руководство по системам ввода-вывода PDP-1 (PDF) . Корпорация цифрового оборудования . стр. 19–20. Архивировано (PDF) из оригинала 25 января 2019 года . Проверено 16 августа 2022 г.
  62. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 32. ISBN 978-0-201-50480-4.
  63. ^ Зильбершац, Авраам (1994). Концепции операционной системы, четвертое издание . Аддисон-Уэсли. п. 34. ISBN 978-0-201-50480-4.
  64. ^ аб Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 295. ИСБН 978-0-13-854662-5.
  65. ^ аб Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 309. ИСБН 978-0-13-854662-5.
  66. ^ Таненбаум, Эндрю С. (1990). Структурированная компьютерная организация, третье издание. Прентис Холл. п. 310. ИСБН 978-0-13-854662-5.
  67. ^ Столлингс, Уильям (2008). Компьютерная организация и архитектура . Нью-Дели: Prentice-Hall of India Private Limited. п. 267. ИСБН 978-81-203-2962-1.
  68. ^ «Операционные системы: безопасность». www.cs.uic.edu . Архивировано из оригинала 7 декабря 2020 года . Проверено 27 ноября 2020 г.
  69. Полссон, Кен (8 февраля 2007 г.). «Хронология программного обеспечения для персональных компьютеров (1998–1999 гг.)». Islandnet.com . Архивировано из оригинала 14 мая 2008 года.
  70. ^ «Чтение: Операционная система» . Люмен . Архивировано из оригинала 6 января 2019 года . Проверено 5 января 2019 г.

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

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