==================================================================================================================================内核: 是操作系统的和核心
内核的实现(使用):通过系统调用接口来实现与用户的交互
内核的五大组件:
内存管理(mm)-----包含硬件相关和硬件无关两部分:
硬件相关:为内存管理硬件提供相关接口;
硬件无关:提供进程的映射和逻辑内存的对换(程序通过虚拟内存地址访问数据,运行时程序给CPU逻辑地址,经过转化变成物理地址,再去访问)
协调多个进程共享内存;当前用的程序在内存,不用的在磁盘,必要的时候负责内存在磁盘和内存间的交换;
虚拟文件系统(vfs)------因为文件系统和内核相互独立,vfs本质是操作系统和文件系统的通讯接口。包含数十种文件系统,为所有设备提供了统一的接口。包含逻辑 文件系统和设备驱动程序 (Linux文件系统中代表性的有ex2,虚拟文件系统,proc文件系统等)
进程管理(sched)------控制协调进程对于CPU的使用,基于优先级。
进程间通信(ipc)-----支持进程间各种通信机制
网络接口(.net)------提供对网络存取和网络硬件的支持。包括 网络协议 和 网络驱动程序
根文件系统(rootfs):只有内核本身单独是无法工作的,内核和文件系统本身是相互独立的东西,所以,还需要挂载文件系统(主要是etc目录下的配置文件、/bin /sbin等 目录下的shell命令,还有/lib目录下的库文件等)才行。而根文件系统是文件系统的爹,所以必须第一个挂载根文件系统,即给根文件系统划分一个 路径。
==================================================================================================================================
CPU:由控制器,逻辑计算器,寄存器组成;主要负责执行,时间控制,流程:取值->译码->执行
缓存:位于CPU之内的硬件,用来解决CPU和内存速度差别的问题,加快系统的速度;
离核心越近,缓存层级越小,速度越快
虚拟内存:windows下的内存方法,将内存中的一部分存在了硬盘上,扩大了内存的容量。
寄存器:CPU内的元件,读写速度非常快。由于内存离CPU太远了,寄存器离CPU更近(主要是离运算器和控制器近)。
3种: 通用寄存器,程序计数器(指向指令寄存器,保存下一条指令地址),指令寄存器(储存下一条指令具体内容,直到执行完都在这里)
从速度上来说: 寄存器>缓存>内存>硬盘
关系上来说:寄存器是在CPU里面,最靠近运算器和控制器的,速度最快;缓存也是在CPU里面。
内存从硬盘里面拷贝数据,CPU把数据从内存加载到缓存,再从缓存里面拿数据到寄存器进行运算,最后将结果经由缓存放回内存。
PS:如果缓存中没有CPU要的数据,CPU就会去内存中找,并将找到的数据放到缓存;
如果CPU需要把数据写回内存,也需要先写到缓存。
缓存命中:当应用程序发出请求的时候,CPU先去缓存里面找,如果找到了需要的数据,则缓存命中;
如果未能找到需要的数据,则去内存中找。(CPU会在最近的内存,也就是主缓存中去查找)