摘要: 一、漏洞简介 Heartbleed是在互联网上广泛应用的OpenSSL开源库的一个严重漏洞,它允许在正常情况下窃取本应受SSL协议加密保护的信息。这个漏洞在OpenSSL的心跳机制实现代码中被引入。代码中某些存在缺陷的函数未对将要发送的消息进行边界检查,攻击者可以通过构造特定请求数据包,使得服务器回 阅读全文
posted @ 2023-04-12 11:07 StreamAzure 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 一、OS中的生产者消费者问题 1.1 问题描述 系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。 生产者、消费者共享一个初始为空、大小为n的缓冲区。 只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。 只有缓冲区不空 阅读全文
posted @ 2023-03-06 15:22 StreamAzure 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 1. 建立内核虚拟地址的映射 在 Part 3,我们需要建立虚拟地址空间中内核部分的映射。 Exercise 5. Fill in the missing code in mem_init() after the call to check_page(). Your code should now 阅读全文
posted @ 2023-02-07 18:19 StreamAzure 阅读(67) 评论(0) 推荐(0) 编辑
摘要: Part 2: Virtual Memory 1. 页式、段式、段页式 虚拟内存管理的意义在于,它可以将计算机可使用的内存范围从物理内存扩展到物理内存+磁盘。某一时刻,一个虚拟内存地址对应的数据可能并不实际存储在物理内存中。当然,CPU能直接访问的只有物理内存,若遇到了上述情况,首先从磁盘中将相关的 阅读全文
posted @ 2023-02-07 18:16 StreamAzure 阅读(40) 评论(0) 推荐(0) 编辑
摘要: Part 1: Physical Page Management 练习 1. 在文件kern/pmap.c中,您必须实现以下函数的代码(可能按照给定的顺序)。 boot_alloc() mem_init()(只到调用check_page_free_list(1)) page_init() page_ 阅读全文
posted @ 2023-02-02 03:45 StreamAzure 阅读(65) 评论(0) 推荐(0) 编辑
摘要: MIT6.828这门课程在2018年之后已经改组成其他课程(MITS6.081),课程实验的更新也停止在2018年,因此环境配置方面可能会出现各种各样的问题,下面为2023年1月进行的配置流程。 环境:VMWare虚拟机 Ubuntu 22.04LTS x86_64 1. 编译器工具链检查 objd 阅读全文
posted @ 2023-01-29 23:32 StreamAzure 阅读(100) 评论(0) 推荐(0) 编辑
摘要: Part 4: The Stack 1. 栈的初始化 练习 9. 确定内核初始化栈的位置,以及栈在内存中的确切位置。内核如何为其栈保留空间?栈指针初始化后指向这个保留区域的哪一“端”? 内核运行的第一个工作是开启虚拟地址和物理地址之间的映射(或者说分页),第二个工作就是初始化栈。在kern/entr 阅读全文
posted @ 2023-01-29 23:18 StreamAzure 阅读(263) 评论(0) 推荐(0) 编辑
摘要: Part 3: The Kernel 1. 物理地址与虚拟地址的映射 我们在 5.3 中提到过,内核的第一条指令所在的物理地址0x100000被映射到虚拟地址0xF0100000。事实上,在 Lab 1 中,JOS 对前 4MB 的物理内存都进行了类似的映射,这是由kern/entrypgdir.c 阅读全文
posted @ 2023-01-29 23:13 StreamAzure 阅读(83) 评论(0) 推荐(0) 编辑
摘要: Part 2: The Boot Loader 1. 从 Boot Loader 开始 BOIS从磁盘读取Boot Loader到指定内存区域0x7c00到0x7dff(512B),然后执行jmp指令,跳转到Boot Loader的第一条指令所在地址0x7c00。 (gdb) b *0x7c00 # 阅读全文
posted @ 2023-01-29 23:12 StreamAzure 阅读(104) 评论(0) 推荐(0) 编辑
摘要: Part 1: PC Bootstrap 0. 前置知识 x86、i386、x86-64 x86,又称 IA-32(Intel Architecture, 32-bit),泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。这个名称源于这个系列早期的处理器名称,它们都是80x86格式 阅读全文
posted @ 2023-01-29 23:06 StreamAzure 阅读(107) 评论(0) 推荐(0) 编辑