Linux 基础 | 青训营笔记

14 阅读5分钟

家人们,我来交作业啦! 以下徐里桐老师主讲的Linux 基础课程的笔记。 通过这个课程,可以了解的内容有:

01 计算机硬件

02 计算机操作系统

03 Linux 系统概览

04 Linux 系统结构

05 Linux 系统软件包管理器

在开始之前,我们得先了解,为什么作为前端开发,也需要了学习Linux知识呢?

学习 Linux 的价值主要有以下几点:

· Linux 是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
· 公司内部服务(TCE、FaaS、SCM)统一使用 Debian Linux 系统熟悉 
· Linux 基础指令,熟练运维前端常用服务 (Nginx,Node.js)
· 加深对操作系统概念和实现的理解,夯实基础知识
值得注意的是:Linux 选择企鹅图案作标志,其含意也是表明:开源的 Linux,为全人类共同所有,任何公司无权将其私有。

01 计算机硬件

计算机由五大基本单元组成:控制器、 运算器、 存储器单元、 输入单元、 输出单元

这五大单元的工作联系如下图所示: image.png

02 计算机操作系统(承上启下)

内涵:管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息

承上启下:

承上:即在操作系统之上,能运用一些程序

启下:能通过操作系统与硬件进行交互

计算机操作系统提供的两大功能如下图:

image.png

而操作系统的启动流程则为:

  1. 启动 BIOS。进行硬件自检和初始化。
  2. 系统引导。找到操作系统。
  3. 启动系统。
  4. 初始化系统。 image.png

03 Linux 系统概览

image.png

04 Linux 系统结构

Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。

内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。

Linux体系结构(主要分为用户空间和内核空间)

image.png

内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。

进程管理:

概念:

进程是正在执行的一个程序或命令

进程有自己的地址空间,占用一定的系统资源

一个CPU 核同一时间只能运行一个进程

进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别

进程实际是某特定应用程序的一个运行实体。

在 Linux 系统中,能够同时运行多个进程,Linux 通过在短的时间间隔内轮流运行这些进程而实现“多任务”。这一短的时间间隔称为“时间片”,让进程轮流运行的方法称为“进程调度” ,完成调度的程序称为调度程序。

文件系统:

文件系统是操作系统中负责管理持久数据的子系统,
负责把用户的文件存到磁盘硬件中,持久化的保存文件。

Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。

Linux 将新的文件系统通过一个称为“挂装”或“挂上”的操作将其挂装到某个目录上,从而让不同的文件系统结合成为一个整体。

Linux 操作系统的一个重要特点是它支持许多不同类型的文件系统。

Linux 中最普遍使用的文件系统是 Ext2,它也是 Linux 土生土长的文件系统。但 Linux 也能够支持 FAT、VFAT、FAT32、MINIX 等不同类型的文件系统,从而可以方便地和其它操作系统交换数据。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统。

虚拟文件系统(VirtualFileSystem,VFS):隐藏了各种硬件的具体细节,把文件系统操作和不同文件系统的具体实现细节分离了开来,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

虚拟文件系统(VFS)是 Linux 内核中非常有用的一个方面,因为它为文件系统提供了一个通用的接口抽象。VFS 在 SCI 和内核所支持的文件系统之间提供了一个交换层。即VFS 在用户和文件系统之间提供了一个交换层。

image.png

(查看文件系统类型) image.png

文件权限:

image.png

05 Linux 系统软件包管理器

软件包

    通常指的是一个应用程序,它可以是一个 GUI 应用程序、
命令行工具或(其他软件程序需要的)软件库

软件包管理

底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF

包管理器是一种允许用户在操作系统上安装、删除、升级、配置和管理软件包的工具。它可以是像软件中心这样的图形应用程序,也可以是像apt-get这样的命令行工具。

一些主流的软件包管理工具:

image.png