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

Author:rab
目录
- 前言
- 一、UNIX
- 二、Linux
- 三、GNU
前言
你是否经常看见或听说过这么一句话:这是一个类 Unix 的 GNU/Linux 操作系统,你是怎么理解这句话的呢?想要搞懂这句话的含义,你需要了解以下三点基本常识。
一、UNIX
想要了解 Linux,首先要清楚最早的操作系统之一 —— Unix,它是一种多用户、多任务操作系统,由 AT&T 贝尔实验室的 Ken Thompson、Dennis 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 操作系统
Author:rab 目录 前言一、UNIX二、Linux三、GNU 前言 你是否经常看见或听说过这么一句话:这是一个类 Unix 的 GNU/Linux 操作系统,你是怎么理解这句话的呢?想要搞懂这句话的含义,你需要了解以下三点基本常识。 一、U…...
sql注入 [极客大挑战 2019]LoveSQL 1
打开题目 几次尝试,发现输1 1",页面都会回显NO,Wrong username password!!! 只有输入1,页面报错,说明是单引号的字符型注入 那我们万能密码试试能不能登录 1 or 11 # 成功登录 得到账号…...
验证码 | 可视化一键管控各场景下的风险数据
目录 查看今日验证数据 查看未来趋势数据 验证码作为人机交互界面经常出现的关键要素,是身份核验、防范风险、数据反爬的重要组成部分,广泛应用网站、App上,在注册、登录、交易、交互等各类场景中发挥着巨大作用,具有真人识别、身…...
问题解决:Ubuntu18.04下nvcc -V指令可用,/usr/local/下却没有cuda文件夹,原因分析及卸载方法
问题描述 今天要运行一个程序,需要CUDA版本高于10.0,我的电脑无法运行,于是开始检查 首先使用nvidia-smi与nvcc -V指令 能够看出来,当前显卡驱动适合的CUDA版本为12.1,而本机安装的版本是9.1.85,那么就需…...
uniapp+vue3使用pinia,安卓端报错白屏
报错内容: reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->at useStore2 (app-service.js:1487:15)at (app-service.js:1714:17)at (app-serv…...
OpenCV图像处理、计算机视觉实战应用
OpenCV图像处理、计算机视觉实战应用 专栏简介一、基于差异模型模板匹配缺陷检测二、基于NCC多角度多目标匹配三、基于zxing多二维码识别四、基于tesseract OCR字符识别 专栏简介 基于OpenCV C分享一些图像处理、计算机视觉实战项目。不定期持续更新,干货满满&…...
MySQL 事务的底层原理和 MVCC(一)
在事务的实现机制上,MySQL 采用的是 WAL(Write-ahead logging,预写式日志)机制来实现的。 在使用 WAL 的系统中,所有的修改都先被写入到日志中,然后再被应用到系统中。通常包含 redo 和 undo 两部分信息。 …...
vue3中使用全局自定义指令和组件自定义指令
这篇文章会教大家如何实现全局自定义指令和组件自定义指令 📓全局自定义指令和组件自定义指令的区别,除了写法不同和作用不同,其他的包括生命周期的使用方法都是一致的,全局自定义指令在main.ts中注册后整个项目都可以使用&#x…...
JVM 堆外内存详解
Java 进程内存占用除了JVM 运行时数据区,还有直接内存(Direct Memory)区域及 JVM 程序自身也会占用内存 直接内存(Direct Memory)区域:直接内存通过使用Native堆外内存来存储数据,这意味着数据…...
数据库的基本概念以及MySQL基本操作
一、数据库的基本概念 1、数据库的组成 数据:描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一格式进行存储 表:将不同的记录组织在一起,用来存储具体数据 数据库: 表的集合…...
【Docker】Docker安装Nginx配置静态资源
1.下载镜像 2.创建nginx配置文件 3.创建nginx容器运行 4.配置nginx静态资源 1.下载镜像 Dockerhub官网:Docker docker pull nginx docker pull nginx下载最新版本 默认latest 下载指定版本docker pull nginx:xxx 2.创建nginx配置文件 启动容器之前要创建nginx…...
【码神之路】【Golang】博客网站的搭建【学习笔记整理 持续更新...】
介绍 一个用原生GO开发的博客网站,涉及Golang Web开发、Web服务器搭建和HTTP请求处理、模板与静态资源处理等 技术栈 后端:Go、Go并发机制前端:HTML模版链接直达 Golang搭建博客网站的学习视频 注:这里我只记录我实质✅学习到…...
Win10 电源选项那选择“关闭显示器“为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏
环境: Win10专业版 问题描述: Win10 电源选项那选择"关闭显示器"为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏 解决方案: 方法一 更改注册表可以实现关闭显示器而不锁屏的效果。请按照以下步骤…...
虚拟机centos设置网络模式(桥接|NAT)
前言 桥接模式是通过物理网卡直接与外部网络建立联系的,而NAT模式则是通过虚拟网卡VMnet1或VMnet8通过宿主机共享IP与外部建立网络关系当需要将虚拟机资源共享给局域网用户使用时,宜采用桥接模式;当需要保护虚拟机资源,确保只能由…...
MySQL 8.2 Command Line Client打开时一闪而过闪退问题
MySQL8.2安装成功后,发现打开MySQL 8.0 Command Line Client时出现一闪而过,打不开的情况。 解决方案: 1、打开MySQL 8.2 Command Line Client文件位置 2、右键选择属性 3、复制它的目标 4、我复制下来的目标路径是这样的,"…...
【NI-RIO入门】CompactRIO介绍及环境安装
CompactRIO是什么? CompactRIO系统提供了高处理性能、传感器专用I/O和紧密集成的软件工具,使其成为工业物联网、监测和控制应用的理想之选。实时处理器提供可靠,可预测的行为,而FPGA在需要高速逻辑和精确定时的较小任务上表现出色…...
生产问题 Recv-Q101
生产上服务端口 Recv-Q101 新请求到服务器的失败,幸好及时发现,通过重启服务之后得到解决,具体原因等待排查 目前觉得的原因是:某些请求暂用时间比较久...
从零开始:Rust环境搭建指南
大家好!我是lincyang。 今天,我们将一起探讨如何从零开始搭建Rust开发环境。 Rust环境搭建概览 Rust是一种系统编程语言,以其安全性、并发性和性能闻名。搭建Rust环境是学习和使用这一语言的第一步。 第一步:安装Rust Rust的…...
Tensorrt 实现 yolov5-cls 遇到的问题
yolov5-6.2增加了分类训练、验证、预测和导出(所有 11 种格式),还提供了 ImageNet 预训练的 YOLOv5m-cls、ResNet(18、34、50、101) 和 EfficientNet (b0-b3) 模型. 官方Git : https://github.com/ultralytics/yolov5 分类模型与…...
智能指针(Newbie Note)
智能指针专题 1.普通指针的问题2.智能指针是什么什么是所有权 3.智能指针三个好处:4.C11提供的智能指针4.1 shared_ptr(共享所有权指针)4.1.1 分配内存4.1.2 成员函数4.1.3 计数情况汇总:4.1.4 示例代码(计数)4.1.5 示例代码(rese…...
Math-ROVER:数学推理中的多模型融合优化策略
1. ROVER方法概述与数学推理适配性分析ROVER(Recognizer Output Voting Error Reduction)最初由约翰霍普金斯大学在1997年提出,是一种用于语音识别结果融合的经典算法。其核心思想是通过多系统输出的对齐和投票,消除单个识别系统的…...
SkyBridge:构建AI模型统一接入层,实现多模型智能路由与生产级运维
1. 项目概述:当AI模型需要“搭桥”时,我们做了什么最近在折腾大模型应用落地的朋友,估计都绕不开一个核心痛点:模型能力很强,但怎么把它稳定、高效、低成本地集成到自己的业务流里,是个大问题。尤其是在面对…...
别再傻傻分不清!LM193/LM393/LM2903电压比较器选型指南(附典型应用电路)
LM193/LM393/LM2903电压比较器实战选型手册:从参数解密到电路设计 在嵌入式硬件设计中,电压比较器就像电路中的"裁判员",时刻判断着输入信号的胜负。但当面对LM193、LM393、LM2903这些"孪生兄弟"时,不少工程师…...
Agent 一接浏览器本地存储就开始串租户:从 Storage Namespace 到 Session Snapshot 的工程实战
很多浏览器 Agent 在演示环境里很稳,一进多租户后台就开始出现“登的是 B 账号,提交的却是 A 组织草稿”的事故。⚠️ 问题不在 DOM 识别,而在浏览器本地状态没跟任务边界一起清空。Cookie 已刷新,页面却仍会从旧的 localStorage、…...
深度强化学习在低光环境自动白平衡中的应用
1. 项目背景与核心挑战夜间低光环境下的自动白平衡(AWB)一直是计算机视觉领域的硬骨头。传统算法在光照不足时容易产生严重的色偏问题,导致图像出现不自然的黄色或蓝色色调。这个问题在监控安防、自动驾驶和移动摄影等场景中尤为突出——想象…...
Python 性能分析实战:接口从 50ms 飙到 500ms,我会先查什么?
Python 性能分析实战:接口从 50ms 飙到 500ms,我会先查什么? Python 很优雅,但优雅不等于天然高性能。真正成熟的 Python 编程,不是看到慢就立刻改代码,而是先问一句:慢在哪里?CPU、…...
NNCF实战:深度学习模型量化与剪枝,实现边缘部署3倍加速
1. 项目概述:神经网络压缩框架的实战价值如果你正在为深度学习模型在边缘设备上的部署而头疼,觉得模型太大、推理太慢、功耗太高,那么NNCF这个工具很可能就是你一直在找的解决方案。NNCF,全称Neural Network Compression Framewor…...
实战指南:将你的Tesseract OCR服务Docker化并发布到阿里云镜像仓库
实战指南:将Tesseract OCR服务Docker化并发布到阿里云镜像仓库 在当今快速迭代的开发环境中,容器化技术已成为团队协作和项目部署的标配。对于需要处理图像识别的开发者而言,将Tesseract OCR服务封装成Docker镜像不仅能保证环境一致性&#x…...
如何用novel-downloader一键下载全网小说:完整指南
如何用novel-downloader一键下载全网小说:完整指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在数字阅读时代,你是否曾因网络不稳定而错过心爱小说的更新…...
5分钟搞定!uniApp微信小程序用户头像上传与存储完整流程(从chooseAvatar到服务器)
5分钟实现uniApp微信小程序头像上传全流程:从选择到存储的实战指南 微信小程序的头像上传功能一直是开发者关注的焦点。随着微信官方对用户隐私保护的加强,传统的wx.getUserProfile接口已不再返回真实头像,开发者需要转向更合规的chooseAvata…...
