跳至内容

Linux 操作系统简介

在本章中,您将了解 GNU/Linux 发行版。


目标:在本章中,您将学会如何

✔ 描述操作系统的功能和可能的架构。
✔ 回顾 UNIX 和 GNU/Linux 的历史。
✔ 为您的需求选择合适的 Linux 发行版。
✔ 解释自由和开源软件的理念。
✔ 了解 Shell 的用途。

🏁 概述Linux发行版

知识⭐
难度⭐

阅读时间:10 分钟


什么是操作系统?

Linux、UNIX、BSD、Windows 和 MacOS 都是操作系统

摘要

操作系统是一组管理计算机可用资源的程序

作为资源管理的一部分,操作系统需要

  • 管理物理虚拟内存。

    • 物理内存由 RAM 条和处理器缓存内存组成,用于程序执行。

    • 虚拟内存是硬盘上的一个位置(交换分区),它允许卸载物理内存并在计算机断电时保存系统的当前状态。

  • 拦截外设访问。软件很少能直接访问硬件(除非是出于特定需求的显卡)。

  • 为应用程序提供适当的任务管理。操作系统负责调度进程以占用处理器。

  • 保护文件免受未经授权的访问。

  • 收集有关正在使用或正在进行的程序的信息

Operation of an operating system

UNIX - GNU/Linux 概论

历史

UNIX

  • 1964 - 1968:为麻省理工学院、贝尔实验室 (AT&T) 和通用电气开发了 MULTICS (MULTiplexed Information and Computing Service)。

  • 1969 - 1971:在贝尔(1969 年)和通用电气退出该项目后,两位开发人员 Ken Thompson 和 Dennis Ritchie(后来 Brian Kernighan 加入)认为 MULTICS 过于复杂,开始开发 UNIX (UNiplexed Information and Computing Service)。虽然它最初是用汇编语言创建的,但 UNIX 的创建者最终开发了 B 语言,然后是 C 语言(1971 年),并完全重写了 UNIX。由于它是在 1970 年开发的,UNIX/Linux 系统的开始时间(纪元)被设定在 1970 年 1 月 1 日。

C 语言至今仍是最流行的编程语言之一。作为一种接近硬件的低级语言,它允许将操作系统适配到任何拥有 C 编译器的机器架构。

UNIX 是一个开放且不断发展的操作系统,在计算历史中发挥了重要作用。它是许多其他系统(如 Linux、BSD、MacOS 等)的基础。

UNIX 至今仍具相关性(HP-UX、AIX、Solaris 等)。

