iOS学习心得

GNU、GCC、Clang、LLVM

2017-03-23  本文已影响54人  GSChan

1、GNU

根据维基百科:

GNU是一个自由操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU's Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理察·马修·斯托曼,将GNU视为“达成社会目的技术方法”。

作为操作系统,GNU的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。GNU的内核,称为Hurd,是自由软件基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用Linux内核FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux(见GNU/Linux命名争议)。

2、GCC

根据维基百科:

GNU编译器套装(英语:GNU Compiler Collection,缩写为GCC),一套编程语言编译器,以GPLLGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼开始发展,现在由自由软件基金会负责维护工作。

原名为GNU C语言编译器GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。之后也变得可处理FortranPascalObjective-CJavaAda,以及Go与其他语言。

许多操作系统,包括许多类Unix系统,如Linux及BSD家族都采用GCC作为标准编译器。苹果电脑Mac OS X操作系统也采用这个编译器。

3、Clang

根据维基百科:

Clang(发音为/ˈklæŋ/类似英文单字clang[1]) 是一个CC++Objective-CObjective-C++编程语言的编译器前端。它采用了底层虚拟机(LLVM)作为其后端。它的目标是提供一个GNU编译器套装(GCC)的替代品。作者是克里斯·拉特纳,在苹果公司的赞助支持下进行开发,而源代码授权是使用类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。

Clang项目包括Clang前端和Clang静态分析器等。

4、LLVM

根据维基百科:

LLVM,一个自由软件项目,是一种编译器的基础建设,以C++写成。它是为了任意一种编程语言写成的程序,利用虚拟技术,创造出编译时期链接时期运行时期以及“闲置时期”的最优化。它最早是以C/C++为实现对象,目前它支持了包括ActionScriptAda、D语言、FortranGLSLHaskellJavabytecode、Objective-CSwiftPythonRubyRustScala[1]以及C#[2]

LLVM项目起源于2000年伊利诺伊大学厄巴纳-香槟分校维克拉姆·艾夫(Vikram Adve)与克里斯·拉特纳(Chris Lattner)的研究发展而成,他们想要为所有静态及动态语言创造出动态的编译技术。LLVM是以BSD授权来发展的开源码软件。在2005年,苹果电脑雇用了克里斯·拉特纳及他的团队,为了苹果电脑开发应用程序系统[3],LLVM为现今Mac OS XiOS开发工具的一部分。

5、联系

1、1989年GNU项目想创建一套类Unix操作系统(内核为Hurd),到2013年还没稳定,放弃,1991年Linux出现,GNU创造的编辑器功能很强大(如GCC)运行在Linux完全兼容,GCC可以编辑C、C++、Java、Objective-C等,由于兼容性太强,导致编辑Objective-C性能不太强,Apple想让GNU提升性能,GNU拒绝,Apple自己创造编辑器(Clang为编辑器前端,LLVM为编辑器后端)。

上一篇下一篇

猜你喜欢

热点阅读