一、前言
在过去两周,我学习了rCore操作系统。通过阅读实验指导书,我跟着操作系统的发展历程,学习了批处理系统、多道程序与分时多任务、虚拟地址空间、进程管理、文件系统、进程通信和并发等核心概念,并对rCore的实现有了更深入的认识。以下是我对这两周学习过程的总结。
二、学习内容
搭建执行环境:
学习了平台与目标三元组,理解了应用程序执行环境。
批处理系统:
学习了批处理系统的基本原理,包括作业调度、作业执行过程。
多道程序与分时多任务:
掌握了多道程序设计的基本概念,以及如何实现分时多任务调度。
虚拟地址空间:
理解了虚拟内存的概念,包括页表、地址映射。
进程管理:
学习了进程的管理、调度,更加深入的理解了fork+exec。
文件系统:
掌握了文件系统的基本结构,包括目录、文件。
进程通信:
学习了父子进程之间的通信机制——管道。
并发:
学习了线程管理机制的设计与实现,理解了同步互斥的实现,包括锁、信号量、条件变量。
三、学习心得
Rust语言的安全性和性能在rCore开发中得到了充分体现,经过阅读系统的源码以及作业的编写,对rust语言在内存安全和并发控制方面的优势有了更深的理解,第一阶段学习rust的很多疑问也得到了解答。
通过学习rCore,我对操作系统的原理有了更深入的理解,虽然考研的时候较为系统的学习了操作系统的知识,但是基本上还是停留在理论知识方面。这次rCore学习之旅,我获取PCB对进程进行操作、实现课本上学习过的系统调用、深入汇编代码理解什么是 '陷入' ,让我对操作系统的设计理念、计算机的体系结构有了具象化的认识。
在学习过程中,我也遇到了许多挑战,包括环境搭建遇到报错、Rust基础不够牢固导致代码编写举步维艰等,但通过不断解决这些问题,我的编程能力和问题解决能力得到了显著提升。
两周的rCore学习之旅让我受益匪浅。通过学习rCore,我对操作系统的设计和实现有了更深刻的认识,同时也提升了我的编程技能。我相信,这些知识和经验将对我未来的学习和职业发展产生积极影响。