Bionic (software)
Encyclopedia
The Bionic libc is a derivation of the BSD standard C library
code that was originally developed by Google
for the Android embedded system
operating system. Bionic has several major Linux-specific features and development continues independent of other code bases. The publicly-stated goals for Bionic are:
Bionic is lacking many features found in full libc implementations, such as wide character
and C++
exception handling
support. Also some functions defined in the Bionic header are still unimplemented, which may trigger unexpected behavior in some cases.
The recommended way of directly using and extending Bionic is with the Android Native Development Kit.
C standard library
The C Standard Library is the standard library for the programming language C, as specified in the ANSI C standard.. It was developed at the same time as the C POSIX library, which is basically a superset of it...
code that was originally developed by Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...
for the Android embedded system
Embedded
- In science :* In mathematics, embedding is one instance of some mathematical object contained within another instance** Graph embedding* In computing, an embedded system is a special-purpose system in which the computer is completely encapsulated by the device it controls* In computing, embedding...
operating system. Bionic has several major Linux-specific features and development continues independent of other code bases. The publicly-stated goals for Bionic are:
- BSD license: Android uses a Linux kernel which is under the GNU General Public LicenseGNU General Public LicenseThe GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
(GPL), but Google wished to isolate Android applications from the effects of the GPL. However, GNU libc which is normally used with the Linux kernel is under the GNU LGPLGNU Lesser General Public LicenseThe GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
, as is the alternative uClibcUClibcIn computing, uClibc is a small C standard library intended for embedded Linux systems. uClibc was created to support uClinux, a version of Linux not requiring a memory management unit and thus suited for microcontrollers .The project lead is Erik Andersen. The other main contributor is Manuel...
. - Small size: Bionic is much smaller than glibc and somewhat smaller than uclibc.
- Speed: Bionic is designed for CPUs at relatively low clock frequencies.
Bionic is lacking many features found in full libc implementations, such as wide character
Wide character
A wide character is a computer character datatype that generally has a size greater than the traditional 8-bit character. The increased datatype size allows for the use of larger coded character sets.-History:...
and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
exception handling
Exception handling
Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions, special conditions that change the normal flow of program execution....
support. Also some functions defined in the Bionic header are still unimplemented, which may trigger unexpected behavior in some cases.
The recommended way of directly using and extending Bionic is with the Android Native Development Kit.