![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MIT6.828lab
文章平均质量分 69
操作系统实验,搭建vx-6内核
QQQ_
这个作者很懒,什么都没留下…
展开
-
MIT6.828 Lab2-3 Sysinfo
按照官方提示,在kernel/kalloc.c中添加一个函数用以收集剩余内存;此文件主要处理struct sysinfo结构体记录的信息,sysinfo的信息由内核进行记录,因此要进行系统调用操作。sysinfo.c需要完成将运行中的系统信息写入sysinfo结构体中,此结构体为内核态结构体,最后还需传递到用户态。在kernel文件中,官方提供了sysinfo.h,未提供sysinfo.c,需要自行编写。在proc.c文件中添加统计进程数量的函数,通过遍历。中,在/kernel中,内核函数调用。原创 2024-05-27 22:52:38 · 450 阅读 · 0 评论 -
MIT6.828 Lab2-1 Using gdb
usertra调用了syscall;;exit;;0;键入n数次使gdb越过,此后键入p /x *p,此命令打印了进程的为proc结构体中trapframe指针指向的结构体中a7的值所以a7中存放值为0x07,此值代表exec系统调用的编号,后续用于调用 ecall 重新进入内核。十进制为100010,查询可知:此时第八位为0,代表CPU之前处于用户态。原创 2024-05-27 21:08:00 · 676 阅读 · 0 评论 -
xv6 系统启动过程
硬件上电后,将会运行一个只读的boot loader 程序,这个程序会将xv6的内核加载进内存中。程序将会被加载到物理地址0x80000000处,前面的物理地址被IO设备占用。执行start()函数,该函数执行一些机器模式下的配置任务。(即执行sys_exec系统调用)(sys_exec系统调用)进入机器模式,xv6将从。main执行一些初始化工作。程序的参数,然后调用。原创 2024-05-27 20:59:24 · 445 阅读 · 0 评论 -
linux上git 使用方法
在git上新建仓库,并命名。原创 2024-05-15 21:34:16 · 276 阅读 · 0 评论 -
Xv6 gdb 调试方法
在xv6源码根目录里(xv6-labs-2023)开启两个终端窗口。原创 2024-04-07 16:17:26 · 360 阅读 · 0 评论 -
MIT6.828 Lab2 system call
操作系统需满足: #多路复用 、 #隔离 、 #交互本章提供了实现这三点的概述xv6是基于“LP64”C编写的,因此int为32位,long和pointer为64位如果应用可以定制化自己的库函数,这些库函数可以直接作用在物理资源上,那么这些应用必须是良好运行的,然而更常见的是应用程序彼此不信任并且存在错误,因此需要更强的隔离性。将资源抽象为服务,有助于实现强隔离,禁止应用程序直接访问敏感硬件资源。原创 2024-04-07 16:14:10 · 1115 阅读 · 0 评论 -
MIT6.828 Lab1 Xv6 and Unix utilities
MIT6.828 xv6操作系统第一次实验原创 2024-04-03 23:12:51 · 684 阅读 · 1 评论 -
MIT6.828实验|搭建基于windows10自带linux虚拟机WSL2的实验环境
根据6.1810提供的方法安装环境。原创 2024-04-01 10:23:54 · 630 阅读 · 1 评论 -
Xv6中的系统调用函数
【代码】Xv6中的系统调用。原创 2024-03-30 22:41:00 · 186 阅读 · 0 评论