Articulo de referencia

OpenStep

OpenStep es una especificación de interfaz de programación de aplicaciones (API) orientada a objetos desarrollada por NeXT y Sun Microsystems , que separa los marcos de aplicaci...

OpenStep es una especificación de interfaz de programación de aplicaciones (API) orientada a objetos desarrollada por NeXT y Sun Microsystems , que separa los marcos de aplicación del sistema operativo NeXTSTEP para que puedan implementarse en múltiples plataformas. Define un marco para la creación de aplicaciones con interfaz gráfica de usuario (GUI) y fue diseñado para ser independiente de la plataforma, lo que permite que el software se ejecute en múltiples sistemas operativos, incluidos NeXTSTEP, Windows NT y varios sistemas basados ​​en Unix . OpenStep influyó en marcos posteriores como Cocoa para macOS y GNUstep .

Con la introducción de la especificación OpenStep, NeXT renombró NeXTSTEP como OPENSTEP para Mach , su implementación de la especificación para su sistema operativo basado en Mach , manteniendo la compatibilidad con las aplicaciones NeXTSTEP existentes. [ 1 ]

Historia

Las estaciones de trabajo de Sun Microsystems se programaban originalmente a un nivel relativamente bajo, realizando llamadas directas al sistema operativo Unix subyacente y al conjunto de herramientas del sistema de ventanas SunView , así como a las bibliotecas construidas sobre esas interfaces. Esto conllevaba una programación compleja incluso para proyectos sencillos. A mediados de la década de 1980, se intentó solucionar este problema con un modelo de programación orientada a objetos mediante el sistema de ventanas NeWS de Sun , pero la combinación de una interfaz de programación de aplicaciones (API) compleja y un rendimiento generalmente deficiente hizo que su uso en el mundo real fuera escaso y el sistema finalmente se abandonó.

Sun comenzó entonces a buscar otras opciones. Taligent era considerado un competidor en los mercados de sistemas operativos y objetos, y Cairo de Microsoft era al menos una opción a considerar, incluso sin que ninguno de los dos hubiera lanzado ningún producto. La novedad teórica de Taligent se comparaba a menudo con la plataforma de NeXT, más antigua pero madura y comercialmente establecida. Sun celebró reuniones exploratorias con Taligent antes de decidir desarrollar su marco de aplicaciones de objetos OpenStep en asociación con NeXT como una "medida preventiva contra Taligent y Cairo". Bud Tribble , diseñador fundador de Macintosh y de NeXTStep, era ahora vicepresidente de productos de objetos de SunSoft para liderar esta decisión. La asociación de 1993 incluyó una inversión de 10 millones de dólares de Sun en NeXT. El acuerdo fue descrito como "la primera buena noticia sin adulterar para la comunidad de NeXT en los últimos cuatro años". [ 2 ]

El concepto básico consistía en tomar una versión reducida de las capas de objetos del sistema operativo NeXTSTEP y adaptarlas para que se ejecutaran en el sistema operativo Solaris de Sun , más concretamente, en hardware basado en SPARC . La mayor parte del esfuerzo de OpenStep se centró en eliminar las partes de NeXTSTEP que dependían de la presencia de Mach o hardware específico de NeXT. Esto dio como resultado un sistema más pequeño que consistía principalmente en Display PostScript , el entorno de ejecución y los compiladores de Objective-C , y la mayoría de las bibliotecas de Objective-C de NeXTSTEP. No se incluyó el sistema operativo básico ni el sistema de visualización de bajo nivel.

Steve Jobs dijo: «Hoy vamos por delante, pero la carrera está lejos de terminar. [...] [En 1996], Cairo estará muy cerca, y Taligent muy lejos». El director ejecutivo de Sun, Scott McNealy, dijo: «No tenemos póliza de seguro. Hemos tomado una firme decisión de una sola empresa, una sola arquitectura, no como Taligent, que consiguió un socio trofeo al firmar con HP». [ 2 ] : 13

El primer borrador de la API fue publicado por NeXT a mediados de 1994. Más tarde ese año lanzaron una versión compatible con OpenStep de NeXTSTEP como OPENSTEP para Mach, compatible con varias de sus plataformas, así como con sistemas Sun SPARC. NeXT presentó la especificación OpenStep a los organismos de estándares de objetos de la industria. [ 2 ] La API oficial de OpenStep, publicada en septiembre de 1994, fue la primera en dividir la API entre Foundation y Application Kit y la primera en usar el prefijo "NS". [ 3 ] Las primeras versiones de NeXTSTEP usan un prefijo "NX" y contienen solo el Application Kit, basándose en tipos libc estándar de Unix para estructuras de datos de bajo nivel. OPENSTEP para Mach siguió siendo el principal producto de sistema operativo de NeXT hasta que la compañía se fusionó con Apple Computer en 1997. OPENSTEP para Mach se combinó entonces con tecnologías del Mac OS clásico existente para producir Mac OS X. iOS y iPadOS también son descendientes de OPENSTEP para Mach, pero están dirigidos a teléfonos móviles y tabletas con pantalla táctil , respectivamente.

