从0开始学习Linux——Linux简介&安装

当你踏入编程的世界,你正在探索无限可能性的大门。编程是一种让想象力和创造力得以实现的神奇工具,它赋予你创造数字世界的力量。尽管开始时可能会觉得困惑和挑战重重,但坚持学习编程将为你打开新的视野,让你看到问题的解决方案更有力。每一行代码都是解决难题的线索,每一个程序都是你思维的延伸。

在编程的旅程中,每一次尝试都是一次成长,每一次失败都是一个宝贵的教训。不要害怕犯错,因为错误是学习的必经之路。相信自己的能力,相信你的潜力。无论你来自何方,无论你的背景如何,编程都是一项开放的技能,让你不断挑战自己,迸发无限创意。

坚持不懈,持之以恒,你将在编程的世界中找到乐趣和成就感。不断学习,不断实践,你会发现编程不仅是一种技能,更是一种思维方式,一种解决问题的方式。勇敢地探索未知,勇敢地迎接挑战,因为编程让你成为数字时代的创造者和改变者。愿你在编程的征途中收获知识、智慧和不竭的激情!

温馨提示本篇文章字数超过14000字!

 一、操作系统

在这里我们简单介绍一下操作系统。

1.1 操作系统的定义

我们知道计算机是一台机器,这台机器由很多硬件组成例如cpu、内存等,如果用户直接在计算器上去操作管理这些硬件就很麻烦,因此我们可以使用一个中间平台去管理它们,当然这个中间平台可以是可视化的,用户只需要在中间平台通过鼠标或者键盘的操作就可以完成对计算机硬件的管理,同样用户也可以通过这个中间平台在计算机上运行和管理各种软件,那么这个中间平台就是操作系统。

操作系统是管理计算机硬件和软件资源的系统软件。它提供了一个用户和计算机硬件之间的接口,负责协调和控制计算机的所有活动。其主要功能包括进程管理、内存管理、文件系统管理和设备管理。

目前流行的服务器和PC端操作系统有:

1、服务器端操作系统:

  • Linux(如Ubuntu Server、CentOS、Red Hat Enterprise Linux)
  • Windows Server
  • UNIX(如AIX、HP-UX)
  • FreeBSD
  • SUSE Linux Enterprise Server

2、PC端操作系统:

  • Windows(如Windows 10、Windows 11)
  • macOS(如macOS Ventura、macOS Sonoma)
  • Linux(如Ubuntu、Fedora、Debian)
  • Chrome OS(由Google开发,适用于Chromebooks)

上述我们了解了操作系统的概念以及常见的操作系统,对于操作系统的重要性不言而喻,具体体现如下所示:

  • 资源管理:高效地分配和管理计算机资源,如CPU、内存和存储设备。
  • 用户接口:为用户提供简便的操作环境,使得软件和硬件的操作变得直观和易于使用。
  • 程序执行:负责加载和执行程序,确保程序运行的稳定性和效率。
  • 安全性:保护系统免受未授权访问和恶意软件的威胁,确保数据的安全和完整性。
  • 多任务处理:支持同时运行多个程序,提高系统的使用效率和响应能力。

1.2 操作系统基本功能

操作系统可以实现对进程管理、内存管理、文件系统、设备管理等,如下所示:

1、进程管理:

  • 进程的创建、调度和终止:操作系统负责管理程序的执行过程,创建进程并分配资源,根据调度算法决定哪个进程可以使用CPU。
  • 进程同步和通信:在多进程环境中,操作系统负责进程间的同步和通信,确保共享资源的安全访问。
  • 进程状态管理:管理进程的不同状态,如就绪、运行、阻塞等,让系统在适当时刻切换进程。

2、内存管理:

  • 内存分配与回收:操作系统负责分配内存给正在运行的进程,并在完成后回收内存,防止内存泄漏。
  • 虚拟内存管理:通过使用页表和交换空间,操作系统能使每个进程感觉到拥有完整的内存空间,即使实际物理内存不足。
  • 内存保护:确保不同进程之间的内存隔离,避免相互干扰,保障系统的稳定性和安全性。

3、文件系统:

  • 文件的创建、读取、写入和删除:操作系统提供API来操作文件,使用户能够方便地管理数据。
  • 目录管理:维护文件和目录的结构,支持层次化的文件组织,方便用户查找和管理文件。
  • 权限管理:控制用户对文件的访问权限,确保数据的安全性。

