glibc、uclibc的区别

1.Glibc
glibc = GNU C Library
是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。
目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。
其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。

2.uClibc
一个小型的C语言标准库,主要用于嵌入式。
其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。
对应的,此处的u意思是μ,Micro,微小的意思。

uClibc的特点:
(1)uClibc比glibc要小很多。
(2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。

3.EGLIBC
EGLIBC = Embedded GLIBC
EGLIBC是,(后来)glibc的原创作组织FSF所(新)推出的,glibc的一种变体,目的在于将glibc用于嵌入式系统。
EGLIBC的目标是:
(1)保持源码和二进制级别的兼容于Glibc
源代码架构和ABI层面兼容
如果真正实现了这个目标,那意味着,你之前用glibc编译的程序,可以直接用eglibc替换,而不需要重新编译。
这样就可以复用之前的很多的程序了。
(2)降低(内存)资源占用/消耗
(3)使更多的模块为可配置的(以实现按需裁剪不需要的模块)
(4)提高对于交叉编译(cross-compilation)和交叉测试(cross-testing)的支持

Eglibc的最主要特点就是可配置,这样对于嵌入式系统中,你所不需要的模块,比如NIS,locale等,就可以裁剪掉,不把其编译到库中,使得降低生成的库的大小了。
更多特点,可以去看: Eglibc的特点

【glibc, uClibc, Elibc的渊源/历史/区别/联系】
1. 写程序,需要用到很多c语言的库函数。所有的库函数加起来,就是对应的C语言(标准)函数库。
2. 目前在普通GNU/Linux系统中所用的C语言标准库,叫做glibc。其功能很全,函数很多,但是代码太多,编译出来的函数库的大小也很大,即资源占用也很多。
3. 而嵌入式系统中,也需要C语言写代码实现特定功能,也需要用到C语言函数库,但是由于嵌入式系统中,一般资源比较有限,所以不适合直接使用(太占用资源的)gLibc。
4. 所以有人就又(没有参考glibc,而是从头开始,)重新实现了一个用于嵌入式系统中的,代码量不是很大的,资源占用相对较少的,C语言函数库,叫做uClibc。并且,uClibc不支持MMU(内存管理单元)。
5. 而后来,glibc的开发者,又推出个Embedded glibc,简称eglibc,其主要目的也是将glibc用于嵌入式领域。
相应最大的改动就在于,把更多的库函数,改为可配置的,这样,如果你的嵌入式系统中不需要某些函数,就可以裁剪掉,不把该函数编译到你的eglibc库中,使得最终生成的eglibc库的大小变小,最终符合你的嵌入式系统的要求(不能超过一定的大小),这样,就实现了,把glibc引用于嵌入式系统中的目的了。

可以简单的理解为:
glibc,uClibc,eglibc都是C语言函数库:
1. uClibc是嵌入式系统中用的,glibc是桌面系统用的
2. eglibc也是嵌入式系统中用的,是glibc的嵌入式版本,和glibc在源码和二进制上兼容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)

我们将通过实验详细分析 instance 从 nova-api-metadata 获取信息的完整过程。 环境介绍 1. 一个 all-in-one 环境(多节点类似)。 2. 已创建 neutron 网络 test_net,DHCP 已启动。在这个 metadata 实验中, test_net 的 type 不重…

输入序列不连续的序列检测

输入序列不连续的序列检测 题目描述 请编写一个序列检测模块,输入信号端口为data,表示数据有效的指示信号端口为data_valid。当data_valid信号为高时,表示此刻的输入信号data有效,参与序列检测;当data_valid为低时&am…

这些贷款合同陷阱你知道多少?

贷款合同可以是正式的贷款协议书,可以包括收条,也可以是个人借条。无论是哪一种方式,都有可能存在陷阱。我们先来看一个案例:王先生去找一家贷款机构办理贷款,因为王先生的资质比较好,很多贷款机构都希望能…

一个人到底申请几张信用卡最合适?

一个到底有几张信用卡最合适呢?这个问题估计很多朋友都没有好好的想过,以至于信用卡办办办,结果信用卡一大推,一不小心就走上了不归路。我们先来看下一个网友的真实情况:“每个月信用卡利息都要还好多,工资…

Fedora20配置tftp服务器

http://bbs.52dtv.com/thread-25392-1-1.html TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69…

数据串转并电路

数据串转并电路 题目描述 实现串并转换电路,输入端输入单bit数据,每当本模块接收到6个输入数据后,输出端输出拼接后的6bit数据。本模块输入端与上游的采用valid-ready双向握手机制,输出端与下游采用valid-only握手机制。数据拼接…

获取 metadata 过程详解 - 每天5分钟玩转 OpenStack(167)

接上节,启动 neutron router 后 instance c1 终于拿到了 metadata, 从下面 c1 的启动日志可知: c1 所认为的 metadata 服务地址是 169.254.169.254,端口为 80。我们在 c1 中尝试访问一下 metadata。 确实能够拿到 metadata。但我们知道 nova-…

在Fedora 20下创建桌面快捷方式:

1.首先要安装gnome-tweak-tool 命令行执行 : [rootlocalhost Downloads]# yum install gnome-tweak-tool 2.安装成功后打开Tweak Tool 在左侧菜单栏中“Desktop” 把Icons on Desktop 打开,下面一些需要再桌面上显示的图标可以勾选 3.需要显示更多进入/u…

月息2%的贷款算高利贷吗?

对于贷款的朋友来说,贷款利息应该是最关心的一个话题了,大家都希望贷款的利息越低越好,如果免息那当然是最好的了!但是市面上大部分接触到的小贷公司利息基本都是在月息2%以上,有高的甚至可以达到月息5%以上。这个利息…

数据累加输出

数据累加输出 题目描述 实现串行输入数据累加输出,输入端输入8bit数据,每当模块接收到4个输入数据后,输出端输出4个接收到数据的累加结果。输入端和输出端与上下游的交互采用valid-ready双向握手机制。要求上下游均能满速传输时,…

第一张信用卡,该选哪家的?

网友A:贷款教授你好,说一下我的情况,本人25岁工作2年,没有信用卡想办一张。但是现在的信用卡五花八门,也不知道怎么选择。所以请你帮我支支招。网友A:再说一下要求吧:1.不想第一张信用卡就给年费2.超市、购物、看电影、…

Linux学习资料

http://code.csdn.net/news/2821271 国内的专业Linux网站 ChinaUnix: 创办于2001年,是一个以讨论Linux/Unix类操作系统技术、软件开发技术、数据库技术和网络应用技术等为主的开源技术社区网站。 Linux伊甸园论坛: 中文GNU/Linux开源社区&…

为什么你总办不到大额信用卡?

通常的信用卡,额度都是1-2万,大额的信用卡标准是5万及以上,有时候一张大额的信用卡能顶3张一般的信用卡,从卡片管理到额度来说都是大额信用更受到人们的青睐。但是,为什么自己总是办不到银行的大额信用卡呢&#xff1f…

非整数倍数据位宽转换24to128

非整数倍数据位宽转换24to128 题目描述 实现数据位宽转换电路,实现24bit数据输入转换为128bit数据输出。其中,先到的数据应置于输出的高bit位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性,valid_out用来指示数据输出…

通过 dhcp-agent 访问 Metadata - 每天5分钟玩转 OpenStack(168)

OpenStack 默认通过 l3-agent 创建和管理 neutron-ns-metadata-proxy,进而与 nova-metadata-api 通信。但不是所有环境都有 l3-agent,比如直接用物理 router 的场景。这时就需要走另一条路:让 dhcp-agent 来创建和管理 neutron-ns-metadata-p…

乱查征信,贷款不想要了吗?

前几天接待了一个客户,客户自己是做皮具批发的,想要贷款50万,他个人在深圳有房有车,公司月营业额100多万,目前有120万的贷款,信用记录最近两年有过1次逾期,只是逾期了几天,不算严重。…

Fedora telnet配置

一、检测软件包是否安装 1、# rpm -q telnet (检测客户端软件是否安装) 2、# rpm -q telnet-server (检测服务器端软件是否安装) 如果无,就找个fedora的HTTP或者FTP服务器(也可以是fedora的安装光盘),下载telnet和telnet-server的RPM包安装一下 安装&…

非整数倍数数据位宽转换8to12

非整数倍数数据位宽转换8to12 题目描述 实现数据位宽转换电路,实现8bit数据输入转换为12bit数据输出。其中,先到的数据应置于输出的高bit位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性,valid_out用来指示数据输出da…

instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)

要想从 nova-api-metadata 获得 metadata,需要指定 instance 的 id。但 instance 刚启动时无法知道自己的 id,所以 http 请求中不会有 instance id 信息,id 是由 neutron-metadata-agent 添加进去的。针对 l3-agent 和 dhcp-agent 这两种情况…

网上仅凭身份证就可以贷款,可信吗?

近段有一位网友跟贷款教授反映了一个事情,他说他在一个QQ群里面看到有人发布凭借身份证就能贷款的信息,而且利息只有月息1%,他觉得很划算,所以就跟那人联系上,结果联系上之后,把身份证照片提供给那个人&…