Replies: 1 comment
-
2024春夏季开源操作系统训练营第三阶段项目六(异步协程操作系统)的推进情况。 注:本项目开始后可能还会再有新学员在完成第二阶段目标后加入本项目,对于这些后加入的学员需要逐一在你加入前布置的任务要求。 20240629-第六周总结报告安排请各位参加训练营最终报告的同学在这里填写自己的总结报告标题、幻灯片和文档链接。建议的幻灯片内容包括以下内容。
zjp & tyz
ldq演示文稿的 Typst 项目仓库地址:summary_of_OS_camp 总结报告标题:《个人工作总结》 wjx
yzw & slh
zd
教室录屏学习视频:2024年6月29日的课堂 20240622-第五周线上交流安排zjp本周工作
# 例子 2:通过运行生产者和消费者两个任务来观察 SPSC
cargo r -p zerocopy-channel
# 例子 3:观察 SPSC 的背压
cargo r -p zerocopy-channel-backpressure
# 例子 4:在非 embassy-executor 运行时,以非 'static 的方式使用 embassy_sync::zerocopy_channel::Channel;
cargo r -p zerocopy-channel-nonstatic
下周计划上周任务没有完成,下周继续吧...
wjx本周工作
下周计划
yzw本周工作
下周计划这周刚考完试,做的工作不是太多,下周将线程运行时搭建完成,应该就能直接把executor跑在线程上了 tyz本周工作
下周工作rCore的定时器中断异步驱动 笔记:blog/异步os at main · tyz-own/blog (github.com) zd本周工作
下周工作用tokio写异步爬虫,完成之后开始修改Arceos代码。 slh本周工作由于本周考试比较多,所以仅仅是完成了上周未完成的任务
下周工作
课堂视频
20240615-第四周线上交流安排zjp本周工作
下周计划
yzw本周工作
下周计划
slh本周工作
下周计划接下来的计划主要是与yzw同学共同开发
wjx本周工作
下周计划
cyh本周工作
下周计划继续尝试...但下周每两天有次考试可能时间有些紧 yzw本周工作
下周计划
是比对现有的WebServer(这些成熟的WebServer除了异步之外肯定有其他的考量之处),还是比对不同语言的异步IO性能(那具体如何实现,我目前是自己实现的小型WebServer,这种demo式的比对是否客观呢?)
ldq本周工作尝试在 QEMU 上运行 Embassy 程序。尝试了很多东西,但大部分是一些失败的示例,不过也算是摸清了一些门道。
下周计划
交流视频
20240608-同学们选择的项目目标基于今天的交流,我认为,经过三周的学习,多数同学已完成异步编程相关的知识积累。后续我们转入异步OS和驱动的实现阶段,现将同学们在训练营第三阶段的目标描述成如下四个任务。
20240608-第三周线上交流安排本周的训练营项目六在(6月8号)下午3点安排线上进行。请各位学员在交流会前在石墨文档 https://shimo.im/docs/KlkKvegZoeudw7qd 中通报本周进展,并准时参加交流。如有时间冲突的,可联络我进行简要的讨论。 姓名:zjp本周工作
下周计划
姓名:yzw本周工作
下周计划打算学习embassy-stm32外设的异步操作实现,以及embassy executor的代码深入阅读,想法是debug来边看边学,目前没有找到有讲解它代码的文档,应该就是从代码入手,调试着看。有个后续展望是将我们自己的四轴飞行器原来使用的UCOSII移植的操作系统更换为embassy异步框架,同样实现HMC、MPU6050以及蓝牙模块的外设,改为异步处理。 开完会后,计划先从pac入手,将UCOSII的线程部分移植过来,准备实现能够被断的异步(协程),认为必须在有线程的存在下才能实现这个事情。 姓名:ldq本周工作很惭愧本周只有一两天时间投入到这项工作中,没有做太多事情。
下周计划庆幸的是,下周开始其它事情基本告一段落了,可以投入更多时间和精力到这项工作中。
姓名:tyz本周工作惭愧加一,本周一直在忙着复习,可能这几周都会围着复习转。。。
下周计划继续异步系统调用 姓名:yzw本周工作
测试场景为M:N个协程,各自维护消息队列,发送不同类型的消息。 下周计划这部分也是最终的规划了……打算把这个性能测试的工作做到训练营结束,预期的工作主要有以下几点
如果方向上有失偏颇(主要是代码部分)可能后续还会做一定的调整,进展会放在性能测试相关 姓名:slh本周工作
下周计划先把Embassy看完,然后尝试自己写一个异步的驱动程序 姓名:cyh本周工作
下周计划看一下怎么把embassy引入到rcore 姓名:wjx本周工作最近在忙学校里的事情,没有做太多的实践,更多是读一部分文档和构思后续的开发过程的设计,预计的使用的OS为ArceOS
下周计划准备开始写代码开发 姓名:zd本周工作在阅读完200行之后对异步理解不够深入,参照rust圣经对tokio和mini-redis进行练习 下周计划编写异步爬虫,学习embassy 20240602-第二周线上交流由于周六安排了学术报告,本周的训练营项目六交流改到在周日(6月2号)下午3点。请各位学员在交流会前在石墨文档中通报本周进展,并准时参加交流。如有时间冲突的,可联络我进行简要的讨论。 姓名:zjp本周工作
下周计划仔细研究一些项目代码
姓名:tyz本周工作
下周计划
姓名:yzw本周工作
下周计划
姓名:ldq本周工作本来计划按照向老师上周交流中提出的建议,自己动手写一写 Rust 异步编程和 Embassy 的代码,但只完成了一小半的内容,因为由于临近毕业答辩琐事增多,以及发烧了两天。
下周计划
姓名:cyh本周工作
下周计划
姓名:yzw本周工作本周的工作较为杂乱,没有体现出一个循序渐进的过程(低情商:东看西看)
下周计划
以上都是为了熟悉rust本身,以及对异步有个体会。下面的是长远的计划
姓名:slh本周工作
下周计划
姓名:csj本周工作
下周计划
姓名:wjx(请假了)本周工作
下周计划
20240528-开发日志建议和回应为方便形成一个互助的学习环境,我想建议项目六的同学们能积极写开发日志,分享自己踩过的坑,以减少大家重复踏入同一个坑的可能。有响应这个建议的同学,请接龙回复。谢谢! 20240525-第一次线上交流情况今天交流会的回放视频。 下一步的项目目标建议如下。每位同学依据自己的情况进行选择,如果这些目标都不适合你,也可以与老师协商自选目标。
目前已确定的项目协调人安排如下。
下周六的交流安排如下。
20240524-第一次线上交流安排很高兴有11位学员选择了参加开源操作系统训练营第三阶段的项目六。现安排本周六(25号)下午3点的第一次AsyncOS项目的线上讨论。线上讨论教室进入方法:“课程签到 - 登录 - 进入教室”。 为方便讨论,请各位学员讨论前回复自己进展情况,并参加明天的讨论。 姓名:zjp第三阶段项目目标更深入地研究 Rust 异步与异步操作系统的结合。 本周工作学习异步 Rust 的 Future
本周学习总结:https://docs.qq.com/slide/DTE5Ta2FXZ1NjSldN 下周计划开始学习老师给的操作系统方面的资料。 姓名:ldq第三阶段项目目标学习异步编程,准备完成任务一改造异步驱动 本周工作学习了异步编程的基本概念,Rust 异步编程的基本概念和模型,尝试写了写一些公开学习资料中给出的示例项目 下周计划学习驱动知识,Embassy库的使用 姓名:yzw第三阶段项目目标学习异步编程,结合嵌入式系统了解其应用 本周工作学习200行讲解rust,查阅原文Futures Explained in 200 Lines of Rust整理笔记(目前只看到一半因为还看了原文的一些bonus部分),中间还学习了trait涉及到的动态分发的内容,但是有些疑惑还没有完全解决,来自exploring-dynamic-dispatch-in-rust 笔记:https://liamy.clovy.top/article/OScamp_prj6_pre01 下周计划推进200行学习,提升速度,再着手把embassy文档看了 姓名:wjx第三阶段项目目标学习RUST语言中对于异步的设计,探索更多对异步驱动和系统的实现 本周工作看完了参考资料的视频,在读200行讲解FUTURE的部分,在搜集关于Embassy的更多资料来学习。 笔记:https://github.com/J1ngxuanWei/rCore-OS-2024Summer/tree/main/asyn 下周计划把资料看完,同时尝试看看能不能结合ArceOS来做点工作和探索( 姓名:slh第三阶段项目目标学习Rust的异步编程知识,并详细了解嵌入式系统中的异步编程 本周工作主要学习《200 行代码讲透 Rust Futures》并做了一些相关的笔记,目前只看到第四章唤醒器部分(因为在中间被一些细节卡了很久),并根据唤醒器的实现对Rust中的trait有了更深的了解 笔记:https://github.com/Air-Suck/Spring-rCore/tree/stage3/note 下周计划加快学习速度,将200行看完并开始学习Embassy 姓名:tyz第三阶段项目目标学习并深入了解异步os 本周工作学习rust的Future,简单了解Embassy 笔记:blog/异步os/RUST FUTURES.md at main · tyz-own/blog (github.com) 下周计划学习Embassy,进一步了解Future的相关机制与实现 姓名:cyh第三阶段项目目标了解异步编程的实现原理 本周工作
下周计划继续阅读文档并学习rust的Future的实现 姓名:yzw第三阶段项目目标学习RUST异步编程的相关知识,并尝试在已有的rcore或其他OS上进行异步相关的探索 本周工作
下周计划巩固前面学的内容……准备在任务一上做一些探索 具体想法现在有两个 第一个是对Alien OS或者相关的组件化OS(Starry也可以)做一些探索,尝试在上面实现异步 第二个是希望能够翻译一些RUST的技术文档(主要是考虑到自己的能力别干了一天活都是负反馈就是了…… 姓名:zty第三阶段项目目标学习和了解异步编程的如何实现系统移植,准备完成任务一移植系统 本周工作阅读了两节《200行代码讲透Rust Futures》和下一代嵌入式应用框架 Embassy,看了向勇老师录制的视频 学习笔记链接:nusakom/nusakom-s-blog (github.com) 下周计划继续把未看完的文档和视频看完 姓名:lrc第三阶段项目目标学习并实现用户态中断,实现异步系统调用。 本周工作学习了Rust相关基础异步编程并写demo。 下周计划复现郑友捷Starry-OS正常运行在田凯夫工作的模拟器上。 问题描述编译田凯夫项目https://github.com/U-interrupt/qemu,编译命令(已clone了项目的dev分支并cd到了项目根目录): cd qemu/ mkdir build && cd build ../configure --prefix=xxx/qemu-install --target-list=riscv64-softmmu --disable-werror make -j$(nproc) 部分地方因为Warning也会无法通过编译,故使用了--disable-werror选项。 在make时报错如下: ../ebpf/ebpf_rss.c: In function ‘ebpf_rss_load’: ../ebpf/ebpf_rss.c:52:5: error: implicit declaration of function ‘bpf_program__set_socket_filter’; did you mean ‘bpf_program__attach_netfilter’? [-Wimplicit-function-declaration] 52 | bpf_program__set_socket_filter(rss_bpf_ctx->progs.tun_rss_steering_prog); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | bpf_program__attach_netfilter ../ebpf/ebpf_rss.c:52:5: warning: nested extern declaration of ‘bpf_program__set_socket_filter’ [-Wnested-externs] 导致项目无法通过编译。 姓名:zd第三阶段项目目标学习异步编程思想,实现异步系统调用 本周工作阅读200行和Embassy,看学习视频 下周计划20240519-参考文献
20240519-第三阶段启动请选择项目六的学员在这里回复自己的姓名、github ID和自己的项目仓库链接,然后开始依据今天第三阶段启动会上的幻灯片,开始学习Rust的异步编程,并在自己的仓库中写学习笔记。本周六(25号)下午3点进行第一次项目六的交流,交流内容是自己对异步编程的理解和自己在第三阶段想达成的目标。 本周任务
学员信息收集
本周学习建议视频:
文档:
异步操作系统内核模块: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
目标:基于异步协程机制的嵌入式OS内核组件和框架
尝试利用Rust异步协程机制来写各种操作系统内核组件,并形成一个操作系统构架。与基于线程机制的操作系统内核进行性能分析与比较。
小任务:
注:2025春夏季OS训练营四阶段同学,请结合自己的兴趣和时间,先选择你觉得适合你的一个小任务(建议从简单的入手),并告知相关助教和老师。
参考资料:
基础阶段:学习相关博客
进阶阶段:阅读 tokio 源码和文档并进行实践
嵌入式异步框架embassy中文文档
2024春夏季OS训练营实习:embassy preempt开发总结文档
2024秋冬季OS训练营实习总结:异步协程相关1
2024秋冬季OS训练营实习总结:异步协程相关2
embassy os kernel:Embassy is the next-generation framework for embedded applications.
ariel-os:Ariel OS is an operating system for secure, memory-safe, low-power Internet of Things (IoT). It is based on Rust from the ground up and supports hardware based on 32-bit microcontroller architectures (Cortex-M, RISC-V, and Xtensa).
基于异步协程的内核组件与宏内核架构操作系统
注:偏学术研究类
如有兴趣一起来探索,请联系我 yuchen AT tsinghua.edu.cn OR 微信 id chyyuu
Beta Was this translation helpful? Give feedback.
All reactions