计算机硬件
计算机由五大基本单元组成 (冯诺依曼结构体系)
- 控制器 ( 协调和指挥计算器中其他部件进行工作 )
- 运算器 ( 进行算数和逻辑运算 )
- 存储器单元 ( 内存+外存(磁盘 光驱))
- 输入单元 ( 鼠标、 键盘)
- 输出单元 (显示器、音响)
常规意义上 ( 控制器和运算器共同组成一个CPU单元 )
当用户进行操作时,通过输入设备向操作系统输入一些指令,操作系统通过条用存储器、运算器、控制器三者相互配合得出一个结果,然后通过输出设备返回给用户
计算机操作系统
操作系统 ( Operating System ,OS)
管理和控制计算机系统中的硬件和软件资源,用于在用户与系统封硬件之间传递信息 (承上启下)
管理计算机资源
- 处理器管理
- 存储器管理
- 设备管理
- 文件管理
提供用户接口
- 命令接口
- 图像用户接口
- 程序接口
程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?
BIOS 、UEFI (固化在主板上的一道程序) 让计算机开机的时候就能够解析这道程序
Bootloader (操作系统引导程序) 通过Bootloader去加载和操作操作系统程序
UEFI可以看作是BIOS升级优化的版本 (少了个BIOS自健,减少开机事件)
UEFI 可操作磁盘空间大 BIOS可操作磁盘空间少
Linux系统概览
Linux版本
- 内核版本
- 发行版本
内核版本就是由linux作者去维护的版本 发行版本,在内核版本内核上+常用软件 (ubuntu)
查看Linux系统内核版本
- uname
- cat /proc/version
查看Linux系统版本(发行版本)
- cat /etc/os-release
Linux系统应用领域
- IT 服务器(操作系统、虚拟化和云计算)
- 入式和智能设备
- 个人办公桌面
- 学术研究与软件研发
Linux系统结构
Linux基本组成
Linux系统一般由4个主要部分组成
- 内核 (提供操作系统的一些底层能力,内存管理,进程管理,硬件资源的管理)
- shell (命令解释器)
- 文件系统 (负责管理持久数据的子系统,负责把用户文件存在磁盘硬件中)
- 应用程序 (Vim,vscode)
Linux体系结构
- 用户空间 ( 应用程序,C Library( 封装好的系统标准调用库 ))
- 内核空间 ( 系统调用,内核,平台架构的相关代码)
安全方面讲,用户空间崩溃了,内核空间也不会崩溃)
权限角度讲:
- 内核程序运行于内核空间,拥有最高的权限,比如访问硬件设备的权限和对系统资源管理的权限。
- 应用程序运行于用户空间,拥有较低的权限,不能直接访问内存和硬件设备 (资源分配和管理的可控)
应用程序如何和硬件设备通信?
应用程序上下文切换,应用程序默认存于用户空间,称为用户态
发起IO请求就是通过C Library发起了一次系统调用,
然后程序会从用户态转换到内核态,就拥有了权限,就拥有了和硬件设备通信的能力
内核:
-
内核是硬件与软件之间的中间层
实现了硬件与软件的交互 -
内核是一个资源管理程序
进程管理,内存管理,网络对战 -
内核提供一组面向系统的命令
外部的应用程序可以通过这个命令直接和内核交互
进程管理
- 进程是正在执行的一个程序或命令
- 进程有自己的的地址空间,占用一定的系统资源
- 一个CPU核同一事件只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别 通过fork父进程拉起一个子进程,通过父进程模板创建子进程,不是通过接口创建出一个全新的进程
进程启动后拉取1进程和2进程
1进程是用户进程的父进程
2进程是内核进程的父进程
以1或2进程模板建造出来的
如何看linux程序对应的是哪个进程
93824 是pid nginx进程的启动路径
查看启动的nginx进程
ps -ef | grep nginx
查看某个进程
top -p 93824
关闭指定的进程
kill 93824
全部进程动态实时视图
top
里面第二行的S就是status
S里面的S就是休眠状态
NI就是NICE值,就是进程的优先级