Введение

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

Предыстория

Самые ранние компьютеры были мейнфреймами, не имевшими операционной системы как таковой. Каждый пользователь получал эксклюзивное право на использование машины в течение запланированного периода времени и приходил к компьютеру с программой и данными, зачастую на перфокартах и магнитной или бумажной ленте. Программа загружалась в машину, и та работала до завершения программы или сбоя. Отладка программ обычно осуществлялась через панель управления с помощью ручек, переключателей и индикаторов. Для программистов были разработаны символические языки, ассемблеры и компиляторы, позволявшие преобразовывать символический код программы в машинный код, который ранее приходилось кодировать вручную. Позже машины стали поставляться с библиотеками вспомогательного кода на перфокартах или магнитной ленте, которые подключались к программе пользователя для выполнения таких операций, как ввод и вывод данных. Это стало зарождением современной операционной системы; однако машины по-прежнему выполняли только одну задачу за раз. В Кембриджском университете в Англии очередь заданий на выполнение в один момент представляла собой веревку, к которой прикреплялись ленты, связанные с соответствующими заявками, с помощью канцелярских зажимов. По мере увеличения вычислительной мощности машин время выполнения программ сокращалось, а время на передачу оборудования следующему пользователю становилось относительно большим. Учет и оплата за использование машин перешли от проверки настенных часов к автоматической регистрации компьютером. Очереди заданий эволюционировали от буквальной очереди людей у двери до кучи носителей на столе ожидания заданий или стопок перфокарт, сложенных друг на друга в считывателе, пока сама машина не получила возможность выбирать и последовательно обрабатывать ленты на различных магнитных накопителях. Разработчики программ, изначально имевшие доступ к запуску своих заданий на машине, были заменены штатными операторами, которые обслуживали машину и все меньше занимались ручным выполнением задач. Когда коммерческие вычислительные центры столкнулись с последствиями потери данных из-за несанкционированного доступа или операционных ошибок, производителей оборудования заставили улучшить библиотеки времени выполнения, чтобы предотвратить неправомерное использование системных ресурсов. Автоматизированный мониторинг требовался не только для отслеживания использования центрального процессора, но и для подсчета напечатанных страниц, пробитых карт, прочитанных карт, использованного дискового пространства и для сигнализации о необходимости вмешательства оператора, например, для замены магнитных лент и бумажных форм. В операционные системы были добавлены функции безопасности для ведения журналов аудита доступа программ к файлам и предотвращения доступа, например, инженерной программы к файлу начислений заработной платы. Все эти функции формировали основу полноценной операционной системы. В конечном итоге библиотеки времени выполнения превратились в единую программу, которая запускалась перед началом работы с первой задачей клиента, считывала задачу клиента, контролировала ее выполнение, регистрировала использование ресурсов, перераспределяла аппаратные ресурсы после завершения задачи и немедленно приступала к обработке следующей задачи. Эти резидентные фоновые программы, способные управлять многоступенчатыми процессами, часто назывались мониторами или программами-мониторами до того, как термин "операционная система" окончательно закрепился. Базовая программа, обеспечивающая управление аппаратным обеспечением, планирование программного обеспечения и мониторинг ресурсов, может показаться далеким предком пользовательских ОС эпохи персональных компьютеров. Однако значение термина ОС претерпело изменения. Подобно тому, как ранние автомобили не имели спидометров, радиоприемников и кондиционеров, которые впоследствии стали стандартными, все больше дополнительных программных функций становились стандартными в каждом пакете ОС, хотя некоторые приложения, такие как системы управления базами данных и электронные таблицы, остаются необязательными и продаются отдельно. Это привело к восприятию ОС как полноценной пользовательской системы с интегрированным графическим интерфейсом, утилитами, некоторыми приложениями, такими как текстовые редакторы и файловые менеджеры, и инструментами настройки. Истинным потомком ранних операционных систем является то, что сейчас называется "ядром". В технических и разработческих кругах старое, узкое понимание ОС сохраняется из-за продолжающейся активной разработки встроенных операционных систем для различных устройств с компонентами обработки данных, от портативных гаджетов до промышленных роботов и систем управления в реальном времени, которые не запускают пользовательские приложения на переднем плане. Встроенная ОС в современном устройстве не так уж сильно отличается от своего предшественника 1950-х годов. Более широкие категории системного и прикладного программного обеспечения обсуждаются в статье "Программное обеспечение компьютера".

Главные рамки

Первой операционной системой, использовавшейся для реальной работы, была GM NAA I/O, разработанная в 1956 году исследовательским подразделением General Motors для IBM 704. Большинство других ранних операционных систем для мейнфреймов IBM также создавались заказчиками. Ранние операционные системы отличались большим разнообразием, при этом каждый поставщик или заказчик разрабатывал одну или несколько операционных систем, специфичных для их конкретного мейнфрейма. Каждая операционная система, даже от одного и того же производителя, могла иметь принципиально отличающиеся модели команд, процедуры работы и такие средства, как инструменты отладки. Обычно, с выходом каждой новой модели компьютера, появлялась и новая операционная система, и большинство приложений требовалось вручную адаптировать, перекомпилировать и повторно тестировать.

Другие операционные системы для центральных компьютеров

Корпорация Control Data разработала операционные системы SCOPE в 1960-х годах для пакетной обработки, а затем разработала операционную систему MACE для разделения времени, которая стала основой для последующей Kronos. В сотрудничестве с Университетом Миннесоты в 1970-х годах были разработаны операционные системы Kronos и позднее NOS, поддерживавшие одновременную пакетную и разделяемую обработку. Как и многие коммерческие системы разделения времени, её интерфейс являлся расширением системы разделения времени DTSS, одной из первых разработок в области разделения времени и языков программирования. В конце 1970-х годов Control Data и Университет Иллинойса разработали систему PLATO, которая использовала плазменные панели и сети разделения времени на большие расстояния. PLATO была удивительно инновационной для своего времени; модель общей памяти языка программирования PLATO TUTOR позволяла использовать такие приложения, как чат в реальном времени и многопользовательские графические игры. Для UNIVAC 1107, UNIVAC, первый производитель коммерческих компьютеров, выпустила операционную систему EXEC I, а Computer Sciences Corporation разработала операционную систему EXEC II и поставила её UNIVAC. EXEC II была портирована на UNIVAC 1108. Позднее UNIVAC разработала операционную систему EXEC 8 для 1108; она стала основой для операционных систем для последующих моделей семейства. Как и все ранние мэйнфреймы, EXEC I и EXEC II были системами пакетной обработки, управлявшими магнитными барабанами, дисками, считывателями карт и строчными принтерами; EXEC 8 поддерживала как пакетную обработку, так и обработку транзакций в режиме реального времени. В 1970-х годах UNIVAC выпустила систему Real Time Basic (RTB) для поддержки масштабного разделения времени, также по образцу системы Dartmouth BASIC. Корпорация Burroughs представила B5000 в 1961 году с операционной системой MCP (Master Control Program). B5000 была стековой машиной, предназначенной исключительно для поддержки языков высокого уровня, причём программное обеспечение, даже на самом низком уровне операционной системы, не писалось напрямую на машинном языке или языке ассемблера; MCP стала первой ОС, написанной полностью на языке высокого уровня ESPOL, диалекте ALGOL 60, хотя ESPOL содержала специализированные инструкции для каждого "слога" в наборе инструкций B5000. MCP также представила множество других новаторских инноваций, таких как одна из первых коммерческих реализаций виртуальной памяти. Переработка MCP для B6500 теперь продаётся как Unisys ClearPath/MCP. GE представила серию GE 600 с операционной системой General Electric Comprehensive Operating Supervisor (GECOS) в 1962 году. После того как Honeywell приобрела компьютерный бизнес GE, она была переименована в General Comprehensive Operating System (GCOS). Honeywell расширила использование названия GCOS, чтобы охватить все свои операционные системы в 1970-х годах, хотя многие из её компьютеров не имели ничего общего с более ранними сериями GE 600, и их операционные системы не были получены из оригинальной GECOS. Проект MAC в MIT, работая с GE и Bell Labs, разработал Multics, которая ввела концепцию кольцевых уровней привилегий безопасности. Digital Equipment Corporation разработала TOPS 10 для своей линейки 36-битных компьютеров PDP 10 в 1967 году. До широкого распространения Unix, TOPS 10 была особенно популярной системой в университетах и в раннем сообществе ARPANET. Bolt, Beranek, and Newman разработали TENEX для модифицированного PDP 10, который поддерживал страничную организацию памяти; это была ещё одна популярная система в исследовательских и ARPANET сообществах, а позже была разработана DEC в TOPS 20. Scientific Data Systems/Xerox Data Systems разработали несколько операционных систем для серии компьютеров Sigma, таких как Basic Control Monitor (BCM), Batch Processing Monitor (BPM) и Basic Time Sharing Monitor (BTM). Позднее BPM и BTM сменила Универсальная система разделения времени (UTS); она была разработана для предоставления многопрограммных услуг для онлайн (интерактивных) пользовательских программ в дополнение к задачам пакетной обработки. Ей на смену пришла операционная система CP V, которая объединила UTS с сильно ориентированной на пакетную обработку операционной системой Xerox.

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

