Максим Отставнов - Прикладные свободные программы и системы в школе
Краткая история открытых ОС
К концу шестидесятых годов XX в. операционным системам как классу программного обеспечения шел уже второй десяток. Были разработаны больше сотни различных ОС для разных компьютеров, из них полтора десятка находились в «боевой» эксплуатации. На рубеже шестидесятых и семидесятых в одном из исследовательских подразделений американской телекоммуникационной монополии «Эй-Ти-энд-Ти» была выполнена разработка, ставшая важнейшей вехой в истории ОС: система «Юникс».
Задуманная и реализованная Кеном Томсоном при участии нескольких коллег, она вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих ее от большинства предшественниц:
компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач;
минимизация ядра (кода, выполняющегося в привилегированном режиме процессора) и количества системных вызовов;
независимость от аппаратной архитектуры и реализация на языке высокого уровня (язык программирования С стал «побочным продуктом» разработки «Юникс»).
«Юникс», благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и в отрасли, получившей прототип единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, быстро и с минимальными усилиями перенесена на вновь разработанную аппаратную архитектуру.
Одним из центров развития «Юникс» стал Университет Калифорнии в Беркли, там было создано множество средств, дополняющих систему и развивающих ее концепцию. В конце концов, в Беркли создали свой вариант ОС той же архитектуры, получивший название «БСД».
Задачу разработать независимую (от авторских прав «Эй-Ти-энд-Ти») реализацию той же архитектуры поставил и Ричард Столлмен, основатель проекта «ГНУ» (характерно, что аббревиатура расшифровывается как GNU’s Not Unix, т.е. «ГНУ — это не “Юникс”»). В ходе разворачивания проекта (1980-90е гг.) было создано множество утилит и инструментальных средств, которые сегодня активно используются в «БСД» (входя в систему) и «Юникс» (как правило, распространяемые в качестве дополнений), а также являющихся основой операционных систем на основе ядра «Линукс», разработка которого была запущена и возглавляется с начала девяностых Линусом Торвальдсом.
Таким образом, на сегодня существует три семейства открытых операционных систем, концептуально происходящих от «Юникс», но реализованных независимо:
основанные на «Эй-Ти-энд-Ти Юникс» (в разнообразных фирменных вариантах, таких как AIX (компания IBM), «Солярис» (компания Sun Microsystems) и т.п.),
«БСД» (в него входят FreeBSD, OpenBSD, NetBSD, а также Darwin, являющаяся основой MacOS X),
«ГНУ/Линукс» (в различных вариантах, или дистрибутивах, таких как Debian GNU/Linux, RedHat Linux, Linux-Mandrake и пр.)
Системы, содержащие код, изначально написанный в AT&T, несвободны[5], а «БСД» и «ГНУ/Линукс» разрабатываются под свободными лицензиями.
Благодаря конкурентности реализаций архитектура открытых ОС стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического (свежая версия принята Международной организацией стандартизации (ISO) в 2001 г.).
Стандартизация ОС означает возможность безболезненной замены самой ОС или оборудования при развитии вычислительной системы или сети и дешевого переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения иногда все же необходимы, но перенос программы между открытыми системами на порядки дешевле, чем между альтернативными), а также преемственности опыта пользователей.
Самым заметным эффектом существования этого стандарта стало эффективное разворачивание сетей Интернет в девяностых годах.
Вытеснение открытыми ОС альтернативных архитектур — медленный и сложный процесс. Хотя открытые системы сегодня существуют для вычислительных систем практически всех типов — от встроенных и карманных компьютеров до суперсерверов и мэйнфреймов — доля их в разных сегментах рынка неодинакова. Открытые ОС уверенно доминируют в серверном сегменте (особенно в сетевых приложениях), но распространены на ПК и рабочих станциях нижнего уровня пока менее широко, чем альтернативные.
Роль свободных операционных систем
В последние 5-7 лет рост пользовательской базы открытых ОС в основном происходит за счет распространения их свободных вариантов — «БСД» и «ГНУ/Линукс» — причем темп задает сейчас «ГНУ/Линукс».
Спецификой рынка свободных ОС, особенно, основанных на ядре «Линукс», является их существование в виде «популяции» параллельно развивающихся вариантов, называемых «дистрибутивами» (от англ. distributive kit — «распространяемый комплект»). Обычно дистрибутив включает в себя, помимо системных программ, большое количество прикладных программ и пакетов.
Несвободные открытые операционные системы
Свое значение сохраняют и несвободные открытые операционные системы, такие как «Солярис», «AIX», «Тру64 Юникс». Как правило, они применяются в сочетании с соответствующими аппаратными платформами, сопровождаются и поддерживаются производителями последних. Большинство свободных прикладных программ и пакетов перенесены или легко переносятся на такие ОС.
Альтернативные операционные системы
Большинство альтернативных (нестандартных) операционных систем вытеснены сегодня в ниши и не претендуют на универсальность. Ниже рассмотрены исключения.
«Майкрософт Уиндоуз НТ» («Майкрософт Уиндоуз 2000», «Майкрософт Уиндоуз Экс-Пи»). ОС этой серии позиционируются компанией «Майкрософт» как альтернатива стандартным (открытым) ОС и получили широкое распространение в сегменте однопользовательских настольных микрокомпьютеров («ПК») архитектуры x86/IA-32. «НТ» — дальний потомок ОС «Ар-Эс-Экс» и «Ви-Эм-Эс» корпорации «Диджитал», вытесненных в свое время открытыми ОС с миникомпьютеров.
Для «Майкрософт Уиндоуз НТ» существуют специальные пакеты (Cygwin, UWIN, UNIX Services for Windows), эмулирующие системные вызовы, оболочку и утилиты открытых ОС на платформе этой ОС, так же, как и реализации стандартной графической платформы («Оконной системы Икс»). Кроме того, для многих программ и пакетов с графическим интерфейсом существуют «родные» переносы в «НТ» (т.е. с заменой стандартной графики на интерфейс Win32).
Обольщаться по этому поводу не стоит: опыт применения альтернативных ОС в большинстве случаев окажется более чем ущербным.
«МС-ДОС» («Майкрософт Уиндоуз 3.х, 9х, Ми»). Для ОС этой серии также существуют эмулирующие стандартную архитектуру пакеты и переносы популярных свободных программ, однако многие механизмы (например, распределение полномочий) здесь отсутствуют в принципе.
«Классическая» «МакОС». Под торговой маркой «МакОС» вплоть до версии «МакОС X» (исключительно) компания «Эппл Компьютерз» поставляла самодельные ОС для своих ПК «Эппл Макинтош», до сих пор находящиеся в эксплуатации. Под «классическую» «МакОС» перенесено лишь небольшое количество свободных программ.
Следует заметить, что сегодня «Эппл» под той же торговой маркой поставляет «МакОС X» — «бутерброд» из свободной открытой ОС «Дарвин» и проприетарных графических компонентов; под «Дарвин» существуют (или легко осуществимы) переносы большей части свободных программ и пакетов. Старые ПК «Макинтош», ресурсов которых недостаточно для запуска «МакОС Х», могут быть модернизированы установкой на них «ГНУ/Линукс» соответствующей версии.
1.2 Практическая интеграция
Сильными техническими сторонами открытых ОС, выгодно отличающими их от любых альтернатив в плане практической интеграции (разворачивания, поддержания в работоспособном состоянии, непротиворечивого расширения и наращивания), являются:
поддержка широкого спектра аппаратных платформ (самыми «всеядными» являются системы на основе ядра «Линукс»);
поддержка различных топологий многопользовательских систем: от совокупности независимых рабочих станций до многотерминальных систем, в том числе, включающих компьютеры на разных аппаратных платформах.
В качестве существенной проблемы, сдерживающей стандартизацию во многих категориях систем, часто называют сложности с поддержкой многих устройств «потребительского» класса, ориентированных на архитектуры «IA-32» (IBM PC-совместимые) и «PowerPC» («Макинтоши»). Поставщики таких устройств нередко утаивают важные технические параметры и другую информацию, необходимую для разработки драйверов для своих видеокарт, модемов и пр.