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

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

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

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

Доминирующей операционной системой общего назначения [3] для настольных ПК является Microsoft Windows с долей рынка около 76,45%. macOS от Apple Inc. находится на втором месте (17,72%), а разновидности Linux в совокупности на третьем месте (1,73%). [4] В мобильном секторе (включая смартфоны и планшеты ) доля Android вырастет до 72% в 2020 году. [5] Согласно данным за третий квартал 2016 года, доля Android на смартфонах является доминирующей - 87,5% с также темпами роста 10,3% в год, за ней следует iOS от Appleс 12,1 процента при ежегодном снижении доли рынка на 5,2 процента, в то время как другие операционные системы составляют всего 0,3 процента. [6] Дистрибутивы Linux доминируют в серверном и суперкомпьютерном секторах. Другие специализированные классы операционных систем (специальные операционные системы) [7] [8] ), такие как встроенные системы и системы реального времени, существуют для многих приложений. Также существуют операционные системы, ориентированные на безопасность . Некоторые операционные системы имеют низкие системные требования (например, облегченный дистрибутив Linux ). У других могут быть более высокие системные требования.

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

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

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

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

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

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

Распространено

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

Шаблонный

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

Встроенный

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

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

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

Библиотека

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

История

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

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

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

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

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

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

Мэйнфреймы

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

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

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

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

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

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

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

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

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

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

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

  • Burroughs MCP  - B5000 , 1961, Unisys Clearpath / MCP, настоящее время
  • IBM OS / 360  - IBM System / 360 , 1966 - IBM z / OS , настоящее время
  • IBM CP-67  - IBM System / 360 , 1967 - IBM z / VM
  • UNIVAC EXEC 8  - UNIVAC 1108 , 1967, до OS 2200 Unisys Clearpath Dorado, настоящее время

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

PC DOS была ранней ОС для персональных компьютеров с интерфейсом командной строки.
Mac OS от Apple Computer стала первой широко распространенной ОС с графическим пользовательским интерфейсом . Многие из его функций, такие как окна и значки, позже станут обычным явлением в графических интерфейсах.

Первые микрокомпьютеры не обладали мощностью или отсутствием необходимости в сложных операционных системах, которые были разработаны для мэйнфреймов и мини-компьютеров; Были разработаны минималистичные операционные системы, часто загружаемые из ПЗУ и известные как мониторы . Заметным рано дисковая операционная система была CP / M , которая была поддержана на многих ранних микрокомпьютеров и имитировали с помощью Microsoft «s MS-DOS , которая стала широко популярной в качестве операционной системы , выбранной для IBM PC (версия IBM, его называли IBM DOS или PC DOS ). В 1980-х годах Apple Computer Inc. (ныне Apple Inc. ) отказалась от своей популярнойСерия микрокомпьютеров Apple II, представляющая компьютер Apple Macintosh с инновационным графическим интерфейсом пользователя (GUI) для Mac OS .

Внедрение в октябре 1985 г. процессора Intel 80386 [15] с 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» - соглашению об именах, против которого выступают Столлман и Free Software Foundation , предпочитая имя GNU / Linux. Распространение программного обеспечения Беркли, известное как BSD , является производным от UNIX, распространяемым Калифорнийским университетом в Беркли, начиная с 1970-х годов. Свободно распространяемая и портированная на многие миникомпьютеры, она в конечном итоге также приобрела популярность для использования на ПК, в основном как FreeBSD , NetBSD и OpenBSD .

Примеры

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

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

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

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

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

Четыре операционные системы сертифицированы Open Group (владелец торговой марки Unix) как Unix. HP -UX от HP и AIX от IBM являются потомками исходной System V Unix и предназначены для работы только на оборудовании соответствующих производителей. В отличие от этого , Sun Microsystems «ы Solaris может работать на нескольких типах аппаратных средств, в том числе x86 и Sparc серверов и персональных компьютеров. MacOS от Apple , замена более ранней (не Unix) Mac OS от Apple, представляет собой гибридный вариант BSD на основе ядра, полученный из NeXTSTEP , Mach и FreeBSD .

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