Digital Equipment Corporation создала несколько операционных систем для своих 16-битных машин PDP 11, включая простую систему RT 11, операционные системы RSTS с разделением времени и семейство операционных систем RSX 11 реального времени, а также систему VMS для 32-битных машин VAX. Несколько конкурентов Digital Equipment Corporation, таких как Data General, Hewlett Packard и Computer Automation, разработали собственные операционные системы. Одной из них, "MAX III", стала система для компьютеров Modcomp II и Modcomp III компании Modular Computer Systems. Она отличалась тем, что была ориентирована на рынок промышленного управления. В библиотеки Fortran входила библиотека, обеспечивающая доступ к измерительным и управляющим устройствам. Ключевым нововведением IBM в операционных системах этого класса (который они называют "средним уровнем") была их система "CPF" для System/38. Она использовала адресацию на основе возможностей, архитектуру машинного интерфейса для изоляции прикладного программного обеспечения и большей части операционной системы от аппаратных зависимостей (включая такие детали, как размер адреса и размер регистров), и включала интегрированную СУБД. Последующая OS/400 (ныне известная как IBM i) для IBM AS/400 и более поздних IBM Power Systems не имеет файлов, а только объекты различных типов, которые хранятся в очень большой плоской виртуальной памяти, называемой хранилищем единого уровня. Операционная система Unix была разработана в AT&T Bell Laboratories в конце 1960-х годов, первоначально для PDP 7, а затем для PDP 11. Благодаря тому, что в ранних версиях она была практически бесплатной, легкодоступной и легко модифицируемой, она получила широкое распространение. Она также стала обязательной в операционных компаниях Bell Systems. Поскольку она была написана на языке C, при переносе этого языка на новую аппаратную архитектуру Unix также можно было перенести. Эта переносимость позволила ей стать выбором для второго поколения миникомпьютеров и первого поколения рабочих станций, и ее использование стало повсеместным. Unix воплощал идею операционной системы, которая была концептуально одинаковой на различных аппаратных платформах. Благодаря своей полезности она вдохновила многих и впоследствии стала одним из истоков движения свободного программного обеспечения и программного обеспечения с открытым исходным кодом. На ее основе было создано множество операционных систем, включая Minix, GNU/Linux и Berkeley Software Distribution. Операционная система macOS от Apple также основана на Unix через NeXTSTEP и FreeBSD. Операционная система Pick была еще одной операционной системой, доступной на широком спектре аппаратных марок. Выпущенная в коммерческую эксплуатацию в 1973 году, ее ядро состояло из языка, похожего на BASIC, под названием Data/BASIC, и языка манипулирования базами данных в стиле SQL, под названием ENGLISH. Лицензированная большому количеству производителей и поставщиков, к началу 1980-х годов наблюдатели рассматривали операционную систему Pick как серьезного конкурента Unix.

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

Начиная с середины 1970-х годов, на рынок вышел новый класс небольших компьютеров. Оснащенные 8-битными процессорами, чаще всего MOS Technology 6502, Intel 8080, Motorola 6800 или Zilog Z80, а также примитивными интерфейсами ввода-вывода и максимально возможным объемом оперативной памяти, эти системы первоначально представляли собой конструкторы для любителей, но вскоре стали незаменимым инструментом для бизнеса.

Домашние компьютеры

В то время как многие восьмибитные домашние компьютеры 1980-х годов, такие как BBC Micro, Commodore 64, Apple II, Atari 8-битные компьютеры, Amstrad CPC, ZX Spectrum и другие, могли загружать стороннюю дисковую операционную систему, например CP/M или GEOS, они обычно использовались без неё. Их встроенные операционные системы разрабатывались в эпоху, когда дискеты были очень дорогими и большинство пользователей не планировали их использовать, поэтому стандартным устройством хранения на большинстве компьютеров был магнитофон, работающий со стандартными компакт-кассетами. Большинство, если не все, этих компьютеров поставлялись со встроенным интерпретатором BASIC на ПЗУ, который также служил примитивным интерфейсом командной строки, позволяя пользователю загружать отдельную дисковую операционную систему для выполнения команд управления файлами, а также загрузки и сохранения данных на диск. Самый популярный домашний компьютер, Commodore 64, был заметным исключением, поскольку его DOS находился на ПЗУ в аппаратной части дисковода, а дисковод обращался к нему так же, как к принтерам, модемам и другим внешним устройствам. Кроме того, эти системы поставлялись с минимальным объёмом оперативной памяти – 8 килобайт были стандартом для ранних домашних компьютеров, – а также с 8-битными процессорами, не имевшими специализированных вспомогательных схем, таких как MMU или даже выделенных часов реального времени. На таком оборудовании накладные расходы сложной операционной системы, поддерживающей несколько задач и пользователей, скорее всего, снизили бы производительность машины, не являясь при этом действительно необходимыми. Поскольку эти системы в основном продавались в комплекте с фиксированной аппаратной конфигурацией, также не было необходимости в операционной системе, предоставляющей драйверы для широкого спектра оборудования для абстрагирования различий. Видеоигры и даже доступные табличные процессоры, базы данных и текстовые редакторы для домашних компьютеров в основном представляли собой самодостаточные программы, полностью захватывающие управление машиной. Хотя для этих компьютеров существовало интегрированное программное обеспечение, оно обычно уступало по функциональности своим автономным аналогам, в основном из-за ограничений памяти. Обмен данными в основном осуществлялся через стандартные форматы, такие как текст ASCII или CSV, или с помощью специализированных программ конвертации файлов.

Операционные системы в видеоиграх и консолях

Поскольку практически все видеоигровые консоли и аркадные автоматы, разработанные и построенные после 1980 года, были полноценными цифровыми машинами на основе микропроцессоров (в отличие от более ранних клонов и производных Pong), некоторые из них имели минимальную форму BIOS или встроенную игру, такие как ColecoVision, Sega Master System и SNK Neo Geo. Современные игровые консоли и видеоигры, начиная с PC Engine, оснащены минимальным BIOS, который также предоставляет некоторые интерактивные утилиты, такие как управление картами памяти, воспроизведение аудио- или видео-CD, защита от копирования и иногда библиотеки для разработчиков и т.д. Однако, лишь немногие из этих случаев можно назвать полноценными операционными системами. Наиболее заметными исключениями, вероятно, являются игровая консоль Dreamcast, которая включает минимальный BIOS, как и PlayStation, но может загружать операционную систему Windows CE с игрового диска, что облегчает портирование игр с ПК, и игровая консоль Xbox, которая по сути является замаскированным ПК на базе Intel, работающим под управлением секретной, модифицированной версии Microsoft Windows в фоновом режиме. Кроме того, существуют версии Linux, которые могут работать на Dreamcast и более поздних игровых консолях. Задолго до этого Sony выпустила набор для разработки под названием Net Yaroze для своей первой платформы PlayStation, который предоставлял ряд инструментов для программирования и разработки, предназначенных для использования с обычным ПК и специально модифицированной "Black PlayStation", которую можно было подключить к ПК и загружать на неё программы. Для выполнения этих операций, как правило, требуется функциональная ОС на обеих платформах. В целом, можно сказать, что видеоигровые консоли и аркадные автоматы в 1970-х, 1980-х и большую часть 1990-х годов использовали, как правило, встроенный BIOS, а начиная с эпохи PlayStation и далее, они становились все более сложными, вплоть до необходимости использования универсальной или специально разработанной ОС для помощи в разработке и расширении функциональности.

