第一章 操作系统与系统结构&程序设计语言
从OS角度看计算机系统
使用操作系统,在一个CPU上并发的执行多个程序的实例,我们称为进程。在多个进程相互执行时如何做到相互之间不互相影响,保证系统是安全的,这时需要对程序的执行进行隔离。这种隔离就需要计算机系统结构给予支持。而这里主要的隔离技术即虚拟内存与特权模式(中断)。
隔离
- 隔离以避免对整个系统的可用性、可靠性、安全产生影响;
- 运行的程序通常是隔离的单元;
- 技术1:地址空间。一个程序只能寻址自己的内存,任一程序若无许可,则不能访问不属于自己的内存。
- 技术2:特权模式(中断机制)。防止应用程序访问设备与敏感的CPU寄存器。使用中断机制进行特权模式的切换。
虚拟内存
由操作系统提供的一种对物理内存的抽象。
特权模式&中断
- 内核模式(低特权级)
- 用户模式(高特权级)
Lab1
安装qemu-system
1 | apt install -y qemu-system |
进入ucore/labcodes/lab1文件夹,使用make
命令编译。
使用qemu-system-x86启动ucore.img但是并不马上执行,以便我们用gdb对其进行远程调试。如无特别说明,以下命令都是在ucore/labcodes/lab1目录下执行。
1 | qemu-system-i386 -S -s -hda bin/ucore.img -monitor stdio |
再用以下内容替换~/.gdbinit文件
1 | file bin/kernel |
接下来运行gdb,效果如下图所示:
参考链接: