Linux 基础 | 青训营笔记

62 阅读3分钟
  • 计算机由五大基本单元组成

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

  • 操作系统启动流程

image-20230414151629767.png

  • Linux基本组成

    • 内核
    • shell
    • 文件系统
    • 应用程序
  • Linux体系结构

image-20230414152311361.png

*   Linux分为用户空间和内核空间,用户空间包含应用程序以及 GNU C Library (标准调用库,简写 glibc),内核空间分为系统调用层、内核以及平台架构相关的代码。内核模块运行于内核空间,应用程序运行于用户空间。

*   从安全的角度看,把整个系统分为两部分,即使应用程序崩溃了,也不会影响到整个系统的安全。

    从权限划分来看,内核程序拥有系统最高级别的权限,可以访问系统所有资源。应用程序运行于用户空间,拥有较低级别的权限,只能访问它们可以访问的资源,不能直接访问内存和硬件设备。

*   应用程序如何进行系统调用?

    应用程序运行于用户空间,处于用户态,通过 glibc 发起系统调用,程序会从用户态切换到内核态,由内核代表程序运行于内核空间,当程序进入内核态的时候就相当于程序拥有了系统的最高级别权限,可以与硬件设备通信,运行结束后又切换回用户态。

进程管理

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

进程调度

  • 进程状态

    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而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复

    进程执行消耗时间和进程量成正比

Linux 文件系统

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

Linux 中一切皆文件:Linux 中 所有程序都是以文件的形式储存,这样的好处就是统一了进程调度的方式。

虚拟文件系统(VFS)

对应用层提供一个标准的文件操作接口

对文件系统提供一个标准的文件接入接口

文件读取流程

image-20230414161052751.png

用户权限

  • 用户账户

    普通用户账户:在系统中进行普通作业

    超级用户账户:在系统中对普通用户和整个系统进行管理

  • 组账户

    标准组:可以容纳多个用户

    私有组:只有用户自己

软件包

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

  • 软件包管理

    底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM

    上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF