当前位置:   article > 正文

Linux基础part-1

Linux基础part-1

目录

1、UNIX 的诞生和广泛使用

2、CPU 架构类型

3、CPU 指令

4、计算机程序设计和执行过程

5、操作统OS

6、编程层次

7、程序的内部运行接口

8、UI程序接口(人机交互接口)

9、程序的运行模式:

10、POSIX:可移植操作系统规范

11、计算机开源领域

12、Linux 发行版:(商业和社区)


这里主要讲解操作系统基础、发展史和开源技术领域

1、UNIX 的诞生和广泛使用

  • UNIX是一种多用户、多任务的操作系统,由肯·汤普逊、丹尼斯·里奇和其他贝尔实验室的研究人员在20世纪70年代初开发。UNIX最初设计用于支持大型机器上的多用户环境,但后来它被移植到了各种计算机架构上,成为了一种跨平台的操作系统。UNIX的设计注重简洁性、灵活性和可移植性,使得它成为了一个受欢迎的操作系统。UNIX广泛应用于服务器操作系统、科学计算、嵌入式系统、个人电脑等各种场景,其稳定性、安全性和灵活性是吸引用户选择的重要原因。
  • 对计算机进行执行操作:硬件+软件
    • 在计算机系统中,执行操作通常是指利用硬件和软件来实现特定任务或功能。硬件是计算机系统的物理组件,如CPU、主板、内存、硬盘、显卡、显示器、鼠标键盘和光驱等。而软件则是控制和利用硬件完成任务的程序和数据,包括操作系统、应用软件和驱动程序等。硬件和软件相互配合,通过输入输出操作实现用户需求,例如处理文档、播放视频、运行游戏等。
    • 硬件组成:CPU,主板,内存,硬盘,显卡,显示器,鼠标键盘,光驱
      • CPU(中央处理器):负责执行计算机程序的指令,是计算机的核心组件。
      • 主板:连接和支持计算机各个硬件部件的主要电路板。
      • 内存(RAM):用于临时存储正在执行的程序和数据,是CPU直接访问的存储器。
      • 硬盘:用于永久存储数据和程序,包括操作系统、应用软件和用户文件等。
      • 显卡:负责处理图形和图像输出,驱动显示器显示图像。
      • 显示器:显示计算机输出的文本、图像和视频等内容。
      • 鼠标键盘:用户输入设备,用于控制计算机和输入文字、命令等。
      • 光驱:用于读取和写入光盘(如CD和DVD)的设备。
    • 硬件分类:运算器+控制器+存储器+I/O设备
      • 运算器:执行计算和逻辑运算的部件,通常指CPU。
      • 控制器:控制数据流向和指令执行的部件,协调计算机内部各部件的工作。
      • 存储器:用于存储数据和指令的部件,包括内存和硬盘等。
      • I/O 设备:输入输出设备,负责与计算机外部进行交互,如键盘、鼠标、显示器、打印机等。

