Added features to improve virtual memory system management in xv6. When a process is created, the memory system will encrypt the contents of its user pages to ensure its security and decrypt the page when the user needs it. Also, I introduced the clock algorithm to minimize the number of page decryptions to improve efficiency.
You can just experience the features by running the xv6 system which mentioned in its README. Moreover, I added some user tests, so you can run the tests to see how the memory system plays with user page tables.
- data structure of the queue?
- where to put the queue management?
- What files need to be modified to ensure the system working
description | progess |
---|---|
1, init all the user pages as the encrypted state | finished |
1.5, update getpgtable(), dump_rawphymem() | finished |
2, add the clock queue mechanism |
finished |
3, manage the fork() | finished |
- encrypt pages in growpoc() and extra pages in exec() √
- update getpgtable() with new ptentry.h
- updated new ptentry.h √
- build the logical frame √
- update dump_raw() with decrypted pages √
1, ensure correctness on user level √ 2, insert into kernal part √