一文搞懂什么是 GNU/Linux 操作系统

**Author:**rab


目录


前言

你是否经常看见或听说过这么一句话:这是一个类 Unix 的 GNU/Linux 操作系统,你是怎么理解这句话的呢?想要搞懂这句话的含义,你需要了解以下三点基本常识。

一、UNIX

想要了解 Linux,首先要清楚最早的操作系统之一 ------ Unix,它是一种多用户、多任务操作系统,由 AT&T 贝尔实验室的 Ken ThompsonDennis Ritchie 等人在 1960 年代末 1970 年代初开发。其设计理念是建立一个简洁、灵活、可扩展的操作系统,以满足多用户环境的需求。该操作系统最初是用汇编语言编写的,后来演变成了使用 C 语言。

Unix 最初是一个商业操作系统,被许多公司采用并根据其需求进行修改。因此,存在多个不同的 Unix 版本,如 AIX、HP-UX、Solaris 等。不同版本之间存在差异,而且通常需要购买使用许可,这导致了标准化和互操作性的问题。

以下是 Unix 的一些关键特点和概念:

  • 多用户多任务

    Unix 允许多个用户同时访问操作系统,并在同一时间运行多个程序,每个用户都有自己的用户账户和独立的工作环境。

  • 分时系统

    Unix 是一种分时操作系统,它可以迅速地在不同的任务之间切换(即我们常说的并发),为用户提供似乎同时运行的体验。

  • 分层结构

    Unix 使用分层的体系结构,将系统功能划分为若干层,每一层都有特定的功能,这种设计使得系统更易于维护和扩展。

  • 命令行界面

    Unix 提供了强大而灵活的命令行界面,用户可以通过输入命令来与系统交互,这种交互方式被称为 shell。

  • 文件系统

    Unix 一切皆文件,并采用了层次化的文件系统,这种设计使得文件和设备可以以统一的方式进行管理。

  • 可移植性

    Unix 设计时考虑了可移植性,使得它能够在不同的硬件平台上运行。

  • 开放性

    Unix 的源代码通常是封闭的,但有些版本如 BSD(Berkeley Software Distribution)是开源的,促使了开源运动的发展。

二、Linux

Linux 是一个免费、开源的类 Unix 操作系统内核,由 Linus Torvalds 于 1991 年首次发布。Linux 内核采用了 GNU 计划的工具和系统组件,形成了一个完整的操作系统。

什么是类 Unix 操作系统?其实就是指类似于 Unix 操作系统的操作系统,因此其设计和行为与 Unix 操作系统相似或兼容。这类操作系统通常采用了 Unix 的设计哲学和概念,包括多用户、多任务、分层的系统结构、强大的命令行界面等特征。

以下是 Linux 的一些关键特点和概念:

  • 多用户多任务

    Linux 支持多用户和多任务操作,多个用户可以同时登录并在同一时间运行多个程序(与我们上面提到的 Unix 一致)。

  • 发行版

    Linux采用了分发式的模型,有许多不同的发行版,如Ubuntu、Fedora、Debian等。

  • 命令行界面

    Linux 提供了强大的命令行界面,用户可以通过终端窗口使用命令来操作系统。

    同时,也有图形用户界面(GUI)可供选择。

  • 文件系统

    Linux 将文件和设备抽象为文件,采用了分层的、层次化的文件系统。

    这种设计使文件和目录之间的操作非常一致。

  • 网络功能

    Linux 在设计时就考虑了网络功能,使其在网络环境中能够高效运行,许多网络设备和服务器使用 Linux 作为其操作系统。

  • 可移植性

    Linux 具有很高的可移植性,可以在多种硬件平台上运行,从个人计算机到嵌入式系统、服务器和超级计算机。

  • 安全性

    Linux 有强大的安全特性,包括权限管理、防火墙、加密等功能。

    这使其在服务器和网络设备中得到广泛应用。

  • 开放性

    Linux 是开源的,这意味着其源代码可以被任何人查看、修改和分发。

    这种开放性促进了广泛的社区参与和合作。

三、GNU

GNU 是一个递归缩写,它代表 "GNU's Not Unix"。GNU 是一个自由软件运动的项目,由理查德·斯托曼(Richard Stallman)于 1983 年发起,GNU 的目标是创建一个完全自由的 Unix 兼容操作系统。

以下是 GNU 的一些关键特点和概念:

  • 自由软件

    GNU 强调自由软件的概念,这意味着用户有权利查看、修改和分发软件的源代码。

    这样的自由性质使得用户能够对软件进行自定义,而不仅仅是使用它。

  • GPL 许可证

    GNU 采用了 GPL(GNU General Public License)等开源许可证,这些许可证强调了对软件自由使用、修改和分享的权利。

  • GNU 工具

    GNU 计划包含了一系列工具和系统组件,其中一些最为著名的包括:

    • GNU Bash(Bourne Again SHell):一种常见的命令行 shell。
    • GCC(GNU Compiler Collection):包括 C、C++、Fortran 等多种编程语言的编译器。
    • GNU Coreutils:包含了基本的命令行工具,如 ls、cp、mv 等。

    这些工具为Linux操作系统提供了基础,并使其成为一个完整的操作系统。

  • Hurd 内核

    GNU 计划最初计划使用 Hurd 内核,以取代 Unix 内核。

    然而,由于 Hurd 的开发进展较慢,许多 GNU/Linux 发行版使用了 Linux 内核。

  • GNU/Linux 操作系统

    尽管 GNU 的原始计划中包括了 Hurd 内核,但实际上,许多流行的 GNU/Linux 发行版使用了 Linux 内核。

    因此,人们通常使用术语 "GNU/Linux" 来强调 GNU 工具和软件在 Linux 系统上的存在和贡献。

总体而言,Linux是一个操作系统的内核,而GNU则提供了Linux操作系统所需的大部分工具和组件。在实际使用中,人们通常会将Linux与GNU工具一起使用,形成一个完整的 GNU/Linux 操作系统。这个术语强调了GNU工具对Linux系统的贡献,同时也表示这是一个完整的自由和开源的操作系统。

---END

相关推荐
小白跃升坊6 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey25 分钟前
【Linux】线程同步与互斥
linux·笔记
舰长11528 分钟前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng42 分钟前
Linux 输出重定向
linux·运维
路由侠内网穿透.44 分钟前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
VekiSon1 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq1 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux
Ankie Wan2 小时前
cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。
linux·容器·cgroup·lxc
skywalk81632 小时前
尝试在openi启智社区的dcu环境安装ollama最新版0.15.2(失败)
linux·运维·服务器·ollama
zhengfei6113 小时前
AutoPentestX – Linux 自动化渗透测试和漏洞报告工具
linux·运维·自动化