文章目录
Linux
Linux内核
定义
内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
功能
- 内存管理
追踪记录有多少内存存储了什么以及存储在哪里
- 进程管理
确定哪些进程可以使用中央处理器(CPU)、何时使用以及持续多长时间
- 设备驱动程序
充当硬件与进程之间的调解程序/解释程序
- 系统调用和安全防护
从流程接受服务请求
态
- 内核态
内核态其实从本质上说就是内核,它是一种特殊的软件程序,控制计算机的硬件资源,例如协调CPU资源,分配内存资源,并且提供稳定的环境供应用程序运行。
系统调用:
系统调用是操作系统的最小功能单位。根据不同的应用场景,不同的Linux发行版本提供的系统调用数量也不尽相同,大致在240-350之间。这些系统调用组成了用户态跟内核态交互的基本接口。
- 用户态
用户态就是提供应用程序运行的空间,为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就叫系统调用。(用户态调用内核态的接口)
用户态到内核态切换
- 系统调用:
系统调用本身就是中断,但是是软件中断,跟硬中断不同。
- 异常
如果当前进程运行在用户态,如果这个时候发生了异常事件,就会触发切换。例如:缺页异常(中断)。
- 外设中断
当外设完成用户的请求时,会向CPU发送中断信号。
总的来说都是中断
Linux负载
定义
负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态。
系统的负载采用的是指数移动平均
Linux文件存储
链接
分类
- 软链接
软链接相当于建立了一个新的快捷方式文件,该文件有自己的名称和inode以及物理存储的文件数据,文件数据里记录着如何跳转的设置数据,访问该快捷文件会被重新定向到原始文件,删除原始文件,软链文件失效;
- 硬链接
硬链接相当于为当前文件名对应的文件再建立了一个文件别名,别名对应的inode以及物理数据都是一样的,一旦建立,我们甚至根本无法区分谁是原始文件的原始名称,删除文件的其中一个名称,文件不会丢失,除非把所有的名称都删除。
图示
区别
- 软链接可以为文件和目录(哪怕是不存在的)创建链接;硬链接只能为文件创建链接。
- 软链接可以跨文件系统;硬链接必须是同一个文件系统
- 硬链接因为只是文件的一个别名,所以不重复占用内存;软链接因为只是一个访问文件的快捷方式文件,文件内只包含快捷指向信息,所以占用很小的内存。
- 软链接的文件权限和源文件可以不一样;硬链接文件权限肯定是一样的,因为他们本来就是一个文件的不同名称而已。
使用场景
一般比较重要的文件我们担心文件被误删除且传统复制备份方式占用double数量的空间会造成浪费,可以使用硬链做备份来解决;
软链接一般被用来设置可执行文件的快捷方式的路径。
inode: inode是文件系统中存储文件元信息的区域,中文叫节点索引,每个节点索引包含了文件的创建者,大小,日期等等。可以通过ls -i file 命令查看inode的值。
拷贝
- 浅拷贝
浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间;
- 深拷贝
深拷贝不断对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同的地址空间。(相当于复制文件)