BSD и ее потомки

Первый сервер для World Wide Web работала на NeXTSTEP, на основе BSD.

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

В 1974 году Калифорнийский университет в Беркли установил свою первую систему Unix. Со временем студенты и сотрудники факультета информатики начали добавлять новые программы, упрощающие работу, например, текстовые редакторы. Когда в 1978 году Беркли получил новые компьютеры VAX с установленной Unix, студенты школы еще больше модифицировали Unix, чтобы воспользоваться преимуществами аппаратных возможностей компьютера. Defense Advanced Research Projects Agency в США Министерства обороны заинтересовался и решил финансировать проект. Многие школы, корпорации и правительственные организации обратили внимание и начали использовать версию 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  - была архитектурно идентична своему настольному аналогу и обычно работала на линейке серверного оборудования Macintosh от Apple . MacOS включают сервер управления работой группы и программные средства администрирования , которые обеспечивают упрощенный доступ к основным сетевым службам , в том числе почтового агента , на сервере Samba , на LDAP сервер, сервер доменных имен , и другие. С Mac OS X v10.7 Lion, все серверные аспекты Mac OS X Server были интегрированы в клиентскую версию, а продукт был переименован в «OS X» (в названии исключено «Mac»). Серверные инструменты теперь предлагаются в виде приложения. [17]

Linux

Ubuntu , настольный дистрибутив Linux
Linux , unix-подобная операционная система, была впервые выпущена 17 сентября 1991 года Линусом Торвальдсом . [18] [19] [20] Изображение Tux пингвин , талисман Linux. [21]

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

Linux является Unix-подобных , но был разработан без какого - либо кода Unix, в отличие от BSD и его варианты. Из-за модели открытой лицензии код ядра Linux доступен для изучения и модификации, что привело к его использованию на широком спектре вычислительной техники от суперкомпьютеров до смарт-часов. Хотя оценки показывают, что Linux используется только на 1,82% всех «настольных» (или портативных) ПК [22], он получил широкое распространение в серверах [23] и встроенных системах [24], таких как сотовые телефоны. Linux заменил Unix на многих платформах и используется на большинстве суперкомпьютеров, включая 385 самых популярных компьютеров. [25] Многие из этих компьютеров также находятся на Green500.(но в другом порядке), а Linux работает в первой десятке. Linux также широко используется на других небольших энергоэффективных компьютерах, таких как смартфоны и умные часы . Ядро Linux используется в некоторых популярных дистрибутивов, таких как Red Hat , Debian , Ubuntu , Linux Mint и Google «s Android , Chrome OS и Chromium OS .

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

Microsoft Windows - это семейство проприетарных операционных систем, разработанных корпорацией Microsoft и в первую очередь предназначенных для компьютеров на базе архитектуры Intel, с примерно 88,9% общей доли использования на компьютерах, подключенных к Интернету. [22] [26] [27] [28] Последняя версия - Windows 10 .

В 2011 году Windows 7 обогнала Windows XP как наиболее распространенную версию. [29] [30] [31]

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

Широко используются серверные редакции Windows. В последние годы Microsoft потратила значительные средства на продвижение использования Windows в качестве серверной операционной системы . Однако использование Windows на серверах не так широко распространено, как на персональных компьютерах, поскольку Windows конкурирует с Linux и BSD за долю на рынке серверов. [36] [37]

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

Другой

