这是我参与「第五届青训营 」笔记创作活动的第十四天,今天主要学习了操作系统的架构方面,关于进程隔离、指令执行模式以及内核组织的方面。
进程隔离
操作系统中的进程隔离指的是在多任务环境下,操作系统为每个进程分配独立的内存空间,使得进程之间不会相互干扰,从而保证系统的稳定性和安全性。而一般操作系统通过虚拟内存技术来为每个进程分配独立的内存空间。每个进程都有自己的地址空间,包括代码段、数据段、堆栈等,相互之间无法直接访问对方的内存空间。这样可以避免进程之间的内存干扰,同时也可以保护每个进程的内存数据安全。
指令执行模式
在操作系统中,指令执行模式是控制对计算机资源的访问和使用的机制之一。根据执行模式的不同,CPU会以不同的权限级别来执行不同的指令,从而保护系统的安全性和稳定性。一般来说,操作系统中的指令执行模式可以分为用户模式和内核模式两种。
用户模式是CPU执行程序时的默认模式。在用户模式下,程序只能访问自己的内存空间和CPU的一部分寄存器,无法直接访问操作系统的内核空间。这样可以防止程序直接修改操作系统的关键数据结构和内存区域,从而保护系统的安全性和稳定性。
内核模式是CPU执行操作系统内核代码时的权限级别。在内核模式下,操作系统的内核代码可以访问系统的所有资源,包括硬件设备、中断向量表和所有进程的内存空间等。同时,在内核模式下,操作系统也可以执行一些特权指令,例如修改CPU的特权级别、读写控制寄存器等,从而可以对系统进行更加底层的控制和管理。
通过两种模式的区分,可以防止某些程序直接对硬件进行操作造成严重后果。
内核组织
内核可以分为宏内核和微内核两种不同类型。宏内核和微内核的主要区别在于内核服务和功能的实现方式和部署方式。在宏内核中,所有的内核服务和功能都实现在一个单独的内核模块中,而在微内核中,内核服务和功能分散在多个独立的模块中。
两者各有利弊,选择哪种内核架构需要根据具体的应用场景,而xv6系统用的则是宏内核组织。