Skip to content

Commit

Permalink
update OS lab4
Browse files Browse the repository at this point in the history
  • Loading branch information
stormckey committed Dec 11, 2023
1 parent 819d962 commit c4f4e40
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion docs/blog/posts/CS242-week1.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ draft: true

course website: [:octicons-book-16:](https://stanford-cs242.github.io/f19/lectures/01-2-syntax-semantics)

my assignment: [:octicons-mark-github-16:]()
my assignment: [:octicons-book-github-16:](https://github.com/stormckey/CS242-PL/blob/master/assign1/written/assign1.pdf)

## The Idea of Backus's paper

Expand Down
6 changes: 3 additions & 3 deletions docs/blog/posts/OS_lab4.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ nostatistics: true

### uapp 的加载

在 vmlinux.lds 中,我们指定了 uapp.S 文件会被加载到 _sramdisk,_eramdisk 之间
在 vmlinux.lds 中,我们指定的 uapp.S 文件会被加载到 _sramdisk,_eramdisk 之间

- 如果 uapp.S 中我们用的是纯二进制文件,那么_sramdisk 第一行就是程序第一行
- 如果 uapp.S 中我们用的是 elf 文件,我们需要解码 elf 头来定位具体的文件位置
- 如果 uapp.S 中我们用的是 elf 文件,我们需要解码 elf 头来定位具体的二进制位置, 同时elf中也制定了程序入口一类的信息

### phdr->p_flags

Expand All @@ -86,4 +86,4 @@ nostatistics: true
这一检查需要用到额外的寄存器(如 t0),但是我们是要保证 t0 的值在中断前后值不变,所以不能直接用,需要先压栈,返回之前记得恢复

!!! bug
这里提到的压栈的办法在此处仍然可行,但在Lab5中会遇到问题,现在有一个更好用也更简洁的[:octicons-link-16:方法](https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/)
这里提到的压栈的办法在此处仍然可行,但在Lab5中会遇到问题,现在有一个更好用也更简洁的[:octicons-link-16:方法](https://stormckey.github.io/blog/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F---lab5-demand-paging/#_1)

0 comments on commit c4f4e40

Please sign in to comment.