Эра персональных компьютеров

Развитие микропроцессоров сделало недорогие вычисления доступными для малого бизнеса и любителей, что, в свою очередь, привело к широкому использованию взаимозаменяемых аппаратных компонентов с использованием общего интерфейса подключения (таких как шины S 100, SS 50, Apple II, ISA и PCI), и к растущей потребности в "стандартных" операционных системах для их управления. Наиболее важной из ранних ОС на этих машинах была CP/M 80 от Digital Research для процессоров 8080 / 8085 / Z 80. Она была основана на нескольких операционных системах Digital Equipment Corporation, в основном для архитектуры PDP 11. Первая операционная система Microsoft, MDOS/MIDAS, была разработана с учетом многих особенностей PDP 11, но для систем на основе микропроцессоров. MS DOS, или PC DOS при поставке от IBM, была разработана с целью быть похожей на CP/M 80. Каждая из этих машин имела небольшую загрузочную программу в ПЗУ, которая загружала саму ОС с диска. BIOS на компьютерах класса IBM PC являлся развитием этой идеи и приобрел больше функций за 20 лет с момента выпуска первого IBM PC в 1981 году. Снижение стоимости дисплейного оборудования и процессоров сделало возможным предоставление графических пользовательских интерфейсов для многих операционных систем, таких как универсальная X Window System, поставляемая со многими Unix-системами, или других графических систем, таких как классическая Mac OS и macOS от Apple, OS 9 Level II/Multi Vue от Radio Shack Color Computer, AmigaOS от Commodore, Atari TOS, OS/2 от IBM и Microsoft Windows. Оригинальный графический интерфейс был разработан на компьютерной системе Xerox Alto в исследовательском центре Xerox Palo Alto в начале 1970-х годов и коммерциализирован многими производителями в 1980-х и 1990-х годах. С конца 1990-х годов на персональных компьютерах широко используются три операционные системы: macOS от Apple Inc., Linux с открытым исходным кодом и Microsoft Windows. С 2005 года и перехода Mac на процессоры Intel все они разрабатывались преимущественно на платформе x86, хотя macOS сохранила поддержку PowerPC до 2009 года, а Linux остаётся портированной на множество архитектур, включая такие, как 68k, PA RISC и DEC Alpha, которые давно устарели и сняты с производства, а также SPARC и MIPS, которые используются в серверах или встроенных системах, но больше не в настольных компьютерах. Другие операционные системы, такие как AmigaOS и OS/2, остаются в использовании, если вообще, в основном энтузиастами ретрокомпьютинга или для специализированных встроенных приложений.

Мобильные операционные системы

В начале 1990-х годов Psion выпустила Psion Series 3 PDA, небольшое мобильное вычислительное устройство. Он поддерживал пользовательские приложения, работающие на операционной системе EPOC. Позднее EPOC стала Symbian, операционной системой, используемой в мобильных телефонах Nokia, Ericsson, Sony Ericsson, Motorola, Samsung, а также в телефонах, разработанных для NTT Docomo компаниями Sharp, Fujitsu и Mitsubishi. Symbian была самой широко используемой в мире операционной системой для смартфонов до 2010 года, достигнув пиковой доли рынка в 74% в 2006 году. В 1996 году Palm Computing выпустила Pilot 1000 и Pilot 5000, работающие под управлением Palm OS. Microsoft Windows CE послужила основой для Pocket PC 2000, переименованной в Windows Mobile в 2003 году, которая в 2007 году была самой распространенной операционной системой для смартфонов в США.

В 2007 году Apple представила iPhone и его операционную систему, известную как iPhone OS (до выпуска iOS 4), которая, как и Mac OS X, основана на Unix-подобной системе Darwin. Помимо этого, она представила мощный и инновационный графический пользовательский интерфейс, который впоследствии также был использован в планшетном компьютере iPad. Год спустя была представлена Android с собственным графическим пользовательским интерфейсом, основанным на модифицированном ядре Linux, а Microsoft вернулась на рынок мобильных операционных систем с Windows Phone в 2010 году, которая была заменена Windows 10 Mobile в 2015 году. Наряду с ними, в этой области конкурирует широкий спектр других мобильных операционных систем.