2、CPU 架构类型

  • CPU架构是指中央处理器(CPU)的设计和结构方式不同的CPU架构可以支持不同的指令集和操作系统。
  • X86
    • X86是一种32位CPU架构,最初由英特尔公司开发。它广泛用于个人计算机(PC)和服务器领域。
    • X86架构最早是用于基于Intel 8086处理器的个人计算机,后来发展为包括Intel Pentium、Core系列、AMD Athlon等多个产品系列。
    • X86架构也支持一些64位扩展,例如Intel的EM64T和AMD的AMD64,它们允许在X86处理器上运行64位操作系统和应用程序。
  • X64(支持 64 位系统 X86)
    • X64是指X86的64位扩展,也称为AMD64或者Intel 64
    • X64架构保留了X86的兼容性,并且提供了更大的内存地址空间和更高的性能
    • 由于其兼容性和性能优势,X64架构被广泛应用于现代个人计算机、工作站和服务器。
  • Arm
    • Arm架构是一种基于精简指令集(RISC)的CPU架构,由英国Arm公司开发。
    • Arm架构广泛应用于移动设备(如智能手机、平板电脑)、嵌入式系统、物联网设备和超级计算机等领域。
    • Arm架构的特点是低功耗、高性能和可定制性,使其成为了移动设备领域的主流架构。
  • ARM 系列 CPU (手持计算机,如手机、PAD 等)
    • ARM系列CPU是基于Arm架构的处理器,由多家公司设计和制造,包括高通、联发科、三星等。
    • 这些处理器广泛应用于智能手机、平板电脑、可穿戴设备等手持计算设备中,具有低功耗、高效能的特点
  • M68000 (摩托罗拉)
    • M68000是摩托罗拉公司开发的一种32位微处理器,属于CISC架构。
    • M68000曾经广泛应用于个人电脑、工作站和游戏机等领域,是早期计算机历史上的重要架构之一。
  • Apha (惠普)
    • Alpha是惠普公司(后被收购)开发的一种64位RISC架构处理器。
    • Alpha处理器曾经被广泛应用于高性能计算、工作站和服务器领域,具有出色的性能和可靠性。
  • 安腾
    • 安腾(Itanium)是由英特尔和惠普合作开发的64位处理器架构,属于EPIC(显式并行指令计算)架构。
    • 安腾处理器主要用于高性能计算和企业级服务器领域,尽管在一段时间内曾被认为是未来服务器架构的方向,但最终未能取得主流地位。

3、CPU 指令

  • CPU指令是CPU能够理解和执行的基本操作命令。这些指令通常被组织成指令集架构,根据其功能和特权级别可以分为特权指令和普通指令。
  • 特权指令:0S 运行
    • 特权指令是只有操作系统(OS)在特殊的权限级别下才能执行的指令。这些指令通常涉及对硬件和系统资源的底层控制和管理,如修改内存映射、访问I/O设备、更改处理器状态等。
    • 特权指令的执行需要CPU处于特权级别,通常是操作系统的内核态。在这个特权级别下,操作系统有权访问和控制系统的全部资源。
    • 由于特权指令可以对系统造成严重影响,因此普通用户程序不能直接执行这些指令。普通应用程序需要通过系统调用向操作系统请求执行特权操作。
  • 普通指令:应用程序运行
    • 普通指令是应用程序能够执行的指令,通常涉及数据处理、算术运算、逻辑操作、内存访问等常见操作。
    • 这些指令可以在应用程序的用户态下执行,用户程序可以自由地使用它们来完成特定的任务和功能。
    • 普通指令的执行不涉及对系统资源的底层控制,因此不需要特殊的权限级别。
  • 系统调用

    • 普通应用程序需要执行特权操作时,例如访问硬件设备、创建新的进程、读写文件等,它们需要向操作系统发出请求
    • 这个请求被称为系统调用(System call)。系统调用是一种特殊的指令,它允许用户程序向操作系统提出服务请求,请求操作系统代表其执行特权操作。
    • 操作系统收到系统调用请求后,会在内核态下执行相应的特权操作,并将结果返回给用户程序。系统调用提供了一种安全的机制,允许用户程序在受限的权限下访问系统资源
  • 普通应用程序需要完成特权操作,需要向内核申请执行特权指令,0S 代理完成
  • 应用程序发出的调用请求被称为系统调用 (System call)

