Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add post: greatbridf-二阶段rcore学习总结 #499

Merged
merged 1 commit into from
Nov 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions source/_posts/greatbridf-二阶段rcore学习总结.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: greatbridf-二阶段rcore学习总结
date: 2024-11-05 23:05:28
tags:
- author:greatbridf
---

# 碎碎念

拖了好久最后还是写完了,中间碰到些奇怪的问题和bug,卡了好一大气,最后发现问题在什么地方的时候真的血压升高,一整个气烂了。但是最后还是解决了,感觉自己的能力有所提升吧。

~~最后真的永远也习惯不了写各种报告(捂脸~~

# 学习总结

## 前三个lab

前三个lab的内容大致上还是比较简单,感谢各位老师和助教提供的框架,写的时候可以更注重于OS的机制以及riscv平台本身,不用关注太多的细节。报告里的思考题也挺有帮助的。

前四个lab要求需要整合前面lab实现的功能,在写这几个lab的过程当中,一些部分的实现也在一直调整,变得更加合理以及方便使用。也发现自己一些问题,有时候还是要先想清楚把代码读好再动手,不然会浪费很多时间。

## 第四个lab

在这个lab上花的时间最长。代码写好以后调试始终是不对。最后发现`spawn`跑过去之后整个文件系统一整个挂掉了,~~整个easy-fs乱成了一锅粥~~。调试了好久好久也搞不清楚什么原因,最后还是换了种实现`spawn`的方法,先过了测试。猜测可能是在`exec`的时候不小心写了什么地方?玄学问题以后有时间的时候再研究研究吧。~~如果真的是把fs的内容给覆写掉的了话,我也真厉害能写出这么恶心的代码。毕竟表面上看完全是不可能的~~

## 第五个lab

这个lab是要我们实现一个死锁检测的算法。这个算法之前在课上有学过,这下也算是见到本体了。觉得自己有时候对于并发编程的了解还是不够深入,可能如果加上一些实现并发的代码和lab会更好一些?希望能在后面的课程中学到更多的知识。

# 心得体会

## rust

算是开始接触rust有一段时间了~~,和编译器斗争越来越熟练~~。感觉rust是一门很有趣的语言,有时候会出现写其他语言的时候没有的一些奇怪的问题,但是解决了之后能对一些东西有更好的了解,平时会更注意一些。

比如说rust的所有权系统,有时候会觉得很麻烦,但是这个系统也能帮助我们避免一些潜在的bug,也能让我们更好的理解内存和生命周期的管理。这些内容其实在写C/C++的时候也会遇到,但是表现的形式可能更加**狂野**一点。rust这样更加严格的检查让我们在写代码的时候,设计整个结构的时候更小心,考虑到更多的细节。之前在写C++的时候,发现C++11加入的`std::move`和`std::unique_ptr`等等,也是为了表达一些所有权等相关的语义,但是没有强制化的要求。rust的所有权系统更加严格,也更加直观。

希望以后能够继续学习rust。

## riscv

riscv和x86比起来简直就是天堂(

riscv指令集更简单,更容易理解。在设计的时候就避免了很多x86遗留的历史设计问题,实现OS的时候更加方便。在学习riscv的过程中,也对计算机体系结构有了更深的了解。觉得riscv是一个很有潜力的平台,希望以后应用更普遍一些吧。
Loading