02. 【Linux教程】GNU 项目简介

简介: 02. 【Linux教程】GNU 项目简介

1. GNU 项目简介

GNU 项目计划最开始是在 1984 年由美国著名的黑客理查德・斯托曼(Richard Matthew Stallman)发起的,GNU 获得了自由软件基金会(FSF)的资金支持一直是 GNU 的主要资金来源,该项目主要是为了建立免费的开源的 UNIX 类系统,其基本原则是程序源代码开放和软件思想共享。


GNU/Linux 是一种常见的并且广泛用于商业环境的免费开源操作系统。由于 GNU 将要实现 UNIX 类各系统的接口标准,因此 GNU 计划并不局限于 Linux 系统也可以开发其他不同的操作系统。GNU 计划大量采用了当时已经可自由使用的软件,例如 OpenOffice 排版系统和 X-Window 图形界面系统等。不过随着 GNU 计划的发展和壮大也开发了大批其他的自由软件,这些软件中的经典也被移植到其他操作系统平台上,例如 NC 工具就被移植到 Microsoft Windows、BSD 家族、Solaris 及 MacOS。


为了确保 GNU 系列软件可以真正地自由地 "使用、复制、修改和发布",所有 GNU 软件都包含有一份在禁止其他人添加任何限制的情况下,授权所有权利给任何人的协议框架,GNU 通用公共许可证协议(GNU General Public License,GPL)。这个就是被大家称为公共版权的含义。GNU 也针对不同场合,提供 GNU 宽通用公共许可证与 GNU 自由文档许可证这两种协议条款以便适用不同的使用场合。

2. GNU 的特点

GNU/Linux 将可以兼容并能够执行 UNIX 标准的程序,但是不会和 UNIX 系统完全一模一样,最大的不同是 GNU 计划拥有支持长文件名、版本号、一个健壮稳定文件系统,在某些情况下还有自动文件名补全、与使用终端无关的显示支持、可能最后还要有一个基于 x-windows 的视窗系统,以使好几个系统程序和普通的 UNIX 应用程序能共享同一屏幕。


C 语言将成为系统的程序语言。并且会想办法支持 UUCP,MIT Chaosnet,及 Internet 的通讯交流协议。 GNU 最初的目标是在有虚拟内存的 68000/16000 等系列机器上开发,因为这样的环境是最容易开发程序来实现 GNU 的运行。剩下来让 GNU 能在其它较小的机器上运行的工作,将会留给那些希望能在这些机器上使用的人。


GNU 不是公共的,毫无约束的软件(public domain)。GNU 计划允许每一个人修改及传播 GNU,但是绝不允许传播者对他传播的程序再加进其他的限制。也就是说,不允许将修改后的程序据为己有。GNU 计划希望能确保 GNU 所有的版本都能保持自由,所以 GNU 的核心精神是自由与分享,这和真正的 Hacker 精神有异曲同工之妙,虽不能说 GNU 精神就是 Hacker 精神,不过很难把两者清楚的分开,实际上很多 Hacker 都为 GNU 做出了巨大的贡献。对知识的渴求是支持他们探索的唯一动力。当然这里的 Hacker 黑客不是那些破坏计算机系统牟取私利而臭名昭著的骇客。

3. 发展历程

  • 1985 年,著名美国黑客理查德・斯托曼创立了 GNU 项目计划。 1985 年,同年查德・斯托曼创立了自由软件基金会(Free Software Foundation)来为 GNU 计划提供技术、法律以及资金支持。尽管 GNU 计划大部分时候是由大家自愿无偿贡献的,但 FSF 还是会聘请程序员帮助编写。当 GNU 计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被 Red Hat 红帽兼并的 Cygnus Solutions。
  • 1990 年,成熟的 GNU 计划已经开发出的软件包括了一个功能强大的文字编辑器 Emacs、C 语言编译器 GCC 以及大部分 UNIX 系统的程序库和工具。唯一依然没有完成的重要组件,就是操作系统的内核。
  • 1991 年,Linux 之父林纳斯・托瓦兹编写出了与 UNIX 兼容的 Linux 操作系统内核并在 GPL 条款下发布。Linux 之后在网上广泛流传,许多程序员参与了开发与修改。
  • 1992 年,林纳斯的 Linux 与其他 GNU 软件开始结合,完全自由的 Linux 操作系统正式诞生。该操作系统往往被称为 “GNU/Linux” 或简称 Linux。许多 UNIX 系统上也安装了 GNU 软件,因为 GNU 软件的质量比之前 UNIX 的软件还要好。GNU 工具还被广泛地移植到 Windows 和苹果 Mac OS 上。
  • 现在,GNU 项目计划十几年以来已经成为一个对软件开发主要的影响力量,创造了无数的重要的工具,例如:编译器,文本编辑器,甚至一个全功能的操作系统。这个工程是从 1984 年麻省理工学院的程序员理查德・斯托曼的想法得来的,他想要创建一个自由的和 UNIX 类似的操作环境。从那时开始,许多程序员聚集起来开始开发一个自由的、高质量、易理解的软件

4. 小结

本小节介绍了 GNU 项目和 Linux 的关系,还介绍了 GNU 项目的特点和 GNU 项目的发展历程,让读者熟悉了 GNU 项目的概念,对 GNU 项目有了一定的了解,帮助读者学习更多 Linux 相关的知识。

相关文章
|
5天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
14 4
|
21天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
173 2
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
254 3
|
1月前
|
算法 Java Linux
java制作海报五:java 后端整合 echarts 画出 折线图,项目放在linux上,echarts图上不显示中文,显示方框口口口
这篇文章介绍了如何在Java后端整合ECharts库来绘制折线图,并讨论了在Linux环境下ECharts图表中文显示问题。
38 1
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
184 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
1月前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
55 0
|
关系型数据库 MySQL Java
Linux基本教程
Linux基本使用
|
9天前
|
缓存 监控 Linux
|
1天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
10 3
|
1天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
8 3