4、计算机程序设计和执行过程

  • 计算机程序设计和执行过程通常包括高级语言编程、编译和汇编三个主要阶段。
  • 机器语言、汇编语言(要有汇编器)、高级语言 (C、C++、编译器、gcc)
    • 机器语言

      • 机器语言是计算机能够直接理解和执行的语言,由二进制代码组成,代表着不同的指令和操作。
      • 机器语言指令是特定于CPU架构的,每种CPU都有其特定的指令集。因此,机器语言程序是与特定硬件平台相关的。
      • 机器语言的编写和理解对普通程序员来说是非常困难的,因为它直接操作计算机的底层硬件。
    • 汇编语言

      • 汇编语言是一种较为可读性强的低级语言,与特定CPU架构相关,使用助记符(mnemonics)来代替二进制指令码,使得程序员可以更方便地编写程序。
      • 汇编语言程序通过汇编器(assembler)将其转换成对应的机器语言程序。汇编语言程序的执行效率较高,因为它直接映射到底层的机器指令。
    • 高级语言

      • 高级语言是相对于机器语言和汇编语言而言的,它更接近人类自然语言,更易于理解和编写。
      • 高级语言的代码由程序员编写,例如C、C++、Java、Python等。高级语言的代码可以在不同的平台上运行,因为它们通常由编译器或解释器转换成机器语言或者字节码。
  • 执行过程:
    • 编译过程:高级语言转换为汇编(对应 CPU 芯片支持的汇编)语言
    • 汇编过程:汇编语言转换为 CPU 能理解的机器语言
    • 编写程序

      • 程序员使用高级语言(如C、C++)编写程序,实现特定的功能和算法。
    • 编译过程

      • 编写完成后,程序会通过编译器进行编译,将高级语言代码转换为汇编语言代码
      • 编译器会检查语法错误,并将高级语言代码翻译成对应的汇编语言代码,生成一个汇编语言的中间文件(通常是汇编代码的文本文件)。
    • 汇编过程

      • 汇编器(assembler)将汇编语言代码转换为机器语言代码,也就是CPU能够直接执行的指令序列。
      • 汇编器根据汇编语言代码中的助记符,将其映射为对应的机器指令,生成一个可执行的机器语言程序(通常是二进制可执行文件)。
    • 执行程序

      • 生成的机器语言程序可以被计算机硬件执行。计算机加载程序并按照其中的指令逐条执行,从而实现程序员预期的功能。

5、操作统OS

  • 消除底层差异 (翻译例子) ,程序员写程序不用再考虑底层硬件性能——>通用软件(OS)
    • 操作系统(OS)是管理计算机硬件和软件资源的系统软件,操作系统消除底层差异,程序员写程序不用再考虑底层硬件性能,这是因为操作系统为通用软件提供了一个统一的接口。例如,程序员在操作系统上编写的程序可以在不同的计算机上运行,无需关心底层硬件的具体细节。
  • OS是软件程序,达到可移植目的、通用目的
    • 硬件驱动
      • 操作系统提供了硬件驱动程序,用于管理和控制计算机的各种硬件设备,如键盘、鼠标、打印机等
    • 进程管理 (CPU 时间片切割分配)
      • 操作系统负责管理和调度系统中的各个进程,包括分配CPU时间片、调度进程执行、处理进程间通信等。
    • 文件系统(文件(创建、删除、移动、权限)、用户、文件系统、加密/解密、内核(编译)、启动过程、程序包管理)
      • 操作系统提供了文件系统,用于管理计算机上的文件和目录。它负责文件的创建、删除、移动、权限控制等操作,并提供了对文件系统的加密、解密、压缩等功能。
    • 内存管理
      • 操作系统管理计算机内存的分配和释放,确保不同进程之间的内存空间不会相互干扰,同时提供虚拟内存管理和页面置换等功能。
    • 网络管理
      • 操作系统提供了网络管理功能,包括网络连接的建立和管理、数据包的传输和路由、网络协议的支持等。
    • 安全管理
      • 操作系统提供了安全管理机制,用于保护系统和用户的数据安全,包括用户身份验证、访问控制、数据加密等。
  • 程序员面向操作系统接口写程序,OS相当于虚拟机
    • 操作系统为程序员提供了一组面向操作系统接口(API)的函数和工具,程序员可以使用这些接口来编写应用程序。因此,操作系统可以看作是一个虚拟机,为应用程序提供了一个统一的运行环境。
  • 广义操作系统和狭义操作系统
    • 广义:内核 (kernel) +应用程序 (application)
      • 内核负责管理系统资源,而应用程序则是运行在操作系统上的其他软件。
    • 狭义:内核 (kernel)
      • 它是操作系统的核心部分,负责管理系统资源和提供服务。
    • 内核版本号:major.minor.release
      • 操作系统的版本号通常由三个部分组成:主版本号(major)、次版本号(minor)和发布号(release)。这些版本号反映了操作系统的重要性和更新程度。

