This paper presents our experience of developing Octeon MIPS64r2 'User Mode Emulation' (UME) support into open source 'Quick Emulator' (QEMU). QEMU can emulate numerous target architectures. Like many other open source projects, available documentation of the software is either scant or stale. Modifying and extending such code becomes especially challenging due to the sheer size of the code base (654K lines of code spread over 1251 source files). Sporadic or no developer support makes things even more challenging. Therefore, a team of developers is effectively left with the source code to understand it and to correctly change it without causing any regression bugs. We overcame this challenge using methodical software engineering techniques. This paper discusses various problems that we encountered and solutions that we employed. In addition, we present QEMU's software architecture, which we constructed in a bottom-up manner using source code. We believe that such experiences are relevant for understanding and extending any software of substantial size.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.