摘要:
Exercise1 源代码阅读 文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec.c 1.buf.h:对xv6中磁盘块数据结构进行定义,块大小为512字节。 2.fcntl.h:宏 阅读全文
posted @ 2019-06-09 16:33
荒野之萍
阅读(3347)
评论(0)
推荐(0)
|
摘要:
Exercise1 源代码阅读 文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec.c 1.buf.h:对xv6中磁盘块数据结构进行定义,块大小为512字节。 2.fcntl.h:宏 阅读全文
posted @ 2019-06-09 16:33
荒野之萍
阅读(3347)
评论(0)
推荐(0)
摘要:
Exercise1 源代码阅读 锁部分:spinlock.h/spinlock.c以及相关其他文件代码 Exercise2 带着问题阅读 1.什么是临界区? 什么是同步和互斥? 什么是竞争状态? 临界区操作时中断是否应该开启? 中断会有什么影响? XV6的锁是如何实现的,有什么操作? xchg 是什 阅读全文
posted @ 2019-06-09 16:30
荒野之萍
阅读(622)
评论(0)
推荐(0)
摘要:
Exercise1 源代码阅读 1.内存管理部分: kalloc.c vm.c 以及相关其他文件代码 kalloc.c:char kalloc(void)负责在需要的时候为用户空间、内核栈、页表页以及缓冲区分配物理内存,将物理地址转为虚拟地址返回,物理页大小为4k。void kfree(char v 阅读全文
posted @ 2019-06-09 16:26
荒野之萍
阅读(2648)
评论(0)
推荐(0)
摘要:
Exercise1 源代码阅读 1.启动部分: bootasm.S bootmain.c 和xv6初始化模块:main.c bootasm.S 由16位和32位汇编混合编写成的XV6引导加载器。bootasm.S内的汇编代码会调用bootmain.c中的void bootmain(void);mai 阅读全文
posted @ 2019-06-09 16:17
荒野之萍
阅读(1391)
评论(0)
推荐(0)
摘要:
Exercise1 源代码阅读 1.基本头文件:types.h param.h memlayout.h defs.h x86.h asm.h mmu.h elf.h types.h:仅仅是定义uint, ushort, uchar pde_t别名; parame.h 利用宏定义了进程最大数量,进程的 阅读全文
posted @ 2019-06-09 16:11
荒野之萍
阅读(1262)
评论(0)
推荐(0)
|