Sun adoptó originalmente el entorno OpenStep con la intención de complementar el sistema de objetos compatible con CORBA de Sun , Solaris NEO (anteriormente conocido como Project DOE), al proporcionar un conjunto de herramientas de interfaz de usuario orientado a objetos para complementar la infraestructura orientada a objetos de CORBA. [ 2 ] El puerto implicó integrar OpenStep AppKit con la capa Display PostScript del servidor Sun X11 , haciendo que AppKit tolerara código multihilo (ya que Project DOE era inherentemente muy multihilo), implementando un demonio Solaris para simular el comportamiento de los puertos Mach, extendiendo el compilador SunPro C++ para admitir Objective-C usando el entorno de ejecución ObjC de NeXT, escribiendo un administrador de ventanas X11 para implementar la apariencia de NeXTSTEP en la medida de lo posible, e integrando las herramientas de desarrollo de NeXT, como Project Builder e Interface Builder, con el compilador SunPro. Para proporcionar un entorno completo para el usuario final, Sun también adaptó las versiones NeXTSTEP-3.3 de varias aplicaciones para el usuario final, incluidas Mail.app, Preview.app, Edit.app, Workspace Manager y el Dock .

Las partes OpenStep y CORBA de los productos se separaron posteriormente, y NEO se lanzó a finales de 1995 sin el entorno OpenStep. En marzo de 1996, Sun anunció Joe, un producto para integrar NEO con Java . Sun lanzó una versión beta del entorno OpenStep para Solaris el 22 de julio de 1996, [ 4 ] y la puso a disposición para su descarga gratuita en agosto de 1996 para uso no comercial, y para su venta en septiembre de 1996. OpenStep/Solaris se lanzó únicamente para la arquitectura SPARC.

Descripción

OpenStep se diferencia de NeXTSTEP en varios aspectos:

La especificación de la API de OpenStep define tres componentes principales: Foundation Kit, el marco de software ; Application Kit , la interfaz gráfica de usuario y el front-end gráfico; y Display PostScript, un sistema gráfico 2D (para dibujar ventanas y otros gráficos en la pantalla).

Construyendo sobre OpenStep

La estandarización de OpenStep también permitió la creación de varios paquetes de bibliotecas nuevos que se distribuyeron en la plataforma OpenStep. A diferencia del sistema operativo en su conjunto, estos paquetes se diseñaron para ejecutarse de forma independiente en prácticamente cualquier sistema operativo. La idea era utilizar el código de OpenStep como base para aplicaciones de red que se ejecutaran en diferentes plataformas, en lugar de utilizar CORBA u otro sistema.

Entre estos paquetes, destacaba Portable Distributed Objects (PDO). PDO era esencialmente una versión aún más simplificada de OpenStep, que contenía únicamente las tecnologías de Foundation Kit, combinadas con nuevas bibliotecas para proporcionar invocación remota con muy poco código. A diferencia de OpenStep, que definía un sistema operativo en el que se ejecutarían las aplicaciones, en PDO las bibliotecas se compilaban en la propia aplicación, creando una aplicación nativa independiente para una plataforma específica. PDO era lo suficientemente pequeño como para ser fácilmente portable, y se lanzaron versiones para todos los principales proveedores de servidores.

A mediados de la década de 1990, el personal de NeXT comenzó a escribir soluciones a diversos artículos de la revista CORBA en unas pocas líneas de código, mientras que el artículo original ocupaba varias páginas. Si bien el uso de PDO requería la instalación de una cantidad considerable de código de soporte (Objective-C y las bibliotecas), las aplicaciones PDO eran considerablemente más pequeñas que las soluciones CORBA similares, generalmente entre la mitad y un tercio de su tamaño.

D'OLE, similar a D'OLE , ofrecía los mismos tipos de servicios, pero presentaba los objetos resultantes como objetos COM , con el objetivo de permitir a los programadores crear servicios COM que se ejecutaran en plataformas de alto rendimiento y fueran llamados desde aplicaciones de Microsoft Windows . Por ejemplo, se podía desarrollar una aplicación de modelado financiero de alto rendimiento con D'OLE y luego llamarla directamente desde Microsoft Excel . Cuando se lanzó D'OLE, OLE por sí solo solo permitía la comunicación entre aplicaciones que se ejecutaban en una sola máquina. PDO permitió a NeXT demostrar cómo Excel se comunicaba con otras aplicaciones de Microsoft a través de una red antes de que Microsoft pudiera implementar esta funcionalidad (DCOM).

Otro paquete desarrollado en OpenStep fue Enterprise Objects Framework (EOF), un producto de mapeo objeto-relacional .

Implementaciones

OPENSTEP para Mach

El primer sistema operativo de NeXT fue NeXTSTEP , un sofisticado sistema operativo basado en Mach-UNIX que originalmente solo funcionaba en las estaciones de trabajo Motorola 68k de NeXT y que luego se adaptó para funcionar en ordenadores personales "compatibles con IBM" basados ​​en Intel x86 de 32 bits , estaciones de trabajo basadas en PA-RISC de Hewlett-Packard y estaciones de trabajo basadas en SPARC de Sun Microsystems .

NeXT completó una implementación de OpenStep en su sistema operativo basado en Mach y la denominó OPENSTEP para Mach 4.0 (julio de 1996), 4.1 (diciembre de 1996) y 4.2 (enero de 1997). En la práctica, era NeXTSTEP 4.0 y conservaba las tecnologías insignia de NeXTSTEP (como DPS , la base UNIX, las características de la interfaz de usuario como el Dock y el Shelf , etc.), así como la interfaz y los estilos clásicos de NeXTSTEP. OPENSTEP para Mach se mejoró aún más, en comparación con NeXTSTEP 3.3, con una compatibilidad con controladores mucho mayor; sin embargo, el entorno para escribir controladores cambió con la introducción del DriverKit orientado a objetos.

OPENSTEP para Mach era compatible con PC Intel x86, estaciones de trabajo SPARC de Sun y arquitecturas propias de NeXT basadas en 68k, mientras que la versión HP PA-RISC se eliminó. Estas versiones continuaron ejecutándose en el sistema operativo subyacente basado en Mach utilizado en NeXTSTEP. OPENSTEP para Mach se convirtió en el sistema operativo principal de NeXT a partir de 1995 y se utilizó principalmente en la plataforma Intel. Además de ser una implementación completa de OpenStep, el sistema se entregó con un conjunto completo de bibliotecas de NeXTSTEP para garantizar la retrocompatibilidad. Esto fue fácil de lograr en OPENSTEP gracias al control de versiones de las bibliotecas, y OPENSTEP no sufrió problemas de tamaño por ello.

Solaris OpenStep

Además de la adaptación de OPENSTEP para Mach para SPARC, Sun y NeXT desarrollaron un conjunto de marcos de trabajo compatibles con OpenStep para ejecutarse en el sistema operativo Solaris de Sun. Tras desarrollar Solaris OpenStep, Sun perdió interés en OpenStep y centró su atención en Java. Como entorno de desarrollo de máquinas virtuales, Java se convirtió en un competidor directo de OpenStep. A diferencia de otras versiones, Solaris OpenStep incluía Interface Builder y Project Builder, que se vendían en un paquete aparte llamado Workshop OpenStep. [ 5 ] [ 4 ]

Empresa OPENSTEP

NeXT también ofreció una implementación que se ejecutaba sobre Windows NT 4.0 llamada OPENSTEP Enterprise (a menudo abreviada como OSE). Esto fue una demostración involuntaria de la verdadera naturaleza de la portabilidad de los programas creados bajo la especificación OpenStep. Los programas para OPENSTEP para Mach podían portarse a OSE con poca dificultad. Esto permitió a su base de clientes existente seguir utilizando sus herramientas y aplicaciones, pero ejecutándolas en Windows, sistema operativo al que muchos de ellos estaban migrando. Si bien nunca fue una coincidencia perfecta desde la perspectiva de la interfaz de usuario, probablemente debido a que OPENSTEP enrutaba los gráficos de las ventanas a través del servidor Display Postscript —que también se portó a Windows—, OSE, sin embargo, funcionó bastante bien y extendió la vida útil comercial de OpenStep.

OPENSTEP y OSE tuvieron dos revisiones (y una importante que nunca se publicó) antes de que Apple comprara NeXT en 1997.

Rhapsody, Mac OS X Server 1.0

Tras adquirir NeXT, Apple tenía previsto lanzar Rhapsody como una versión modificada de OPENSTEP para Mach, tanto para Mac como para PC estándar. Rhapsody era OPENSTEP para Mach con la apariencia de Copland de Mac OS 8 y compatibilidad con Java y las tecnologías propias de Apple, como ColorSync y QuickTime ; podría considerarse OPENSTEP 5. Se publicaron dos versiones para desarrolladores de Rhapsody, conocidas como Developer Preview 1 y 2; estas se ejecutaban en un subconjunto limitado de hardware Intel y PowerPC. Mac OS X Server 1.0 fue la primera versión comercial de este sistema operativo y se distribuyó exclusivamente para hardware Mac PowerPC.

Darwin, Mac OS X 10.0 y versiones posteriores

Después de reemplazar Display Postscript WindowServer con Quartz y responder a los desarrolladores incluyendo una mejor compatibilidad con versiones anteriores para las aplicaciones clásicas de Mac OS mediante la adición de Carbon , Apple lanzó Mac OS X y Mac OS X Server , comenzando en la versión 10.0; Mac OS X pasó a llamarse macOS en 2016. [ 6 ]

El entorno de programación principal de macOS es esencialmente OpenStep (con ciertas adiciones como listas de propiedades XML y clases URL para conexiones a Internet) con versiones para macOS de las bibliotecas y herramientas de desarrollo, ahora llamadas Cocoa .

macOS se ha convertido desde entonces en uno de los sistemas operativos de escritorio tipo Unix más utilizados en el mundo. [ 7 ] Si bien era posible portar aplicaciones creadas para OpenStep a versiones anteriores de macOS, [ 8 ] macOS se ha distanciado sustancialmente de OpenStep desde entonces. [ 9 ]

GNUstep

GNUstep, una implementación de software libre de las bibliotecas NeXT , surgió al mismo tiempo que NeXTSTEP, antes que OpenStep. Si bien Apple adquirió OpenStep y OSE, lo que puso fin al desarrollo comercial de la implementación de OpenStep para otras plataformas, GNUstep es un proyecto de código abierto en curso que busca crear una implementación de software libre y portátil de las bibliotecas Cocoa/OpenStep.

GNUstep también incluye un entorno de desarrollo totalmente funcional, reimplementaciones de algunas de las innovaciones más recientes del framework Cocoa de macOS , así como sus propias extensiones a la API.

Véase también

Referencias

  1. Lineback, Nathan. "OPENSTEP 4.2, versión Intel. Capturas de pantalla" . Toastytech.com .
  2. 1 2 3 4 Tribble, Bud (febrero de 1994). "Bud Tribble lo explica todo" . NeXTWORLD (Entrevista). Entrevistado por NeXTWORLD. págs. 23-24 . Recuperado el 10 de febrero de 2019 . 
  3. Guía de fundamentos del cacao: Un poco de historia
  4. 1 2 "Sun anuncia la disponibilidad de Solaris OpenStep y Workshop OpenStep Beta; satisface la demanda de los clientes de un sistema operativo y un entorno de desarrollo basado en objetos" . thefreelibrary.com (Comunicado de prensa). Business Wire. 22 de julio de 1996. Archivado del original el 23 de octubre de 2012. Consultado el 21 de mayo de 2023 .
  5. "Herramientas de desarrollo OpenStep - 1 Introducción" . docs.sun.com . Archivado del original el 27 de abril de 2005. Consultado el 21 de mayo de 2023 .
  6. "Apple presenta iOS 10, macOS y más en la WWDC 2016" . Archivado del original el 25 de septiembre de 2023. Consultado el 23 de agosto de 2025 .
  7. "Cuota de mercado mundial de sistemas operativos de escritorio" . Estadísticas globales de StatCounter . Consultado el 23 de agosto de 2025 .
  8. "Introducción a la portabilidad de aplicaciones UNIX/Linux a OS X" . developer.apple.com . Consultado el 23 de agosto de 2025 .
  9. "Introducción a la guía de transición de 64 bits para Cocoa" . developer.apple.com . Consultado el 23 de agosto de 2025 .
  • Guía de instalación de OPENSTEP
  • Especificación OpenStep
  • Lista de clases en la especificación OpenStep
  • Especificación OpenStep
  • El libro de respuestas OpenStep de Sun Workshop en Wayback Machine (archivado el 19 de mayo de 2008)
  • Blog de Rich Burridge sobre OpenStep en Sun en la Wayback Machine (archivado el 15 de octubre de 2004)
  • The NeXTonian archivado el 12 de mayo de 2008 en Wayback Machine.
  • NeXTComputers.org
  • OpenMagic 1.0 para Sparc por Luke Th. Bullock
  • Archivo de NeXTanswers en Wayback Machine (archivado el 17 de febrero de 2020)