-
Notifications
You must be signed in to change notification settings - Fork 3
getting started with storage research
Welcome to the group! Thanks for your interest in joining the research work in the storage domain.
We broadly work with high-performance, NVMe storage devices and research on how modern storage stack on them should be designed and built.
Understand storage basics:
- https://pages.cs.wisc.edu/~remzi/OSTEP/ (chapters 36, 37, 39, 40, and 44)
- MODERN OPERATING SYSTEMS, FOURTH EDITION, https://csc-knu.github.io/sys-prog/books/Andrew%20S.%20Tanenbaum%20-%20Modern%20Operating%20Systems.pdf (chapters 4 and 5)
- Linux specific, https://en.wikibooks.org/wiki/The_Linux_Kernel (under progress)
Read past BSc and MSc thesis from the group on the topics of storage work: https://animeshtrivedi.github.io/team/
Read one paper and see how much of this paper can you understand:
- Performance Characterization of Modern Storage Stacks: POSIX I/O, libaio, SPDK, and io_uring, https://dl.acm.org/doi/10.1145/3578353.3589545
Do some "hello storage" coding in QEMU (This section needs more specific, step by step instructions)
- What is QEMU, a whole system emulator in which we do development work. So what when we mess up the code, it does not crashes or corrupt our machine. https://www.qemu.org/
- [setup an NVMe development environment in a VM] follow these instructions: https://qemu-project.gitlab.io/qemu/system/devices/nvme.html
- Write a simple file read and write program that can create a file, write it, and then read it. It reports how much times it take to run this setup for 100,000 times.
Learn how to interact with a block device, and how to change them
Learn how to install a file system on a block device
Learn about common storage applications
What does benchmarking storage stack or applications mean