|
|
@ -16,6 +16,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
我们期望这个项目在短期内实现uCore的全部功能,未来能够比肩甚至取代C语言版本的uCore成为新一代的教学操作系统,使之更加简洁、安全、模块化。
|
|
|
|
我们期望这个项目在短期内实现uCore的全部功能,未来能够比肩甚至取代C语言版本的uCore成为新一代的教学操作系统,使之更加简洁、安全、模块化。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 目录
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[TOC]
|
|
|
|
|
|
|
|
|
|
|
|
## 实验概述
|
|
|
|
## 实验概述
|
|
|
|
|
|
|
|
|
|
|
|
### 实验目标和完成情况
|
|
|
|
### 实验目标和完成情况
|
|
|
@ -107,7 +111,7 @@ blog_os的内核位于低地址区,它在进入Rust前的汇编中设置了一
|
|
|
|
* 链接时由于段名称错误导致属性不正确,最终导致了PageFault
|
|
|
|
* 链接时由于段名称错误导致属性不正确,最终导致了PageFault
|
|
|
|
* 32位跳转到64位写法不正确,链接时报错:relocation truncated to fit: R_X86_64_PC32
|
|
|
|
* 32位跳转到64位写法不正确,链接时报错:relocation truncated to fit: R_X86_64_PC32
|
|
|
|
|
|
|
|
|
|
|
|
###2. 设备和多核的初始化
|
|
|
|
### 2. 设备和多核的初始化
|
|
|
|
|
|
|
|
|
|
|
|
blog_os只实现了中断处理,还没有实现对设备的操作。
|
|
|
|
blog_os只实现了中断处理,还没有实现对设备的操作。
|
|
|
|
|
|
|
|
|
|
|
@ -292,7 +296,7 @@ Rust将C++中的RAII和移动语义发扬光大,形成了所有权机制,并
|
|
|
|
|
|
|
|
|
|
|
|
所有权机制导致的另一个结果就是Rust中的对象有严格的层级关系,上层拥有下层的所有权。这使得结构更加清晰,但丧失了一定的灵活性,而且经常出现深层嵌套。
|
|
|
|
所有权机制导致的另一个结果就是Rust中的对象有严格的层级关系,上层拥有下层的所有权。这使得结构更加清晰,但丧失了一定的灵活性,而且经常出现深层嵌套。
|
|
|
|
|
|
|
|
|
|
|
|
例如锁`Mutex<T>`,它就“拥有”里面的具体类型T,你想访问里面的内容,就必须先从外部开锁`mutex.lock()`,如果此时没有其它人使用,就会返回一个`MutexGuard<T>`,这个对象拥有T的“访问权”,你可以通过它操作T。当MutexGuard离开作用域销毁时,会自动调用析构函数重新给mutex上锁。
|
|
|
|
例如锁`Mutex<T>`,它就“拥有”里面的具体类型T,你想访问里面的内容,就必须先从外部开锁`mutex.lock()`,如果此时没有其它人使用,就会返回一个`MutexGuard<T>`,这个对象拥有T的“访问权”,你可以通过它操作T。当MutexGuard离开作用域销毁时,会自动调用析构函数给mutex解锁。
|
|
|
|
|
|
|
|
|
|
|
|
反观C,给人的感觉是所有的对象都是平行地散落在内存各处,它们之间只是互相引用,而要说谁控制谁,那只有开发者才知道。假如开发者也糊涂,就会出现内存泄漏或是重复释放。C中的锁和被锁对象往往是平级关系,上锁这件事需要文档来说明,这导致我们经常忘了上锁。
|
|
|
|
反观C,给人的感觉是所有的对象都是平行地散落在内存各处,它们之间只是互相引用,而要说谁控制谁,那只有开发者才知道。假如开发者也糊涂,就会出现内存泄漏或是重复释放。C中的锁和被锁对象往往是平级关系,上锁这件事需要文档来说明,这导致我们经常忘了上锁。
|
|
|
|
|
|
|
|
|
|
|
@ -313,6 +317,7 @@ Rust提供了完善的包管理系统和模块系统,可以很方便地实现
|
|
|
|
3. 完成xv6所有功能的移植,主要是多核运行程序
|
|
|
|
3. 完成xv6所有功能的移植,主要是多核运行程序
|
|
|
|
4. 学习借鉴sv6搞SMP优化
|
|
|
|
4. 学习借鉴sv6搞SMP优化
|
|
|
|
5. 把进程管理和内存管理模块化
|
|
|
|
5. 把进程管理和内存管理模块化
|
|
|
|
|
|
|
|
6. 尝试和ARM组合并
|
|
|
|
|
|
|
|
|
|
|
|
## 日志
|
|
|
|
## 日志
|
|
|
|
|
|
|
|
|
|
|
|