Чтение онлайн

на главную - закладки

Жанры

Журнал «Компьютерра» № 20 от 30 мая 2006 года
Шрифт:
Как это вышло

Причиной такого положения дел стал антимонопольный комитет США. Не стоит сразу представлять себе судебный процесс «Консервативная монополия Unix мешает развитию новой перспективной ОС Windows». Антимонопольный процесс против American Telephone and Telegraph (AT&T) в 1949 году помешал распространению влияния телекоммуникационного гиганта на новорожденные отрасли: AT&T было запрещено заниматься продажей каких бы то ни было компьютерных решений, и рекомендовалось ограничиться телефоном и телеграфом.

Именно поэтому исследовательское подразделение AT&T, Bell Labs, с тех пор прибыли само по себе не приносило: все создаваемые компьютерные технологии

свободно лицензировались всем желающим. Если бы не это, еще неизвестно, как сложилась бы судьба созданной в Bell Labs операционной системы Unix. Многие из лицензиатов (в основном, конечно же, университеты) создавали слегка или сильно модифицированные версии для собственных нужд. Одной из этих версий, созданной в университете Беркли, Калифорния ничем не примечательным аспирантом Биллом Джоем, была уготована долгая и извилистая судьба.

В начале 1980-х годов в результате очередного антимонопольного судебного процесса AT&T была разделена на несколько подразделений, в результате чего у корпорации оказались развязаны руки (в смысле получения прибыли от торговли компьютерами). И вновь – тяжело предположить, как бы сложилась судьба Unix без этого события: с одной стороны, агрессивный маркетинг AT&T способствовал быстрому и эффективному распространению ОС; с другой – новая стратегия лицензирования (без исходного кода) положила начало разделению разработки Unix на несколько разных независимых веток и многолетнему противостоянию этих веток (так называемые unix wars).

Одной из «веток» стал разработанный в Беркли «берклиевский набор софта» (Berkeley Software Distribution, BSD), по прежнему распространявшийся свободно и с исходниками. Возможно, именно этот факт повлиял на DARPA[На всякий случай: DARPA – Defense Advanced Research Projects Agency (Агентство перспективных исследований при Министерстве обороны США) – так или иначе поддерживало огромную часть исследований, которые сформировали образ современных IT] при выборе – кому бы дать денег для разработки протокола TCP/IP. Дали. Разработали (4.2BSD, август 1983 года). Этот фактор (совместно со многими другими) повлиял на огромную популярность и быстрое распространение BSD. Ну а Билл Джой, с которого начиналась эта версия Unix, тем временем создал собственную фирму под названием «Солнышко».

Оригинальная Unix System V от AT&T, созданная в Беркли BSD, Sun OS от Sun Microsystem и еще несколько дистрибутивов, основанных на System V и BSD, вступили в сложное взаимодействие, включавшее и конкуренцию, и заимствование полезных фич, и юридические споры – в общем, было весело. Однако все это привело к размытию образа Unix и потере ориентиров в стиле «лебедь, рак и щука». Попытки исправить ситуацию привели к очередному пату: AT&T и Sun скоординировались и создали System V version 4, а многие независимые производители, которым не понравился этот альянс гигантов, объединились в Open Software Foundation[Не путать с Free Software Foundation – ничего общего!] и попытались создать «свой» Unix по имени OSF/1 (в общем, это была неудачная попытка)[Вообще говоря, у них там все еще сложнее получилось: сначала группа независимых поставщиков Unix создала группу по его стандартизации X/Open, в ответ на это объединились AT&T и Sun; а уже это привело к появлению Open Software Foundation].

Этот жизнерадостный период (конец 80-х – начало 90-х), называемый Unix wars, имел много интересных последствий: считается, что пока юниксопроизводители воевали друг с другом, Windows захватил десктопы, а внезапно появившийся Linux – сердца простых юниксоидов, которым скандалы производителей были до фени. Впрочем, в данном контексте нам будут намного интереснее другие последствия противостояния.

Что из этого вышло

А последствия

были такие: программистам стало очень печально жить. Как водится, в результате маркетинговых войн (когда каждый стремится сотворить систему круче чем у прочих) совместимость различных клонов Unix пошла на убыль. То есть программа, написанная под какую-нибудь Sun OS, совершенно не обязательно станет работать под какой-нибудь другой BSDI (хотя, по идее, и то и другое – Unix). Менеджерам-маркетологам этот вопрос был, в общем, без разницы («а так даже лучше – чего это наши программы будут работать под ОС конкурента?»), но, к счастью, культура Unix всегда определялась скорее программистами и продвинутыми пользователями, нежели менеджерами.

