![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
YoungSusie
这个作者很懒,什么都没留下…
展开
-
MIT6.828 32位操作系统笔记(1)----基本概念
1、80386保护模式和实模式8086处理器是一款16位的处理器,这种处理器的数据总线是16位,而地址总线是20位,最大寻址范围位1MB的地址空间。数据总线是用来传送数据信息,数据总线的位数决定了CPU单词通信能交换的数据量。地址总线 是用于传送CPO发出的地址信息,地址总线的位数决定了CPU 的寻址范围。控制总线 用来传送控制信号、时序信号和状态信息等。80386 处理器是一款32...原创 2019-06-26 15:25:35 · 576 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(14)----系统调度、IPC和页面失效控制 LAB4中
MIT EDU 6.828 实验源代码 分类 MIT6.828 32位操作系统实验笔记 分类 MIT6.828 32位操作系统实验笔记 本文参考文章 http://grid.hust.edu.cn/zyshao/OSEngineering.htm...原创 2019-07-16 18:43:20 · 697 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(12)----进程管理与中断 LAB3下
MIT EDU 6.828 实验源代码 分类 MIT6.828 32位操作系统实验笔记1、缺页中断缺页中断是一个非常重要的中断,因为我们在后续的实验中,非常依赖于能够处理缺页中断的能力。当缺页中断发生时,系统会把引起中断的线性地址放到控制寄存器CR2 中。 在trap.c 文件中,已经提供了一个能够处理这种缺页异常的函数page_fault_handler()。 Exercise 5...原创 2019-07-12 15:18:58 · 602 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(9)----内存管理 LAB2下
1、内核地址空间JOS 将32位线性地址虚拟空间分为两部分,其中用户环境(用户进程)通常占据低地址部分,叫做用户地址空间;操作系统内核总是占据高位,叫做内核地址空间。这两部分的分界线是定义在memlayout.c 中的一个宏ULIM。JOS 为内核保留了256MB 的虚拟地址空间[0xF0000000,0xFFFFFFFF],这也解释了为什么在LAB1 我们设置的KERNBASE 是0xF000...原创 2019-07-06 10:07:44 · 498 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(8)----内存管理 LAB2中
1、页表管理Exercise 1 中,我们分配了一个页表使得内核代码可以在其链接地址(0xf0100000)运行,代码被加载在物理地址(0x00100000)。一旦进入保护模式,不能直接用线性地址,所有的指针所指的地址都是虚拟地址。代码中的 uintptr_t 表示的是虚拟地址;physaddr_t 表示的是物理地址。T* Virtual addressuintptr_t ...原创 2019-07-06 08:10:27 · 511 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(13)----系统调度、IPC和页面失效控制 LAB4上
MIT EDU 6.828 实验源代码 分类 MIT6.828 32位操作系统实验笔记 0、下载lab4 的源代码[root@xxx lab]# git add .[root@xxx lab]# git commit -am 'changes to lab3 after handin'[lab3 76d9a7d] changes to lab3 after handin 12...原创 2019-07-15 15:19:31 · 1151 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(7)----内存管理 LAB2上
区别主要在于两点1、背景知识通过实验1,我们知道,JOS 的启动过程实际上是BIOS先把bootsector(boot loader,位于可引导磁盘的第一扇区) 的内容读取到0x7c00处,并将控制权交给boot loader,boot loader 的任务有两个:(1) 将模式从实模式转换为保护模式;(2)将内核可执行文件(ELF,位于第二个扇区开始的8个扇区)加载到内存,内核可执行程序被加...原创 2019-07-05 18:54:56 · 714 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(5)----GDB调试与qemu monitor
利用qemu 和 gdb 探索PC机 的启动过程。1、GDBDebug With GDBctrl + C,终止运行c , 继续运行si (or stepi), 执行一条机器指令b function or b file:line or b *addr 设置断点info break 查看断点的信息delete 断点号 ,删除第n 个断点n 单步执行,不进入函数step ...原创 2019-06-30 10:17:07 · 1290 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(11)----进程管理与中断 LAB3中
MIT EDU 6.828 实验源代码 分类 MIT6.828 32位操作系统实验笔记0、下载lab3 的源代码 分类 MIT6.828 32位操作系统实验笔记 本文参考文章 http://grid.hust.edu.cn/zyshao/OSEngineering.htm推荐这位博主系列的文章 ...原创 2019-07-10 13:46:44 · 671 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(4)----LAB1上
1、安装qemu 下载qemugit clone https://github.com/mit-pdos/6.828-qemu.git /usr/local (后面的表示将文件保存到这个文件夹下) 切换到文件目录,并运行命令./configure --disable-kvm --target-list="i386-softmmu x86_64-softmmu" 运行命令make...原创 2019-06-29 08:51:43 · 700 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(6)----LAB1下
1、系统的启动过程原创 2019-07-04 10:06:16 · 409 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(3)----系统的启动和初始化
分段机制 1、系统的启动过程物理内存的分布首先分析PC 开机以后的默认物理内存的分配。PC 的物理内存空间会由硬件规定产生如下所示 的布局。...原创 2019-06-28 11:29:22 · 723 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(10)----进程管理与中断 LAB3上
MIT EDU 6.828 实验源代码 分类 MIT6.828 32位操作系统实验笔记0、下载lab3 的源代码[root@xxx lab]# git add .[root@xxx lab]# git commit -am 'changes to lab2 after handin' 2 files changed, 139 insertions(+), 24 deletions...原创 2019-07-08 10:27:29 · 730 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(2)----AT&T汇编语言与GCC内嵌汇编
分段机制 1、AT&T 汇编语言的相关知识在Linux源代码中,以.S(或.s)为扩展名的文件是包含汇编语言代码的文件。GNU汇编程序GAS(GNU Assembly)和连接程序一个编辑好的程序需要对其进行汇编和连接。在Linux下有两种方式,一种是使用汇编程序GAS 和连接程序LD;另一种是使用GCC。(1)使用汇编程序GAS 和连接程序LD//将汇编语言源文件转换为目...原创 2019-06-27 09:11:47 · 412 阅读 · 0 评论 -
MIT6.828 32位操作系统笔记(15)----系统调度、IPC和页面失效控制 LAB4下
MIT EDU 6.828 实验源代码 分类 MIT6.828 32位操作系统实验笔记 1、Part C : 抢先多任务和进程间通信 LAB 4 的最后一部分将修改代码以实现抢先多任务,并实现进程间的通信。(1) 时钟中断和抢占 运行程序 user/spin,这个程序中,父进程fork() 子进程,然后子进程一旦得到CPU 的使用权,将永远自旋,内核和父进程将永远不会再得...原创 2019-07-23 09:41:27 · 517 阅读 · 0 评论