The ics2021 PA lab of NJU, finished PA0-PA4.4. This PA repository presently implements:
- nemu is a computer emulator based on RISCV32 architecture with a single CPU, timer, serial, keyboard, VGA and etc;
- abstract-machine with trm, ioe, ctx,vme and other kernal libs supports OS implemtation or other am applications;
- nanos-lite is build on nemu and abstract-machine, which supports several system calls, context exchange, virtual memory mechanisim and a simple process scheduling method.
- navy offering a series of runtime environment like libos, libc, libndl, libminisdl and etc to support riscv32 application.
However, some unimportant parts of the PA remains unimplemented, including
- trace tools in 基础设施(2), they are some debug architectures in PA;
- libam in 精彩纷呈的应用程序, which supports the am applications like typing-game running on the nano-lite
- some optional parts including:
- sound: sound device in nemu and abstract-machine is implemented, sound deivce read & write support in nano-lite and sound suuport of libndl and libminisdl in navy-apps is unimplemented.
- optional part in 编写不朽的传奇
The above may be implemented in the future
This project is the programming assignment of the class ICS(Introduction to Computer System) in Department of Computer Science and Technology, Nanjing University.
For the guide of this programming assignment, refer to http://nju-ics.gitbooks.io/ics2021-programming-assignment/content/
To initialize, run
bash init.sh subproject-name
See init.sh
for more details.
The following subprojects/components are included. Some of them are not fully implemented.