6、编程层次

  • 硬件规格:面问硬件进行编程 (hardware specifiacation),嵌入式工程师
    • 在编程层次中,硬件规格位于最低层直接与硬件进行交互和操作。这一层次的编程通常由嵌入式工程师或者对底层硬件有深入了解的开发人员完成。
    • 硬件规格编程涉及直接操作硬件寄存器、处理器指令和外设控制等,需要深入了解硬件的特性和规格,对硬件的运作原理有较为深刻的理解。
  • 系统调用:把底层硬件功能抽象出有限的数量,Lnux 大概 400 个左右
    • 系统调用位于编程层次中间,它抽象出了底层硬件的功能,并提供了有限的接口供应用程序使用。
    • 比如在Linux系统中,大约有400个左右的系统调用,用于实现诸如文件操作、进程管理、网络通信等功能。应用程序可以通过调用这些系统调用来实现对底层硬件的操作
  • 库调用:lib call,更容易实现(操作系统自己需要额外提供库,通常是C或 C++程序库)
    • 库调用是编程层次中的高级抽象层,它通过软件库(library)的形式为开发人员提供了更容易使用的接口。
    • 操作系统通常会提供一些标准的库,如C标准库(libc)或C++标准库(libstdc++),这些库中包含了大量已经封装好的函数和方法,可以直接调用以实现常见的功能,如字符串处理、内存管理、输入输出等。
    • 库调用将系统调用进一步封装,提供更高级别的抽象,使得开发人员能够更快速地编写程序,而无需关心底层硬件的细节。
  • 编程层次的不同级别提供了不同的抽象程度和灵活性,开发人员可以根据自己的需求和技术水平选择适合的层次进行编程。在硬件规格层,程序员可以实现对硬件的直接控制和优化;而在库调用层,则可以使用现有的高级功能库来简化开发工作,提高开发效率。

7、程序的内部运行接口

  • ABI和API都是程序的内部运行接口,它们分别提供了程序在运行时和开发时的接口。ABI定义了程序和底层操作系统或者硬件之间的二进制接口标准,而API则定义了应用程序提供给其他程序或者开发者调用的一组函数接口。
  • ABI应用二进制接口(程序员开发好后程序运行时面对的接口) ,不同操作系统支持 ABI 接口不同
    • ABI是指应用程序和底层操作系统或者硬件之间的接口,它定义了应用程序和操作系统之间的二进制接口标准。ABI规定了函数调用约定、数据结构布局、系统调用接口等底层细节,以确保不同的程序能够在特定平台上正确运行。
    • ABI的重要性在于它提供了一个二进制级别的标准,使得编译器能够生成与特定操作系统兼容的可执行程序,而无需考虑底层细节。因此,不同操作系统支持的ABI可能会有所不同,例如Windows、Linux、macOS等操作系统都有自己的ABI标准。
    • ABI对程序员来说是透明的,因为它主要关注于程序的二进制级别的接口,而不是源代码级别的接口。程序员编写的代码在编译时会被翻译成符合特定ABI标准的机器码,从而能够在特定操作系统上运行。
  • API:应用编程接口(程序员面对的编程接口)
    • API是指应用程序提供给其他程序或者开发者调用的一组接口。API定义了一组函数、方法、类或者协议,用于编程中实现特定的功能和操作。API可以是操作系统提供的,也可以是第三方库或者服务提供的。
    • API通常以函数调用的形式提供,程序员可以通过调用这些函数来实现各种功能,如文件操作、网络通信、图形界面等。API定义了函数的参数、返回值以及函数的作用,提供了一种标准化的编程接口。
    • API对程序员来说是可见的,因为它直接影响到程序的编写和开发过程。程序员需要了解API的使用方法和规范,以便正确地调用API函数来实现所需的功能。

