Открытые системы
Альтернативой закрытым решениям является концепция открытых
систем. Идея открытых систем исходит из того, что для разных задач необходимы
разные системы — как специализированные, так и системы общего назначения,
просто по-разному настроенные и сбалансированные. Сложность состоит в
том, чтобы обеспечить:
- взаимодействие разнородных систем в гетерогенной сети;
- обмен данными между различными приложениями на разных
платформах;
- переносимость прикладного ПО с одной платформы на другую,
хотя бы путем перекомпиляции исходных текстов;
- по возможности однородный пользовательский интерфейс.
Эти задачи предполагается решать при помощи открытых
стандартов -стандартных сетевых протоколов, стандартных форматов данных,
стандартизации программных интерфейсов — API (Application
Program Interface, интерфейс прикладных программ) и, наконец, стандартизации
пользовательского интерфейса.
В качестве стандартного сетевого протокола предлагалась семиуровневая
модель OSI, но прежде, чем на основе этой модели было разработано что-то
полезное, получило широкое распространение семейство протоколов TCP/IP.
Документация по протоколам этого семейства имеет статус public
domain (общественная собственность); кроме того, есть, по крайней
мере, одна программная реализация этого протокола, также имеющая статус
public domain — сетевое ПО системы BSD Unix, это стало вполне приемлемым
основанием для применения TCP/IP в открытых системах.
Обсуждение стандартных форматов данных увело бы нас далеко от основной
темы, но нужно отметить следующее: в настоящее время существует много
общепризнанных стандартов представления изображений (особенно растровых)
и звуковых данных, но некоторые типы данных так и не имеют признанной
стандартной формы. Например, есть несколько открытых форматов представления
форматированного текста: troff, LATEX и другие пакеты макросов для системы
ТЕХ, и, наконец, стандарт SGML (Standard Generalized Markup Language),
но ни один из этих стандартов не пользуется популярностью среди разработчиков
коммерческих текстовых процессоров
(Справедливости ради нужно отметить, что форматы troff и LATEX очень неудобны
для WYSIWYG текстовых процессоров, но SGML разрабатывался специально для
них). Причины такого отношения понятны: предоставление пользователю возможности
без проблем обмениваться данными с текстовым процессором конкурента означает
дать пользователю возможность выбирать между твоим процессором и его.
Впрочем, пользователю от понимания не легче.
Для того чтобы как-то обеспечить переносимость программ между системами
различных типов, принимались различные стандарты интерфейса между пользовательской
(обычно говорят-- прикладной, но это не всегда правильно) программой и
ОС. Одним из первых таких стандартов был стандарт библиотек ANSI С. Он
основан на системных вызовах ОС Unix, но функции MS DOS для работы с файлами
(использующие file handle) тоже достаточно близки к этому стандарту.
Позднее делалось еще несколько попыток стандартизировать интерфейс системных
вызовов. Одной из относительно удачных попыток такого рода был POSIX (Portable
Operating System Interface [based on] uniX — переносимый интерфейс операционной
системы, основанный на Unix), который в той или иной форме поддерживается
всеми системами семейства Unix и некоторыми ОС, не входящими в это семейство,
например Windows NT. Но наибольший успех имела деятельность консорциума
Х/Ореп, который в 1998 году сертифицировал операционную систему OS/390
фирмы IBM как соответствующую спецификациям Unix/95 [www.opengroup.org
xu007] и, таким образом, дал представителю самого древнего из современных
родов операционных систем право называться UNIX ™.
Впрочем, данная книга не претендует на исчерпывающее руководство по выбору
операционной среды, а тем более на справочник по программированию
или поддержке конкретной операционной системы. Наша задача — дать обзор
основных задач, которые встают перед разработчиками операционной системы,
и путей их решения, которые были найдены в ходе развития вычислительных
технологий. |