Linux 基础笔记

115 阅读3分钟

Linux基础

学习 Linux 的价值

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

计算机硬件

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

  • 控制器
  • 运算器
  • 存储器单元
  • 输入单元
  • 输出单元

1681983406860.png

计算机操作系统

操作系统(Operating System,OS)

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

起到承上启下的作用,承上:可以在操作系统之上运行一些应用程序,启下:可以在操作系统之下跟系统硬件进行交互

管理计算机资源:

  • 处理器管理
  • 存储器管理
  • 设备管理
  • 文件管理

提供用户接口:

  • 命令接口
  • 图形用户接口
  • 程序接口

操作系统启动流程

1681983844638.png

Linux 版本

  • 内核版本:由 Linux 作者本人进行维护,提供进程管理、内存管理、文件系统管理以及硬件资源管理等一系列的底层能力
  • 发行版本如:centos、debian Linux、Ubuntu(补一句,Ubuntu yyds)

查看 Linux 系统内核版本

通过 uname -a | cat /proc/version 命令查询 Linux 内核版本

1681984331220.png

通过 cat /etc/os-release 命令查询 Linux 发行版本

1681984437378.png

Linux 系统应用领域

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

Linux 系统结构

Linux 基本组成

一般有 4 个主要部分:

  • 内核
  • shell
  • 文件系统
  • 应用程序

1681984521732.png

Linux 进程管理

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

进程调度

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

简介

进程调度是指操作系统按某种策略或规则选择进程占用 CPU 进行运行的过程

进程生命周期

1681997976802.png

  • R (TASK_RUNNING),可执行状态

  • S (TASK_INTERRUPTIBLE),可中断的睡眠状态

  • D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态

  • T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态

  • Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程称为僵尸进程

  • X (TASK_DEAD - EXIT_DEAD),退出状态,进程即将被销毁

进程调度原则

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

  • 每个进程有近乎相等的执行时间

  • 对于逻辑 CPU 而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复

    • CPU 会生成一个调度队列,进程会放入这个队列中,当 CPU 开始进程调度的时候,会从第一个开始取,直到队列中所有的进程被取出,CPU 又会从队列的第一个位置开始取出,这样好处保证了每个进程都被调用了,而不会因为优先级的问题,导致低优先级的进程不被调用
  • 进程执行消耗时间和进程量成正比

进程的系统调用

内核空间(Kernal Space):系统内核运行的空间

用户空间(User Space):应用程序运行的空间

文件系统

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

1681998977971.jpg