Hybris

Short description: Compatibility layer to run Android drivers on glibc or musl-based Linux systems

HybrisOriginal author(s)| Carsten Munk

|

Developer(s)| Mer, Jolla, Open webOS community, Canonical Ltd.
Initial release| 5 August 2012; 13 years ago (2012-08-05)[1]
Written in| C, C++
Operating system| Linux
Type| Compatibility layer
License| Apache License 2[2]
Website| github.com/libhybris
The GNU C Library (glibc) and libbionic act as a wrapper around the Linux system calls. Libhybris replaces Libbionic and works on top of the glibc, i.e. it hooks into glibc instead of into the Linux kernel system calls, thereby acting as a compatibility layer. The Android operating system replaces the GNU C Library with libbionic. Both libraries are wrappers around the system calls of the Linux kernel, but while the GNU C Library has aimed to become and stay POSIX-compliant, libbionic does not. Programs written for libbionic can only run on GNU C Library with the help of another wrapper called libhybris. While a programmer targets and uses an API, a compiled program can only use the resulting ABI. . After compilation, the binaries offer an ABI.

Hybris or libhybris is a compatibility layer for computers running Linux distributions based on the GNU C library or Musl,[3] intended for using software written for Bionic-based Linux systems, which mainly includes Android libraries and device drivers.[4]

## Contents

* 1 History
* 2 Features
* 3 See also
* 4 References
* 5 External links

## History

Hybris was initially written by Carsten Munk, a Mer developer, who released it on GitHub on 5 August 2012[1] and publicly announced the project later that month.[4][5] Munk has since been hired by Jolla as their Chief Research Engineer.[6]

Hybris has also been picked up by the Open webOS community for WebOS Ports,[7][8] by Canonical for Ubuntu Touch[6][9] and by the AsteroidOS[10] project.

In April 2013, Munk announced that Hybris has been extended to allow Wayland compositors to use graphic device drivers written for Android.[6][11][12] Weston has had support for libhybris since version 1.3, which was released on 11 October 2013.[13]

## Features

Hybris loads "Android libraries, and overrides some symbols from bionic with glibc"[4] calls, making it possible to use Bionic-based software, such as binary-only Android drivers, on glibc-based Linux distributions.

Hybris can also translate Android's EGL calls into Wayland EGL calls, allowing Android graphic drivers to be used on Wayland-based systems. This feature was initially developed by Collabora's Pekka Paalanen for his Android port of Wayland.[6][14][15][16]

## See also

* C standard library
* Free and open-source graphics device driver

## References

1. ↑ 1.0 1.1 "Initial commit of stskeeps/libhybris". GitHub. 2012-08-05. https://github.com/stskeeps/libhybris/tree/61be806ee72f3b3df8bdd31256e082d2e92dab49.
2. ↑ "libhybris/hybris/COPYING". GitHub. 2013-04-04. https://github.com/libhybris/libhybris/blob/master/hybris/COPYING.
3. ↑ "Hybris - postmarketOS". https://wiki.postmarketos.org/wiki/Hybris#What_is_libhybris.3F.
4. ↑ 4.0 4.1 4.2 Carsten Munk. "So, introducing libhybris,…". Google+. https://plus.google.com/113386402913695079840/posts/9LF6atjc455.
5. ↑ "Libhybris: Load Android Libraries, Override Bionic Symbols". Phoronix. 2012-09-25. https://www.phoronix.com/scan.php?page=news_item&px=MTE5Mjk.
6. ↑ 6.0 6.1 6.2 6.3 Carsten Munk (2013-04-11). "Wayland utilizing Android GPU drivers on glibc based systems, Part 1". Mer Project. http://mer-project.blogspot.com/2013/04/wayland-utilizing-android-gpu-drivers.html.
7. ↑ "Open webOS ported to Nexus 7 over holiday break". The H Open. 2013-01-07. http://www.h-online.com/open/news/item/Open-webOS-ported-to-Nexus-7-over-holiday-break-1778794.html.
8. ↑ "WebOS-Ports". WebOS-Ports. http://webos-ports.org/index.php?title=Main_Page&oldid=3933#Breaking_News.
9. ↑ "libhybris in Launchpad". Launchpad.net. 2013-02-05. https://launchpad.net/libhybris.
10. ↑ "AsteroidOS: An open-source operating system for smartwatches". AsteroidOS. http://asteroidos.org/.
11. ↑ Munk, Carsten (2013-05-08). "Wayland utilizing Android GPU drivers on glibc based systems, Part 2". Mer Project. http://mer-project.blogspot.com/2013/05/wayland-utilizing-android-gpu-drivers.html.
12. ↑ "Jolla Brings Wayland Atop Android GPU Drivers". Phoronix. 2013-04-11. https://www.phoronix.com/scan.php?page=news_item&px=MTM0OTE.
13. ↑ "Wayland and Weston 1.3 release notes". 2013-10-11. http://lists.freedesktop.org/archives/wayland-devel/2013-October/011419.html.
14. ↑ Munk, Carsten (2013-04-13). "libhybris/hybris/egl/platforms/common/wayland-android.xml". GitHub. https://github.com/libhybris/libhybris/blob/8e79ef1c72ab768496779d7264375c3301b7b364/hybris/egl/platforms/common/wayland-android.xml.
15. ↑ "First Signs Of Wayland Running On Android". Phoronix. 2012-04-27. https://www.phoronix.com/scan.php?page=news_item&px=MTA5MzA.
16. ↑ Pekka Paalanen (2012-09-24). "Wayland on Android: upgrade to 4.0.4 and new build integration". http://ppaalanen.blogspot.com/2012/09/wayland-on-android-upgrade-to-404-and.html.

## External links

* v
* t
* e

C programming language

* ANSI C
* C89 and C90
* C99
* C11
* C18
* C2x
* Embedded C
* MISRA C

Features|

* Functions
* Header files
* Libraries
* Operators
* String
* Syntax
* Preprocessor
* Data types

Standard library
functions|

* Char (ctype.h)
* File I/O (stdio.h)
* Math (math.h)
* Dynamic memory (stdlib.h)
* String (string.h)
* Time (time.h)
* Variadic (stdarg.h)
* POSIX

Standard
libraries|

* Bionic
* libhybris
* dietlibc
* EGLIBC
* glibc
* klibc
* Microsoft Run-time Library
* musl
* Newlib
* uClibc
* BSD libc

Compilers|

* Comparison of compilers
* ACK
* Borland Turbo C
* Clang
* GCC
* ICC
* LCC
* PCC
* SDCC
* TCC
* Microsoft Visual Studio / Express / C++
* Watcom C/C++

IDEs|

* Comparison of IDEs
* Anjuta
* Code
* CodeLite
* Eclipse
* Geany
* Microsoft Visual Studio
* NetBeans

Comparison with
other languages|

* Compatibility of C and C++
* Comparison with Embedded C
* Comparison with Pascal
* Comparison of programming languages

Descendant
languages|

* C++
* C#
* D
* Objective-C
* Alef
* Limbo
* Go
* Vala

* Category

0.00

(0 votes)

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Hybris&oldid=718675"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template