Skip to content

yat-sen-os/SYSU-2021-Spring-Operating-System

Repository files navigation

中山大学2021学年春季操作系统课程

任课老师:陈鹏飞
助教:陈泓仰、谢文欣、傅禹泽、张钧宇

目录说明

  • labX是第X次实验的指导材料、代码和PPT的文件夹。
  • labX/README.md是第X次实验的指导、要求和提交时间的文档。
  • docs是参考资料的文件夹。
  • 本科生实验报告模板.docx是报告的模板。

实验内容的获取

方法一

每次点击下载ZIP将整个项目下载下来。

git使用方法1

方法二

在此之前,同学们需要安装并配置git,详情参考廖雪峰的git教程[https://www.liaoxuefeng.com/wiki/896043488029600]

由于方法一每次都会重复下载历史的文件,非常麻烦,方法二则提供了git的使用方法。如果还未在本地建立git连接,则需要新建一个文件夹,例如oslab。然后在oslab下初始化git

git init

创建了git仓库后,我们建立远程仓库连接。

git remote add gitee [email protected]:nelsoncheung/sysu-2021-spring-operating-system.git

此后,当远程仓库更新时,我们就从远程仓库中拉取最新的内容。

git pull gitee main

注意,我们的项目默认发布在main分支上,不是master分支。

其他资料

清华大学的rCore项目使用的是rust+arm的开发模式。同时,rCore也给出了相应的指导材料[https://github.com/rcore-os/rCore-Tutorial]。rCore分为十章,包含了操作系统实验的全部内容,分别是独立可执行程序、最小化内核、中断、内存管理、内存虚拟化、内核线程、线程调度、进程、文件系统、同步互斥。

另外一个相关的操作系统教程[https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials]是基于raspberry 3/4和rust来做的。

Cambridge使用的是raspberry+assembly开发的模式[https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html],且raspberry是Cambridge开发的。因此,在Cambridge的教程中,其从汇编和硬件编程的角度来给出操作系统的实验方案。并且,Cambridge还给出了图形化界面的编程细节,而其他教材并未提及相关内容。但是,Cambridge的教材中并未覆盖操作系统的重要概念,如线程和进程,并且教材通篇使用arm汇编实现。

Standford CS107e[http://cs107e.github.io/]使用的是raspberry+assembly+C的开发模式,其不仅涉及底层的编程细节如arm汇编和硬件交互等,还使用C实现了操作系统的重要概念,包括Larson Scanner, Clock, Formatting lib, backtrace, malloc, io, graphics lib, interrupt, system monitor。但是,cs107e并未实现进程、线程和文件系统等。而且cs107e和其他使用raspberry来作为实验环境的实验一样,过于强调真实硬件的使用,即在物理环境的raspberry pi上跑程序。

有一个使用x86+rust的实现方案[https://os.phil-opp.com/],实际上这个是方案是rCore的主要参考资料之一,基本上和rCore相一致,并详细指出了使用rust开发操作系统过程中需要调整的地方,如#![no_std],同时给出调整的原因。

另外一些相关工作并未直接给出操作系统的实现指导,但确是实现操作系统不可或缺的知识,如下所示。

About

中山大学2021学年春季操作系统课程

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •