Article de reference

Étape ouverte

OpenStep est une spécification d' interface de programmation d'application (API) orientée objet développée par NeXT . Elle fournit un cadre pour la création d' interfaces utilis...

OpenStep est une spécification d' interface de programmation d'application (API) orientée objet développée par NeXT . Elle fournit un cadre pour la création d' interfaces utilisateur graphiques (GUI) et le développement d'applications logicielles. OpenStep a été conçu pour être indépendant de la plate-forme, permettant aux développeurs d'écrire du code pouvant s'exécuter sur plusieurs systèmes d'exploitation, notamment NeXTSTEP, Windows NT et divers systèmes basés sur Unix . Il a influencé le développement d'autres frameworks d'interface utilisateur graphique, tels que Cocoa pour macOS et GNUstep .

OpenStep a été principalement développé par NeXT et Sun Microsystems pour permettre le développement d'applications avancées sur les systèmes d'exploitation de Sun, en particulier Solaris . NeXT a produit une version d'OpenStep pour son propre système d'exploitation Unix basé sur Mach , stylisée en lettres majuscules sous le nom OPENSTEP . Les bibliothèques logicielles fournies avec OPENSTEP sont un sur-ensemble de la spécification OpenStep originale, comprenant de nombreuses fonctionnalités du NeXTSTEP original.

Histoire

Les stations de travail de Sun Microsystems étaient initialement programmées à un niveau relativement bas, en faisant directement appel au système d'exploitation Unix sous-jacent et à la boîte à outils du système de fenêtrage SunView , ainsi qu'aux bibliothèques construites sur ces interfaces. Cela a conduit à une programmation complexe, même pour des projets simples. Une tentative de résoudre ce problème avec un modèle de programmation orienté objet a été faite au milieu des années 1980 avec le système de fenêtrage NeWS de Sun, mais la combinaison d'une interface de programmation d'application (API) complexe et de performances généralement médiocres a conduit à une utilisation limitée dans le monde réel et le système a finalement été abandonné.

Sun a alors commencé à chercher d'autres options. Taligent était considéré comme un concurrent sur les marchés des systèmes d'exploitation et des objets, et Cairo de Microsoft était au moins une option envisageable, même sans aucune sortie de produit de l'un ou l'autre. La nouveauté théorique de Taligent était souvent comparée à la plate-forme NeXT, plus ancienne mais mature et commercialement établie. Sun a tenu des réunions exploratoires avec Taligent avant de décider de développer son cadre d'application objet OpenStep en partenariat avec NeXT comme une « mesure préventive contre Taligent et Cairo ». Bud Tribble , un des concepteurs fondateurs du Macintosh et de NeXTStep, était désormais vice-président des produits objet de SunSoft pour mener cette décision. Le partenariat de 1993 comprenait un investissement de 10 millions de dollars de Sun dans NeXT. L'accord a été décrit comme « la première bonne nouvelle pure dans la communauté NeXT au cours des quatre dernières années ».

Le concept de base consistait à prendre une version simplifiée des couches objets du système d'exploitation NeXTSTEP et à les adapter pour qu'elles fonctionnent sur le système d'exploitation Solaris de Sun , plus précisément sur Solaris sur un matériel SPARC . La majeure partie des efforts d'OpenStep consistait à supprimer les parties de NeXTSTEP qui dépendaient de la présence de matériel spécifique à Mach ou à NeXT. Le résultat était un système plus petit, composé principalement de Display PostScript , du runtime et des compilateurs Objective-C , et de la majorité des bibliothèques Objective-C de NeXTSTEP. Le système d'exploitation de base, ou le système d'affichage de niveau inférieur, n'était pas inclus.

Steve Jobs a déclaré : « Nous sommes en tête aujourd'hui, mais la course est loin d'être terminée. […] [En 1996], Cairo sera très proche et Taligent sera très loin derrière. » Le PDG de Sun, Scott McNealy , a déclaré : « Nous n'avons pas de police d'assurance. Nous avons pris une décision ferme : une entreprise unique, une architecture unique, ce n'est pas comme si Taligent obtenait un conjoint trophée en signant avec HP. »

La première version de l'API a été publiée par NeXT au milieu de l'année 1994. Plus tard dans l'année, ils ont publié une version compatible OpenStep de NeXTSTEP sous le nom d'OPENSTEP, prise en charge sur plusieurs de leurs plates-formes ainsi que sur les systèmes Sun SPARC. NeXT a soumis la spécification OpenStep aux organismes de normalisation des objets de l'industrie. L'API officielle OpenStep, publiée en septembre 1994, a été la première à diviser l'API entre Foundation et Application Kit et la première à utiliser le préfixe « NS ». Les premières versions de NeXTSTEP utilisent un préfixe « NX » et ne contiennent que l'Application Kit, s'appuyant sur les types libc Unix standard pour les structures de données de bas niveau. OPENSTEP est resté le principal produit de système d'exploitation de NeXT jusqu'à la fusion de la société avec Apple Computer en 1997. OPENSTEP a ensuite été combiné avec les technologies du système d'exploitation Mac OS classique existant pour produire Mac OS X. L' iOS de l'iPhone et de l'iPad est également un descendant d'OPENSTEP, mais destiné aux appareils tactiles.

Sun a initialement adopté l'environnement OpenStep dans le but de compléter le système objet compatible CORBA de Sun, Solaris NEO (anciennement connu sous le nom de Project DOE), en fournissant une boîte à outils d'interface utilisateur orientée objet pour compléter la plomberie CORBA orientée objet. Le port impliquait l'intégration de l'AppKit OpenStep avec la couche Display PostScript du serveur Sun X11 , rendant l'AppKit tolérant au code multithread (le projet DOE étant intrinsèquement fortement multithread), implémentant un démon Solaris pour simuler le comportement des ports Mach, étendant le compilateur SunPro C++ pour prendre en charge Objective-C en utilisant l'environnement d'exécution ObjC de NeXT, écrivant un gestionnaire de fenêtres X11 pour implémenter autant que possible l'apparence et la convivialité de NeXTSTEP, et intégrant les outils de développement NeXT, tels que Project Builder et Interface Builder, avec le compilateur SunPro. Afin de fournir un environnement utilisateur final complet, Sun a également porté les versions NeXTSTEP-3.3 de plusieurs applications utilisateur final, notamment Mail.app, Preview.app, Edit.app, Workspace Manager et Dock .

Les parties OpenStep et CORBA des produits ont ensuite été séparées, et NEO a été commercialisé fin 1995 sans l'environnement OpenStep. En mars 1996, Sun a annoncé Joe, un produit permettant d'intégrer NEO à Java . Sun a livré une version bêta de l'environnement OpenStep pour Solaris le 22 juillet 1996 et l'a mise à disposition gratuitement en téléchargement en août 1996 pour une utilisation non commerciale, et à la vente en septembre 1996. OpenStep/Solaris n'a été commercialisé que pour l'architecture SPARC.

Description

OpenStep diffère de NeXTSTEP de plusieurs manières :

La spécification API OpenStep définit trois composants principaux : Foundation Kit, le framework logiciel ; Application Kit , l' interface graphique et le front-end graphique ; et Display PostScript, un système graphique 2D (pour dessiner des fenêtres et d'autres graphiques sur l'écran).

S'appuyer sur OpenStep

La standardisation sur OpenStep a également permis la création de plusieurs nouveaux packages de bibliothèques qui ont été livrés sur la plate-forme OPENSTEP. Contrairement au système d'exploitation dans son ensemble, ces packages ont été conçus pour fonctionner de manière autonome sur pratiquement n'importe quel système d'exploitation. L'idée était d'utiliser le code OpenStep comme base pour les applications à l'échelle du réseau fonctionnant sur différentes plates-formes, par opposition à l'utilisation de CORBA ou d'un autre système.

Parmi ces paquets, le plus important était Portable Distributed Objects (PDO). PDO était essentiellement une version encore plus « simplifiée » d'OpenStep contenant uniquement les technologies du Foundation Kit, combinées à de nouvelles bibliothèques pour permettre l'invocation à distance avec très peu de code. Contrairement à OpenStep, qui définissait un système d'exploitation dans lequel les applications s'exécuteraient, sous PDO, les bibliothèques étaient compilées dans l'application elle-même, créant ainsi une application « native » autonome pour une plate-forme particulière. PDO était suffisamment petit pour être facilement portable et des versions étaient publiées pour tous les principaux fournisseurs de serveurs.

Au milieu des années 1990, l'équipe de NeXT a commencé à rédiger des solutions à divers articles du magazine CORBA en quelques lignes de code, alors que l'article original remplissait plusieurs pages. Même si l'utilisation de PDO nécessitait l'installation d'une quantité considérable de code de support (Objective-C et les bibliothèques), les applications PDO étaient néanmoins considérablement plus petites que les solutions CORBA similaires, généralement environ la moitié à un tiers de la taille.

Le D'OLE, similaire , fournissait les mêmes types de services, mais présentait les objets résultants comme des objets COM , dans le but de permettre aux programmeurs de créer des services COM exécutés sur des plates-formes puissantes, appelés à partir d' applications Microsoft Windows . Par exemple, on pourrait développer une application de modélisation financière puissante en utilisant D'OLE, puis l'appeler directement à partir de Microsoft Excel . Lorsque D'OLE a été lancé pour la première fois, OLE seul ne communiquait qu'entre des applications exécutées sur une seule machine. PDO a permis à NeXT de démontrer qu'Excel communiquait avec d'autres applications Microsoft sur un réseau avant que Microsoft lui-même ne soit en mesure d'implémenter cette fonctionnalité (DCOM).

Un autre package développé sur OpenStep était Enterprise Objects Framework (EOF), un produit de mappage objet-relationnel .

Implémentations

OPENSTEP pour Mach

Le premier système d'exploitation de NeXT était NeXTSTEP , un système d'exploitation sophistiqué basé sur Mach-UNIX qui fonctionnait à l'origine uniquement sur les stations de travail Motorola 68k de NeXT et qui a ensuite été porté pour fonctionner sur les ordinateurs personnels « compatibles IBM » basés sur Intel x86 32 bits , les stations de travail basées sur PA-RISC de Hewlett-Packard et les stations de travail basées sur SPARC de Sun Microsystems .

