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

添加了第四阶段的学习记录 #699

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
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
45 changes: 45 additions & 0 deletions source/_posts/24秋冬训练营三阶段总结-yukariyuko
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@

---

title: 24秋冬训练营三阶段总结-yukariyuko
date: 2020-07-15 16:40:28
categories:
- <catogory>
tags:
- author:yukariyuko
- repo:https://github.com/yukariyuko/oscamp24fall
- arceos
- 24fall

---

# 总结

通过第三阶段的学习,了解了组件化操作系统内核的思想,这告诉我们可以基于组件构造内核的方法,增量地构造出应对不同场景的各种模式内核。从而能够:
1. 提高内核开发效率
2. 降低内核维护难度
3. 开展基于组件的功能复用和开发协作
具体来讲:

## 第一周

- 配置好了项目环境
- 通过模拟需求的不断增加的场景,增量地认识了unikernel形态下的Arceos
- 了解了如何根据需求变更,从最开始一个极为简单的内核逐步扩展出一个拥有文件系统等功能模块的unikernel
- 了解了如何通过转义字符使终端打印彩色字符
- 实现了简单的Hashmap
- 实现了一种简单的内存分配算法

## 第二周

- 见识到了如何根据组件化的思想,仅通过增加少量组件,将unikernel形态下的内核扩展为Monolithic kernel
- 了解了一点riscv硬件架构的知识
- 学习了Arceos中TCB的设计思路
- 编写了一个函数处理缺页异常
- 实现了一些简单的unix应用(mv,rename)
- 了解了mmap函数

## 第三周

- 了解了虚拟化的思想和一些基本概念
- 了解了是如何通过增加模块将Arceos进行虚拟化的
32 changes: 32 additions & 0 deletions source/_posts/24秋冬训练营四阶段总结-yukariyuko
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---

title: 24秋冬训练营四阶段总结-yukariyuko
date: 12/22
categories:
- blog
tags:
- author:yukariyuko
- repo:https://github.com/yukariyuko/naive
- async
- io_uring

---

# 总说
在训练营的第四阶段,几乎一直在读东西,一边看一边学asynchronous和Rust,之前几乎没有了解和使用过异步方面的东西。
学习效果不是很好,结营后还得多读多写这一块的代码,继续学习。

# 细说
## 第一周:
- 了解了一些RUST的异步和协程机制
- 读了[绿色线程](https://zjp-cn.github.io/os-notes/green-thread.html)的代码
- 读了philopp那篇用[异步实现协作式任务调度](https://os.phil-opp.com/async-await/)

## 第二周:
- 跟着[这篇博客](https://toetoe55.github.io/async-rt-book/)了解了实现异步运行时的思路
- 看PPT给上的[tokio相关](https://tokio-zh.github.io/document/)

## 第三周:
- 读了io_uring的手册,顺带了解了一下使用环形队列和内存映射,无锁环提高性能的原理
- 读了一下smol源码,主要是futures-lite和async-executor部分
- 尝试使用iou封装的接口实现[简单的异步文件读写](https://github.com/yukariyuko/naive),但是实现的waker有问题,没有成功