GNU
外观
GNU(发音为/ɡnuː/,意为"GNU's Not Unix"的递归缩写)是一个由理查德·斯托曼于1983年发起的自由软件操作系统项目。作为自由软件基金会(FSF)的主要项目,GNU旨在创建一个完全由自由软件组成的类Unix操作系统。
历史[编辑 | 编辑源代码]
GNU项目始于1983年9月27日,由理查德·斯托曼在MIT人工智能实验室工作时宣布。其目标是开发一个完整的、自由的类Unix操作系统,以替代当时专有的Unix系统。
1985年,斯托曼创立了自由软件基金会(FSF)来为GNU项目提供法律和财务支持。到1990年代初,GNU系统几乎已经完成,只缺少一个可用的内核。Linux内核的出现填补了这一空缺,形成了现在广泛使用的GNU/Linux系统。
组成部分[编辑 | 编辑源代码]
GNU系统包含以下主要组件:
GNU工具链[编辑 | 编辑源代码]
- GNU编译器集合(GCC)
- GNU调试器(GDB)
- GNU Binutils(汇编器、链接器等)
核心工具[编辑 | 编辑源代码]
- GNU C库(glibc)
- Bash(Bourne Again Shell)
- GNU Core Utilities(coreutils)
桌面环境[编辑 | 编辑源代码]
GNU与Linux[编辑 | 编辑源代码]
虽然常被简称为"Linux",但更准确的说法是"GNU/Linux",因为:
- Linux只是系统的内核部分
- 大多数基础工具来自GNU项目
典型的Linux发行版(如Debian)包含:
- Linux内核
- GNU工具链和核心工具
- 其他自由/开源软件
许可证[编辑 | 编辑源代码]
GNU项目使用GNU通用公共许可证(GPL)系列许可证:
这些许可证保障了用户的四项基本自由: 1. 自由运行软件 2. 自由学习和修改源代码 3. 自由重新发布副本 4. 自由发布修改后的版本
代码示例[编辑 | 编辑源代码]
以下是一个使用GNU工具链编译C程序的示例:
# 使用GCC编译程序
gcc -o hello hello.c
# 运行编译后的程序
./hello
输出示例:
Hello, GNU world!
实际应用[编辑 | 编辑源代码]
GNU软件被广泛应用于:
- 服务器操作系统(如Debian、Ubuntu Server)
- 嵌入式系统
- 超级计算机
- 开发环境
现状与发展[编辑 | 编辑源代码]
截至2024年,GNU项目仍在积极开发中,主要工作包括:
- 完善GNU Hurd微内核
- 更新GNU工具链
- 开发新的自由软件组件