Lab

lab3

 # lab3 (中断和syscall部分应该反复看,直到理解!!!) 在本实验中,将实现运行受保护的用户模式环境(即“进程”)所需的基本内核设施。将增强JOS内核,以设置数据结构来跟踪用户环境,创建单个用户环境,将程序映像加载到其中,并启动它。还将使JOS内核能够处理用户环境发出的任何系统调用, ......
lab3 lab

lab5

 # lab5 ## 介绍 在本实验室,你将实现spawn,这是一个库调用,用于加载和运行磁盘上的可执行文件。然后,您将充实内核和库操作系统,以便在控制台中运行shell。这些功能需要一个文件系统,本实验介绍了一个简单的读写文件系统。 ### 准备开始 使用Git获取最新版本的课程存储库,然后基于 ......
lab5 lab

lab6

 # lab6 ## 介绍 既然你已经有了一个文件系统,那么任何操作系统都不应该没有网络堆栈(计算机网络协议栈,TCP/IP协议栈)。在本实验中,您将为网络接口卡编写一个驱动程序。该卡基于英特尔82540EM芯片,也称为E1000。 ### 开始 获取lab6 ``` git add . git ......
lab6 lab

lab4

 # lab4 ## 介绍 在本实验中,您将在多个同时活动的用户模式环境中实现抢占式多任务处理。 在part A中,我们将为JOS添加多处理器支持,实现轮询调度,并添加基本的环境管理系统调用(创建和销毁环境的调用,以及分配/映射内存的调用)。 在part B中,我们将实现一个类unix fork( ......
lab4 lab

lab1

 # lab1 lab使用x86架构。 PC's power-on bootstrap procedure:PC的开机引导程序。 JOS 是6.828的kernel名字 ## Introduction `git diff`将显示自上次提交以来对代码的更改。 `git diff origin/lab ......
lab1 lab

lab2总结

感觉这部分很细节,我就总结下几个点吧。 ### 大致过程总结 * 先是物理内存: 申请内存先把物理页组织好。此时有几个页已经被占用了,需要处理对应PageInfo结构体。然后再封装物理内存的申请过程。此处就完成了。之后就进入虚拟内存操作过程。 * 然后是虚拟内存,即管理页表: 插入和删除虚拟地址到 ......
lab2 lab

lab3总结

# lab3总结 这个lab拷打的地方可太多了,除了总结,我还会放一下我被拷打过的问题和答案。 ### 过程总结 * 同内存系统一样,先开PCB数组的内存,并对其初始化,讲未分配进程以链表形式串联。 * 然后是功能组件函数: 为进程页目录分配空间,为进程分配物理内存,往一个进程的内存中加载ELF二进 ......
lab3 lab

lab1总结

开这个系列的目的:主要梳理下lab重点,方便我去对线面试官 ### 开机流程 **PC启动后的运行顺序为 BIOS -> boot loader -> 操作系统内核** 我们可以看到BIOS的操作就是在控制,初始化,检测各种底层的设备,比如时钟,GDTR寄存器。以及设置中断向量表。作为PC启动后运行 ......
lab1 lab

mit6.824-lab1 MapReduce

#### 杂谈 > - 传统的并行计算要的是:投入更多机器,数据大小不变,计算速度更快。 > - 分布式计算要求:投入更多的机器,能处理更大的数据。 > - 换句话说二者的出发点从一开始就不同,一个强调 **high performance**, 一个强调 **scalability**. 本过程实 ......
MapReduce mit6 lab1 mit 824

MIT6.s081/6.828 lectrue07:Page faults 以及 Lab5 心得

本篇博客主要是复习 MIT6.s081/6.828 lectrue07:Page faults 以及记录 Lab5 :COW fork 的心得 值得一提的是,2020 年之前的版本第 5 个 lab 是 lazy alloction,但是到了 2020 年之后就换成了难度稍高一点的 COW fork ......
心得 lectrue faults 6.828 MIT6

2023夏季《移动软件开发》实验报告:lab01

