27
2017
09

android-什么是GlibC

前沿:

我们在开发的时候很多的时候都需要吧Linux中很多的资源以最小的代价移植到android项目中,我们做的商业小应用可能用的不多,但是很多复杂的大型程序就需要考虑很多,这些就变得至关重要,Glibc也越来越进入我们android开发环境。

1.什么是GlibC

glibcgnu发布的libc库,也即c运行库。glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行 库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现,主要的如下:
(1)string,字符串处理
(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现
(9)io
(10)linuxthreads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理
(14)nis
(15)stdlib,其它基本功能
可能在很多的微博中大家都有看到相关字眼,这也是比较官方的理解。但对于初学者可能还是不是很懂。

2.什么是GNU

一说到GNU就需要和大家都听说过的NDK先关联。

GUN功能比较全但是相对应的包资源比较大,我们在使用的时候比较容易出现不需要的内存开销,尤其是会发现我们打出来的apk包会比较大。
比较官方的回答如下:
GNU是一个自由软件工程项目。下面的文字没有具体解释GNU是哪几个单词的所写,但从整体上说明了GNU工程是怎么回事,希望对你有帮助。
GNU工程已经开发了一个被称为“GNU”(GNU是“不是UNIX”的缩写)的、对Unix向上兼容的完整的自由软件系统(free software system)。由Richard Stallman完成的最初的GNU工程的文档被称为‘GNU宣言’,该宣言已经被翻译成多种其它语言。我们还有创作与1983年的GNU工程创始宣言。
上述单词“free”指的是自由(freedom),而不是价格。你可能需要或者不需要为获取GNU软件而支付费用。不论是否免费,一旦你得到了软件,你在使用中就拥有三种特定的自由。首先是复制程序并且把它送给你的朋友或者同事的自由;而后是通过获取完整的源代码,按照你的意愿修改程序的自由;最后是发布软件的改进版并且有助于创建自由软件社团的自由。(如果你重新发布 GNU软件,你可能对分发拷贝这项体力劳动收费,也可能不收费。)
在1983年构思GNU工程是为了提供一种找回在计算机界早期的盛行的合作精神的方式–为了使合作成为可能而排除有私有软件所有者给合作造成的障碍。
在1971年,当Richard Stallman开始他在MIT的职业生涯时,他工作于一个专门使用自由软件的工作组。即使计算机公司也经常发布自由软件。程序员可以自由地相互合作,就象他们通常所作的那样。
到了80年代,几乎所有的软件都是私有的,这意味着它有一个不允许并且预防用户合作的拥有者。这就使得GNU工程成为必要的了。
每个计算机的使用者都需要一个操作系统;如果没有自由的操作系统,那么如果你不求助于私有软件,你甚至不能开始使用一台计算机。所以自由软件议事日程的第一项就是自由的操作系统。
一个操作系统不仅仅是一个内核;它还包括编译器、编辑器、文本排版程序,电子邮件软件,和许多其他东西。因此,创作一个完整的操作系统是一乡十分庞大的工作。它将耗费太多的年头。
由于Unix的全局设计已经得到认证并且广泛流传,我们决定使操作系统与Unix兼容。同时这种兼容性使Unix的使用者可以容易地转移到GNU上来。
自由的,类似于Unix的内核的初始目标已经达到了。到90年代,我们已经发现或者完成了除了内核之外的所有主要成分。而Linux,一个自由的内核,由Linux Torvalds开发了。把Linux和几乎完成的GNU 系统结合起来,就构成了一个完整的操作系统:一个基于Linux的GNU系统。估计目前大约有十万人在使用基于Linux的GNU系统,包括Slackware、Debian、Red Hat以及其它。
然而,GNU工程并不限于操作系统。我们的目标是提供所有类型的软件,无论有多少用户需要它。这包括了应用软件。我们已经有了电子表格。我们希望在未来把GNU Emacs扩展为所见即所得的桌面出版系统。
我们还想为不是计算机专家的用户提供软件。为此我们正在创作‘拖放图标桌面’以帮助初学者使用 GNU系统。
我们还希望提供游戏和其它娱乐。已经由一些游戏可以使用了。
自由软件可以走多远?这没有限制,除非诸如版权法之类的法律完全地禁止自由软件。最终的目的是,让自由软件完成计算机用户希望完成的所有工作–从而导致自由软件的过时

上面的信息来源于百度整理

上一篇:阿里移动安全_浅谈Android应用保护(零):出发点和背景 下一篇:学习Android中疑惑的名词