Bionic (software)
Bionic es una bifurcación de la biblioteca estándar de C de BSD (también conocida como libc) desarrollado por Google para su sistema operativo Android.[2]
Bionic | ||
---|---|---|
Parte de Android | ||
Información general | ||
Tipo de programa | C biblioteca estándar | |
Desarrollador | Open Handset Alliance | |
Lanzamiento inicial | 23 de septiembre de 2008[1] | |
Licencia | 3-cláusula licencia BSD | |
Información técnica | ||
Plataformas admitidas | 86, x86-64, ARM, ARM64, MIPS, MIPS64 | |
Enlaces | ||
Descripción
Los objetivos que se presentaron inicialmente para Bionic fueron las siguientes:[3][4]
- La Licencia BSD es una licencia sin copyleft y Google quiso aislar las aplicaciones Android de los efectos tanto de la GPL como de la LGPL:
- Android se basa en el kernel de Linux, que está sujeto a la Licencia Pública General de GNU (GPL) versión 2.
- Las bibliotecas C estándar más difundido para los núcleos Linux son las biblioteca C de GNU (glibc) y uClibc, ambos sujetos a la Licencia Pública General de GNU (LGPL); en contraste con la GPL, la LGPL permite explícitamente la vinculación dinámica pero no permite la vinculación estática del software propietario.
- Tamaño pequeño: Bionic es mucho menor que la biblioteca GNU C (glibc) y algo menor que uClibc. Más importante es que los requerimientos de memoria son (y permanecen) inferiores.
- Velocidad: Bionic está diseñado para CPUs con frecuencias de reloj relativamente bajas.
La forma recomendada de utilizar Bionic es con el kit de desarrollo de Android nativo (NDK).
Características y limitaciones
Bionic tiene varias restricciones en comparación con glibc, a menudo derivados del hecho de que Bionic. es una biblioteca diseñada específicamente para Android[3][5][6]
Algunas de las limitaciones son:
- Bionic. no incluye el manejo de excepciones de C++, probablemente porque como las aplicaciones de Android se programan principalmente en Java, las excepciones se tratan directamente ahí.[7]
- Bionic no incluye la biblioteca de plantillas estándar (STL), y los desarrolladores deben incluirla de forma manual si lo necesitan.
- Bionic no incluye soporte a caracteres ampliados.
- Algunas funciones dentro de Bionic POSIX y cabeceras del sistema de llamadas son Stubs o wrappers para el comportamiento específico de Android, provocando un comportamiento no deseado en algunos casos.[3][6][8]
- A partir de Android Jelly Bean MR1 (4.2), los builds de Bionic empleados en Android incluyen soporte para
FORTIFY_SOURCE
de glibc,[9] que es una característica con la que funciones no seguras de memoria y de manejo de cadenas de caracteres (comostrcpy()
strcat()
ymemcpy()
) realizan controles para evitar desbordamientos de búfer cuando el tamaño de búfer se pueden determinar en tiempo de compilación. Esta función sólo está disponible para las aplicaciones compiladas con gcc para procesadores ARM.[10]
Véase también
Referencias
Enlaces externos
🔥 Top keywords: Wikipedia:PortadaLiga de Campeones de la UEFAEspecial:BuscarLiga de Campeones de la UEFA 2023-24Cleopatra I de EgiptoReal Madrid Club de FútbolBayern de MúnichRevolución del 19 de abril de 1810Arsenal Football ClubAndriy LuninManchester City Football ClubPornhubJude BellinghamTabla periódica de los elementosYouTubeChatGPTCarlo AncelottiPep GuardiolaJérémy DokuAntonio RíosÁlex de MiñaurBorussia DortmundFútbol Club BarcelonaRafael NadalCleopatraFallout (serie)Antonio RüdigerCopa Mundial de Clubes de la FIFA 2025Erling HaalandGabriel García MárquezArroba (símbolo)Fallout (serie de televisión)BaloncestoRodri HernándezSegunda Guerra MundialLockheed Martin F-16 Fighting FalconCristiano RonaldoOusmane DembéléBrahim Díaz