Было много операционных систем, которые были важны в свое время, но уже не так важны, например, AmigaOS ; OS / 2 от IBM и Microsoft; классическая Mac OS , предшественник macOS от Apple, отличный от Unix; BeOS ; XTS-300 ; ОС RISC ; MorphOS ; Хайку ; BareMetal и FreeMint . Некоторые из них все еще используются на нишевых рынках и продолжают развиваться как платформы меньшинств для сообществ энтузиастов и специализированных приложений. OpenVMS , ранее разработанная DEC , все еще находится в стадии активной разработки VMS Software Inc.. Однако другие операционные системы используются почти исключительно в академических кругах, для обучения операционным системам или для исследования концепций операционных систем. Типичным примером системы, которая выполняет обе роли, является MINIX , в то время как, например, Singularity используется исключительно для исследований. Другим примером является Oberon System разработан в ETH Zürich по Никлаус Вирт , Джург Гаткнет и группой студентов бывшего Института вычислительных систем в 1980 - х годах. Он использовался в основном для исследований, обучения и повседневной работы в группе Вирта.

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

Составные части

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

Ядро

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

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

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

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

Прерывания

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

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

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

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

Режимы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Различные различия между файловыми системами затрудняют поддержку всех файловых систем. Допустимые символы в именах файлов, чувствительность к регистру и наличие различных типов атрибутов файлов делают реализацию единого интерфейса для каждой файловой системы сложной задачей. Операционные системы, как правило, рекомендуют использовать (и поэтому поддерживают изначально) файловые системы, специально разработанные для них; например NTFS в Windows и ext3 и ReiserFS в 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 , можно легко расширить по сети для обеспечения звука из локальных приложений на звуковом оборудовании удаленной системы.

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

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

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

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

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

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

Альтернативная стратегия, и только песочница стратегия доступна в системах , которые не отвечают требованиям виртуализации Popek и Goldberg , где операционная система не работает пользовательские программы , как машинный код, но вместо того, чтобы либо эмулирует процессор или предоставляет множество для р система на основе кода, такая как 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) привела к значительной фрагментации, хотя попытка стандартизации в 1990-х годах до COSE и CDE потерпела неудачу по разным причинам и в конечном итоге затмила широкое распространение GNOME и K Desktop Environment. . До появления наборов инструментов на основе бесплатного программного обеспечения и окружения рабочего стола Motif был преобладающей комбинацией набор инструментов / рабочий стол (и был основой, на которой была разработана CDE).

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

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

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

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

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

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

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

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

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

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

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

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

Unix была первой операционной системой, написанной не на ассемблере, что делало ее очень переносимой в системы, отличные от ее родной PDP-11 . [42]

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

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

