diff: egos-2k+ vs. egos-2000
(last update: 09/03/2023)
Below is a list of modifications in egos-2k+
compared with egos-2000
at commit
ef8b83ef198181bf4bcb1623bf92b92f5dbb6b19
(09/01/2023).
- remove all code related to ARTY board (`egos-2k+` supports qemu only)
- change memory layout (see "egos-2k+ memory layout" in Reference)
- reorg memory management by
- splitting virtual memory module to `cpu_vm.c` from `cpu_mmu.c`
- implementing a simple physical memory allocator in `page_allo.c`
- changing how to track apps' page usage in soft tlb mode (`cpu_mmu.c`)
- moving PMP initialization to `cpu_mmu.c` from `process.c`
- reorg trap (interrupt and exception) handler by
- using a unified trap handler (`trap_handler()`) instead of two, and distinguishing interrupt and exception in `kernel.c` instead of `cpu_intr.c`
- switch to kernel stack immediately when entering the kernel
- moving exception handler `excp_entry()` to `kernel.c` from `process.c`
- moving `proc_yield()` from `kernel.c` to a new `scheduler.c` file
- moving `proc_send()/proc_recv()/proc_syscall()` from `kernel.c` to `syscall.c`
- reorg timer
- move `grass/timer.c` to `earth/cpu_timer.c`
- add `timer_reset` to earth's interfaces
- slow down timer by increasing QUANTUM by 100x
- change pid generation by always using the smallest possible pid starting from 1
- other minor updates
- add `memcopy_helper(...)` in `cpu_mmu.c`
- remove paging device, `dev_page.c`
- reorder page allocation and elf file copy in `elf.c` for readability
- add `ASSERT` in `egos.h`
- add two user apps, `memloop` and `helloworld`
- for the ult lab, remove sempaphore and add `queue.h` as students' exercise
- zero empty disk space in `mkfs.c`
- update `crash2.c` on where to write
- minor updates in `dev_tty.c` for readability
- minor reorg in `grass.c`