NeXT a réalisé une implémentation d'OpenStep sur son système d'exploitation existant basé sur Mach et l'a appelé OPENSTEP pour Mach 4.0 (juillet 1996), 4.1 (décembre 1996) et 4.2 (janvier 1997). Il s'agissait, à toutes fins utiles, de NeXTSTEP 4.0, et il conservait toujours les technologies phares de NeXTSTEP (telles que DPS , les bases UNIX, les caractéristiques de l'interface utilisateur comme Dock et Shelf , etc.), et conservait l'interface utilisateur et les styles classiques de NeXTSTEP. OPENSTEP pour Mach a été encore amélioré, par rapport à NeXTSTEP 3.3, avec une prise en charge des pilotes considérablement améliorée - cependant, l'environnement d'écriture des pilotes a été modifié avec l'introduction du DriverKit orienté objet.

OPENSTEP pour Mach prenait en charge les PC Intel x86, les stations de travail SPARC de Sun et les architectures 68k de NeXT, tandis que la version HP PA-RISC a été abandonnée. Ces versions ont continué à fonctionner sur le système d'exploitation sous-jacent basé sur Mach utilisé dans NeXTSTEP. OPENSTEP pour Mach est devenu le système d'exploitation principal de NeXT à partir de 1995 et a été utilisé principalement sur la plate-forme Intel. En plus d'être une implémentation complète d'OpenStep, le système a été livré avec un ensemble complet de bibliothèques NeXTSTEP pour la compatibilité ascendante. C'était une chose facile à faire dans OpenStep en raison du contrôle de version des bibliothèques, et OPENSTEP n'a pas souffert de gonflement à cause de cela.

Solaris OpenStep

En plus du portage OPENSTEP for Mach pour SPARC, Sun et NeXT ont développé un ensemble de frameworks compatibles OpenStep pour fonctionner sur le système d'exploitation Solaris de Sun. Après avoir développé Solaris OpenStep, Sun a perdu tout intérêt pour OpenStep et s'est tourné vers Java. En tant qu'environnement de développement de machines virtuelles, Java était un concurrent direct d'OpenStep. Contrairement aux autres versions, Solaris OpenStep proposait Interface Builder et Project Builder vendus dans un package séparé appelé Workshop OpenStep.

Entreprise OPENSTEP

NeXT a également livré une implémentation fonctionnant sur Windows NT 4.0 appelée OPENSTEP Enterprise (souvent abrégée OSE). Il s'agissait d'une démonstration involontaire de la véritable nature de la portabilité des programmes créés sous la spécification OpenStep. Les programmes pour OPENSTEP pour Mach pouvaient être portés vers OSE sans difficulté. Cela a permis à leur base de clients existante de continuer à utiliser leurs outils et applications, mais en les exécutant sous Windows, vers lequel beaucoup d'entre eux étaient en train de passer. Bien que n'ayant jamais été parfaitement compatible du point de vue de l'interface utilisateur, probablement en raison du routage des graphiques de fenêtre d'OPENSTEP via le serveur Display Postscript (qui a également été porté sous Windows), OSE a néanmoins réussi à fonctionner assez bien et a prolongé la durée de vie commerciale d'OpenStep.

OPENSTEP et OSE ont connu deux révisions (et une révision majeure qui n'a jamais été publiée) avant que NeXT ne soit acheté par Apple en 1997.

Rhapsody, Mac OS X Server 1.0

Après l'acquisition de NeXT, Apple avait l'intention de proposer Rhapsody comme une version retravaillée d'OPENSTEP for Mach pour Mac et PC standard. Rhapsody était OPENSTEP for Mach avec une apparence Copland de Mac OS 8 et un support pour Java et les propres technologies d'Apple, y compris ColorSync et QuickTime ; il pouvait être considéré comme OPENSTEP 5. Deux versions de développement de Rhapsody ont été publiées, connues sous le nom de Developer Preview 1 et 2 ; elles fonctionnaient sur un sous-ensemble limité de matériel Intel et PowerPC. Mac OS X Server 1.0 était la première version commerciale de ce système d'exploitation et était livrée exclusivement pour le matériel Mac PowerPC.

Darwin, Mac OS X 10.0 et versions ultérieures

Après avoir remplacé Display Postscript WindowServer par Quartz et avoir répondu aux développeurs en incluant une meilleure compatibilité descendante pour les applications Mac OS classiques grâce à l'ajout de Carbon , Apple a publié Mac OS X et Mac OS X Server , à partir de la version 10.0 ; Mac OS X s'appelle désormais macOS.

L'environnement de programmation principal de macOS est essentiellement OpenStep (avec certains ajouts tels que les listes de propriétés XML et les classes URL pour les connexions Internet) avec les ports macOS des bibliothèques et outils de développement, désormais appelés Cocoa .

macOS est depuis devenu le système d'exploitation de bureau de type Unix le plus populaire au monde, bien que macOS ne soit plus un système d'exploitation compatible OpenStep.

Étape GNU

GNUstep, une implémentation logicielle libre des bibliothèques NeXT , a débuté à l'époque de NeXTSTEP, avant OPENSTEP. Alors qu'OPENSTEP et OSE ont été achetés par Apple, ce qui a effectivement mis fin au développement commercial de l'implémentation d'OpenStep pour d'autres plates-formes, GNUstep est un projet open source en cours visant à créer une implémentation logicielle libre et portable des bibliothèques Cocoa/OPENSTEP.

GNUstep propose également un environnement de développement entièrement fonctionnel, des réimplémentations de certaines des innovations les plus récentes du framework Cocoa de macOS , ainsi que ses propres extensions de l'API.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index