-
Notifications
You must be signed in to change notification settings - Fork 387
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #445 from ldq3/master
2024s-rcore 第一和第二阶段总结
- Loading branch information
Showing
2 changed files
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
--- | ||
title: Summary of 2024s-rcore 1st stage -- Map for Rust | ||
date: 2024-05-19 15:58:49 | ||
categories: | ||
- <catogory> | ||
tags: | ||
- author:<ldq3> | ||
- repo:https://github.com/LearningOS/rust-rustlings-2024-spring-ldq3 | ||
--- | ||
|
||
Rust 是一种高级程序设计语言 | ||
|
||
Rust 设计上的主要目标是保证内存安全,同时追求运行速度和内存利用率 | ||
|
||
个人认为,想要更好地理解和掌握 Rust,应该在探索 Rust 语法规则的同时思考 Rust 如何达成以上两个目标 | ||
|
||
# 抽象 | ||
高级程序设计语言的主要特征是高效的代码开发、管理和维护 | ||
|
||
在这一方面,Rust 提供了丰富的特性: | ||
- 泛型 | ||
- 强大的宏特性 | ||
- Attribute | ||
- 函数式 | ||
- trait | ||
- 强大的包管理器 Cargo | ||
- 很好的学习资料和活跃的社区 | ||
|
||
# 静态分析 | ||
为了实现零成本抽象,Rust 选择花更多的时间在编译阶段的静态分析上 | ||
|
||
Rust 一大核心功能——所有权系统,正是基于静态分析的 RAII 思想实践 | ||
|
||
RAII 思想的提出主要是针对动态数据类型(位于堆上的大部分数据)的释放问题,其基本思想是在变量获取存储资源时就为其绑定一个生命周期,资源将在生命周期结束后被自动释放 | ||
|
||
所有权系统保证了资源不会被二次释放 | ||
|
||
# To Be Continue | ||
这篇简短的博客作为2024春夏季开源操作系统训练营第一阶段的总结,我在其中简单概述了我对 Rust 语言的理解 | ||
|
||
因为我所学尚浅,且没有足够的实践经历,导致以上内容十分简略,甚至可能有不少错误 | ||
|
||
我并不希望这些内容就这样简短的结束并被掩埋和遗忘,所以我将在[我的个人博客](https://ldq3.github.io/)上持续更新我对 Rust 的理解 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
title: Summary of 2024s-rcore 2nd stage -- Rust for OS | ||
date: 2024-05-19 15:58:49 | ||
categories: | ||
- <catogory> | ||
tags: | ||
- author:<ldq3> | ||
- repo:https://github.com/LearningOS/2024s-rcore-ldq3 | ||
--- | ||
|
||
Rust 具有安全和高效的特性,这使得它有希望被用于构建更好的操作系统 | ||
|
||
# 操作系统 | ||
在计算机的分层体系结构中,操作系统位于软件和硬件的分界处 | ||
|
||
操作系统的职责是帮助用户程序管理计算机硬件,这基于 CPU 提供 ISA 实现(在本次实验过程中,具体是 RISC-V) | ||
|
||
操作系统的职责可以被进一步细分为几个方面——虚拟化、并发、持久性和驱动(和外部设备的通信) | ||
|
||
在第二阶段,我们并没有太多的关于驱动的内容。虚拟化考虑如何在有限的硬件资源上为多个软件提供相互隔离的服务,并发考虑如何控制软件对共享资源的使用、持有性主要指文件系统 | ||
|
||
操作系统称得上是人类所设计的最复杂的一类程序,在这里你几乎能用上计算机中的所有知识 | ||
|
||
# To Be Continue | ||
这篇简短的博客作为2024春夏季开源操作系统训练营第二阶段的总结,我在其中简单概述了我对 Rust 用于构建操作系统的理解 | ||
|
||
因为我所学尚浅,且没有足够的实践经历,导致以上内容十分简略,甚至可能有不少错误 | ||
|
||
我并不希望这些内容就这样简短的结束并被掩埋和遗忘,所以我将在[我的个人博客](https://ldq3.github.io/)上持续更新我对使用 Rust 编写 OS 的理解 |