4、设备管理:

  • 驱动程序接口:操作系统通过设备驱动程序与硬件设备进行通信,抽象出统一的接口,简化设备操作。
  • 设备调度:合理调度I/O设备,优化设备的使用效率,减少等待时间。
  • 中断处理:处理来自设备的中断请求,保证系统能够及时响应外部事件。

5、安全管理:

  • 用户认证和授权:控制用户访问系统资源,通过用户名和密码等方式验证用户身份。
  • 数据加密和防病毒:保护数据,防止未授权访问,确保数据安全和隐私。

 1.3 历史发展

操作系统的历史与发展可以追溯到计算机产生的早期阶段。以下是操作系统的历史及其主要发展阶段:

1、早期阶段(1940 - 1950):

  • 在早期的计算机系统中,程序员直接控制硬件进行操作,没有操作系统的概念。
  • 第一个被认为是现代操作系统的系统是康奈尔大学的A-0系统,开发于1950年。

2、批处理系统(1960 - 1970):

  • 随着计算机的发展,批处理系统逐渐出现,允许一次处理多个作业,提高了计算机的利用率。
  • IBM的OS/360是早期成功的批处理操作系统之一,影响深远。

3、分时系统与多道程序设计(1960 - 1970):

  • 分时系统允许多用户同时访问系统,提供交互式的计算环境。
  • 多道程序设计技术允许多个程序同时加载到内存中,实现了对多个任务的并发执行。
  • UNIX是在这个时期诞生的开放源代码操作系统。

4、个人计算机时代(1980- 1990):

  • 随着个人计算机的普及,出现了各种PC端操作系统,如微软的MS-DOS、Windows、以及苹果的Macintosh系统。
  • GUI(Graphical User Interface)的引入使得操作系统更加人性化。

5、网络时代与服务器端系统(1990s - 现在):

  • 互联网的普及带来了对服务器端系统的需求,出现了各种支持网络服务的操作系统,如Linux、Windows Server和UNIX的衍生版本。
  • 虚拟化技术的发展对操作系统提出了新的挑战和需求。

6、移动设备时代(2000s - 现在):

  • 随着智能手机和平板电脑的普及,移动操作系统如Android和iOS逐渐崭露头角,成为主流的移动设备操作系统。

1.4 操作系统类型

操作系统根据其功能、应用场景和设计理念的不同,主要可以分为以下几种类型:

1、批处理系统

  • 特点:
    • 主要用于处理大量的作业,作业通常被预先编排并批量处理。
    • 用户将作业提交给系统,系统将这些作业排队处理,而用户通常不会在处理过程中与计算机交互。
    • 通过最大化计算资源的利用率来提高效率。
  • 代表性系统
    • IBM的OS/360
    • 早期的UNIVAC系统

2、分时系统

  • 特点
    • 支持多个用户同时通过终端访问计算机系统,每个用户可以与系统进行交互。
    • 系统通过时间片轮转机制分配CPU时间,使得每个用户感觉到计算机是专门为其服务的。
    • 提高了计算机资源的利用率,并支持多任务处理。
  • 代表性系统
    • UNIX
    • MULTICS(Multiplexed Information and Computing Service)

3. 实时系统

  • 特点
    • 专门设计用于处理实时任务,必须在严格的时间限制内完成任务,以确保系统能够在预定时间内响应事件。
    • 主要用于需要及时响应的应用场景,如工业控制、航天、医疗设备等。
    • 实时系统分为硬实时(必须严格遵守时间限制)和软实时(时间限制相对宽松)。
  • 代表性系统
    • VxWorks
    • QNX
    • RTEMS(Real-Time Executive for Multiprocessor Systems)

4. 网络操作系统

  • 特点
    • 专注于网络功能的操作系统,支持网络资源的管理、共享和通信。
    • 提供网络服务和协议,支持多台计算机和设备之间的互联。
  • 代表性系统
    • Windows Server
    • Linux服务器版本(如Ubuntu Server、CentOS)

