На рубеже шестидесятых и семидесятых годов XX в. одном из исследовательских подразделений американской телекоммуникационной монополии Эй-Ти-энд-Ти (AT&T) была выполнена разработка, ставшая важнейшей вехой в истории операционных систем (далее — ОС): система Юникс
(UNIX
). К тому времени операционным системам как классу программного обеспечения шел уже второй десяток. Были разработаны больше сотни различных ОС для разных компьютеров, из них полтора десятка находились в «боевой» эксплуатации.
Задуманная и реализованная Кеном Томсоном при участии нескольких коллег, Юникс
вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих ее от большинства предшественниц:
-
компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач;
-
минимизация ядра (кода, выполняющегося в привилегированном режиме процессора) и количества системных вызовов;
-
независимость от аппаратной архитектуры и реализация на языке высокого уровня (язык программирования С стал «побочным продуктом» разработки
Юникс
).
Юникс
, благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и во всей отрасли, для которой Юникс
стала единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, быстро и с минимальными усилиями перенесена на вновь разработанную аппаратную архитектуру.
Одним из центров развития Юникс
стал Университет Калифорнии в Беркли, там было создано множество средств, дополняющих систему и развивающих ее концепцию. В конце концов, в Беркли создали свой вариант ОС той же архитектуры, получивший название BSD
(Berkeley Software Distribution).
Задачу разработать независимую (от авторских прав корпорации Эй-Ти-энд-Ти) реализацию той же архитектуры поставил и Ричард Столлмен (Richard Stallman), основатель проекта GNU (характерно, что аббревиатура расшифровывается как GNU's Not Unix, т. е. «ГНУ — это не Юникс
»). В ходе разворачивания проекта (1980–90-е гг.) было создано множество утилит и инструментальных средств, которые сегодня активно используются в BSD
(входя в систему) и Юникс
(как правило, распространяемые в качестве дополнений), а также являющихся основой операционных систем на основе ядра Линукс
(Linux
), разработка которого была запущена и возглавляется с начала девяностых Линусом Торвальдсом (Linus Torvalds).
Таким образом, на сегодня существует три семейства открытых операционных систем, концептуально происходящих от Юникс
, но реализованных независимо:
-
основанные на
Эй-Ти-энд-Ти
Юникс
(в разнообразных фирменных вариантах, таких какAIX
(компания IBM),Solaris
(компания Sun Microsystems) и т. п.); -
BSD
(в него входятFreeBSD
,OpenBSD
,NetBSD
, а такжеDarwin
, являющаяся основойMac OS X
); -
ГНУ/Линукс
(в различных вариантах, или дистрибутивах, таких какDebian GNU/Linux
,RedHat Linux
MandrakeSoft
и пр.).
Системы, содержащие исходные тексты, изначально написанные в Эй-Ти-энд-Ти, несвободны[5], а BSD
и ГНУ/Линукс
разрабатываются под свободными лицензиями.
Благодаря конкурентности реализаций архитектура открытых ОС стала вначале фактическим отраслевым стандартом, а затем обрела и статус юридического стандарта (последняя версия принята Международной организацией стандартизации (ISO) в 2001 г.).
Текущая редакция стандарта на ОС содержит определения около тысячи системных вызовов (часть из которых должна реализовываться только в определенных классах систем; например, в системах «реального времени») и около двухсот команд оболочки и утилит ОС. Стандарт определяет лишь функции вызовов и команд, и не содержит указаний относительно способов их реализации.
Стандарт, кроме этого, определяет способ адресации файлов в системе, локализацию (установки, касающиеся национально-специфических моментов, таких, как язык сообщений или формат даты и времени), совместимый набор символов, синтаксис регулярных выражений, структуру каталогов в файловой системе, формат командной строки и некоторые другие аспекты поведения ОС.
Стандартизация ОС означает возможность безболезненной замены самой ОС или оборудования при развитии вычислительной системы или сети и дешевого переноса прикладного программного обеспечения, а также преемственности опыта пользователей. Cтрогое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения иногда все же необходимы, но перенос программы между открытыми системами на порядки дешевле, чем между альтернативными.
Самым заметным результатом существования этого стандарта стало эффективное разворачивание сетей Интернет в девяностых годах.
Вытеснение открытыми ОС альтернативных архитектур — медленный и сложный процесс. Хотя открытые системы сегодня существуют для вычислительных систем практически всех типов — от встроенных и карманных компьютеров до суперсерверов и мэйнфреймов — доля их в разных сегментах рынка неодинакова. Открытые ОС уверенно доминируют в серверном сегменте (особенно в сетевых приложениях), но распространены на ПК и рабочих станциях нижнего уровня пока менее широко, чем альтернативные.
Свое значение сохраняют и несвободные открытые операционные системы, такие как Solaris
, AIX
, True64 UNIX
. Как правило, они применяются в сочетании с соответствующими аппаратными платформами, сопровождаются и поддерживаются производителями последних. Большинство свободных прикладных программ и пакетов перенесены или легко переносятся на такие ОС.
Большинство альтернативных (нестандартных) операционных систем вытеснены сегодня в ниши и не претендуют на универсальность. Ниже рассмотрены исключения.
Microsoft Windows NT
,Microsoft Windows 2000
,Microsoft Windows XP
-
ОС этой серии позиционируются компанией Microsoft как альтернатива стандартным (открытым) ОС и получили широкое распространение в сегменте однопользовательских настольных микрокомпьютеров (ПК) архитектуры x86/IA-32.
Windows NT
— дальний потомок ОСRSC
иVMS
корпорации Digital, вытесненных в свое время открытыми ОС с миникомпьютеров.Для
Microsoft Windows NT
существуют специальные пакеты (Cygwin, UWIN, UNIX Services for Windows), эмулирующие системные вызовы, оболочку и утилиты открытых ОС на платформе этой ОС, так же, как и реализации стандартной графической платформы (Оконной системы Икс, см. главу 3). Кроме того, для многих программ и пакетов с графическим интерфейсом существуют переносы вWindows NT
(т. е. с заменой стандартной графики на интерфейсWindows
).Обольщаться по этому поводу не стоит: опыт применения альтернативных ОС в большинстве случаев окажется более чем ущербным.
MS-DOS
,Microsoft Windows 3.х, 9х, Me
-
Для ОС этой серии также существуют эмулирующие стандартную архитектуру пакеты и переносы популярных свободных программ, однако многие механизмы (например, распределение полномочий) здесь отсутствуют в принципе.
- «Классическая»
Mac OS
-
Под торговой маркой
Mac OS
вплоть до версииMac OS X
(исключительно) компания Apple Computers поставляла самодельные ОС для своих ПКApple Macintosh, до сих пор находящиеся в эксплуатации. Под «классическую»Mac OS
перенесено лишь небольшое количество свободных программ.Следует заметить, что сегодня Эппл Компьютерз (Apple Computers) под той же торговой маркой поставляет
Mac OS X
— «бутерброд» из свободной открытой ОСDarwin
и проприетарных графических компонентов; дляDarwin
существуют (или легко осуществимы) переносы большей части свободных программ и пакетов. Старые ПКМакинтош, ресурсов которых недостаточно для запускаMac OS X
, могут быть модернизированы установкой на нихГНУ/Линукс
соответствующей версии.
В последние 5–7 лет рост пользовательской базы открытых ОС в основном происходит за счет распространения их свободных вариантов — BSD
и ГНУ/Линукс
— причем темп задает сейчас ГНУ/Линукс
.
Спецификой рынка свободных ОС, особенно основанных на ядре Linux
, является их существование в виде «популяции» параллельно развивающихся вариантов, называемых дистрибутивами (от англ. distributive kit — распространяемый комплект). Обычно дистрибутив помимо системных программ включает в себя большое количество прикладных программ.
[5] В 2002 г. Белл Лабз (Bell Labs), подразделение Эй-Ти-энд-Ти, занимающееся исследованиями и разработками, с какой-то целью релицензировало свободно одну из старых версию Юникс
, System 7
, имеющую сегодня лишь историческое значение.