В 1985 году за дело взялась серьезная организация IEEE, которая ведает большой частью американских и международных стандартов. При участии многих выдающихся профессионалов к 1990 году появился стандарт POSIX (о происхождении аббревиатуры – см. эпиграф; официальная расшифровка – Portable Operating System Interface[X в аббревиатуре – что-то вроде «привет юниксоидам»]).

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

Соответственно своей цели (обеспечить переносимость прикладных программ), POSIX не предъявляет никаких требований к архитектуре операционной системы. POSIX определяет только взаимодействие между программой и ОС в стиле «системный вызов по имени А с параметром Б должен выполнить В и вернуть результат Г или ошибку Д». Это означает, что «POSIX-совместимая операционная система» не является синонимом «Unix». Например, в исходный код Linux (чтобы там ни думала себе SCO) не входит ни единой строчки из изначального AT&T Unix. Тем не менее программы, работающие в System V или BSD, без проблем запустятся в Linux. Торвальдс достиг этого результата действиями «в лоб»: взял стандарт POSIX и реализовал его. Получилось[Когда Oracle портировала свою БД (уже работавшую на Sun Solaris, наследнике Sun OS) на Linux, кто-то задал оракловским инженерам вопрос типа «и что, трудно было?» Ответ был характерен: «мы запускали make» (в смысле – собрали программу из исходников, и все заработало)].

Я вам больше скажу – Windows NT совместима с одной из частей POSIX (1003.1b, real-time extensions, описывающей переключение процессов, синхронизацию потоков и т. п.). И если скачать с сайта Microsoft набор утилит Services for Unix (SFU) – брюки превращаются… во вполне POSIX-соместимую систему (то есть теоретически любая Unix-программа на Windows+SFU должна собраться и запуститься без проблем). И еще более того – поддержка SFU корпорацией Microsoft как отдельного продукта практически прекращена – потому что он теперь будет входить в стандартную поставку Windows. Такие форточки.

Интерфейс взаимодействия операционной системы и прикладных программ (традиционно называемый OS API, Application Programming Interface) естественно, существует в каждой ОС и в очень большой степени определяет легкость программирования под нее. Использованный при создании POSIX метод «практической стандартизации», когда собираются лучшие из используемых подсистем и объявляются стандартом, показала себя существенно эффективней других вариантов: «теоретической стандартизации» (когда собираются ученые и решают «как будет умнее») и неконтролируемой проприетарной разработки (когда единственная фирма-производитель ОС предоставляет API по мере собственного разумения каждого конкретного отдела).

Поделиться:
Популярные книги

Ринсвинд и Плоский мир

Пратчетт Терри Дэвид Джон
Плоский мир
Фантастика:
фэнтези
7.57
рейтинг книги
Ринсвинд и Плоский мир

Мастер ветров и закатов

Фрай Макс
1. Сновидения Ехо
Фантастика:
фэнтези
8.38
рейтинг книги
Мастер ветров и закатов

На границе империй. Том 10. Часть 2

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 10. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Темный Лекарь 2

Токсик Саша
2. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 2

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

Завод 2: назад в СССР

Гуров Валерий Александрович
2. Завод
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Завод 2: назад в СССР

Гимназистка. Клановые игры

Вонсович Бронислава Антоновна
1. Ильинск
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Гимназистка. Клановые игры

Весь Роберт Маккаммон в одном томе. Компиляция

МакКаммон Роберт Рик
Абсолют
Фантастика:
боевая фантастика
5.00
рейтинг книги
Весь Роберт Маккаммон в одном томе. Компиляция

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник

Буревестник. Трилогия

Сейтимбетов Самат Айдосович
Фантастика:
боевая фантастика
5.00
рейтинг книги
Буревестник. Трилогия

LIVE-RPG. Эволюция-1

Кронос Александр
1. Эволюция. Live-RPG
Фантастика:
социально-философская фантастика
героическая фантастика
киберпанк
7.06
рейтинг книги
LIVE-RPG. Эволюция-1

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Как я строил магическую империю 4

Зубов Константин
4. Как я строил магическую империю
Фантастика:
боевая фантастика
постапокалипсис
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 4