一文搞懂什么是 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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160390.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160390.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160390.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux ld 鏈接器學習筆記

ld鏈接器筆記 1. 首先編寫一段匯編代碼 這里的匯編語法時 AT&T語法,是gcc原生支持的語法,底層使用 gas(gnu assembler) 完成匯編,相較于 Intel x86語法, AT&T 語法要更加古老,因此大多數人更加偏向于使用 Intel 的語法. nasm 編譯器支持x86語法.自從2.10版本&#xf…

MySQL 事務的底層原理和 MVCC(二)

7.2. undo 日志 7.2.1. 事務回滾的需求 我們說過事務需要保證原子性,也就是事務中的操作要么全部完成,要么什么也不做。但是偏偏有時候事務執行到一半會出現一些情況,比如: 情況一:事務執行過程中可能遇到各種錯誤&a…

ORB-SLAM3在windows11下的編譯使用

01 寫在前面 近期在學習SLAM,想部署一下ORB-SLAM3,但是自己電腦是win11系統,因此就想著在win11上部署一下。但是網上看了一些教程,有一些博客,但是可能不適合我這種情況把,就很糾結。先說下結果&#xff0…

【python基礎(三)】操作列表:for循環、正確縮進、切片的使用、元組

文章目錄 一. 遍歷整個列表1. 在for循環中執行更多操作2. 在for循環結束后執行一些操作 二. 避免縮進錯誤三. 創建數值列表1. 使用函數range()2. 使用range()創建數字列表3. 指定步長。4. 對數字列表執行簡單的統計計算5. 列表解析 五. 使用列表的一部分-切片1. 切片2. 遍歷切片…

【并發編程】ThreadLocal詳解與原理

📫作者簡介:小明Java問道之路,2022年度博客之星全國TOP3,專注于后端、中間件、計算機底層、架構設計演進與穩定性建設優化,文章內容兼具廣度、深度、大廠技術方案,對待技術喜歡推理加驗證,就職于…

【電路筆記】-電流源

電流源 文章目錄 電流源1、概述1.1 理想電流源1.2 實際電流源1.3 連接規則 2、依賴電流2.1 壓控電流源2.2 電流控制電流源 3、總結 本文為前面文章 電壓源的延續,我們將在本文介紹電流源。 與電壓源的情況類似,我們將首先介紹理想電流源的概念&#xff…

MySQL 8.2 Command Line Client打開時一閃而過閃退問題

MySQL8.2安裝成功后,發現打開MySQL 8.0 Command Line Client時出現一閃而過,打不開的情況。 解決方案: 1、打開MySQL 8.2 Command Line Client文件位置 2、右鍵選擇屬性 3、復制它的目標 4、我復制下來的目標路徑是這樣的,"…

關于 Docker

關于 Docker 1. 術語Docker Enginedockerd(Docker daemon)containerdOCI (Open Container Initiative)runcDocker shimCRI (Container Runtime Interface)CRI-O 2. 容器啟動過程在 Linux 中的實現daemon 的作用 Docker 是個劃時代的開源項目,…

[計算機網絡實驗]頭歌 實驗二 以太網幀、IP報文分析(含部分分析)

目錄 第1關:Wireshark基本使用入門 【實驗目的】 【實驗環境】 【本地主機、平臺虛擬機之間數據傳遞】 wireshark基本用法】 1、wireshark主界面 2、抓取分組操作 3、Wireshark窗口功能 4、篩選分組操作 【實驗操作】 ?編輯 第2關:Ethernet幀…

編程語言發展史:C++語言的發展和應用

預計更新 第一部分:早期編程語言 1.1布爾代數和機器語言 1.2匯編語言的出現和發展 1.3高級語言的興起 第二部分:主流編程語言 1.1 C語言的誕生及其影響 1.2 C語言的發展和應用 1.3 Java語言的出現和發展 1.4 Python語言的興起和特點 1.5 JavaScript語言…

基于Towers of Binary Fields的succinct arguments

1. 引言 Ulvetanna團隊Benjamin E. Diamond和Jim Posen 2023年論文《Succinct Arguments over Towers of Binary Fields》,開源代碼見: https://github.com/recmo/binius(Rust Sage)【基于plonky3等庫】 在該論文中&#xff1…

Apache POI簡介

三十二、Apache POI 32.1 介紹 Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項目。簡單來說就是,我們可以使用POI在Java程序中對Miscrosoft Office各種文件進行讀寫操作。 一般情況下,POI都是用于操作Excel文件。 Apache POI 的應用場…

基于區域劃分的GaN HEMT 準物理大信號模型

GaN HEMT器件的大信號等效電路模型分為經驗基模型和物理基模型。經驗基模型具有較高精度但參數提取困難,特別在GaN HEMT器件工藝不穩定的情況下不易應用。相比之下,物理基模型從器件工作機理出發,參數提取相對方便,且更容易更新和…

火山引擎 ByteHouse 的增強型數據導入技術實踐

作為企業數字化建設的必備要素,易用的數據引擎能幫助企業提升數據使用效率,更好提升數據應用價值,夯實數字化建設基礎。 數據導入是衡量OLAP引擎性能及易用性的重要標準之一,高效的數據導入能力能夠加速數據實時處理和分析的效率。…

Sa-Token 整合Java17和SpringBoot

目錄 前言引入項目開啟登錄認證路由攔截鑒權解決兼容問題總結 前言 之前無意中發現Sa-Token權限認證框架,項目十分好用。 項目地址: https://github.com/dromara/sa-token 官網地址: https://sa-token.cc/doc.html#/start/example 我的個人…

如何輕松應對企業網絡管理挑戰,釋放網絡靈活性

企業在日常經營中,越來越依賴于云應用程序,分散的團隊和統一通信。這些變化使得保持網絡連接性不僅是必要的,而且對任務的成功完成至關重要。 傳統的廣域網(WAN)并不總能適應這些挑戰,因為它們往往無法提供…

不停的挖掘硬盤的最大潛能

從 NAS 上退休的硬盤被用在了監控的存儲上了。 隨著硬盤使用壽命的接近尾聲,感覺就是從高附加值數據到低附加值數據上。監控數據只會保留那么幾個月的時間,很多時候都會被覆蓋重新寫入。 有人問為什么監控數據不保留幾年的,那是因為監控數據…

java_函數式接口

文章目錄 一、什么是函數式接口二、四大核心函數式接口三、使用舉例 一、什么是函數式接口 如果一個接口只有一個抽象方法,那么該接口就是一個函數式接口函數式接口的實例可以通過 lambda 表達式、方法引用或者構造方法引用來創建如果我們在某個接口上聲明了 Funct…

【Unity入門】鼠標輸入和鍵盤輸入

Unity的Input類提供了許多監聽用戶輸入的方法,比如我們常見的鼠標,鍵盤,手柄等。我們可以用Input類的接口來獲取用戶的輸入信息 一、監聽鼠標輸入 GetMouseButtonUp 、GetMouseButtonDown、GetMouseButton input.GetMouseButtonDown和 inp…

從mysql源碼編譯出相應的庫和可執行文件及搭建mysql服務端

目錄 1. 問題的提出 2. 源碼下載 3. 升級或安裝某些前置軟件 3.1. 升級CMake 3.2. 升級gcc、g 4. 安裝依賴庫 4.1. 安裝OpenSSL 4.2. 安裝Curses 4.3. 安裝pkg-config 5. 編譯、安裝 6. 編譯結果、配置 7. 編譯錯誤處理 7.1. 錯誤1 7.2. 錯誤2 8. 搭建mysql數…