libhybris 和 halium详解(一)

1. 什么是libhybris:

     libhybris旨在glibc基础库环境下使用bionic C编译的二级制文件(主要是so),  那么为什么要这么做呢? 原因是有些芯片只支持android, 并不支持linux, 因此和芯片相关的闭源的用户态程序不能在glibc环境下使用,出于商业目的,芯片原厂也不提供glibc基础库下的程序,因此诞生了libhybris;

2. Glibc :

    Glibc (GNU C Library) 是一个c语言运行的核心库,也是当前绝大多数linux发行版的一个基础核心库,主要提供了一些基础的API( open, read, write, malloc, printf, getaddrinfo, dlopen等)给上层开发人员使用,从其发展历程看,主要是针对PC;

3. Bionic C:

     Bionic C是android使用的c语言运行的核心库,是Google为android设计的一个轻量级库,在glib-c基础上根据嵌入式设备的特点进行优化裁剪并根据android特点增加了一些功能,一个显著的特点是更小巧,速度更快,很适合当时阶段的嵌入式设备,嵌入式设备发展至今,内存大小已经不是一个瓶颈问题,但是速度还是核心竞争力之一;

4. Libhybis: 

    从上面的描述来看,Glibc和Bionic C并不完全兼容,那么Glibc环境下怎么使用Bionic C环境下编译的程序呢?  因为Bionic C是基于Glibc,大多数函数实现的兼容的,少数不同的地方需要进行转义或者修改,因此需要一个中间层,Libhybris应运而生,准确的说Libhybris是一个中间层,也可以说是一个链接转义器。其原理是提供glibc环境下的API供glibc应用使用,当加载库时进行转义到bionic c的实现库;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值