|
|
|
@ -1,3 +1,61 @@
|
|
|
|
|
## ucore_os_lab port status
|
|
|
|
|
#### lab1:
|
|
|
|
|
|
|
|
|
|
- [x] Basic init:LocalAPIC,IOAPIC,GDT,PIC
|
|
|
|
|
- [x] Device:Keyboard,Serial,PIT
|
|
|
|
|
- [ ] Device:IDE
|
|
|
|
|
- [x] Interrupt & Trapframe
|
|
|
|
|
- [x] ※ Muilt-core startup
|
|
|
|
|
|
|
|
|
|
#### lab2: Physical memory management
|
|
|
|
|
|
|
|
|
|
- [x] Frame allocator:Naive
|
|
|
|
|
- [ ] Frame allocator:First Fit,Best Fit,Worst Fit,Buddy,Slab
|
|
|
|
|
- [x] Higher half kernel space
|
|
|
|
|
- [x] Kernel remap
|
|
|
|
|
|
|
|
|
|
#### lab3: Virtual memory management
|
|
|
|
|
|
|
|
|
|
- [x] Page table
|
|
|
|
|
- [x] Heap allocator:LinkedList (Rust crate)
|
|
|
|
|
- [x] ※ Stack allocator:Naive
|
|
|
|
|
- [x] MM & VMA
|
|
|
|
|
- [x] Copy on write
|
|
|
|
|
- [ ] Swap
|
|
|
|
|
|
|
|
|
|
#### lab4: Kernel thread
|
|
|
|
|
|
|
|
|
|
- [x] idleproc
|
|
|
|
|
- [x] initproc
|
|
|
|
|
- [x] fork
|
|
|
|
|
- [ ] Scheduler thread
|
|
|
|
|
|
|
|
|
|
#### lab5: User thread
|
|
|
|
|
|
|
|
|
|
- [x] Run xv6 64bit user programs:See the list below
|
|
|
|
|
- [x] Run ucore 32bit user programs:See the list below
|
|
|
|
|
|
|
|
|
|
#### lab6: Schedule
|
|
|
|
|
|
|
|
|
|
- [x] Schedule framework
|
|
|
|
|
- [x] RRScheduler
|
|
|
|
|
- [x] StrideScheduler
|
|
|
|
|
|
|
|
|
|
#### lab7: Synchronization
|
|
|
|
|
|
|
|
|
|
- [x] Mutex:Rust core lib built-in
|
|
|
|
|
- [ ] Semaphore
|
|
|
|
|
- [ ] Monitor
|
|
|
|
|
- [ ] Dinning Philosophers Problem
|
|
|
|
|
|
|
|
|
|
#### lab8: File system
|
|
|
|
|
|
|
|
|
|
- [x] Simple file system
|
|
|
|
|
- [x] Load user programs from .img
|
|
|
|
|
- [ ] FS framework for process
|
|
|
|
|
- [ ] Device IO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## uCore 32bit user programs pass status
|
|
|
|
|
- [ ] badarg
|
|
|
|
|
- [ ] badsegment
|
|
|
|
|