5. 嵌入式系统(Embedded Operating Systems)

  • 特点
    • 设计用于特定硬件设备,通常具有较小的资源占用和实时性能要求。
    • 通常用于嵌入式设备,如家电、汽车、消费电子产品等。
  • 代表性系统
    • Embedded Linux
    • Windows Embedded
    • FreeRTOS

6. 桌面操作系统

  • 特点
    • 主要用于个人计算机,提供图形用户界面(GUI)和多任务处理能力。
    • 适用于日常计算任务,如文档编辑、网页浏览、娱乐等。
  • 代表性系统
    • Microsoft Windows(如Windows 10、Windows 11)
    • macOS(如macOS Ventura)
    • Linux桌面版本(如Ubuntu、Fedora)

7. 移动操作系统

  • 特点
    • 设计用于移动设备,如智能手机和平板电脑。
    • 强调触摸屏操作、应用程序管理和电池优化。
  • 代表性系统
    • Android
    • iOS

 8、常见操作系统

上述我们了解了操作系统的概念以及各类型的操作,下面我们对常用的三种操作系统即Windows、Linux、MacOS做一个介绍和区分:

1、Windows

  • 开发者:微软公司(Microsoft)

  • 首次发布:1985年

  • 主要版本

    • Windows 10:在2015年发布,是一个广泛使用的操作系统,提供了改进的用户界面、虚拟桌面、Cortana语音助手等功能。
    • Windows 11:在2021年发布,引入了全新的界面设计、更好的窗口管理和多任务处理功能,并强化了对游戏和安全性的支持。
  • 特点

    • 图形用户界面(GUI):提供易于使用的图形界面,支持触摸、键盘和鼠标操作。
    • 兼容性:广泛兼容各种硬件和软件应用。
    • 安全性:引入了各种安全功能,如Windows Defender、防火墙、BitLocker加密等。
    • 支持广泛的应用程序:从办公软件到专业设计软件,Windows平台支持大量的应用程序。
    • 市场占有率:是全球使用最广泛的桌面操作系统。
  • 适用场景:个人计算机、商业工作站、游戏机等。

2. Linux

  • 开发者:Linus Torvalds(最初),但其内核和操作系统是开源的,由全球的开发者社区共同维护。

  • 首次发布:1991年

  • 主要版本(发行版)

    • Ubuntu:用户友好,广泛用于个人计算机和服务器。提供了稳定的性能和大量的软件包。
    • Fedora:由红帽公司(Red Hat)赞助,强调最新技术的集成,适合开发人员和高级用户。
    • CentOS:之前是Red Hat Enterprise Linux的免费版本,旨在提供企业级的稳定性,现已转型为CentOS Stream。
    • Debian:稳定且可靠,广泛用于服务器和嵌入式系统。
  • 特点

    • 开源:源代码公开,用户可以自由查看、修改和分发。
    • 可定制性:可以根据需求定制系统,选择不同的桌面环境和软件。
    • 稳定性和安全性:被广泛应用于服务器、超级计算机和嵌入式系统,提供了强大的稳定性和安全性。
    • 多用户支持:支持多用户和多任务处理,适合服务器和开发环境。
    • 社区支持:有强大的开源社区提供支持和开发。
  • 适用场景:服务器、嵌入式系统、开发环境、个人计算机等。

3. macOS

  • 开发者:苹果公司(Apple Inc.)

  • 首次发布:2001年(原名Mac OS X)

  • 主要版本

    • macOS Ventura:最新版本,继续优化了用户界面、性能和安全性。
    • macOS Monterey:引入了新的功能,如FaceTime增强、Focus模式和新的隐私保护措施。
  • 特点

    • 图形用户界面(GUI):拥有直观且美观的用户界面,注重用户体验和设计美学。
    • 集成生态:与苹果硬件(如MacBook、iMac)和其他苹果设备(如iPhone、iPad)深度集成,支持跨设备协作。
    • 安全性和隐私:提供强大的安全性功能,包括Gatekeeper、FileVault加密和App Sandbox等。
    • 应用商店:通过Mac App Store提供各种应用程序和软件。
    • 稳定性:基于UNIX,提供稳定和可靠的性能。
  • 适用场景:个人计算机、创意工作站(如视频编辑、图形设计)、开发环境等。

二、Unix

我们在了解学习Linxu之前,先来学习和了解Unix系统,因为Unix是Linux的前身。

UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。

肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)

