Linux史话:Linux和GNU有什么关系?

Linux史话:Linux和GNU有什么关系?,第1张

GNU的全称为GNU's not unix,意思是“GNU不是UNIX”,GNU计划,又称革奴计划,是由Richard Stallman在1984年公开发起的,是FSF的主要项目。这个项目的目标是建立一套完全自由的和可移植的类Unix *** 作系统

GNU类Unix *** 作系统是由一系列应用程序、系统库和开发工具构成的软件集合,例如:Emacs 编辑软件、gcc 编译软件、bash 命令解释程序和编程语言,以及gawk (GNU’s awk) 等,并加上了用于资源分配和硬件管理的内核

但是GNU自己的内核Hurd仍在开发中,离实用还有一定的距离。因此,这个GNU系统并没有流行起来。现在的GNU系统通常是使用Linux系统的内核、加上GNU项目贡献的一些组件,以及其他相关程序组成的,这样的组合被称为GNU/Linux *** 作系统。

到1991年Linux内核发布的时候,GNU项目已经完成了除系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下, GNU项目的部分组件又运行到了Linux内核之上,例如:GNU项目里的Emacs、gcc、bash、gawk等,至今都是Linux系统中很重要的基础软件。

GNU 项目创始于一九八四年,旨在开发一个类似 Unix ,且为 自由软件 的完整的 *** 作系统: GNU 系统。\x0d\x0a\x0d\x0aGNU 的内核尚未完成,所以 GNU 使用 Linux 作为其内核。GNU 和 Linux 以这样的方式组合成为 GNU/Linux *** 作系统,目前有数百万用户。(这个组合有时被错误地称为 Linux。)\x0d\x0a\x0d\x0aThere are many variants or “distributions” of GNU/Linux. We recommend the GNU/Linux distributions that are 100% free softwarein other words, entirely freedom-respecting.\x0d\x0a\x0d\x0aGNU 这个名字是“GNU's Not Unix”的递归首字母缩写词。它的发音为 g-noo,g和n之间没有元音,所以只有一个音节。

Linux *** 作系统中默认安装的C语言编译系统是GCC(GNU Compiler Collection),是Linux下最常用的C语言编译器,是GNU项目中符合ANSI,C标准的编译系统,能够编译用C、Object C等语言编写的程序。

同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula,3和Ada等。

C语言的标准

1.1 K,RC

1973年,Dennis M Ritchie设计和实现了C语言,从那以后使用者逐渐增加。

1978年,Kernighan 和 Ritchie 合著了《The C Programming Language》,这本书定义的C语言被称为 K,RC 。

1.2 标准 C

随着C语言使用日益广泛,出现了许多新问题,人们迫切希望对C语言进行标准化。

第一个标准:C89

1983年,ANSI成立了一个委员会X3J11,对C语言进行标准化。

1989年,ANSI 批准了第一个C语言标准 X3,159-1989,并于1990年公布,被称为 ANSIC、C89 或 C90。

1990年,这个标准又被批准为ISO标准:ISO,IEC 9899:1990 。

ANSIC标准被ISO采纳,并且ISO发布的修订版也被ANSI采纳,因此ANSI标准和ISO标准实际上没有技术区别。这些名称的含义是相同的:ANSI C、ISO C、标准C。

1994年和1996年,ISO发布了两个技术更正,更正了1990ISOC标准中的错误。

第二个标准:C94

1995年,ISO发布了1990ISOC标准的一个补充,称为AMD1。扩充后的标准被称为C94或C95。

第三个标准:C99

1999年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:1999,称为C99。

2001年、2004年和2007年,ISO发布了三个技术更正,更正了1999ISOC标准中的错误。

第四个标准:C11

2011年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:2011,称为C11。C11 是 C语言的最新标准。

1.3 GNUC

1984年,Richard Stallman 发起了GNU计划,它的目标是开发一个完整且自由的Unix-like *** 作系统(GNU系统)。

GNU系统是一个完整的 *** 作系统,包括 *** 作系统内核和各种工具软件。各种GNU系统的变种(例如Redhat、Ubuntu等)已经被广泛使用,它们使用的 *** 作系统内核都是Linux。虽然这些系统经常被称为Linux,但准确地说,它们是GNU/Linux系统。

GNU在编写Linux时扩展了标准C,称为GNUC。

GNU C的扩展详见:Extensions to the C Language Family

GNU C也称为Linux C,一般用于Linux上的开发,而标准C可以跨平台。

GNU C使用的编译器是GCC。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7249752.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存