GNU 项目

  • 1984:Richard Matthew Stallman 发起了 GNU (GNU's Not Unix) 项目,旨在建立一个自由开放的 Unix 系统,其中最重要的工具包括:gcc 编译器、bash Shell、Emacs 编辑器等。GNU 是一个类 Unix 操作系统。GNU 的开发始于 1984 年 1 月,被称为 GNU 项目。GNU 的许多程序都是在 GNU 项目的名义下发布的;我们称之为 GNU 包。

  • 1990:GNU 的内核 GNU Hurd 于 1990 年启动(在 Linux 启动之前)。

MINIX

  • 1987:Andrew S. Tanenbaum 开发了 MINIX,一个简化的 UNIX,用于以简单的方式教授操作系统。Tanenbaum 先生提供了他操作系统的源代码。

Linux

  • 1991:芬兰学生Linus Torvalds 创建了一个在他个人电脑上运行的操作系统,并将其命名为 Linux。他在 Usenet 讨论论坛上发布了他的第一个版本,称为 0.02,其他开发人员帮助他改进了他的系统。Linux 这个词是创始人名字 Linus 和 UNIX 的文字游戏。

  • 1993:Debian 发行版创建。Debian 是一个非商业性的、社区驱动的发行版。最初是为了在服务器上使用而开发的,它非常适合此角色;然而,它是一个通用的系统,也可用于个人电脑。Debian 是许多其他发行版(如 Mint 或 Ubuntu)的基础。

  • 1994:由 Red Hat 公司创建了商业发行版 Red Hat,该公司是 GNU/Linux 操作系统的领先发行商。Red Hat 支持社区版本 Fedora,直到最近还支持免费发行版 CentOS。

  • 1997:KDE 桌面环境创建。它基于 Qt 组件库和 C++ 开发语言。

  • 1999:GNOME 桌面环境创建。它基于 GTK+ 组件库。

  • 2002:Arch 发行版创建。其特点是提供滚动发布(持续更新)。

  • 2004:Canonical 公司(Mark Shuttleworth)创建了 Ubuntu。它基于 Debian,但包含自由软件和专有软件。

  • 2021:基于 Red Hat 发行版创建了 Rocky Linux。

信息

名称争议:尽管人们习惯于口头上称 Linux 为操作系统,但严格来说,Linux 只是一个内核。我们不能忘记 GNU 项目在开源事业上的开发和贡献,所以!我更喜欢称之为 GNU/Linux 操作系统。

市场份额

尽管 Linux 非常普遍,但对于普通大众来说,它仍然相对不为人知。Linux 隐藏在智能手机电视互联网盒子等设备中。世界上近70% 的网站都托管在 Linux 或 UNIX 服务器上!

Linux 装备了大约3% 的个人电脑,但超过82% 的智能手机。例如,Android 操作系统使用 Linux 内核。

自 2018 年以来,Linux 装备了 100% 的全球 500 强超级计算机。超级计算机是一种旨在在设计时利用已知技术(尤其是在计算速度方面)实现最高可能性能的计算机。

架构设计

  • 内核是第一个软件组件。

    • 它是 Linux 系统的核心。
    • 它管理系统的硬件资源。
    • 其他软件组件必须通过它来访问硬件。
  • Shell 是一个解释用户命令并确保其执行的实用程序。

    • 主要 Shell:Bourne shell, C shell, Korn shell, and Bourne-Again shell (bash)。
  • 应用程序是用户程序,包括但不限于

    • 互联网浏览器
    • 文字处理器
    • 电子表格

多任务

Linux 属于分时操作系统家族。它在多个程序之间分配处理时间,并对用户透明地在程序之间切换。这意味着

  • 同时执行多个程序。
  • 调度程序分配 CPU 时间。
  • 减少了因应用程序失败而引起的问题。
  • 运行程序过多时性能下降。

多用户

MULTICS 的目的是允许用户从多个终端(屏幕和键盘)在一台计算机上工作(当时计算机非常昂贵)。受到这个操作系统的启发,Linux 保留了同时独立与多个用户工作的能力,每个用户都有自己的用户账户,拥有内存空间以及对文件和软件的访问权限。

多处理器

Linux 可以与多处理器计算机或多核处理器协同工作。

跨平台

Linux 用一种高级语言编写,可以在编译时适应不同的平台。这使得它可以在以下设备上运行

  • 家用电脑(PC 和笔记本电脑)
  • 服务器(数据和应用程序)
  • 便携式计算机(智能手机和平板电脑)
  • 嵌入式系统(车载电脑)
  • 网络有源设备(路由器和交换机)
  • 家用电器(电视和冰箱)

开放

Linux 基于公认的标准,如POSIXTCP/IPNFSSamba,这些标准允许它与其他应用系统共享数据和服务。

UNIX/Linux 理念

  • 将一切视为文件。
  • 重视可移植性。
  • 做好一件事,并把它做好。
  • KISS:保持简单,愚蠢。
  • "UNIX 是一个简单的操作系统,但你需要成为一个天才才能理解它的简单性。" (Dennis Ritchie)
  • "Unix 是用户友好的。只是它并不随意对待用户。" (Steven King)

GNU/Linux 发行版

Linux 发行版是围绕 Linux 内核组装的一致的软件集合,可与必要的组件一起安装和管理(安装、删除、配置)。有社团社区发行版(Debian、Rocky)和商业发行版(Red Hat、Ubuntu)。

每个发行版都提供一个或多个桌面环境,并提供一套预装软件和额外的软件库。配置选项(例如内核或服务选项)因发行版而异。

这一原则使得发行版能够迎合初学者(Ubuntu、Linux Mint...)或为高级用户提供完全可定制的(Gentoo、Arch);发行版还可以更适合服务器(Debian、Red Hat)或工作站(Fedora)。

桌面环境

有很多图形环境,如GNOMEKDELXDEXFCE 等。总有一款适合您,它们的人体工程学足以与微软或苹果系统相媲美。

那么,为什么对 Linux 的热情如此之低呢,尽管这个系统几乎没有病毒?这是否是因为许多编辑器(Adobe)和制造商(Nvidia)不参与自由游戏,并且不提供其软件或驱动程序的 GNU/Linux 版本?也许是对改变的恐惧,或者是在哪里购买 Linux 电脑的困难,或者 Linux 下发布的电子游戏太少。至少最后一个借口很快就会成为过去,随着 Steam 游戏引擎 for Linux 的出现。

GNOME Desktop

GNOME 3 桌面环境不再使用桌面概念,而是使用 GNOME Shell(不要与命令行 Shell 混淆)。它兼作桌面、仪表板、通知区域和窗口选择器。GNOME 桌面环境基于GTK+ 组件库。

KDE Desktop

KDE 桌面环境基于Qt 组件库。它传统上推荐给熟悉 Windows 环境的用户。

Tux - The Linux mascot

自由 / 开源

Microsoft 或 Mac 操作系统的用户必须购买许可证才能使用该系统。该许可证有成本,尽管通常是透明的(许可证价格包含在计算机价格中)。

自由软件运动在GNU/Linux 世界中提供了大部分免费发行版。

自由不等于免费!

开源:源代码是公开的,因此可以在某些条件下进行查阅和修改。

自由软件必然是开源的,但反之则不然,因为开源软件与 GPL 许可证提供的自由是不同的。

GNU GPL (GNU 通用公共许可证)

GPL 保证了软件作者的知识产权,但允许第三方修改、重新分发或转售软件,前提是软件附带源代码。GPL 是源自GNU (GNU is Not UNIX) 项目的许可证,该项目在创建 Linux 的过程中发挥了重要作用。

它意味着

  • 为了任何目的运行程序的自由。
  • 研究程序工作原理并根据您的需求进行调整的自由。
  • 重新分发副本的自由。
  • 改进程序并将其改进发布以造福整个社区的自由。

另一方面,即使是 GPL 许可的产品也可以有成本。这不是产品本身,而是保证开发团队将继续对其进行开发、纠错,甚至为用户提供支持

应用领域

Linux 发行版在以下方面表现出色:

  • 服务器:HTTP、电子邮件、群件、文件共享等。
  • 安全:网关、防火墙、路由器、代理等。
  • 中央计算机:银行、保险、工业等。
  • 嵌入式系统:路由器、互联网盒子、SmartTV 等。

Linux 是托管数据库或网站、或作为邮件服务器、DNS 或防火墙的合适选择。总之,Linux 几乎无所不能,这解释了特定发行版数量的原因。

Shell

概述

Shell,也称为命令行界面,允许用户向操作系统发送命令。由于图形界面的实现,它如今不太显眼,但在 Linux 系统上仍然是特权方式,因为并非所有 Linux 系统都有图形界面,并且其服务并不总是有设置界面。

它提供了一种真正的编程语言,包括经典的结构(循环、分支)和常见的构成(变量、参数传递、子程序)。它允许创建脚本来自动化某些操作(备份、用户创建、系统监控等)。

平台上或根据用户的偏好,有几种类型的 Shell 可供选择和配置。例如:

  • sh,POSIX 标准 Shell
  • csh,C 语言面向命令的 Shell
  • bash,Bourne-Again Shell,Linux Shell

功能

  • 命令执行(检查给定的命令并执行它)。
  • 输入/输出重定向(将数据返回到文件而不是写入屏幕)。
  • 连接进程(管理用户连接)。
  • 解释型编程语言(允许创建脚本)。
  • 环境变量(在运行期间访问特定于系统的​​信息)。

原理

Operating principle of the SHELL

检验您的知识

✔ 操作系统是一组用于管理计算机可用资源的程序

  • 正确
  • 错误

✔ 操作系统对于以下操作是必需的

  • 管理物理内存和虚拟内存
  • 允许直接访问外设
  • 将任务管理外包给处理器
  • 收集有关已使用或正在使用的程序的信息

✔ 在这些人物中,哪些人参与了 UNIX 的开发

  • Linus Torvalds
  • Ken Thompson
  • Lionel Richie
  • Brian Kernighan
  • Andrew Stuart Tanenbaum

✔ Linux 内核的创造者 Linus Torvalds 的原国籍是

  • 瑞典
  • 芬兰
  • 挪威
  • 佛兰德
  • 法国

✔ 以下哪个发行版是最古老的

  • Debian
  • Slackware
  • Red Hat
  • Arch

✔ Linux 内核是

  • 多任务
  • 多用户
  • 多处理器
  • 多核
  • 跨平台
  • 开放

✔ 自由软件是否一定是开源的?

  • 正确
  • 错误

✔ 开源软件是否一定是自由的?

  • 正确
  • 错误

✔ 以下哪个不是 Shell

  • Jason
  • Jason-Bourne shell (jbsh)
  • Bourne-Again shell (bash)
  • C shell (csh)
  • Korn shell (ksh)