Рыночная доля

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

  • Сравнение операционных систем
  • Сбой (вычисления)
  • Гипервизор
  • Операционная система с прерываниями
  • Список важных публикаций в операционных системах
  • Список операционных систем
  • Список пионеров информатики
  • Live CD
  • Глоссарий терминов операционных систем
  • Микроконтроллер
  • Мобильное устройство
  • Мобильная операционная система
  • Сетевая операционная система
  • Объектно-ориентированная операционная система
  • Проекты операционной системы
  • Системный командир
  • Системный образ
  • Хронология операционных систем

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

  1. Перейти ↑ Stallings (2005). Операционные системы, внутреннее устройство и принципы проектирования . Пирсон: Прентис Холл. п. 6.
  2. ^ Dhotre И.А. (2009). Операционные системы . Технические публикации. п. 1.
  3. ^ Термины по системам специального и общего назначения
  4. ^ "Мировая доля рынка операционных систем для настольных ПК" . StatCounter Global Stats . Проверено 31 октября 2020 года .
  5. ^ «Мировая доля рынка операционных систем для мобильных устройств и планшетов» . StatCounter Global Stats . Проверено 31 октября 2020 года .
  6. ^ «Стратегическая аналитика: Android фиксирует рекордную долю мировых поставок смартфонов в 88% в третьем квартале 2016 года» . 2 ноября 2016 г. Архивировано 5 ноября 2016 г.
  7. ^ Термины по системам специального и общего назначения
  8. ^ Термин специальной операционной системы
  9. ^ Лорч, Джейкоб Р. и Алан Джей Смит. «Снижение энергопотребления процессора за счет улучшения управления временем процессора в однопользовательской операционной системе». Материалы 2-й ежегодной международной конференции по мобильным вычислениям и сетям. ACM, 1996.
  10. ^ Mishra, B .; Singh, N .; Сингх Р. (2014). «Модель на основе группы ведущий-ведомый для выбора координатора, усовершенствование алгоритма хулиганов». Международная конференция по параллельным, распределенным и сетевым вычислениям (PDGC) . С. 457–460. DOI : 10,1109 / PDGC.2014.7030789 . ISBN 978-1-4799-7682-9. S2CID  13887160 .
  11. ^ Ганье, Silberschatz Galvin (2012). Концепции операционных систем . Нью-Йорк: Вили. п. 716. ISBN 978-1118063330.
  12. ^ a b Хансен, Пер Бринч, изд. (2001). Классические операционные системы . Springer. С. 4–7. ISBN 0-387-95113-X.
  13. ^ Лавингтон, Саймон (1998). История компьютеров Манчестера (2 - е изд.). Суиндон: Британское компьютерное общество. С. 50–52. ISBN 978-1-902505-01-5.
  14. ^ Бринч Хансен, Пер (2000). Классические операционные системы: от пакетной обработки к распределенным системам . Springer-Verlag.
  15. ^ «Краткое справочное руководство по микропроцессору Intel® - год» . www.intel.com . Архивировано 25 апреля 2016 года . Проверено 24 апреля 2016 года .
  16. ^ Ричи, Деннис. «Руководство по Unix, первое издание» . Lucent Technologies. Архивировано из оригинального 18 мая 2008 года . Проверено 22 ноября 2012 года .
  17. ^ «OS X Mountain Lion - продвиньте свой Mac еще дальше» . Яблоко. Архивировано 23 мая 2011 года . Проверено 7 августа 2012 года .
  18. ^ «Двадцать лет Linux по Линусу Торвальдсу» . ZDNet. 13 апреля 2011 года. Архивировано 19 сентября 2016 года . Проверено 19 сентября 2016 года .
  19. Линус Бенедикт Торвальдс (5 октября 1991 г.). «Бесплатные исходные коды ядра типа minix для 386-AT» . Группа новостейcomp.os.minix . Проверено 30 сентября 2011 года .
  20. ^ «Что такое Linux: Обзор операционной системы Linux» . Средний . Проверено 21 декабря 2019 года .
  21. ^ Linux Online (2008). «Логотипы и талисманы Linux» . Архивировано из оригинального 15 августа 2010 года . Проверено 11 августа 2009 года .
  22. ^ a b «Топ-5 операционных систем с января по апрель 2011 года» . StatCounter. Октябрь 2009 года архивация с оригинала на 26 мая 2012 года . Проверено 5 ноября 2009 года .
  23. ^ «Отчет IDC о доле рынка серверов» . Idc.com. Архивировано из оригинального 27 сентября 2012 года . Проверено 7 августа 2012 года .
  24. ^ LinuxDevices Staff (23 апреля 2008 г.). «Linux по-прежнему остается лучшей встраиваемой ОС» . LinuxGizmos.com . Архивировано из оригинального 19 апреля 2016 года . Дата обращения 5 апреля 2016 .
  25. ^ "Генератор подсписок" . Top500.org . Дата обращения 6 февраля 2017 .
  26. ^ «Глобальная веб-статистика» . Чистая доля рынка, чистые приложения. Май 2011. Архивировано 25 января 2010 года . Проверено 7 мая 2011 года .
  27. ^ «Глобальная веб-статистика» . W3Counter, веб-службы Awio. Сентябрь 2009. Архивировано 28 июня 2012 года . Проверено 24 октября 2009 года .
  28. ^ «Доля рынка операционных систем» . Сетевые приложения. Октябрь 2009. Архивировано 25 января 2010 года . Проверено 5 ноября 2009 года .
  29. ^ "Статистика платформы ОС w3schools.com" . Архивировано 5 августа 2011 года . Проверено 30 октября 2011 года .
  30. ^ «Статистика подсчитывает глобальную статистику, пять ведущих операционных систем» . Архивировано 26 мая 2012 года . Проверено 30 октября 2011 года .
  31. ^ «Глобальная статистика на w3counter.com» . Архивировано 28 июня 2012 года . Проверено 23 января 2012 года .
  32. ^ «Устранение неполадок в режиме совместимости с MS-DOS на жестких дисках» . Support.microsoft.com. Архивировано 10 августа 2012 года . Проверено 7 августа 2012 года .
  33. ^ «Использование драйверов сетевой карты NDIS 2 PCMCIA в Windows 95» . Support.microsoft.com. Архивировано 17 февраля 2013 года . Проверено 7 августа 2012 года .
  34. ^ «ИНФОРМАЦИЯ: драйверы мультимедийных волновых устройств Windows 95 должны быть 16-разрядными» . Support.microsoft.com. Архивировано 17 февраля 2013 года . Проверено 7 августа 2012 года .
  35. ^ Артур, Чарльз. «Windows 8 будет работать на чипах ARM, но сторонние приложения необходимо будет переписать» . Хранитель . Архивировано 12 октября 2016 года.
  36. ^ «Совместное использование операционных систем по группам для сайтов во всех местах, январь 2009 г.» . Архивировано из оригинала 6 июля 2009 года . Проверено 3 мая 2010 года .
  37. ^ «За данными IDC: Windows по-прежнему №1 в серверных операционных системах» . ZDNet . 26 февраля 2010. Архивировано 1 марта 2010 года.
  38. Перейти ↑ Stallings, William (2008). Компьютерная организация и архитектура . Нью-Дели: Prentice-Hall of India Private Limited. п. 267. ISBN. 978-81-203-2962-1.
  39. ^ «Операционные системы: безопасность» . www.cs.uic.edu . Проверено 27 ноября 2020 года .
  40. ^ Пуассон, Кен. «Хронология программного обеспечения для персональных компьютеров». Архивировано 14 мая 2008 года на Wayback Machine . Проверено 7 мая 2008. Последняя проверка 30 марта 2009 г.
  41. ^ «Чтение: Операционная система» . Люмен . Проверено 5 января 2019 .
  42. ^ «История Unix» . БАЙТ . Август 1983 г. с. 188 . Проверено 31 января 2015 года .

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

  • Auslander, Marc A .; Ларкин, Дэвид С .; Шерр, Аллан Л. (1981). «Эволюция операционной системы MVS» (PDF) . IBM J. Исследования и разработки. Цитировать журнал требует |journal=( помощь )
  • Deitel, Harvey M .; Дейтель, Пол; Шоффнес, Дэвид (25 декабря 2015 г.). Операционные системы . Пирсон / Прентис Холл. ISBN 978-0-13-092641-8.
  • Bic, Lubomur F .; Шоу, Алан С. (2003). Операционные системы . Пирсон: Прентис Холл .
  • Зильбершатц, Ави; Гэлвин, Питер; Ганье, Грег (2008). Концепции операционных систем . Джон Вили и сыновья . ISBN 978-0-470-12872-5.
  • О'Брайен, Дж. А., и Маракас, GM (2011). Информационные системы управления . 10e. МакГроу-Хилл Ирвин.
  • Лева, Альберто; Маджио, Мартина; Пападопулос, Алессандро Витторио; Терранео, Федерико (2013). Дизайн операционной системы на основе управления . ИЭПП . ISBN 978-1-84919-609-3.
  • Арпачи-Дюссо, Ремзи; Арпачи-Дюссо, Андреа (2015). Операционные системы: три простых штуки .

внешняя ссылка

  • Операционные системы в Curlie
  • История Multics и история операционных систем