原文:xv6的系统调用

最近更新于 . 我们以xv 的一个系统调用getpid 为例,观察xv 的系统调用大致过程。 系统调用的声明位于 user.h 中,xv 的用户程序若要使用系统调用需要包括这个头文件,其中getpid 声明如下: int getpid void 此函数定义于 usys.S 中,函数体通过宏SYSCALL定义: usys.S getpid define SYSCALL name .globl nam ...

2021-08-05 01:20 0 113 推荐指数:

查看详情

xv6添加一个系统调用

1. Overview 要为xv6添加一个系统调用,需要修改以下5个文件: syscall.h syscall.c sysproc.c usys.S user.h 由于Unix v6发行于1975年,下面我们以添加一个返回整数1975的系统调用作为示范来说明如何为 ...

Thu Jan 27 01:34:00 CST 2022 0 738
XV6学习(5)陷阱和系统调用

,内核要保存之前的寄存器等状态信息,当执行完处理程序之后再进行恢复。 在XV6中处理陷阱有以下四步:CP ...

Mon Jan 04 18:35:00 CST 2021 0 326
xv6学习笔记(3):中断处理和系统调用

xv6学习笔记(3):中断处理和系统调用 1. tvinit函数 这个函数位于main函数内 表明了就是设置idt表 1. SETGATE函数 这里的setgate是一个宏定义是用来设置idt表的 下面是函数参数的说明 Sel : 表示对于中断处理程序代码所在段的段选择 ...

Sun Aug 22 23:16:00 CST 2021 0 189
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操作系统代码阅读心得(三):锁

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

Wed Apr 10 01:38:00 CST 2019 0 1291
xv6操作系统学习笔记

0x00背景 最近在看操作系统上的书 然后选了本知乎推荐的xv6 https://th0ar.gitbooks.io/xv6-chinese/content/content/chapter0.html 我们从这几个问题入手 操作系统作用是什么? 内核的作用 ...

Sun Aug 06 08:53:00 CST 2017 0 1413
XV6源代码阅读-文件系统

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字节 ...

Mon Jun 10 00:33:00 CST 2019 0 746
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM