La API de BeOS , a menudo llamada Be API después de Be Inc. , es la interfaz de programación de aplicaciones necesaria para escribir aplicaciones gráficas nativas en BeOS y, por lo tanto, sus derivados como Haiku y ZETA .
La API se divide en varios "kits", que recopilan clases relacionadas y guardan alguna relación con la biblioteca que contiene el código de apoyo.
Es casi en su totalidad C ++ , con enlaces de terceros para la mayoría de las clases en Python y un pequeño subconjunto de clases, en su mayoría relacionadas con el kit de almacenamiento, en Perl .
Kits
- Kit de aplicación
El kit de aplicación contiene las clases básicas necesarias para iniciar una aplicación BeOS, así como soporte para el portapapeles global , mensajería interna y entre aplicaciones, temporizadores, listas y otras funciones que se consideran necesarias para admitir cualquier aplicación gráfica. Las clases de kits de aplicación son compatibles con libbe.so
- Kit de almacenamiento
El kit de almacenamiento proporciona métodos para manipular archivos, desde la creación y administración de enlaces simbólicos hasta los paneles de apertura / guardado de archivos para aplicaciones gráficas, así como el manejo de los atributos de Be File System . Las clases de kits de almacenamiento se encuentran principalmente en libtracker.so, siendo Tracker el administrador de archivos nativo del sistema operativo.
- Kit de interfaz
El kit de interfaz proporciona una gran colección de widgets para crear aplicaciones gráficas desde la clase de ventana principal hasta cuadros de diálogo, incluido el manejo de fuentes y el control de representación . La mayoría de libbe.so comprende este kit.
- Kit de granos
El kit Kernel proporciona subprocesos , semáforos y la capacidad de acceder a la información del sistema, y también se encuentra en libbe.so
- Kit de soporte
El kit de soporte proporciona funciones más avanzadas que no se incluyen fácilmente en otro kit, como la asignación de memoria asistida y el soporte de listas.
- Kit de red
El kit de red proporciona una implementación rudimentaria ( BeOS R5 e inferior) o casi completa ( BeOS Dano y superior) de los sockets de Berkeley y BIND , así como funciones "nativas" basadas en la biblioteca de red Nettle C ++. libnet.so proporciona los sockets de Berkeley en R5, luego reemplazados por la nomenclatura libsocket / libbind.so más común; y libnetapi en R5, luego reemplazado por libbnetapi proporciona la versión modificada de Nettle.
- Kit de correo
El kit de correo proporciona un formato de correo electrónico nativo, así como una forma de utilizar el sistema para buscar y recibir correo electrónico mediante protocolos estándar ( POP3 y SMTP ). El kit de correo es compatible con libmail.so
- Kit de traducción
El kit de traducción proporciona un método mediante el cual tanto las imágenes como los formatos de texto sin formato se manejan mediante complementos, lo que permite que las aplicaciones admitan solo un formato, uno intermedio nativo, y guarden / carguen en cualquier formato compatible con complementos. La API también permite la traducción de video y audio a través de la biblioteca, aunque BeOS R4 lo reemplazó y se deshabilitó de inmediato. El kit de traducción es compatible con libtranslation.so
- Kit de medios
El kit de medios proporciona una capa de abstracción de entrada / salida de audio y video basada en complementos conectables, además de manejar la mezcla de sonido, la traducción de formatos de audio y video y otras funciones relacionadas con los medios. Las funciones del kit de medios son compatibles con libmedia.so
- Kit MIDI
El kit MIDI proporciona abstracción de entrada y salida de hardware MIDI, así como un sintetizador de software (proporcionado por Headspace en BeOS R5). libmidi.so proporciona la antigua API MIDI de la era BeOS R3, libmidi2.so proporciona la API R4 +.
- Kit de juego
El kit de juego proporciona varios formatos de sonido adecuados para la salida de audio de juegos de computadora, así como la capacidad de ejecutar aplicaciones de pantalla completa y usar superposiciones de video.
- Kit de OpenGL
El kit OpenGL proporciona una implementación de OpenGL , así como clases de apoyo para permitir su uso en aplicaciones nativas. En BeOS R5, la versión OpenGL admitida era 1.1 y estaba acelerada por software, aunque el kit era neutral en cuanto al hardware y, de hecho, superó a muchas implementaciones de hardware que se ejecutaban en plataformas de la competencia que no podían ofrecer un rendimiento de ancho de banda / latencia similar debido a ineficiencias subyacentes. en su diseño o implementación. [1]
- Kit de dispositivo
El kit de dispositivos proporciona acceso a la plataforma-abstraído directa hardware a los puertos serie y paralelo, así como los BeBoxs infame GeekPort .
- Kit de configuración regional
El kit de configuración regional proporciona clases para localizar aplicaciones en diferentes idiomas, zonas horarias, convenciones de formato de números, etc. El kit solo se encuentra en la implementación de Haiku de la API de BeOS.
- Kit de servicios
El kit de servicios proporciona una conexión directa ligera a los servicios web. El kit solo se encuentra en la implementación de Haiku de la API de BeOS.
- Kit Web
El Web Kit proporciona medios para representar páginas web y es una bifurcación del Webkit de Apple . El kit solo se encuentra en la implementación de Haiku de la API de BeOS.
- Paquete Kit
El kit de paquetes proporciona los medios para la gestión de paquetes. El kit solo se encuentra en la implementación de Haiku de la API de BeOS.
Implementaciones que no son de BeOS
Haiku ha vuelto a implementar la mayoría de la API de Be para su reemplazo de BeOS de código abierto, aunque en un esfuerzo por ponerse al día con los años transcurridos desde BeOS R5 , se han agregado algunas funcionalidades adicionales, que van desde grandes cambios en el kit de correo para brindar soporte. IMAP , conexiones cifradas y múltiples cuentas, y un cambio a la compatibilidad con OpenGL 1.5 a través de Mesa 3D .
Los sistemas alternativos han intentado inspirarse ( sílaba ) en la API de BeOS, pero no intentan proporcionar una base para las aplicaciones portuarias.
Gobe Software realizó un puerto privado de gran parte de la API a Microsoft Windows y más tarde a Linux (utilizando GTK + ) para permitirles portar su suite de oficina Gobe Productive a estas plataformas desde BeOS, donde se había desarrollado originalmente.
Documentación
Toda la API, tal como estaba en la etapa de BeOS Revision 3, se documentó en dos libros en papel: Be Developer Guide y Be Advanced Topics, publicados por O'Reilly Media bajo el sello de Be, Inc en 1997/8. Además, se proporcionó una representación digital de esto y se actualizó con el propio BeOS. En 2007, ACCESS Co Ltd, los propietarios de la propiedad intelectual de Be, Inc, publicó el texto de este bajo una licencia Creative Commons . [2]
Referencias
- ^ ¡ Benchmarks de ATI Radeon / Voodoo2 OpenGL, BeOS vs. Windows98 nuevamente! ¿Quién es más rápido? , Por Eugenia Loli, 16 de octubre de 2001, BeNews
- ^ ACCESS Co. lanza boletines BeBook y Be , por koki, 2007-04-03, Haiku Project