Введение

Реализация сетевого стека System V STREAMS от Apple

Open Transport — название, данное компанией Apple Inc. своей реализации сетевого стека System V STREAMS, разработанного в Unix. Open Transport был создан на основе кода, лицензированного из продукта Portable Streams компании Mentat, чтобы обеспечить классическую Mac OS современной реализацией TCP/IP, заменив MacTCP. Apple также добавила в стек собственную реализацию AppleTalk для поддержки устаревших сетей.

ПОЛОЖИ

До выхода Open Transport классическая Mac OS использовала множество независимых INIT-файлов для обеспечения сетевой функциональности. Единственной, которая широко применялась во всей ОС, была система AppleTalk. Среди других поддерживаемых стеков протоколов MacTCP становился всё более важным по мере роста популярности интернета. MacTCP эмулировал систему сокетов Berkeley, широко используемую в Unix-подобных операционных системах. MacTCP и библиотека AppleTalk предыдущего поколения работали медленно на Macintosh на базе PowerPC, поскольку они были разработаны для машин на базе 680x0 и, следовательно, работали в режиме эмуляции на PowerPC. Однако MacTCP также был ограничен в функциональности, и Apple явно нуждалась в существенном обновлении, чтобы сохранить свои позиции на интернет-рынке. В конце 1980-х годов велось несколько крупных проектов по объединению различных производных Unix в единую систему, и наиболее значительным из них была System V под руководством AT&T. System V включала в себя совершенно новый сетевой стек – STREAMS, заменяющий существующую систему сокетов Berkeley. STREAMS обладала рядом преимуществ перед сокетами, включая возможность одновременной поддержки нескольких сетевых стеков, возможность подключения модулей в середину существующих стеков для реализации простых механизмов фильтрации и подобных задач, а также предоставление единого интерфейса программирования приложений для пользовательских программ. В то время казалось, что STREAMS станет фактическим стандартом. Это изменение на рынке побудило Apple также перейти на поддержку STREAMS. Это также дало компании два практических преимущества: многопротокольная поддержка STREAMS позволяла поддерживать как TCP/IP, так и AppleTalk через единый интерфейс, а коммерчески доступна была переносимая кроссплатформенная версия STREAMS, включающая высококачественную реализацию TCP. Использование STREAMS также представлялось способом "опередить" Microsoft, чья собственная сетевая система TCP/IP, Winsock, была основана на, по всей видимости, устаревающей технологии сокетов.

ОТ

Open Transport был представлен в мае 1995 года вместе с Power Mac 9500. Он был включен в System 7.5.2, выпуск для новых Power Mac на базе PCI, и позже стал доступен для более старого оборудования. MacTCP не поддерживался на Power Mac на базе PCI, но более старые системы могли переключаться между MacTCP и Open Transport с помощью панели управления Network Software Selector. В отличие от MacTCP, Open Transport позволял пользователям сохранять и переключаться между наборами конфигураций. Мнение разработчиков об Open Transport разделилось. Некоторые считали, что он обеспечивает значительное увеличение скорости по сравнению с MacTCP. Другим разработчикам он понравился благодаря гибкости, позволяющей "наслаивать" протоколы для применения фильтров и выполнения других подобных задач. Однако система также была большой и сложной. Гибкость архитектуры Open Transport, в которую можно было интегрировать любой желаемый протокол, показалась некоторым чрезмерно усложненной. Кроме того, большая часть Unix-кода по-прежнему использовала сокеты, а не STREAMS, поэтому MacTCP предлагал реальные преимущества при портировании программного обеспечения на Mac. Превозносимая гибкость архитектуры Open Transport была подорвана и в конечном итоге устарела из-за быстрого распространения сетей TCP/IP в середине 90-х годов. То же самое произошло и на более широком рынке Unix: System V была вытеснена быстрым ростом бесплатных Unix-подобных систем, в частности Linux. С ростом популярности этих систем подавляющее большинство программистов предпочли BSD-лицензированные сокеты закрытым STREAMS. Open Transport был прекращен при переходе на OS X, сетевой стек которой, будучи производным от BSD, полностью основывался на сокетах. Open Transport получил статус устаревшего, начиная с Mac OS X 10.4 и его SDK. Поддержка Open Transport была полностью удалена из OS X, начиная с версии 10.9 (Mavericks).