ОпенСтеп
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2023 г. ) |
Разработчик(и) | NeXT , Сан Микросистемс |
---|---|
Первоначальный выпуск | 19 октября 1994 г |
Написано в | Цель-C |
Операционная система | Солярис ; Windows НТ ; Unix-подобные операционные системы с Mach. ядром |
Платформа | ИА-32 , ПА-РИСК , СПАРК |
Доступно в | Английский |
Тип | Интерфейс прикладного программирования |
Веб-сайт | www |
OpenStep — это спецификация объектно-ориентированного интерфейса прикладного программирования (API), разработанная NeXT . Он обеспечивает основу для создания графических пользовательских интерфейсов (GUI) и разработки программных приложений. OpenStep был разработан как независимый от платформы, что позволяет разработчикам писать код, который может работать в нескольких операционных системах, включая NeXTSTEP, Windows NT и различные Unix системы на базе . Это повлияло на разработку других инфраструктур графического интерфейса, таких как Cocoa для macOS и GNUstep .
OpenStep был в основном разработан NeXT и Sun Microsystems для обеспечения расширенной разработки приложений в операционных системах Sun, в частности Solaris . NeXT выпустила версию OpenStep для своей собственной ОС Unix на базе Mach , стилизованную заглавными буквами как OPENSTEP . [1] Библиотеки программного обеспечения , поставляемые с OPENSTEP, представляют собой расширенный набор исходной спецификации OpenStep, включающий многие функции исходного NeXTSTEP.
История
[ редактировать ]Рабочие станции от Sun Microsystems изначально были запрограммированы на относительно низком уровне, осуществляя вызовы непосредственно к базовой Unix операционной системе и набору инструментов оконной системы SunView , а также к библиотекам, построенным на основе этих интерфейсов. Это привело к сложному программированию даже для простых проектов. Попытка решить эту проблему с помощью модели объектно-ориентированного программирования была предпринята в середине 1980-х годов с помощью Sun NeWS оконной системы , но сочетание сложного интерфейса прикладного программирования (API) и, как правило, низкой производительности привело к незначительному практическому использованию, и система в конечном итоге был заброшен.
Затем Сан начал искать другие варианты. Taligent считалась конкурентом на рынках операционных систем и объектов, а Microsoft Cairo , по крайней мере, рассматривалась, даже без каких-либо выпусков продуктов от обеих сторон. Теоретическая новизна Taligent часто сравнивалась со старой, но зрелой и коммерчески признанной платформой NeXT. Sun провела предварительные встречи с Taligent, прежде чем принять решение о создании своей среды объектных приложений OpenStep в партнерстве с NeXT в качестве «превентивного шага против Taligent и Cairo». Бад Триббл , разработчик-основатель Macintosh и NeXTStep, теперь был вице-президентом SunSoft по объектным продуктам и возглавил это решение. Партнерство 1993 года включало инвестиции Sun в NeXT в размере 10 миллионов долларов. Сделка была описана как «первая настоящая хорошая новость в сообществе NeXT за последние четыре года». [2]
Основная концепция заключалась в том, чтобы взять урезанную версию объектных слоев операционной системы NeXTSTEP и адаптировать их для работы в операционной системе Sun Solaris , точнее, Solaris на оборудовании на базе SPARC . Большая часть усилий OpenStep заключалась в удалении тех частей NeXTSTEP, которые зависели от наличия оборудования Mach или NeXT. В результате получилась система меньшего размера, состоящая в основном из Display PostScript , среды выполнения и компиляторов Objective-C , а также большинства библиотек NeXTSTEP Objective-C. В комплект не входила базовая операционная система или система отображения нижнего уровня.
Стив Джобс сказал: «Сегодня мы впереди, но гонка еще далека от завершения... [В 1996 году] Каир будет очень близко позади, а Талигент будет очень далеко позади». Генеральный директор Sun Скотт МакНили заявил: «У нас нет страхового полиса. Мы приняли твердое решение: одна компания, одна архитектура, в отличие от компании Taligent, которая получила трофейного супруга, подписав контракт с HP». [2] : 13
Первый проект API был опубликован компанией NeXT в середине 1994 года. Позже в том же году они выпустили версию NeXTSTEP, совместимую с OpenStep, под названием OPENSTEP, поддерживаемую на нескольких их платформах, а также на системах Sun SPARC. NeXT представила спецификацию OpenStep в отраслевые органы стандартизации объектов. [2] Официальный API OpenStep, опубликованный в сентябре 1994 года, был первым, в котором API был разделен на Foundation и Application Kit, а также первым, в котором использовался префикс «NS». [3] Ранние версии NeXTSTEP используют префикс «NX» и содержат только Application Kit, опираясь на стандартные типы Unix libc для структур данных низкого уровня. OPENSTEP оставался основным продуктом операционной системы NeXT до тех пор, пока компания не была приобретена Apple Computer в 1997 году. Затем OPENSTEP был объединен с технологиями существующей классической Mac OS для создания Mac OS X. iPhone и iPad для iOS также является потомком OPENSTEP, но ориентирована на сенсорные устройства.
Изначально компания Sun внедрила среду OpenStep с намерением дополнить CORBA объектную систему Sun, совместимую с , Solaris NEO (ранее известную как Project DOE), предоставив набор инструментов объектно-ориентированного пользовательского интерфейса в дополнение к объектно-ориентированной системе CORBA. [2] Порт включал интеграцию OpenStep AppKit со слоем Display PostScript сервера Sun X11 , что делало AppKit терпимым к многопоточному коду (поскольку Project DOE по своей сути был сильно многопоточным), реализацию демона Solaris для имитации поведения портов Mach. расширение компилятора SunPro C++ для поддержки Objective-C с использованием среды выполнения NeXT ObjC, написание оконного менеджера X11 для максимально возможной реализации внешнего вида NeXTSTEP, а также интеграция инструментов разработки NeXT, таких как Project Builder и Interface Builder, с Компилятор SunPro. Чтобы обеспечить полную среду для конечного пользователя, Sun также перенесла версии NeXTSTEP-3.3 нескольких приложений для конечных пользователей, включая Mail.app, Preview.app, Edit.app, Workspace Manager и Dock .
Части продуктов OpenStep и CORBA позже были разделены, и в конце 1995 года был выпущен NEO без среды OpenStep. В марте 1996 года Sun анонсировала Joe — продукт для интеграции NEO с Java . Sun выпустила бета-версию среды OpenStep для Solaris 22 июля 1996 г. [4] и сделал его бесплатно доступным для загрузки в августе 1996 года для некоммерческого использования и для продажи в сентябре 1996 года. OpenStep/Solaris поставлялся только для архитектуры SPARC.
Описание
[ редактировать ]OpenStep отличается от NeXTSTEP по-разному:
- NeXTSTEP — это операционная система, тогда как OpenStep — это API.
- В отличие от NeXTSTEP, OpenStep не требует ядра Mach .
- Каждая версия NeXTSTEP имеет определенный порядок байтов : прямой порядок байтов для процессоров Motorola 68K и прямой порядок байтов для процессоров x86 например, . OpenStep не имеет порядка байтов.
- OpenStep представляет новые классы и возможности управления памятью .
Спецификация OpenStep API определяет три основных компонента: Foundation Kit, программную среду ; Application Kit , графический интерфейс и графический интерфейс; и Display PostScript, система 2D-графики (для рисования окон и другой графики на экране).
Опираясь на OpenStep
[ редактировать ]Стандартизация OpenStep также позволила создать несколько новых пакетов библиотек, которые были реализованы на платформе OPENSTEP. В отличие от операционной системы в целом, эти пакеты были разработаны для автономной работы практически в любой операционной системе. Идея заключалась в том, чтобы использовать код OpenStep в качестве основы для сетевых приложений, работающих на разных платформах, вместо использования CORBA или какой-либо другой системы.
Основным среди этих пакетов были Portable Distributed Objects (PDO). По сути, PDO был еще более «урезанной» версией OpenStep, содержащей только технологии Foundation Kit в сочетании с новыми библиотеками для обеспечения удаленного вызова с очень небольшим количеством кода. В отличие от OpenStep, который определял операционную систему, в которой будут работать приложения, в рамках PDO библиотеки компилировались в само приложение, создавая автономное «родное» приложение для конкретной платформы. PDO был достаточно небольшим, чтобы его можно было легко переносить, и были выпущены версии для всех основных поставщиков серверов.
В середине 1990-х годов сотрудники NeXT начали писать решения для различных журнальных статей CORBA в несколько строк кода, тогда как исходная статья занимала несколько страниц. Несмотря на то, что использование PDO требовало установки значительного объема вспомогательного кода (Objective-C и библиотек), приложения PDO, тем не менее, были значительно меньше, чем аналогичные решения CORBA, обычно примерно от половины до одной трети размера.
Аналогичный D'OLE предоставлял те же типы сервисов, но представлял результирующие объекты как COM- объекты с целью позволить программистам создавать COM-сервисы, работающие на мощных платформах, вызываемые из приложений Microsoft Windows . Например, можно разработать мощное приложение для финансового моделирования с использованием D'OLE, а затем вызывать его непосредственно из Microsoft Excel . Когда D'OLE был впервые выпущен, OLE сам по себе обменивался данными только между приложениями, работающими на одной машине. PDO позволил NeXT продемонстрировать взаимодействие Excel с другими приложениями Microsoft по сети до того, как Microsoft сама смогла реализовать эту функциональность (DCOM).
Еще одним пакетом, разработанным на OpenStep, был Enterprise Objects Framework (EOF), продукт объектно-реляционного отображения .
Реализации
[ редактировать ]OPENSTEP для Маха
[ редактировать ]Первой операционной системой NeXT была NeXTSTEP , сложная операционная система на базе Mach-UNIX, которая первоначально работала только на рабочих станциях NeXT на базе Motorola 68k , а затем была перенесена для работы на 32-битных на базе «IBM-совместимых» персональных компьютерах Intel x86 , Пенсильвания. -Рабочие станции на базе RISC от Hewlett-Packard и рабочие станции на базе SPARC от Sun Microsystems .
NeXT завершила реализацию OpenStep в своей существующей ОС на базе Mach и назвала ее OPENSTEP для Mach 4.0 (июль 1996 г.), 4.1 (декабрь 1996 г.) и 4.2 (январь 1997 г.). По сути, это был NeXTSTEP 4.0, и в нем все еще сохранялись флагманские технологии NeXTSTEP (такие как DPS , основы UNIX, характеристики пользовательского интерфейса, такие как Dock и Shelf и т. д.), а также классический пользовательский интерфейс и стили NeXTSTEP. OPENSTEP for Mach был дополнительно улучшен по сравнению с NeXTSTEP 3.3 со значительно улучшенной поддержкой драйверов, однако среда для фактического написания драйверов была изменена с появлением объектно-ориентированного DriverKit.
OPENSTEP for Mach поддерживал ПК на базе Intel x86, рабочие станции Sun SPARC и собственные архитектуры NeXT на базе 68k, в то время как версия HP PA-RISC была исключена. Эти версии продолжали работать на базовой ОС на базе Mach, используемой в NeXTSTEP. OPENSTEP for Mach стал основной ОС NeXT с 1995 года и использовался в основном на платформе Intel. Помимо полной реализации OpenStep, система поставлялась с полным набором библиотек NeXTSTEP для обеспечения обратной совместимости. В OpenStep это было легко сделать из-за управления версиями библиотек, и OPENSTEP из-за этого не пострадал от раздувания.
Солярис Опенстеп
[ редактировать ]В дополнение к порту OPENSTEP for Mach для SPARC компании Sun и NeXT разработали набор инфраструктур, совместимый с OpenStep, для работы в операционной системе Sun Solaris . После разработки Solaris OpenStep компания Sun потеряла интерес к OpenStep и переключила свое внимание на Java. Как среда разработки виртуальных машин Java была прямым конкурентом OpenStep. В отличие от других версий, в Solaris OpenStep Interface Builder и Project Builder продавались в отдельном пакете под названием Workshop OpenStep. [5] [6]
Опенстеп предприятие
[ редактировать ]NeXT также представила реализацию, работающую поверх Windows NT 4.0, под названием OPENSTEP Enterprise (часто сокращенно OSE). Это была непреднамеренная демонстрация истинной природы переносимости программ, созданных по спецификации OpenStep. Программы для OPENSTEP для Mach можно было без труда перенести на OSE. Это позволило их существующей клиентской базе продолжать использовать свои инструменты и приложения, но запускать их в Windows, на которую многие из них находились в процессе перехода. Никогда не было полного совпадения с точки зрения пользовательского интерфейса, вероятно, из-за маршрутизации оконной графики OPENSTEP через сервер Display Postscript, который также был портирован на Windows, но OSE, тем не менее, сумела работать достаточно хорошо и продлила коммерческую продолжительность жизни OpenStep.
У OPENSTEP и OSE было две версии (и одна основная, которая так и не была выпущена) до того, как NeXT была куплена Apple в 1997 году.
Рапсодия, Mac OS X Server 1.0
[ редактировать ]После приобретения NeXT Apple намеревалась выпустить Rhapsody как переработанную версию OPENSTEP для Mach как для Mac, так и для стандартных ПК. Rhapsody была OPENSTEP для Mach с внешним видом Copland из Mac OS 8 и поддержкой Java и собственных технологий Apple, включая ColorSync и QuickTime ; его можно рассматривать как OPENSTEP 5. Были выпущены две версии Rhapsody для разработчиков, известные как Developer Preview 1 и 2; они работали на ограниченном наборе оборудования Intel и PowerPC. Mac OS X Server 1.0 была первой коммерческой версией этой операционной системы и поставлялась исключительно для оборудования PowerPC Mac.
Дарвин, Mac OS X 10.0 и более поздние версии
[ редактировать ]После замены Display Postscript WindowServer на Quartz и ответа разработчикам, включив лучшую обратную совместимость для классических приложений Mac OS за счет добавления Carbon , Apple выпустила Mac OS X и Mac OS X Server , начиная с версии 10.0; Mac OS X теперь называется macOS.
Основная среда программирования macOS по сути представляет собой OpenStep (с некоторыми дополнениями, такими как списки свойств XML и классы URL-адресов для подключений к Интернету) с портами macOS библиотек и инструментов разработки, которые теперь называются Cocoa .
С тех пор macOS стала самой популярной настольной Unix-подобной операционной системой в мире, хотя macOS больше не является операционной системой, совместимой с OpenStep. [ нужна ссылка ]
GNUстеп
[ редактировать ]GNUstep, свободная программная реализация библиотек NeXT , возникла во времена NeXTSTEP, до OPENSTEP. В то время как OPENSTEP и OSE были куплены Apple, которая фактически прекратила коммерческую разработку реализации OpenStep для других платформ, GNUstep представляет собой продолжающийся проект с открытым исходным кодом, целью которого является создание переносимой бесплатной программной реализации библиотек Cocoa/OPENSTEP.
GNUstep также включает в себя полнофункциональную среду разработки, повторную реализацию некоторых новых инноваций из среды Cocoa macOS , а также собственные расширения API.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Полузащитник, Натан. «OPENSTEP 4.2, версия Intel. Снимки экрана» . Toastytech.com .
- ^ Jump up to: а б с д Триббл, Бад (февраль 1994 г.). «Бад Триббл все объясняет» . NeXTWORLD (Интервью). Беседовал NeXTWORLD. п. 23–24 . Проверено 10 февраля 2019 г.
- ^ Руководство по основам какао: немного истории
- ^ «Sun объявляет о доступности Solaris OpenStep и Workshop OpenStep Beta» (пресс-релиз). Сан Микросистемс, Инк . Проверено 25 октября 2006 г.
- ^ «Инструменты разработки OpenStep — 1 Введение» . docs.sun.com . Архивировано из оригинала 27 апреля 2005 года . Проверено 21 мая 2023 г.
- ^ МакГирр, Лили (22 июля 1996 г.). «Sun объявляет о доступности Solaris OpenStep и Workshop OpenStep Beta; удовлетворяет спрос клиентов на операционные системы и объектно-ориентированную среду разработки» . thefreelibrary.com . Деловой провод. Архивировано из оригинала 23 октября 2012 года . Проверено 21 мая 2023 г.