Multics 工程自1965年始,它最初设计目标是提供比当时的系统更强大的功能,但是它的复杂性和高成本限制了其广泛应用,最后还是以失败收场,不过Multics对操作系统的发展产生了重大影响,

以肯•汤普森为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。

1971年推出了Unix的第一个正式发布版本,虽然它的功能简单但奠定了系统的基础。它包括基本的多任务和多用户支持。

在1975年推出了Unix V6,它在各个大学和研究机构中得到广泛采用。这一版本对后来的Unix变种和系统产生了深远的影响。

在1979年推出了Unix V6,这个版本进一步完善了系统,添加了许多功能,如管道(pipes)、重定向和支持更多的硬件。V7是许多后来的Unix变种的基础。

这里对Unix再补充一下:
自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中汇编语言不再是主宰。
到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。

上述所说的C语言其实最初是叫B语言,后面改名为C语言。

Unix系统可以分为以下几类:

1. 商业Unix系统

  • System V:由AT&T开发,是商业Unix的一个主要版本,后续版本包括System V Release 2、3、4及其增强版。
  • AIX:IBM的Unix版本,主要用于其Power系列服务器。
  • HP-UX:惠普的Unix版本,主要用于其HP服务器。
  • Solaris:原由Sun Microsystems开发,现由Oracle维护,广泛用于企业级服务器和工作站。

2. BSD Unix

  • FreeBSD:一个开源Unix变种,强调性能和高级网络功能。
  • OpenBSD:注重安全性和代码审查的开源Unix变种。
  • NetBSD:以高度的可移植性为特点的开源Unix变种。

3. 类Unix系统

  • Linux:开源的类Unix系统,由Linus Torvalds于1991年发布,广泛应用于服务器、桌面和嵌入式设备。
  • macOS:苹果公司开发的操作系统,基于BSD Unix,结合了图形用户界面和Unix命令行功能。

4. 历史Unix版本

  • First Edition Unix(1971年):最初的Unix版本,简单的多任务系统。
  • BSD Unix(1980年代):加州大学伯克利分校开发的Unix变种,增加了虚拟内存和网络功能。
  • Xenix:微软曾经开发的Unix版本,主要用于个人计算机。

三、Linux

3.1 Linux简介

Linux形象 

 Linux是一种开源的类Unix操作系统,由Linus Torvalds于1991年首次发布。它基于Unix的设计理念,但不同于传统Unix系统,Linux是自由软件,允许用户查看、修改和分发源代码。Linux广泛应用于服务器、桌面计算机、嵌入式设备和移动设备等多个领域,其稳定性、灵活性和安全性使其成为许多现代计算环境的首选操作系统。

Linus Torvalds (林纳斯·托瓦尔兹)

3.2 Linux发展历史

1. 早期背景

  • 1969年:Unix操作系统由Ken Thompson、Dennis Ritchie和其他贝尔实验室的工程师开发。Unix系统的设计思想对后来的类Unix操作系统产生了深远的影响。

  • 1983年:Richard Stallman发起了GNU项目,旨在创建一个完全自由的软件操作系统。这一项目的核心目标是创建一个与Unix兼容的自由操作系统,包括一个自由的内核和一整套自由的软件工具。

 Richard Stallman(理查德·斯托曼)

Richard Stallman(理查德·斯托曼)是自由软件运动的创始人之一,GNU项目的发起人,以及自由软件基金会(FSF)的创始人。他于1983年发起GNU项目,旨在创建一个完全自由的操作系统,以替代封闭源代码的软件。Stallman提出了“自由软件”四大自由概念:使用、研究、修改和分享软件的自由,这些理念被定义在GNU通用公共许可证(GPL)中,旨在确保软件的自由性和用户的权利。软件自由不仅关注技术问题,还涉及用户的权利、伦理和社会影响。

2. Linux的诞生

  • 1991年:Linus Torvalds在赫尔辛基大学的一个新闻组中首次发布了Linux内核的初始版本(0.01)。他当时在使用一个自制的操作系统,最初的版本是基于Minix(一个教育用途的Unix操作系统)的代码。Linux内核是基于GNU公共许可证(GPL)发布的,允许用户自由使用、修改和分发代码。

  • 1992年:Linux内核正式从一个实验项目发展为一个成熟的操作系统。Linux 0.12是第一个发布版本,它包括了许多重要的功能改进和稳定性增强。

3. 发展和成熟

  • 1994年:Linux 1.0发布,这是Linux的第一个正式稳定版本,标志着Linux内核的初步成熟。Linus Torvalds继续开发内核,并逐渐吸引了越来越多的开发者参与。

  • 1996年:Linux 2.0发布,增加了对多处理器系统的支持,并进一步提高了系统的性能和稳定性。

  • 1999年:Linux 2.2发布,进一步改进了多处理器支持和文件系统功能。同时,越来越多的商业公司开始采用Linux系统,标志着Linux的广泛应用开始成形。

4. 广泛应用和标准化

  • 2001年:Linux 2.4发布,增加了对新硬件的支持,如USB设备,改进了文件系统和网络功能。Linux开始在服务器市场中占据重要地位。

  • 2003年:Linux 2.6发布,提供了进一步的性能改进、扩展性增强以及对更多硬件的支持。这一版本的发布标志着Linux进入了一个成熟阶段。

  • 2007年:Ubuntu成为一个流行的Linux发行版,重点是用户友好性和易用性,为Linux的桌面应用带来了广泛的关注。

5. 现代发展

  • 2011年:Linux 3.0发布,虽然版本号发生变化,但核心开发团队继续致力于性能优化和新功能的集成。

  • 2015年:Linux 4.0发布,加入了许多新特性和改进,包括支持实时补丁和改进的硬件支持。

  • 2020年:Linux 5.0发布,带来了进一步的性能提升和对新硬件的支持,包括更多的驱动程序和优化。

  • 2022年及以后:Linux继续发展,发布了多个新版本(如5.10、5.15、6.x),每个版本都在稳定性、安全性、硬件支持和新特性上进行改进。Linux内核和各类发行版(如Ubuntu、Fedora、Debian等)持续获得更新和支持,广泛应用于服务器、桌面、嵌入式系统和云计算等领域。

Linux的发展不仅依赖于Linus Torvalds和核心开发团队,还受益于全球开源社区的贡献。许多开发者、公司和组织参与了Linux内核的开发和维护。众多公司提供了商业支持和增强功能,推动了Linux在企业市场中的广泛应用。

3.3 Linux的开源

Linux的开源性是其成功和广泛应用的关键因素之一。开源性意味着Linux的源代码是公开的,任何人都可以查看、修改、共享和分发这些代码。

1. 源代码公开

Linux内核的源代码可以从官方内核网站以及其他代码托管平台如GitHub上获取。任何人都可以下载这些源代码,并对其进行审查、学习和修改。这样做的好处包括:

  • 透明性:用户和开发者可以检查代码的实现,确保没有隐藏的恶意代码或安全漏洞。
  • 学习机会:开发者可以通过阅读和修改源代码来学习操作系统的设计和实现细节。

2. 许可协议

Linux内核是基于**GNU通用公共许可证(GPL)**的,特别是GPLv2(版本2)。这个许可证确保了以下几点:

  • 自由使用:任何人可以自由地使用Linux系统,无论是个人使用还是商业用途。
  • 开源共享:修改后的代码必须以相同的许可证发布。这意味着任何基于Linux的衍生项目必须保持开源,并且也要允许其他人自由使用、修改和分发这些衍生代码。
  • 贡献回馈:修改或扩展Linux内核的开发者必须将他们的改动回馈给社区,这有助于维护和提升整个系统的质量。

3. 社区贡献

Linux的开发和维护是一个由全球开源社区驱动的过程。这个社区包括:

  • 个人开发者:来自世界各地的程序员和爱好者,他们对内核进行修复、功能增强和优化。
  • 公司和组织:许多科技公司和组织也参与了Linux的开发,如IBM、Intel、Google和Red Hat等,这些公司不仅贡献代码,还在开发、测试和维护方面投入资源。
  • 开源项目:许多开源项目和工具都与Linux内核紧密集成,进一步推动了Linux的发展。

4. 版本控制和分发

Linux内核使用分布式版本控制系统(如Git)来管理源代码的变更。这样做的优点包括:

  • 协作:开发者可以在本地进行开发和测试,然后将他们的改动提交到中央代码库,这样其他开发者也可以查看和合并这些改动。
  • 分发:发行版(如Ubuntu、Fedora、Debian等)基于Linux内核创建,他们提供了不同的功能集和用户界面。用户可以选择适合自己需求的发行版,并自由地获取和安装。

