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 相关的知识。

相关文章
|
19天前
|
Linux Docker 容器
Linux的namespace和cgroups简介
本文介绍了Linux的Namespace技术和cgroups,解释了它们如何帮助实现容器的隔离和资源限制。
39 7
Linux的namespace和cgroups简介
|
23天前
|
安全 Linux
Linux查看和剔除当前登录用户详细教程
Linux查看和剔除当前登录用户详细教程
20 0
Linux查看和剔除当前登录用户详细教程
|
24天前
|
Linux 网络安全 数据安全/隐私保护
使用宝塔Linux搭建DVWA靶场保姆级教程
这是一篇详细的教程,作者基于其在Web渗透测试领域的学习经验,利用宝塔Linux面板搭建了DVWA靶场。从安装Linux宝塔面板到通过Docker运行DVWA容器,每一步都有详尽的文字描述和配图指导,确保读者能够顺利地进行实践操作,非常适合初学者快速上手并掌握相关技能。
|
25天前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
18 2
|
29天前
|
Ubuntu 网络协议 Linux
Linux下快速搭建七日杀官方私人服务器教程
本文提供了一份详尽的《七日杀》服务器搭建指南,专为Linux系统设计。教程分为九大部分,涵盖从前期准备到服务器维护的全过程。主要内容包括:选择具备公网IP的云服务器、安装Ubuntu 20 X64系统、下载SteamCMD等必备软件;详细指导如何配置服务器、设置防火墙及端口规则、启动与关闭服务器;此外还提供了服务器管理、环境配置(如设置swap分区)等实用技巧。适合有一定Linux基础的玩家参考实践。
|
28天前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
28天前
|
存储 关系型数据库 Linux
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
|
28天前
|
Linux C# C++
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
|
29天前
|
Unix Linux 开发者
在Linux中,什么是GPL、GNU,自由由软件?
在Linux中,什么是GPL、GNU,自由由软件?
|
29天前
|
NoSQL Linux Shell
在Linux中,GNU项目的重要性是什么?
在Linux中,GNU项目的重要性是什么?