各位同学好:
今天上午汪乐平同学给大家过了一下UniKraft的启动代码到进入到应用程序的全过程。
总结来看,全过程大概如下:
1. 启动(启动器,或者qemu将应用程序的镜像以及应用程序本身放到主内存固定的位置)
2. 操作系统初始化中断向量,初始化页表等各种硬件需要初始化的地方(这里启动了堆内存和frame内存分配器?)
3. 启动处理器的多核效果
4. 初始化内核的库,这些库有不同的启动顺序。ctor表里面先于init表里面的启动函数。
5. 启动用户程序所需要构造函数
6. 进入到用户程序的main。
汪乐平同学发一下上午的ppt给大家。
晚上同学进行了总结,下一阶段需要做的工作:
1. 袁世平:rcore的第九章,virt driver
2. 晏巨广:完成的工作arceos 在arm上面能启动。没有设备树。定先做一个redis。bhy, yjb合作。做应用程序。sqlite,nginx,redis。下周讲一下arceos的结构。
3. 张益程:Zyc: xv6相关的文档和代码都看了一下。wyf,里面有kernel中断打开的问题。下一步用陈渝老师的sleep的spinlock trait先来实现文件系统。
4. 汪乐平:(1)看一下arceos的代码。(2)zcore有arm的多核。第一步目标多个核一起干活。
陈康