操作系统
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、文件系统、应用程序
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系统是如何实现同时运行这么多程序的?答:通过进程调度
-
进程调度整体流程
-
每个阶段对应的进程状态
- 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)实现对用户提供统一调用接口的
- 对应用层提供一个标准的文件操作接口
- 对文件系统提供一个标准的文件接入接口
-
查看文件系统类型
-
文件读取流程
用户权限
如果一个普通用户误操作删除了html文件,导致网站崩溃,这显然是不合理的;我们先要了解用户账户的概念
-
用户账户
- 普通用户账户:在系统中进行普通作业
- 超级用户账户:在系统中对普通用户和整个系统进行管理
-
组账户
- 标准组:可以容纳多个用户
- 私有组:只有用户自己
查看用户信息的命令
关于文件权限需要先理解的概念
- 所有者:文件的所有者
- 所在组:文件的所有者所在的组
- 其他人:除文件所有者及所在组外的其他人
每个用户对于文件都有不同权限,包括读(R)、写(W)、执行(X)
软件包管理
先理解这两个概念
- 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
- 上层工具:主要用户数据的搜索任务和依赖解析任务,APT,YUM,DNF
其它
- 问题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)以及国产系列(如龙芯、鲲鹏、飞腾)。
- 用户权限用于控制对文件和系统的访问权限。
- 软件包管理工具用于安装、删除和管理软件包。
今天学习的内容偏理论一些,有一部分没有看懂