原文:XV6源代码阅读-文件系统

Exercise 源代码阅读 文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec.c .buf.h:对xv 中磁盘块数据结构进行定义,块大小为 字节。 .fcntl.h:宏定义操作权限。 .stat.h:声明文件或目录属性数据结构。 .fs.h fs.c:声明超级块 dinode ...

2019-06-09 16:33 0 746 推荐指数:

查看详情

XV6操作系统代码阅读心得(五):文件系统

Unix文件系统 当今的Unix文件系统(Unix File System, UFS)起源于Berkeley Fast File System。和所有的文件系统一样,Unix文件系统是以块(Block)为单位对磁盘进行读写的。一般而言,一个块的大小为512Byte或者4KB。文件系统的所有 ...

Fri May 31 18:17:00 CST 2019 0 812
XV6源代码阅读-虚拟内存管理

Exercise1 源代码阅读 1.内存管理部分: kalloc.c vm.c 以及相关其他文件代码 kalloc.c:char * kalloc(void)负责在需要的时候为用户空间、内核栈、页表页以及缓冲区分配物理内存,将物理地址转为虚拟地址返回,物理页大小为4k。void ...

Mon Jun 10 00:26:00 CST 2019 0 690
XV6操作系统代码阅读心得(三):锁

锁是操作系统中实现进程同步的重要机制。 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域。所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据。 同步(Synchronization)是指让两个或多个进程/线程能够 ...

Wed Apr 10 01:38:00 CST 2019 0 1291
XV6操作系统代码阅读心得(一):启动加载、中断与系统调用

XV6操作系统是MIT 6.828课程中使用的教学操作系统,是在现代硬件上对Unix V6系统的重写。XV6总共只有一万多行,非常适合初学者用于学习和实践操作系统相关知识。 MIT 6.828的课程网站是https://pdos.csail.mit.edu/6.828/。XV6操作系统有官方文档 ...

Wed Mar 27 04:01:00 CST 2019 1 1213
XV6操作系统代码阅读心得(四):虚拟内存

本文将会详细介绍Xv6操作系统中虚拟内存的初始化过程。 基本概念 32位X86体系结构采用二级页表来管理虚拟内存。之所以使用二级页表, 是为了节省页表所占用的内存,因为没有内存映射的二级页表可以不用分配地址来存储。在这个二级页表结构中,每个页的大小为4KB,每个页表的大小也为4KB,每个页表项 ...

Wed Apr 10 23:17:00 CST 2019 0 1288
xv6系统调用

最近更新于2021/08/05. 我们以xv6的一个系统调用getpid()为例,观察xv6系统调用大致过程。 系统调用的声明位于 user.h 中,xv6的用户程序若要使用系统调用需要包括这个头文件,其中getpid()声明如下: int getpid(void); 此函数定义 ...

Thu Aug 05 09:20:00 CST 2021 0 113
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM