Paso abierto
OpenStep es una especificación de interfaz de programación de aplicaciones (API) orientada a objetos desaparecida para un sistema operativo heredado orientado a objetos, con el objetivo básico de ofrecer un entorno similar a NeXTSTEP en sistemas operativos que no sean NeXTSTEP.. OpenStep fue desarrollado principalmente por NeXT con Sun Microsystems, para permitir el desarrollo de aplicaciones avanzadas en los sistemas operativos de Sun, específicamente Solaris. NeXT produjo una versión de OpenStep para su propio Unix basado en Mach, estilizado como OPENSTEP, así como una versión para Windows NT. Las bibliotecas de software que se enviaron con OPENSTEP son un superconjunto de la especificación OpenStep original, que incluye muchas características del NeXTSTEP original.
Historia
En la primera era de la historia de Sun Microsystems, las máquinas Sun se programaban a un nivel relativamente bajo para realizar llamadas directamente al sistema operativo Unix subyacente y generar una interfaz gráfica de usuario (GUI) mediante el sistema X11. Esto condujo a una programación compleja incluso para proyectos simples. A mediados de la década de 1980 se hizo un intento de abordar esto con un modelo de programación orientado a objetos con 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 condujo a poca uso y el sistema fue finalmente abandonado.
Sun entonces comenzó a buscar otras opciones. Se consideraba que Taligent era un competidor en los mercados de objetos y sistemas operativos, y Cairo de Microsoft era al menos una consideración, incluso sin lanzamientos de productos de ninguno de los dos. La novedad teórica de Taligent a menudo se comparaba con la plataforma más antigua pero madura y establecida comercialmente de NeXT. Sun celebró reuniones exploratorias con Taligent antes de decidir construir su marco de aplicación de objetos OpenStep en asociación con NeXT como un "movimiento preventivo contra Taligent y Cairo". Bud Tribble, diseñador fundador de Macintosh y de NeXTStep, ahora era el vicepresidente de productos de objetos de SunSoft para liderar esta decisión. La sociedad de 1993 incluyó una inversión de $10 millones de Sun en NeXT. El acuerdo se describió como "la primera buena noticia sin adulterar en la comunidad NeXT en los últimos cuatro años".
El concepto básico era 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 específicamente, Solaris en hardware basado en SPARC. La mayor parte del esfuerzo de OpenStep fue eliminar aquellas partes de NeXTSTEP que dependían de la presencia de hardware específico de Mach o NeXT. Esto dio como resultado un sistema más pequeño que constaba principalmente de Display PostScript, el tiempo 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 nivel inferior.
Steve Jobs dijo: "Hoy estamos adelante, pero la carrera está lejos de terminar.... [En 1996,] El Cairo estará muy cerca y Taligent estará muy atrás." El CEO de Sun, Scott McNealy, dijo: "No tenemos una póliza de seguro". Hemos tomado una decisión firme de una empresa, una arquitectura, no como Taligent obteniendo un cónyuge trofeo al contratar a HP."
NeXT publicó el primer borrador de la API a mediados de 1994. Ese mismo año, lanzaron una versión compatible con OpenStep de NeXTSTEP como OPENSTEP, compatible con varias de sus plataformas, así como con los sistemas Sun SPARC. NeXT presentó la especificación OpenStep a los organismos de estándares de objetos de la industria. 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 utilizar el "NS" prefijo. Las primeras versiones de NeXTSTEP utilizan un "NX" prefijo y contienen solo el kit de aplicación, basándose en los tipos libc estándar de Unix para estructuras de datos de bajo nivel. OPENSTEP siguió siendo el principal producto del sistema operativo de NeXT hasta que Apple Computer compró la empresa en 1997. OPENSTEP se combinó entonces con tecnologías del Mac OS clásico existente para producir Mac OS X. iPhone y iPad's iOS también es un descendiente de OPENSTEP, pero dirigido a dispositivos táctiles.
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), proporcionando un juego de herramientas de interfaz de usuario orientado a objetos para complementar el sistema de objetos orientado a objetos. Fontanería CORBA. El puerto involucró la integración de OpenStep AppKit con la capa Display PostScript del servidor Sun X11, lo que hizo que el AppKit tolerara el código de subprocesos múltiples (ya que el Proyecto DOE era inherentemente multiproceso), implementando un demonio de Solaris para simular el comportamiento de los puertos Mach, extendiendo el compilador SunPro C++ para admitir Objective-C usando el tiempo de ejecución ObjC de NeXT, escribiendo un administrador de ventanas X11 para implementar la apariencia de NeXTSTEP tanto como sea posible e integrando las herramientas de desarrollo de NeXT, como Project Builder e Interface Builder, con el compilador SunPro. Para proporcionar un entorno de usuario final completo, Sun también portó las versiones NeXTSTEP-3.3 de varias aplicaciones de usuario final, incluidas Mail.app, Preview.app, Edit.app, Workspace Manager y Dock.
Las partes OpenStep y CORBA de los productos se dividieron posteriormente y NEO se lanzó a fines de 1995 sin el entorno OpenStep. En marzo de 1996, Sun anunció Joe, un producto para integrar NEO con Java. Sun envió una versión beta del entorno OpenStep para Solaris el 22 de julio de 1996 y lo puso a disposición para su descarga gratuita en agosto de 1996 para uso no comercial y para la venta en septiembre de 1996. OpenStep/Solaris se envió solo para la arquitectura SPARC.
Descripción
OpenStep se diferencia de NeXTSTEP en varios aspectos:
- NeXTSTEP es un sistema operativo, mientras que OpenStep es una API.
- A diferencia de NeXTSTEP, OpenStep no requiere el núcleo Mach.
- Cada versión de NeXTSTEP tiene un endianness específico: gran endian para procesadores Motorola 68K, y poco endian para procesadores x86, por ejemplo. OpenStep es "libre de endian".
- OpenStep presenta nuevas clases y capacidades de gestión de memoria.
La especificación API de OpenStep define tres componentes principales: Foundation Kit, el marco de software; Application Kit, la GUI y el front-end de gráficos; y Display PostScript, un sistema de gráficos 2D (para dibujar ventanas y otros gráficos en la pantalla).
Construyendo sobre OpenStep
La estandarización en OpenStep también permitió la creación de varios paquetes de biblioteca nuevos que se entregaron en la plataforma OPENSTEP. A diferencia del sistema operativo en su conjunto, estos paquetes fueron diseñados para ejecutarse de forma independiente en prácticamente cualquier sistema operativo. La idea era usar el código OpenStep como base para aplicaciones de toda la red que se ejecutan en diferentes plataformas, en lugar de usar CORBA o algún otro sistema.
El principal de estos paquetes fue Portable Distributed Objects (PDO). La PDO era esencialmente una opción aún más "despojada" versión de OpenStep que contiene solo 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, bajo PDO las bibliotecas se compilaban en la propia aplicación, creando un sistema "nativo" aplicación para una plataforma en particular. PDO era lo suficientemente pequeño como para ser fácilmente portátil 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 para varios artículos de la revista CORBA en unas pocas líneas de código, mientras que el artículo original ocupaba varias páginas. Aunque 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 de PDO eran considerablemente más pequeñas que las soluciones CORBA similares, típicamente entre la mitad y un tercio del tamaño.
El D'OLE similar proporcionó los mismos tipos de servicios, pero presentó los objetos resultantes como objetos COM, con el objetivo de permitir a los programadores crear servicios COM que se ejecutan en plataformas de alta potencia, llamado desde las aplicaciones de Microsoft Windows. Por ejemplo, se podría desarrollar una aplicación de modelado financiero de alta potencia usando D'OLE y luego llamarla directamente desde Microsoft Excel. Cuando D'OLE se lanzó por primera vez, OLE solo se comunicaba entre aplicaciones que se ejecutaban en una sola máquina. PDO permitió a NeXT demostrar que 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 relacional de objetos tremendamente poderoso (por el momento). EOF se hizo muy popular en el mercado empresarial, especialmente en el sector financiero, donde OPENSTEP provocó una especie de revolución menor.
Implementaciones
PASO ABIERTO para Mach
El primer sistema operativo de NeXT fue NeXTSTEP, un sofisticado sistema operativo basado en Mach-UNIX que originalmente solo se ejecutaba en las estaciones de trabajo basadas en Motorola 68k de NeXT y que luego se transfirió para ejecutarse en Intel x86 de 32 bits. -basado en "compatible con IBM" computadoras personales, 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 SO existente basado en Mach y lo llamó OPENSTEP for Mach 4.0 (julio de 1996), 4.1 (diciembre de 1996) y 4.2 (enero de 1997). Era, a todos los efectos, NeXTSTEP 4.0, y aún conservaba las tecnologías emblemáticas de NeXTSTEP (como DPS, los fundamentos de UNIX, las características de la interfaz de usuario como Dock and Shelf, etc.), y conservaba la interfaz de usuario 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 de controlador muy mejorada; sin embargo, el entorno para escribir controladores cambió con la introducción de DriverKit orientado a objetos.
OPENSTEP para Mach admitía PC's Intel x86, estaciones de trabajo SPARC de Sun y arquitecturas propias basadas en 68k de NeXT, 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 usó 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 NeXTSTEP para compatibilidad con versiones anteriores. Esto fue algo fácil de hacer en OpenStep debido al control de versiones de la biblioteca, y OPENSTEP no se vio afectado por ello.
OpenStep de Solaris
Además del puerto OPENSTEP for Mach para SPARC, Sun y NeXT desarrollaron un conjunto de marcos compatibles con OpenStep para ejecutarse en el sistema operativo Solaris de Sun. Después de desarrollar Solaris OpenStep, Sun perdió interés en OpenStep y cambió su atención hacia Java. Como entorno de desarrollo de máquinas virtuales, Java sirvió como competidor directo de OpenStep.
OPENSTEP Empresa
NeXT también entregó una implementación que se ejecuta sobre Windows NT 4.0 llamada OPENSTEP Enterprise (a menudo abreviado como OSE). Esta fue una demostración no intencional sobre la verdadera naturaleza de la portabilidad de los programas creados bajo la especificación OpenStep. Los programas para OPENSTEP para Mach podrían trasladarse a OSE con poca dificultad. Esto permitió que su base de clientes actual siguiera utilizando sus herramientas y aplicaciones, pero ejecutándolas en Windows, al que muchos de ellos estaban en proceso de cambio. Nunca hubo una coincidencia clara desde la perspectiva de la interfaz de usuario, probablemente debido al enrutamiento de los gráficos de ventana de OPENSTEP a través del servidor Display Postscript, que también se transfirió a Windows; sin embargo, OSE logró funcionar bastante bien y extendió la vida útil comercial de OpenStep..
OPENSTEP y OSE tuvieron dos revisiones (y una importante que nunca se lanzó) antes de que Apple comprara NeXT en 1997.
Rapsodia, Mac OS X Server 1.0
Después de adquirir NeXT, Apple tenía la intención de enviar Rhapsody como una versión modificada de OPENSTEP para Mach tanto para Mac como para PC estándar. Rhapsody fue OPENSTEP para Mach con una apariencia Copland de Mac OS 8 y soporte para Java y las tecnologías propias de Apple, incluidas ColorSync y QuickTime; podría considerarse OPENSTEP 5. Se lanzaron dos versiones para desarrolladores de Rhapsody, conocidas como Developer Preview 1 y 2; estos se ejecutaron 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 entregó exclusivamente para hardware PowerPC Mac.
Darwin, Mac OS X 10.0 y posterior
Después de reemplazar Display Postscript WindowServer con Quartz, y de responder a los desarrolladores al incluir 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, a partir de la versión 10.0; Mac OS X ahora se llama macOS.
El entorno de programación principal de macOS es esencialmente OpenStep (con ciertas adiciones, como listas de propiedades XML y clases de URL para conexiones a Internet) con versiones de macOS de las bibliotecas y herramientas de desarrollo, ahora llamadas Cocoa.
Desde entonces, macOS se ha convertido en el sistema operativo similar a Unix de escritorio más popular del mundo, aunque macOS ya no es un sistema operativo compatible con OpenStep.
Paso GNU
GNUstep, una implementación de software libre de las bibliotecas NeXT, comenzó en el momento de NeXTSTEP, anterior a OPENSTEP. Mientras que OPENSTEP y OSE fueron comprados por Apple, que efectivamente terminó con el desarrollo comercial de la implementación de OpenStep para otras plataformas, GNUstep es un proyecto de código abierto en curso que tiene como objetivo crear una implementación de software libre y portátil de las bibliotecas Cocoa/OPENSTEP.
GNUstep también cuenta con un entorno de desarrollo totalmente funcional, reimplementaciones de algunas de las innovaciones más recientes del marco Cocoa de macOS, así como sus propias extensiones de la API.
Contenido relacionado
Bill alegría
Arranque
Sistema de nombres de dominio