补充:Git也是由 Linus Torvalds开发。

Git形象 

 Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,用于管理 Linux 内核的开发。Git 的主要目标是提供高效、可靠的版本控制,同时支持分布式开发。

Git 可以用于记录文件的变更历史,使开发者能够追踪代码的演变、管理不同版本的代码、协作开发以及恢复到之前的版本。它支持多种操作,如提交更改、合并分支、查看历史记录等。

上述我们说过Linux是开源的,大家都可以参与到Linux的开发。在2005年之前,Linux 内核项目使用的是 BitKeeper 版本控制系统。虽然 BitKeeper 功能强大,但它是一个商业软件,且其使用协议和许可条件逐渐引发了社区的不满。此外,BitKeeper 的专有性质与自由软件社区的开放理念不符。Linus Torvalds 决定创建一个新的版本控制系统,以解决 BitKeeper 带来的问题并满足 Linux 内核开发的需要。也就是Git。

5. 社区治理和开发模型

Linux内核的开发采用开放的治理模型,其中包括:

  • 维护者和贡献者:内核的开发和维护由一组核心维护者(Maintainers)领导,他们负责审查和合并代码,确保质量和一致性。Linus Torvalds作为内核的创始人和主要维护者,最终决定是否接受提交的代码。
  • 邮件列表和开发讨论:开发者通过邮件列表进行讨论,提出建议和修复,社区成员可以参与到讨论中,对内核的设计和实现提出意见。

3.4 Linux结构

Linux由内核层、shell层、应用层组成:

  • 内核层:提供系统的核心功能和资源管理。
  • Shell 层:提供用户与系统交互的界面和脚本功能。
  • 应用层:包含各种用户级应用程序和工具,直接面向最终用户。

1. 内核层

内核是 Linux 操作系统的核心部分,负责管理硬件资源并提供系统调用接口,支持用户空间程序的运行。

组成部分:

  • 进程管理:负责进程的创建、调度和终止,包括任务切换和进程间通信。
  • 内存管理:管理系统内存,包括虚拟内存和物理内存的分配、分页和交换。
  • 文件系统:提供文件存储、访问和管理功能,支持各种文件系统类型(如 ext4、XFS)。
  • 设备驱动:与硬件设备进行交互,管理设备输入输出。
  • 网络管理:处理网络协议、数据包传输和网络接口。
  • 系统调用接口:用户空间程序与内核进行交互的桥梁,通过系统调用提供对内核服务的访问。

2. Shell 层

Shell 是一个用户界面,允许用户与操作系统进行交互。它既可以是命令行界面,也可以是脚本执行环境。

组成部分:

  • 命令行界面 (CLI):如 Bash(Bourne Again Shell)、Zsh(Z Shell)、Fish(Friendly Interactive Shell)。用户通过输入命令来执行操作、启动程序或脚本。
  • 脚本语言:Shell 脚本用于自动化任务、批处理操作和系统管理。Shell 提供了编程语言的功能,如变量、条件语句和循环。
  • 图形界面:一些 Shell 提供图形界面(如 GNOME Terminal、KDE Konsole),允许用户通过图形化窗口进行操作。

3. 应用层

应用层包含所有的用户级应用程序和工具,直接面向最终用户。它们运行在用户空间中,利用内核提供的服务和系统调用接口。

组成部分:

  • 桌面环境:如 GNOME、KDE Plasma、Xfce,提供图形用户界面和窗口管理。
  • 应用程序:包括 web 浏览器(如 Firefox、Chrome)、文本编辑器(如 Vim、Emacs)、办公软件(如 LibreOffice)、媒体播放器(如 VLC)。
  • 系统工具:如网络工具(ping、netstat)、文件管理工具(ls、cp)、压缩工具(gzip、tar)。
  • 开发工具:如编译器(gcc)、集成开发环境(IDE,如 Visual Studio Code、Eclipse)。

 3.5 Linux优缺点

3.5.1 优点

  • 稳定可靠
  • 免费开源
  • 安全
  • 高度可定制
  • 多用户&多任务
  • 强大网络功能
  • 广泛硬件支持

