操作系统和Linux基础 | 青训营笔记

57 阅读4分钟

操作系统

Linux版本

Linux分为如下两种

  • 内核版本(提供基础能力)
  • 发行版本(Linux内核 + 常用软件)

这里例举一些Linux发行版本

Debian系列
  • Debian
  • Ubuntu
Red Hat系列
  • Centos
  • Fedora
  • RHEL
Slackware系列
  • SUSE
国产系列
  • 龙芯
  • 鲲鹏
  • 飞腾

查看Linux内核版本

# 方法1
uname -a

# 方法2
cat /proc/version

查看Linux发行版本

cat /etc/os-release

Linux系统一般由4个部分组成

  • 内核、shell、文件系统、应用程序 image.png

Linux系统结构

进程管理

本次以nginx程序为演示进行学校

  • 进程是正在执行的一个程序或命令
  • 进程有自己的地址空间,占用一定的系统资源
  • 一个CPU核同一时间只能运行一个IE进程
  • 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
相关命令
# 查看启动的nginx进程
ps -ef | grep nginx
# 输出:root   93824   1 0  16:42 ? 00:00:00 nginx: master process /usr/sbin/nginx
# 这里的93824就是nginx的进程ID
# 查看进程的详细信息
top -p 93824
# PID USER  PR  NI VIRT  RES  SHR  S  %CPU %MEM  TIME+   COMMAND
# 1   root  20  0  32632 5248 4572 S  0.0  0.0   0:00.02 nginx
# 这里的
# 关闭指定进程
kill 93824
# 全部进程动态实时视图
top

进程调度

系统运行的程序远远大于CPU的核数,那Linux系统是如何实现同时运行这么多程序的?答:通过进程调度

  • 进程调度整体流程 image.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而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
    • 进程执行消耗时间和进程量成正比

文件系统(Linux中一切皆文件)

  • 虚拟文件系统(VFS)

Linux有多种文件系统,通过虚拟文件系统(VFS)实现对用户提供统一调用接口的

  1. 对应用层提供一个标准的文件操作接口
  2. 对文件系统提供一个标准的文件接入接口

image.png

  • 查看文件系统类型

    image.png

  • 文件读取流程

image.png

用户权限

如果一个普通用户误操作删除了html文件,导致网站崩溃,这显然是不合理的;我们先要了解用户账户的概念

  • 用户账户

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

    • 标准组:可以容纳多个用户
    • 私有组:只有用户自己
查看用户信息的命令

image.png

关于文件权限需要先理解的概念
  • 所有者:文件的所有者
  • 所在组:文件的所有者所在的组
  • 其他人:除文件所有者及所在组外的其他人

每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(X) image.png

软件包管理

先理解这两个概念

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

image.png

其它

  • 问题1:程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?
    graph TD
    Start --> BIOS --> BIOS自检 --> Bootloader --> OS
    Start --> UEFI --> Bootloader --> OS

个人总结

  • 操作系统是计算机系统中的核心软件,负责管理和控制计算机的硬件资源,并提供给用户和应用程序一个接口以操作和利用这些资源。
  • 操作系统在开机时通过启动程序来执行
  • 操作系统包括内核、shell、文件系统和应用程序等组件,通过进程管理、进程调度和文件系统实现任务的执行和资源的管理。
  • Linux是一种开源的操作系统,分为内核版本和发行版本两种形式。常见的Linux发行版本包括Debian系列(如Debian、Ubuntu)、Red Hat系列(如Centos、Fedora、RHEL)、Slackware系列(如SUSE)以及国产系列(如龙芯、鲲鹏、飞腾)。
  • 用户权限用于控制对文件和系统的访问权限。
  • 软件包管理工具用于安装、删除和管理软件包。

今天学习的内容偏理论一些,有一部分没有看懂