摘要: One last。后面有空把 Lab 4 5 6 的 Challenge 补了,做完了 Exercise 后再写 Challenge 应该就没那么多冲突报错了 吧大概 Lab 6: Network Driver QEMU's virtual network 我们将使用 QEMU 的用户模式网络栈,因 阅读全文
posted @ 2026-04-26 23:09 iPlayForSG 阅读(25) 评论(2) 推荐(0)
摘要: 这个实验主要是实现 spawn 库调用,用来加载并运行磁盘上的可执行文件。然后会继续完善内核和库操作系统,最终达到写出一个 shell 的效果。当然,这也会涉及到文件系统的内容。 Lab 5: File system, Spawn and Shell File system preliminarie 阅读全文
posted @ 2026-04-26 01:51 iPlayForSG 阅读(17) 评论(0) 推荐(0)
摘要: 这个 Lab 的目标是实现抢占式多任务处理,要处理很多同步和调度问题。 Part A: Multiprocessor Support and Cooperative Multitasking 在本实验的第一部分,您将首先扩展 JOS 以在多处理器系统上运行,然后实现一些新的 JOS 内核系统调用,以 阅读全文
posted @ 2026-04-26 01:51 iPlayForSG 阅读(14) 评论(0) 推荐(0)
摘要: 本实验主要完成两个部分:用户环境与异常处理;缺页异常、断点与系统调用。 Part A: User Environments and Exception Handling 新包含的文件 inc/env.h 包含了 JOS 中用户环境的基本定义。内核使用 Env 数据结构来跟踪每个用户环境。在本实验中, 阅读全文
posted @ 2026-04-09 17:28 iPlayForSG 阅读(14) 评论(0) 推荐(0)
摘要: 本实验中将为 JOS 编写内存管理代码,分为两个部分。一个是内核的物理内存分配器,以 4096 字节为单位(页)。一个是虚拟内存。 Getting started 教我们怎么把 lab2 的分支 merge 进 lab1。 新增文件: inc/memlayout.h kern/pmap.c kern 阅读全文
posted @ 2026-04-09 17:25 iPlayForSG 阅读(34) 评论(0) 推荐(0)
摘要: 2018 版的,不是课改后的 MIT 6.S081,课改前的好像更细致一些。之前学的都太零碎了,过一遍这个课程,用以构建整体的 OS 知识体系。 课程讲义:https://pdos.csail.mit.edu/6.828/2018/xv6/book-rev11.pdf,课程安排:https://pd 阅读全文
posted @ 2025-10-09 23:55 iPlayForSG 阅读(152) 评论(0) 推荐(0)
摘要: jos 好几把多,先上工其它的 ref: https://m0nkee.github.io/2015/08/20/play-ptrace/ https://www.52pojie.cn/thread-1355860-1-1.html 简介 ptrace 是一种系统调用,通过这个方法,可以实现父进程对 阅读全文
posted @ 2025-07-14 15:56 iPlayForSG 阅读(168) 评论(0) 推荐(0)
摘要: 依然是 x86 的,照着 lzyddf 师傅的 blog 和 OneTrainee师傅的blog 学的 Windows API Application Programming Interface,简称 API 函数。Windows API 是微软为 Windows 操作系统提供的一组函数、数据结构、 阅读全文
posted @ 2025-02-28 13:53 iPlayForSG 阅读(319) 评论(0) 推荐(0)
摘要: x86,照着 lzyddf 师傅的 blog 和 OneTrainee师傅的blog 学的,然后在此基础上扩展学习了一些东西。 X86 CPU的三个模式:实模式、保护模式和虚拟8086模式。 段寄存器 比如说,当我们用汇编读写某一个地址时,例如mov dword ptr ds:[0x123456], 阅读全文
posted @ 2025-02-24 17:12 iPlayForSG 阅读(258) 评论(0) 推荐(0)
摘要: 做下第一页 test_your_nc 直接是/bin/sh, nc 上去就行 rip 先简单 review 一下函数调用栈的变化。首先记住栈是高地址向低地址增长,简单讲就是栈底在高地址,栈顶在低地址。esp 保存栈顶,ebp 保存栈底。 32 位为例,首先反向压入 callee 的参数:argn, 阅读全文
posted @ 2024-11-18 18:45 iPlayForSG 阅读(176) 评论(0) 推荐(0)