8、UI程序接口(人机交互接口)

  • 如果操作应用程序,如何打交道(很多程序不是开机自启),点鼠标启动(背后意味着什么?)
    • 当操作应用程序时,通常可以通过以下步骤与之交互:

      • 启动应用程序:

        • 在图形用户界面(GUI)中,通常可以通过点击应用程序图标或者通过开始菜单等方式启动应用程序。
        • 在命令行界面(CLI)中,可以通过在终端中输入命令来启动应用程序。
      • 与应用程序交互:

        • 一旦应用程序启动,用户可以与之进行交互。这可能包括在应用程序的图形界面中点击按钮、填写表单、输入文本等操作,或者在命令行中输入特定的命令和参数来执行相应的操作。
      • 执行应用程序功能:

        • 应用程序会根据用户的操作执行相应的功能。这可能包括打开文件、处理数据、显示界面、执行计算、与服务器通信等等。
    • 点击鼠标启动应用程序背后意味着用户通过图形界面的方式触发了应用程序的启动过程。这涉及到操作系统中的用户交互机制,通常包括以下几个步骤:
      • 用户输入:用户通过鼠标点击应用程序图标或者在开始菜单中选择应用程序来发起启动请求。
      • 图形界面反应:操作系统接收到用户的输入请求后,会相应地在屏幕上显示应用程序的图标或者菜单项。
      • 应用程序启动:一旦用户点击了应用程序图标或者菜单项,操作系统会根据相应的配置信息找到并启动对应的应用程序进程。
      • 应用程序初始化:应用程序在启动时可能需要进行一些初始化操作,如加载配置文件、准备界面等。
      • 应用程序界面显示:最终,应用程序的图形界面会显示在屏幕上,用户可以开始与之交互。
  • GUl:Graphic User interface(图形用户接口)
    • GUI是一种以图形方式显示信息和接收用户输入的界面。它使用图形元素如窗口、按钮、菜单等来呈现程序的功能和操作,用户可以通过鼠标点击、拖拽等方式与程序进行交互。
    • GUI界面的优点在于用户友好、直观,能够提供丰富的视觉效果和交互体验,适用于大多数用户。常见的GUI框架包括Windows中的Win32 API、Linux中的GNOME、GTK、KDE、QT等,以及macOS中的Cocoa框架。
  • CLI:Command Line Interface(命令行接口)
    • CLI是一种通过文本命令来与程序进行交互的界面。用户通过键盘输入命令和参数来执行程序的功能,程序则通过文本输出返回结果。CLI界面通常不提供图形化的界面元素,而是依赖于命令行解释器(如bash、zsh、sh等)来解析和执行命令
    • CLI界面的优点在于效率高、灵活性强,适用于一些熟练的用户或者需要自动化处理的场景。它通常用于服务器管理、系统配置等领域。在Linux和Unix系统中,CLI界面是主要的交互方式,常用的命令行解释器包括bash、zsh、sh、csh、ksh等。
  • OS的UI接口——>GUI
    • Linux:GNOME、GTK、KDE、GT
      • GNOME:一种常用的Linux桌面环境,提供了直观的用户界面和丰富的功能。
      • GTK(GIMP Toolkit):一种用于创建图形用户界面的工具包,许多Linux应用程序和桌面环境都使用了GTK。
      • KDE:另一种流行的Linux桌面环境,提供了高度定制和可扩展的用户界面。
      • XFCE、Cinnamon等:其他一些轻量级或定制化的Linux桌面环境
    • windows、MACOS
      • 系统自带了其特定的图形用户界面,提供了类似的窗口、菜单和图标等交互元素。
  • OS的 UI 接口——>CLI
    • Linux:bash、zsh、sh、csh、ksh
      • bash(Bourne Again Shell):默认的Linux命令行解释器,也是最常用的。
      • zsh、sh、csh、ksh等:其他一些可替代的命令行解释器,提供了不同的功能和特性。
    • 在Windows系统中,命令行界面主要通过cmd.exe或者PowerShell来实现,用户可以使用类似的命令来执行操作。
    • macOS系统中也包含了类似Linux的bash和其他常用的命令行工具。

9、程序的运行模式:

  • 程序的运行模式可以分为用户空间内核空间两个层次。用户空间是程序的运行环境,包含了应用程序和用户数据,普通用户可以在这个空间内进行操作。而内核空间是操作系统的核心部分,只有特权级别较高的系统管理员或者操作系统本身才能够触及和操作,它包含了操作系统的内核和系统核心服务,负责管理系统的各种资源和硬件设备。
  • 用户空间:user pace (US
    • 用户空间是指程序在执行时所处的环境,它是用户程序的运行环境,包含了应用程序和用户数据。
    • 在用户空间中,程序运行在受操作系统保护的环境下,普通用户可以在这个空间内运行、操作和管理自己的应用程序和数据。用户空间中的程序通常只能访问有限的系统资源,并且无法直接访问底层硬件设备。
    • 用户空间中的程序可以通过系统调用向操作系统请求访问受限资源,例如文件、网络、内存等。
  • 内核空间:system space。普通用户无法触及 (管理员才能管控)
    • 内核空间是操作系统的核心部分包含了操作系统的内核和系统核心服务。在内核空间中运行的程序拥有最高的权限,可以直接访问和控制系统的所有资源和硬件设备
    • 内核空间通常只有特权级别较高的系统管理员或者操作系统本身才能够触及和操作,普通用户无法直接进入内核空间或者对其进行操作。
    • 内核空间中的程序主要包括操作系统内核及其相关服务,如调度器、内存管理器、设备驱动程序等。这些程序负责管理系统的各种资源,执行系统级的任务和操作。

10、POSIX:可移植操作系统规范

  • POSIX(Portable Operating System Interface for Unix)是一套可移植操作系统接口标准,POSIX标准提供了一套可移植操作系统接口,使得在不同UNIX-like操作系统上编写的程序能够保持一致性。尽管不同操作系统上的程序运行格式可能会有所不同,但通过遵循POSIX标准,可以使得程序的源代码具有较好的可移植性,而程序的运行接口ABI(Application Binary Interface)可能会因操作系统的不同而有所差异。
  • POSIX标准特点:

    • POSIX标准由IEEE组织定义,其目的是定义一组操作系统接口,使得在不同UNIX-like操作系统上开发的程序能够保持一致性,减少移植和兼容性问题。

    • POSIX标准定义了诸如文件操作、进程管理、信号处理、线程管理、网络通信等方面的接口,使得不同操作系统上的程序能够使用相同的API进行开发,从而实现跨平台的兼容性。

    • 由于POSIX标准的广泛接受,许多操作系统都在其核心功能上实现了POSIX兼容性,例如Linux、macOS等UNIX-like操作系统。

  • 不同操作系统上的源代码是可以移植的,API 通用,但程序的运行接口 ABI 不同
  • 运行程序的格式:
    • 在不同操作系统上,程序的可执行文件格式和共享库格式可能会有所不同。例如,Windows和Linux系统使用的可执行文件格式就不同。
    • windows:EXE、dll (dynamic llnk llbrary )
      • Windows系统上的可执行文件格式通常是PE(Portable Executable),其主要组成部分包括Executable(EXE)和Dynamic Link Libraries(DLL)。
    • Linux:ELF、so (shared object )
      • Linux系统上的可执行文件格式通常是ELF(Executable and Linkable Format),其主要组成部分包括Executable(ELF可执行文件)和Shared Object(SO共享库)。
    • 在Windows中,动态链接库(DLL)是一种可以被多个程序共享调用的库文件,而在Linux中,共享对象(SO)也是一种类似的库文件。它们都可以通过动态链接方式在运行时加载到内存中,被不同的程序调用。

11、计算机开源领域

  • 计算机开源领域是指计算机软件和相关技术在开发和使用过程中采用开源模式的领域。在这个领域中,许多项目、组织和协议都在促进和支持软件的开源和自由分发
  • GNU 组织、FSF
    • GNU组织由Richard Stallman于1983年创立,旨在推动自由软件运动提供了许多开源项目和工具。
    • 自由软件基金会(Free Software Foundation,FSF)是GNU项目的主要支持者,致力于维护和推广自由软件的理念,提供了GNU通用公共许可证(GPL)等开源许可证。
    • GPL:通用公共许可证
      • GPL是一种自由软件许可证,通过保护软件的自由性来确保用户的自由。它要求任何使用、修改和分发受GPL保护的软件的派生作品都必须以相同的GPL协议发布。
      • GPL有多个版本,包括GPL、GPLv2和GPLv3,每个版本在细节和适用范围上略有不同。
    • LGPL(宽松的 GPL)
      • LGPL是GNU Lesser General Public License的缩写,也是由GNU组织发布的开源许可证,它相对于GPL更为宽松,允许非GPL许可的程序链接到LGPL库中。
    • BSD 和 Apache (ASF)
      • BSD许可证是一种开源许可证,具有较为宽松的条款,允许用户自由使用、修改和分发软件,同时也允许将BSD许可的代码用于闭源项目中。
      • Apache许可证是由Apache软件基金会发布的开源许可证,与BSD许可证类似,也具有较为灵活的条款。
  • 在开源领域,开源是一种开发模式,而不是一种商业模式。开源意味着源代码是公开的,任何人都可以查看、修改和分发。但是,开源并不意味着免费,开源软件也可以以商业模式进行销售和支持。
  • 程序组成部分:二进制指令+配置文件+库文件+帮助文档
    • 程序的组成部分通常包括二进制指令、配置文件、库文件和帮助文档等。开源软件通常会提供源代码以及编译好的二进制文件,使得用户可以自由地使用、修改和分发软件。

12、Linux 发行版:(商业和社区)

  • Linux发行版是基于Linux内核的操作系统的不同版本,它们提供了各种不同的软件包和工具,以满足用户的不同需求。Linux发行版可以分为商业版和社区版两种类型。

  • RPM系(redhat (RHEL)、Fedora、centos、rocky、suse)

    • RPM系列发行版以Red Hat Linux为基础,采用了RPM包管理系统,其中一些主要的发行版包括:

      • Red Hat Enterprise Linux(RHEL):商业版,专为企业用户提供的稳定、安全的操作系统,具有长期支持(Long Term Support,LTS)。
      • Fedora:社区版,由社区开发和维护,作为Red Hat的实验平台,提供了最新的软件和技术。
      • CentOS:社区版,是RHEL的克隆版本,与RHEL兼容但没有商业支持,适合个人用户和中小型企业。
      • Rocky Linux:社区版,由CentOS的前开发人员创建,旨在提供一个免费的、企业级的替代品。
  • Debian系(ubuntu、knopix、无商业公司支持)

    • Debian系列发行版以Debian为基础,采用了Debian软件包管理系统,其中一些主要的发行版包括:

      • Ubuntu:社区版,基于Debian的Linux发行版,广泛用于桌面和服务器,提供了易用性和稳定性。
      • Knoppix:社区版,基于Debian的Live CD/USB系统,用于快速启动和系统恢复。
      • 无商业公司支持的Debian系统:一些没有商业支持的Debian衍生版,由社区维护和支持。
  • 其他系(包括BSD 系统):gentoo、archlinux、BSD、kali

    • 其他系列发行版包括了不同的基于Linux内核或BSD内核的操作系统,其中一些主要的发行版包括:

      • Gentoo:社区版,以源代码为基础的Linux发行版,强调灵活性和定制性。
      • Arch Linux:社区版,专注于简洁、轻量级和滚动更新的Linux发行版。
      • BSD系统:基于BSD内核的操作系统,如FreeBSD、OpenBSD和NetBSD,提供了可靠性和安全性。
  • 版本号:

    • RHEL:5.x、6.x、7.x

    • CENTOS:5.x、6.x、7.x、8.x(已淘汰)

    • Rocky:8.5、9.0、9.1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/930957
推荐阅读
相关标签
  

闽ICP备14008679号