## 一、实验目标 1. 学习使用快速启动模板创建小程序的方法; 2. 学习不使用模板手动创建小程序的方法。 ## 二、实验步骤 ### 自动生成小程序 1. 首先到[微信公众平台官网首页](mp.weixin.qq.com)注册账号,进行信息填写登记,使用邮箱激活账号。 2. 然后到[微信开发者工 ......
软件开发 报告 软件 2023 lab

MIT6.s081/6.828 lectrue5/6:System call entry/exit 以及 Lab4 心得

这篇博客主要复习 lecture05:GDB calling conentions 和 lecture06:System call entry/exit 的内容,外加 Lab4:traps 的心得 # 前置知识 这里的前置知识是指 lecture05:GDB calling conentions 的 ......
lectrue5 心得 lectrue System 6.828

Script Lab

$("#setup").click(() => tryCatch(setup)); $("#add-row").click(() => tryCatch(addRow)); $("#add-column").click(() => tryCatch(addColumn)); $("#add-calc ......
Script Lab

bomb_lab

phase_1 %eax 作为上一个函数的返回值,若 %eax 为0,才可以执行跳转 函数 strings_not_equal ,通过阅读代码可以发现这个函数是判断输入的两个字符串是否相等,知道函数传进去的参数分别在寄存器 %edi 和 %es i中,其中 %edi 是我们输入的字符串 寄存器 %e ......
bomb_lab bomb lab

Lecture Tutorial Seminar Workshop Lab

Lecture Tutorial Seminar Workshop Lab 悉尼大学 | 授课形式解析 一般来说,澳洲大学的授课分为5种形式:LectureTutorialSeminarWorkshopLab而悉尼大学商科的课程大多采用四种上课形式:lecture,tutorial,seminar和 ......
Tutorial Workshop Lecture Seminar Lab

MIT6.s081/6.828 lectrue4:page tables 以及 Lab3 心得

不管是计算机组成还是操作系统,**虚拟内存**都是其中的重要内容,所以这一节我会结合 **CSAPP 第九章:虚拟内存** 来一起复习(顺便一说,CSAPP 这一节的 lab 是要求设计一个**内存分配器**,也是很有意思的,有时间一定要把 CSAPP 的 lab 博客也补上!) 这一节主要讨论** ......
lectrue4 心得 lectrue tables 6.828

CMU 15445 Lab -1:: 环境配置

官网环境配置参考:[lab0](https://15445.courses.cs.cmu.edu/fall2022/project0/) 本文采取 Win10 + wsl2(Ubuntu 22.04) 进行环境配置 # 1 wsl2安装Ubuntu22.04 wsl2的安装参考 [微软官方文档](h ......
环境 15445 CMU Lab

MIT6.s081/6.828 lectrue2:OS design 以及 Lab2 心得

这节课主要介绍 OS 的顶层设计以及 OS 启动流程和系统调用流程 前置知识:要求阅读 xv6 book chapter2 和 xv6 源码: [kernel/proc.h](https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/proc.h ......
lectrue2 心得 lectrue design 6.828

lab 配置教程

# lab 配置教程 ​![Lab1](assets/Lab1-20230719153044-391nmkg.png)​![image](assets/image-20230727204113-8f9ujc5.png) ‍ ​![image](assets/image-20230803070702- ......
教程 lab

Xv6 Lab10: file system

Large files 这个作业需要我们将 xv6 的最大文件大小从 12 + 256 Bytes 修改为 11 + 256 + 256 * 256 Bytes。 为了达成这个目标,我们需要使用二级索引块,对 inode 的 addrs 字段,首先将 NDIRECT 从 $12$ 修改为 $11$, ......
system file Xv6 Lab Xv

操作系统复习 MITS6.1810 lab util 记录

# lab util ## sleep 1. 介绍:主要用来熟悉下环境以及代码结构。 > - See `kernel/sysproc.c` for the xv6 kernel code that implements the `sleep` system call (look for `sys_s ......
系统 MITS6 MITS 1810 util

Xv6 Lab9: Locks

Memory allocator 这一题很简单,主要任务,就是为每个 cpu 维护一个空闲物理内存的链表 freelist,xv6 默认使用的结构体 kmem,其中包含一个 freelist 供所有的 cpu 使用。我们要做的,就是把 freelist 修改成 freelist 的数组,即 stru ......
Locks Lab9 Xv6 Lab Xv

模拟HCIE DATACOM LAB_Part1 配置纯享

[toc] # 边缘 目标:先把四台接入交换同、两台EXPORT、一台AC彻底配置完成。 ## ACC堆叠 ``` # MASTER ## 先给主设备命个名 ## 这样在备设备上配置成功之后也会使用这个名字 ## 从而间接的判断出堆叠是否成功 sysname X_T2_ACC1 stack slot ......
LAB_Part DATACOM HCIE Part LAB

HCIE DATACOM LAB_Par1 理论分析

[TOC] # 高速且优雅 如果不想傻傻的一遍遍的敲,就要好好的思考思考,如何能敲的更快?配置的时候要按照思路来,不能逞能图一时之快,而是按照思路一步一步来,稳应大于快,稳所稳打一步步的积累信心,否则一旦图快打乱思路,后续排错会非常的浪费时间,打击积极性。 1. 清楚地知道需求,备考前应该起码一字不 ......
DATACOM LAB_Par 理论 HCIE LAB

Xv6 Lab7: Multithreading

Uthread: switching between threads 这个题还是对的起它 moderate 的难度了,如果认真看了 book-riscv-rev2.pdf 的 Scheduling 章节,以及看了这个 课程翻译,那么这题可以很快做出来,个人觉得 pdf 讲得更加清楚一些。 这个题甚至 ......
Multithreading Lab7 Xv6 Lab Xv

Xv6 Lab6: Copy-on-Write Fork for xv6

思路 经过 lab5: lazy page allocation 之后,对 xv6 的 page fault 的处理,算是有所了解了。 今天这个 COW 实验,在 2020 年的课程视频中有对思路的讲解,可以先看看 课程翻译,厘清一下思路。 整体思路其实也不难,默认情况下,fokr 会调用 uvmc ......
Copy-on-Write Write Lab6 Copy Fork

lab3 page tables

### 1.Speed up system calls (easy) 要求:有些操作系统(例如 Linux)通过在用户空间和内核之间的只读区域共享数据来加速某些系统调用。这样可以消除在执行这些系统调用时进行内核交叉的需要(以优化用户模式到内核模式的陷阱机制,对于某些系统调用不再需要切换模式)。第一个 ......
tables lab3 page lab

sql-lab通关

page1-less1-22 联合查询 第一关 发现是有回显的,且传入的参数是通过'1'包裹的,所以我们的payload,如下 测试列数 ?id=1' order by 3 --+ //超过第一条语句的查询列数会报错,小于或等于不会报错 测试回显点 ?id=-1' union select 1,2, ......
sql-lab sql lab

Xv6 Lab5: lazy page allocation

前言 这个实验只有 2020 年的才有,2021 年的课程中是没有的,但是感觉这个实验还是挺有意义的,因此用 docker 创建了一个 debian 12 的容器,在容器中搭建了 2020 的实验环境,实验环境的搭建过程可以参照 MIT 6.s081 实验环境搭建。 Eliminate alloca ......
allocation Lab5 lazy page Xv6

[已过万次测试] MIT 6.5840 2023 Lab 4 Shard KV Server TaskA, TaskB, Challenge 通关总结

# MIT 6.5840 2023 Lab 4 Shard KV Server TaskA, TaskB, Challenge ## 前言 这波是终于写完了MIT 6.5840 的所有lab了。lab均是独立完成,没有任何参考,哈哈,还是挺有成就感的。lab4其实在上周就已经写完了,不过比较懒,拖了 ......
Challenge 6.5840 Server Shard TaskA