Paso GNU

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

GNUstep es una implementación de software libre de los marcos de trabajo Objective-C Cocoa (anteriormente OpenStep), kit de herramientas de widgets y herramientas de desarrollo de aplicaciones para sistemas operativos similares a Unix y Microsoft Windows. Es parte del Proyecto GNU.

GNUstep presenta un IDE multiplataforma orientado a objetos. Además de la interfaz Objective-C predeterminada, GNUstep también tiene enlaces para Java, Ruby, GNU Guile y Scheme. Los desarrolladores de GNUstep rastrean algunas adiciones a Cocoa de Apple para seguir siendo compatibles. Las raíces de la interfaz de la aplicación GNUstep son las mismas que las raíces de Cocoa: NeXTSTEP y OpenStep. Por lo tanto, GNUstep es anterior a Cocoa, que surgió cuando Apple adquirió la tecnología de NeXT y la incorporó al desarrollo del Mac OS X original, mientras que GNUstep fue inicialmente un esfuerzo de los desarrolladores de GNU para replicar el programador de NeXTSTEP, técnicamente ambicioso. características amigables.

Historia

GNUstep comenzó cuando Paul Kunz y otros en el Centro Acelerador Lineal de Stanford querían migrar HippoDraw de NeXTSTEP a otra plataforma. En lugar de reescribir HippoDraw desde cero y reutilizar solo el diseño de la aplicación, decidieron reescribir la capa de objetos NeXTSTEP de la que dependía la aplicación. Esta fue la primera versión de libobjcX. Les permitió portar HippoDraw a sistemas Unix que ejecutan el sistema X Window sin cambiar una sola línea de la fuente de su aplicación. Después de que la especificación OpenStep se lanzó al público en 1994, decidieron escribir un nuevo objcX que se adherirá a las nuevas API. El software se conocería como "GNUstep".

Arquitectura de software

Illustrates componentes de software de la pila de escritorio Linux como el servidor de visualización, bibliotecas de elementos de control gráfico o shells gráficos.

Representación

GNUstep contiene un conjunto de elementos de control gráfico escritos en el lenguaje de programación Objective-C.

La interfaz gráfica de usuario (GUI) de GNUMail se compone de elementos de control de gráficos. GNUMail tiene que interactuar con el sistema de ventanas, p. X11 o Wayland, y su interfaz gráfica de usuario debe renderizarse. El backend de GNUstep proporciona un pequeño conjunto de funciones utilizadas por la biblioteca de la interfaz de usuario para interactuar con el sistema de ventanas real. También tiene un motor de renderizado que emula las funciones comunes de Postscript. El paquete gnustep-back proporciona los siguientes backends:

  • cairo – backend predeterminado utilizando la biblioteca de gráficos 2D de El Cairo.
  • winlib – backend predeterminado en sistemas Microsoft Windows. El Cairo y Windows API variantes.
  • arte – antiguo (deprecido) backend en sistemas similares a los ix. Utiliza la biblioteca gráfica PostScriptlike 2d basada en vectores Libart.
  • xlib – viejo (deprecido) X11 backend.

Paradigmas

GNUstep hereda algunos principios de diseño propuestos en OPENSTEP (GNUstep es anterior a Cocoa, pero Cocoa se basa en OPENSTEP), así como el lenguaje Objective-C.

  • Modelo – vista– paradigma de control
  • Objetivo y acción
  • Drag-and-drop
  • Delegación
  • Mensaje de reenvío (a través de la NSInvocación)

Otras interfaces

Además de la interfaz de Objective-C, algunos proyectos pequeños bajo el paraguas de GNUstep implementan otras API de Apple:

  • La biblioteca Boron tiene como objetivo implementar la API de carbono. Es muy incompleto.
  • La biblioteca CoreBase está diseñada para ser compatible con la Fundación Core. No es lo suficientemente completo como para que el componente Base (Kit de Fundación) sea simplemente un envoltorio alrededor de él.
  • La biblioteca QuartzCore implementa APIs Core Animation. La biblioteca Opal implementa Quartz 2D.

Hasta febrero de 2020, no hay proyectos que creen el lenguaje de programación Swift en el entorno GNUstep Objective-C.

Aplicaciones

Aquí hay algunos ejemplos de aplicaciones escritas o adaptadas a GNUstep.

Escrito desde cero

  • Addresses, an address/contacts manager
  • Étoilé, un entorno de escritorio
  • GNUMail, un cliente de correo electrónico
  • Biblioteca de base de datos de GNUstep 2, un clon marco de objetos institucionales
  • GNUstepWeb, un servidor de aplicaciones compatible con WebObjects 4.x
  • Gorm, un constructor de interfaz
  • GWorkspace, un espacio de trabajo y gestor de archivos
  • Grr, un lector RSS
  • Oolite, un clon de Elite, un juego de simulación espacial con componentes comerciales
  • PRICE, aplicación de imagen
  • ProjectCenter, el constructor de proyectos o equivalente Xcode.
  • TalkSoup, un cliente de IRC
  • Terminal
  • Zipper, una herramienta de archivo de archivos

Portado desde NeXTSTEP, OPENSTEP o macOS

  • Adun
  • BioCocoa
  • Ajedrez
  • Cenon
  • EdenMath
  • Eggplant
  • Emacs
  • Afortunadamente
  • Gomoku
  • NeXTGO
  • PikoPixel
  • Textos
  • TimeMon
  • DoomEd

Bifurcaciones de GNUstep

  • Universal Windows Platform, que incluye una suite WinObjC que consiste en varias partes de GNUstep y las propias implementaciones de Microsoft de cosas como la Cocoa Touch API.

Capacidades de clase

Kit de base

El Foundation Kit proporciona clases básicas como clases contenedoras y clases de estructura de datos.

Kit de aplicación

El kit de aplicación proporciona clases orientadas a las capacidades de la interfaz gráfica de usuario.

Contenido relacionado

Criptocanal

En telecomunicaciones, un criptocanal es un sistema completo de criptocomunicaciones entre dos o más titulares o partes. Incluye: las ayudas criptográficas...

Información cuántica

Información cuántica es la información del estado de un sistema cuántico. Es la entidad básica de estudio en la teoría de la información cuántica, y...

Depósito de claves

Custodia de claves es un acuerdo en el que las claves necesarias para descifrar datos cifrados se mantienen en custodia. para que, en determinadas...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save