清华大学陈渝副教授:尝试将Rust/Risc-V等新技术用于系统类课程教学
#OS #tsinghua
看看对学生有啥帮助。这里陈教授给出了一些学习资料:
面向初学者的代码/文档信息
面向对rust比较熟悉的同学的信息
以及
有兴趣学习/参与开发 rust-based os kernel的朋友,欢迎与陈教授联系和交流(他也在Rust社区微信群和Rust编程之道的读者群里)。
XV中如何使用panic
#error_handle #panic
XV是一个终端16进制查看器,作者之前是Java开发者,XV是他的第一个Rust项目。他在本文主要介绍了UX中使用panic的一些经验。
作者认为Rust里的panic等价于Java里的异常,所以他在XV中大量使用Unwrap。(日报君友情提醒:这一条谨慎看待,不是指滥用)
当然,作者也是针对具体的情况来使用unwrap,在预期操作总是会成功的情况下会unwrap。所以,如果程序运行崩溃了,说明代码里有问题。
类型转换。在确定安全的情况下使用From,在不太安全的情况下使用TryFrom。
在Release模式下开启默认检查算术溢出。Rust在Debug模式下如果算术计算溢出会报错,但是在Release模型下会静默生成错误的结果。需要在Cargo.toml中设置
overflow-checks = true