计算机硬件
计算机有五大基本单元:控制器,运算器,存储器单元,输入单元,输出单元
计算机操作系统(最大的软件,OS)
承上启下的作用 管理和控制计算机系统的硬件和软件资源,用于在用户与系统硬件之间传递信息
操作系统启动流程
UEFI是BIOS(无法引导2.2T以上的磁盘)的优化,是系统启动速度提升
Linux系统概述
发展简史
1.1969年,Unix 诞生于贝尔实验室 2.1984年,贝尔实验室将 Unix 商业化 下发Minix操作系统用于教学并开放源码3.1984年,Tanenbaum tailman 发起自由软件(FSF)与 GNU 项目,起 GPL(通用公共许可)4.1984年,Richard M.St协议 5.1991年,Linus Torvalds受 Minix 影响实现初版的 Linux 内核 6.1992年,Linux 内核以 GPL协议发行 V1.0
Linux版本
查看Linux的内核版本
uname -a cat /proc/version Linux系统应用领域
IT服务器
嵌入式和智能设备
个人办公设备
学术研究和软件开发
Linux基本组成
内核 底层核心能力
shell 命令解释器
文件系统 负责把用户的文件存在内存上
应用程序
Linux体系结构
内核是硬件和软件之间的中间层
内核是一个资源管理程序
内核提供一组面向系统的命令
Linux系统结构--进程管理
进程是正在执行的一个程序或命令
进程有自己的地址空间,占用一定的系统资源
一个CPU核同一时间只能运行一个进程
进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别---------利用父进程创建一个模板创建子进程 Linux是一个树形结构
查看进程信息
ps -ef | grep nginx 查看nginx进程 top -p xxxx 查看某个进程
系统中运行的程序远远大于CPU 的核数,那 Linux系统是如何实现同时运行这么多程序的?
通过进程调度!
进程调度
进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程-----CPU将其运行时间进行了切分
进程调度的原则
一个CPU 核同一时间只能运行一个进程
每个进程有近乎相等的执行时间
对于逻辑 CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
进程执行消耗时间和进程量成正比
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),退出状态,进程即将被销毁
进程的系统调用
内核空间:系统内核运行的空间
用户空间:应用程序运行的空间
Linux系统结构--文件系统
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
Linux中一切皆文件
Linux文件系统采用树状的目录结构,最上层是/(根)目录
Linux 有这么多不同的文件系统,如何实现对用户提供统一调用接口的?
采用虚拟文件系统
·对应用层提供一个标准的文件操作接口
·对文件系统提供一个标准的文件接入接口
文件读取流程
DMA可以直接与磁盘交流
缓冲区的作用,减少对系统的调用次数,提高性能
Linux系统结构--用户权限
用户账户
普通用户账户:在系统中进行普通作业
超级用户账户(root):在系统中对普通用户和整个系统进行管理
组账户
标准组:可以容纳多个用户私有组:只有用户自己
文件权限
所有者:文件的所有者
所在组:文件的所有者所在的组
其他人:除文件所有者及所在组外的其他人
每个用户对文件都用不同的权限 读(R),写(W),执行(X)
基础操作
Linux软件包管理
软件包
通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库
软件包管理
底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF 类似做菜找了个厨师 帮我们完成一些底层依赖等等