Linux基础 | 青训营笔记

72 阅读6分钟

课程介绍 学习Linux的价值

  • Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
  • 公司内部服务(TCE、Faas、SCM)统一使用Debian Linux系统
  • 熟悉Linux基础指令,熟练运维前端常用服务(Nginx,Node.js)
  • 加深对操作系统概念和实现的理解,夯实基础知识

课程内容: 01 计算机硬件 02 计算机操作系统 03 Linux系统概览 04 Linux系统结构 05 Linux系统软件包管理器

1、计算机硬件

计算机由五大基本单元组成

  • 控制器(协调和组织计算机中其他部件进行工作)
  • 运算器(进行算术和逻辑运算)
  • 存储器单元(分为内存和外存,外存:磁盘、光驱)
  • 输入单元(比如:鼠标、键盘)
  • 输出单元(比如:显示器、音响)

常规意义上,可以认为控制器和运算器共同组成了CPU单元

image.png

2、计算机操作系统

操作系统(Operating System,OS)

  • 管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
  • 承上启下的作用,连接应用程序和系统硬件

image.png

问题思考 程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?

操作系统启动流程:

image.png

  • BIOS和UEFI固化在主板上的一段程序,在开机的时候就能够执行和解析这段程序
  • Bootloader:操作系统引导程序
  • 区别在于:UEFI是优化之后的BIOS;BIOS有自检,这样UEFI更快;BIOS默认会和MBR这种磁盘分区进行配合,无法启动大容量的磁盘,UEFI配合GPT分区模式

3、Linux系统概览

Linux发展简史:

image.png

Linux版本:

  • 内核版本(分为进程管理、内存管理、文件系统管理、硬件资源管理)
  • 发行版本(Linux内核+常用软件=Linux发行版本)

image.png

查看Linux系统内核版本

image.png

image.png

Linux系统应用领域:

  • IT服务器(操作系统、虚拟化和云计算)
  • 嵌入式和智能设备
  • 个人办公桌面
  • 学术研究与软件研发

4、Linux系统结构

Linux基本组成

Linux系统一般有4个主要部分:

  • 内核
  • shell(命令解释器)
  • 文件系统
  • 应用程序

image.png

Linux体系结构:

  • 用户空间(用户运行的应用程序和封装好的系统调用库)
  • 内核空间(系统调用、内核、平台架构相关的代码) 目的:隔离的;内核空间权限较高,用户空间拥有较低级别的权限,linux通过权限的划分来保证资源分配和管理的可控和安全

image.png

应用程序怎么和硬件设备之间进行通信呢?比如:应用程序要发起一次IO请求

  • 涉及应用程序上下文的切换
  • 应用程序默认运行在用户空间,处于用户态;当用户发起IO请求的时候,底层就是发起一个系统调用,程序会从用户态切换到内核态,运行在内核空间,当程序进入内核态的时候就拥有了最高的权限,就有了和硬件通信的能力,本次任务完成之后,程序又会从内核态切换为用户态,这就是一个系统调用

内核总结:

  • 内核是硬件与软件之间的中间层
  • 内核是一个资源管理程序
  • 内核提供一组面向系统的命令

image.png

进程之间可以通过管道进行通信 命令行接口或者输入,通过tty交给进程

1)进程管理

  • 进程是正在执行的一个程序或命令
  • 进程有自己的地址空间,占用一定的系统资源
  • 一个CPU核同一时间只能运行一个进程
  • 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别

image.png

进程的结构是一个树形的

image.png

  • S:休眠
  • NI:进程调度优先级,当发生资源抢占的时候
  • top:类似于资源管理器

问题思考:系统中运行的程序远远大于CPU的核数,那 Linux系统是如何实现同时运行这么多程序的?

  • 进程调度

进程调度:

image.png

  • 僵尸进程,进程僵死
  • T状态:调试程序,debugger工具引起的

进程调度的原则:

  • 一个CPU核同一时间只能运行一个进程
  • 每个进程有近乎相等的执行时间
  • 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
  • 进程执行消耗时间和进程量成正比

进程的系统调用

image.png

2)文件系统

文件系统

image.png

  • 都是文件的好处:保证操作的统一,接口调用的统一

image.png

问题思考:Linux有这么多不同的文件系统,如何实现对用户提供统一调用接口的?

  • 虚拟文件系统

虚拟文件系统:

  • 做了一层抽象,加了一个中间层

image.png

查看文件系统类型:

image.png

文件基本操作:

image.png

文件读取流程:

image.png

  • DMA:直接存储访问,向磁盘发送文件读取的请求;可以直接和磁盘交互,获取磁盘的数据,将磁盘的数据写到内核缓冲区

3)用户权限

用户账户: 用户账户

  • 普通用户账户:在系统中进行普通作业
  • 超级用户账户:在系统中对普通用户和整个系统进行管理 组账户
  • 标准组:可以容纳多个用户
  • 私有组:只有用户自己

查看用户信息:

image.png

文件权限: 文件权限关于用户有三个概念:

  • 所有者:文件的所有者
  • 所在组:文件的所有者所在的组
  • 其他人:除文件所有者及所在组外的其他人

每个用户对于文件都有不同权限,包括读(R)、写( w)、执行(×)

image.png

用户权限操作:

image.png

5、Linux系统软件包管理器

软件包

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

软件包管理

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

image.png

  • dnf是yum的升级版

image.png

image.png