MIT6.828 HW1: boot xv6

HW1: boot xv6

  查看寄存器内容和堆栈内容,解释堆栈上的内容。
  提示:可以查看boot.S、boot.c和boot.asm中的内容,并结合以下问题。

1.在0x7c00设置断点,单步指令调试,查看堆栈指针$esp在哪里被初始化。
2.单步调试,直到调用bootmain函数,观察堆栈内容。
3.在bootmain函数中第1条汇编指令做了什么。
4.在boot.asm中查找使eip变为0x10000c的指令,观察堆栈的变化。

  解析:
  1.在调用bootmain函数前,被初始化为0x7c00,即boot.s的入口。

boot.asm  mov    $start,  $esp
0x7c40:   mov    $0x7c00, $esp

  2.在调用bootmain函数时,调用者保存调用地址,即下一条指令,并使$esp-4。

boot.asm
0x7c45:  call bootmain
spin:
0x7c4a:  jmp spin

堆栈内容
3.在bootmain函数中,第1条汇编指令为push $ebp,将$ebp压入堆栈,即保存调用者的栈帧。

boot.asm
0x7d0c:  push $ebp

堆栈内容
 4.当eip变为0x10000c时,bootmain函数将调用地址压入堆栈。
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MIT6.828的hw1是指操作系统课程中的第一个作业。在这个作业中,学生需要向xv6操作系统添加一个新的系统调用,即alarm(interval, handler)。当应用程序调用alarm(n, fn)时,xv6内核将在应用程序消耗每个n个ticks的CPU时间之后调用应用程序函数fn。tick是一个相对随意的时间单位,由硬件定时器产生中断的频率决定。这个作业的目的是实现一种原始形式的用户级中断/故障处理程序,可以定期向使用CPU时间的进程发出警报。这对于计算密集型进程或需要定期操作的进程可能非常有用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MIT6.828-2016-中文:MIT 6.828(操作系统)的中文版本](https://download.csdn.net/download/weixin_42098104/14998195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MIT6.828_HW5_xv6 CPU alarm](https://blog.csdn.net/Small_Pond/article/details/92838818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值