3.5.2 缺点

  • 软件兼容
  • 学习成本
  • 硬件兼容

3.6 Linux发行版本

1. 桌面发行版

  • Ubuntu

    • 特点:易于使用,广泛支持,社区活跃,适合新手和开发者。
    • 版本:包括标准版本(Ubuntu)、长周期支持版本(LTS),以及基于 Ubuntu 的变种,如 Xubuntu、Kubuntu 和 Lubuntu。

 Ubuntu提供了很友好的用户界面,因此使用成本较低。

  • Fedora

    • 特点:前沿技术,稳定的开发版,适合开发者和技术爱好者。由 Red Hat 赞助和支持。
    • 版本:Fedora Workstation(桌面版)、Fedora Server(服务器版)、Fedora Silverblue(容器化和不可变系统)。
  • Linux Mint

    • 特点:基于 Ubuntu,注重用户友好性和易用性,提供多种桌面环境(Cinnamon、MATE、Xfce)。
    • 版本:包括不同的桌面环境版本。
  • Manjaro

    • 特点:基于 Arch Linux,但提供更简单的安装过程和用户友好的配置。
    • 版本:包括 Xfce、KDE 和 GNOME 桌面环境版本。

2. 服务器发行版

  • Debian

    • 特点:稳定、可靠,广泛用于服务器环境。具有长周期的支持。
    • 版本:包括稳定版(Stable)、测试版(Testing)和不稳定版(Unstable)。
  • CentOS(已被 CentOS Stream 取代):

    • 特点:免费版的 Red Hat Enterprise Linux(RHEL),现在以 CentOS Stream 的形式存在,作为 RHEL 的滚动发布版。
    • 版本:CentOS Stream 是目前的主要版本。

这次主要使用Centos作为演示,并且国内大部分都使用Centos。 

  • Red Hat Enterprise Linux (RHEL)

    • 特点:企业级支持和服务,商业发行版。适用于关键业务应用和服务器环境。
    • 版本:提供长期支持和稳定的更新。

Red Hat(红帽公司)创建于 1993 年,是目前世界上资深的 Linux 厂商,也是最获认可的 Linux 品牌。

Red Hat 公司的产品主要包括 RHEL(Red Hat Enterprise Linux,收费版本)和 CentOS(RHEL 的社区克隆版本,免费版本)、Fedora Core(由 Red Hat 桌面版发展而来,免费版本)。

Red Hat 是在我国国内使用人群最多的 Linux 版本。

  • SUSE Linux Enterprise Server (SLES)

    • 特点:企业级发行版,注重稳定性和支持,提供商业支持和服务。
    • 版本:包括基础版本和其他附加功能版本。

3. 轻量级发行版

  • Lubuntu

    • 特点:基于 Ubuntu,使用轻量级的 LXQt 桌面环境,适合老旧或资源有限的硬件。
    • 版本:提供轻量级桌面体验。
  • Puppy Linux

    • 特点:非常小巧且快速,适合旧电脑和资源有限的设备。
    • 版本:包括不同的变种,根据不同的基系统构建。
  • Arch Linux

    • 特点:面向高级用户,提供最小化安装和极高的自定义能力。以滚动更新模式提供最新的软件。
    • 版本:没有传统的发行版版本,每次更新都包含最新的软件和特性。

4. 专用用途发行版

  • Kali Linux

    • 特点:专为渗透测试和网络安全设计,预装大量的安全工具。
    • 版本:持续更新,提供各种网络安全工具。
  • Tails

    • 特点:注重隐私和匿名性,通过 TOR 网络进行通信,主要用于保护用户隐私。
    • 版本:基于 Debian,主要用于临时操作系统环境。

5. 教育和科研发行版

  • Raspberry Pi OS(前身为 Raspbian):
    • 特点:为 Raspberry Pi 设计,适用于教育和轻量级计算任务。
    • 版本:包括基于桌面的图形界面版本和轻量级版本。

3.7 Linxu的安装

我们若要安装属于自己的Linux系统,那么我们就需要准备好计算机/虚拟机、Linux镜像文件,也就是说Linux既可以直接安装在计算机上面,也可以使用虚拟机去安装,我们这里使用虚拟机去安装。

3.7.1 虚拟机

虚拟机(Virtual Machine,VM)是计算机系统的一个抽象层,模拟出一个完整的计算机系统,使得多个虚拟计算机可以在单一物理计算机上运行。虚拟机可以运行操作系统和应用程序,就像在独立的物理机器上运行一样。

虚拟机中的虚拟化技术使得一个物理计算机(主机)能够创建和管理多个虚拟计算机(虚拟机)。每个虚拟机都拥有自己的操作系统和应用程序。

虚拟机组成如下所示:

  • 虚拟硬件:虚拟机模拟出虚拟的硬件组件,包括处理器、内存、硬盘、网络接口等,这些虚拟硬件让虚拟机能够运行操作系统和应用程序。

  • 虚拟磁盘:虚拟机的硬盘通常存储在主机的文件中,称为虚拟磁盘文件。虚拟磁盘文件模拟实际硬盘的功能,存储虚拟机的操作系统和数据。

  • 虚拟机操作系统:每个虚拟机都可以安装和运行独立的操作系统,如 Windows、Linux、macOS 等。

  • 虚拟化工具:用于管理虚拟机的工具和界面,例如 VMware vSphere、VirtualBox 管理器等。

常见的虚拟机版本如下所示:

  • VirtualBox:开源、跨平台,适合个人和开发环境。
  • VMware Workstation:功能强大,适用于开发和测试,支持 Windows 和 Linux。
  • VMware Fusion:专为 Mac 设计,提供类似于 VMware Workstation 的功能。
  • Parallels Desktop:Mac 上的虚拟化解决方案,支持 Windows 和其他操作系统。
  • Hyper-V:微软的虚拟化技术,集成在 Windows 10 Pro 和 Windows Server 中。

这里我们使用VMware Workstation为例。

首先我们需要去VMware Workstation官网或者电脑中的应用商店中将VMware Workstation虚拟机给下载下来。

Desktop Hypervisor Solutions | VMwareVMware Workstation and VMware Fusion desktop hypervisors are the industry leaders in local virtualization. Learn how VMware’s local virtualization solutions provide an easier way to build, test and deliver any app for any device or cloud.icon-default.png?t=N7T8https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion

对于VMware Workstation根据上述提供的链接地址下载下来安装即可,这里安装过程省略。

3.7.2 Centos

CentOS(Community ENTerprise Operating System)是一个基于开源的企业级操作系统,源自于红帽企业 Linux(RHEL)的源码。CentOS 的目标是为用户提供一个稳定、可靠且免费的操作系统,适合服务器和工作站的使用。

CentOS 最初是由 CentOS 项目团队创建的,作为 Red Hat Enterprise Linux (RHEL) 的一个免费版本。它使用 RHEL 的源代码构建,但是移除了 Red Hat 的商标和标识,并将其作为开源软件进行发布。

CentOS 的主要目的是为企业和开发者提供一个与 RHEL 兼容的操作系统,而不需要支付 RHEL 的订阅费用。它被广泛用于 Web 服务器、数据库服务器和其他企业级应用。

CentOS 的版本通常对应于 RHEL 的主要版本。每个 CentOS 版本会在 RHEL 的新版本发布后,经过一定的时间进行构建和发布。CentOS 版本通常采用类似于 CentOS 7.xCentOS 8.x 的命名规则。

注意:2020年12月,CentOS 项目宣布将 CentOS 8 的生命周期缩短至 2021 年 12 月,之后 CentOS 8 将不再提供更新。取而代之的是 CentOS Stream,一个滚动更新版本,与 RHEL 的下一个主要版本进行对接。也就是说现在我们在官网上已经下载不了Centos8了,现在我们主要是使用Centos7。

对于Centos下载一方面我们可以去官网下载另外一方面我们可以使用镜像下载(由于文件太大推荐使用镜像下载):

  • 官网地址:https://www.centos.org/
  • 阿里镜像站:https://mirrors.aliyun.com/centos
  • 清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/centos/
  • CentOS搜狐镜像:http://mirrors.sohu.com/centos/
  • CentOS网易镜像:http://mirrors.163.com/centos/
  • CentOS北京理工大学镜像:http://mirror.bit.edu.cn/centos/

对于Centos的安装、注意事项以及相关配置将在下一个章节进行详细的讲解。

我们下期见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值