摘要: mit6.828笔记 - lab3 Part B:页面故障、断点异常和系统调用 Part B 页面故障、断点异常和系统调用 虽然说,我们故事的主线是让JOS能够加载、并运行 user/hello.c 编译出来的镜像文件。 虽然说,经过Part A最后几节,我们初步实现了异常处理的基础设施。 但是对于操作系统来说,还远远不够,比如说那个 trap_dispatch 还没完成。 所 阅读全文
posted @ 2024-05-15 17:26 toso 阅读(2) 评论(0) 推荐(0) 编辑
摘要: mit6.828笔记 - lab3 Part A:用户进程和异常处理 简单回顾 在开始 lab3 的学习之前,我们先简单回顾下 到目前为止,我们的内核能做了什么: lab1中,我们学习了 PC启动的过程,看到BIOS将我们编写的boot loader 载入内存,然后通过bootloader 将内核载入内存。同时,使用了一个写死的临时页表(entry_pgdir)完成了 阅读全文
posted @ 2024-05-15 17:24 toso 阅读(29) 评论(0) 推荐(0) 编辑
摘要: mit6.828 - lab2笔记 lab2的实验手册带着我们学习操作系统是如何处理内存管理的。lab2将内存管理划分为 物理内存管理、页表管理、内核地址空间划分三个部分。 lab2的学习目标:重点学习内存管理的相关知识,包括内存布局、页表结构、页映射 lab2的学习任务:完成内存管理的相关代码 在lab2中,完全可以跟着实验手册的节 阅读全文
posted @ 2024-05-07 19:43 toso 阅读(8) 评论(0) 推荐(0) 编辑
摘要: mit6.828 - lab1笔记 1. PC启动 打开两个窗口,在第一个窗口中 make qemu-gdb,会启动内核,但在执行第一个指令之前停下; 在第二个窗口中make gdb,实时观察第一个窗口中的执行过程。 从这里可以观察到: IBM PC 在物理地址 0x000ffff0 开始执行, 位于为 ROM BIOS 保留的 64 阅读全文
posted @ 2024-05-07 19:31 toso 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 文件系统结构 unix的文件系统相关知识 unix将可用的磁盘空间划分为两种主要类型的区域:inode区域和数据区域。 unix为每个文件分配一个inode,其中保存文件的关键元数据,如文件的stat属性和指向文件数据块的指针。 数据区域中的空间会被分成大小相同的数据块(就像内存管理中的分页)。数据 阅读全文
posted @ 2024-01-10 09:25 toso 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,lab3是我们的内核能够按顺序完成env_create创建的进程。但是还不能做到多进程同时执行。lab4中我们将实现多进程的调度和进程间通信。 PartA:多处理器支持 要实现多进程,首先要支持多处理器。JOS使用"symmetric multiprocessing"(SMP)模式,,这 阅读全文
posted @ 2023-12-08 10:47 toso 阅读(48) 评论(0) 推荐(0) 编辑
摘要: jarvisoj_level2 查看保护措施: canary没有,很好。 栈可执行,这题也可以在栈上写shellcode。 PIE都没开,从IDA看到的地址就是实际加载的地址了。 IDA 静态分析 vulnerable_function 里面 read 读了 0x100 字节,但是 buf 只有 0 阅读全文
posted @ 2023-11-29 11:28 toso 阅读(5) 评论(0) 推荐(0) 编辑
摘要: w13scan工具的使用示例; 扩展w13scan的扫描模块 阅读全文
posted @ 2023-09-21 09:56 toso 阅读(268) 评论(0) 推荐(0) 编辑