在阅读有关 Ubuntu Touch 和 Ubuntu for Android 的文章时,我注意到经常提到“bionic”和“libhybris”。
我假设 libhybris 是一个库,因为它有“lib”前缀,但这就是我所知道的全部。
什么是 bionic 和 libhybris,它们有什么作用?
编辑:@maggotbrain 问我是否可以链接到一些我发现提到 bionic/libhybris 的来源。这是一条评论在 Hacker News 上, 和这是另一个。这些是我能找到的唯一的东西,真正让我感到疑惑的是,当有人在Ubuntu LoCo 会议。
答案1
Bionic libc 是 BSD 标准 C 库代码的衍生,最初由 Google 为 Android 嵌入式操作系统开发
如果你想知道 C 标准库是什么,它是一个所有用 C 编写的应用程序的库C使用。它包含输入和输出函数(例如,打印到终端、写入/读取文件等...)、内存函数(分配/释放)等...请注意,C 标准库实际上只是一个库的规范(与 OpenGL 和其他一些库相同),它实际上不是一个可以下载和使用的库。这就是为什么有 BSD 的实现(为方便起见,我将其称为 BSD libc)、GNU 的实现(顺便说一句,它默认包含在 ubuntu 中,名称为libc
),或者在本例中是 Bionic。但正如维基百科所说,Bionic 基于 BSD libc,因此它不是原始实现。现在关于实际实现,我不确定 Bionic 和 BSD libc 之间有什么区别,但我认为这与它们的设备的兼容性有关,或者类似的东西(因为 C 标准库只是一个规范的原因之一是函数的工作方式因操作系统而异)。
库如果你愿意的话,可以将其扩展为仿生学,其作用类似于libdl
(来源:http://www.phoronix.com/scan.php?page=news_item&px=MTE5Mjk)。如果您想知道它libdl
是什么,它是一个允许应用程序动态加载其他库到其应用程序中的库。这对于插件等来说非常有用(如果不是不可能的话)。
希望这能澄清!