Skip to content

os tutorial os2atc

chyyuu edited this page Jan 15, 2020 · 16 revisions

OS Tutorial on OS2ATC2019 2019.12.15

介绍

学习写OS不是那么难--基于RUST语言 && 面向RISC-V CPU

学习写操作系统内核很困难吗?我们认为这是过去的历史了。如果你有一定的基础,比如有数据结构和编程能力,且愿意学习新知识,比如学习RUST语言编程和RISC-V CPU的一些与OS相关的硬件知识,那么你会发现,也许学习写一个OS不是那么困难的事情。在这个tutorial中,我们讲介绍如何一步一步地设计并实现从OS加载,启动到能够运行应用程序的6个阶段步骤,让你体会到采用新技术和新思路来实现一个面向特定领域的OS不是那么困难。也许在未来的AIoT领域,你可以实现自己的OS。

适合人群

由于场地有限,需要提前在 os2atc2019会议网站上报名参加os tutorial,且被通过(会有邮件回复确认报名成功)

人数限制:只有60个座位的实验室

有较强编程能力的高年级本科生,研究生和工程师;从事系统软件相关研究/开发的从业者。尤其适合:深入地系统化学习;追求技术细节和技术突破。 先修要求:1、较强编程能力;2、提前自学RUST语言编程 3、了解计算机组成原理和RISC-V CPU

时间地点

12月15日上午 9:00~12:00

深圳市鹏城实验室 B栋14楼1409室

提前准备

应该有的基本技能

  • 了解linux命令行方式的基本操作
  • 了解git基本操作
  • 学过编程,数据结构,组成原理,操作系统

携带计算机设备

  • (推荐)安装了ubuntu 18.04 x86-64的笔记本电脑(能上wifi或4G网络)
  • (推荐)推荐提前安装好基于docker的实验环境(看下面“建立实验环境”一节)
  • (推荐)提前尝试下载/编译/运行 https://github.com/rcore-os/rCore_tutorial 中的代码(如果你熟悉linux/git/rust...)

step 0 理解基于RUST语言的编程

要求有基本数据结构,算法基础,相对了解或熟悉C/C++/Java等编程.

阅读书籍并多做练习题

step 1 理解RISC-V CPU

要求有基本计算机组成原理,计算机系统结构基础。

阅读书籍

step 2 阅读rcore os kernel实验文档并搭建实验环境

阅读代码和在线文档

建立实验环境

基于实验楼的在线实验环境(编程环境可用,文档建设中...)

请访问课程网页,验证码为:wfkblCQp
远程桌面实验环境中已经配置好运行实验所需的环境并clone了rCore_tutorial仓库到家目录下。 编译过程有可能有点慢,请耐心等待。

基于docker的本地实验环境

运行实验

本实验支持docker环境下开展,在docker hub上已有可用的docker环境,在当前目录下运行make docker将会从云端拉取docker镜像,并将当前目录挂载到/mnt位置。参考的准备命令如下:

# ---在本机环境中的命令---	
git clone https://github.com/rcore-os/rCore_tutorial  # 取得os tutorial: rcore step by step 源码
cd rCore_tutorial # 进入实验项目目录
make docker # 建立本机docker环境并进入docker中的终端

# ---在docker实验环境中的命令---
cd /mnt
# 然后可以进行编译/qemu中运行实验。例如:
cd usr
make user_img
cd ../os
make build
make run

如有兴趣,也可以自行构建/调整docker镜像,相关的Dockerfile文件在当前目录下,我们提供了make docker_build命令来帮助构建,详情请看Dockerfile和Makefile

了解写RUST写OS的相关综述信息

加入微信群

os tutorial微信群

日程安排

  • 9:00 开始
  • 9:15 Intro结束
  • 9:20 第一章讲完
  • 9:45 第二章讲完
  • 休息1
  • 9:50 开始第三章
  • 10:05 开始第四章
  • 10:20 开始第五章
  • 10:35 第五章讲完
  • 休息2
  • 10:40 开始第六章
  • 10:50 开始第七章
  • 11:00 开始第八章
  • 11:10 总结 Demo
  • 11:20 交流讨论

毕业项目

完成下列项目之一,即可完成毕业,我们会在网络上公布已完成的毕业项目和完成者名单

把rcore移植到荔枝派开发板(基于k210 CPU, 2 cores, rv64)上