Nothing Special   »   [go: up one dir, main page]

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

2023-11-23 00:12

本文主要是介绍一文搞懂什么是 GNU/Linux 操作系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

gnu-linux-simple-wallpaper

Author:rab


目录

    • 前言
    • 一、UNIX
    • 二、Linux
    • 三、GNU


前言

你是否经常看见或听说过这么一句话:这是一个类 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

这篇关于一文搞懂什么是 GNU/Linux 操作系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413935

相关文章

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Linux之软件包管理器yum详解

《Linux之软件包管理器yum详解》文章介绍了现代类Unix操作系统中软件包管理和包存储库的工作原理,以及如何使用包管理器如yum来安装、更新和卸载软件,文章还介绍了如何配置yum源,更新系统软件包... 目录软件包yumyum语法yum常用命令yum源配置文件介绍更新yum源查看已经安装软件的方法总结软

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Linux:alias如何设置永久生效

《Linux:alias如何设置永久生效》在Linux中设置别名永久生效的步骤包括:在/root/.bashrc文件中配置别名,保存并退出,然后使用source命令(或点命令)使配置立即生效,这样,别... 目录linux:alias设置永久生效步骤保存退出后功能总结Linux:alias设置永久生效步骤

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动