There has been a lot of development in RISC-V software and hardware ecosystems by open-source developers to enable RISC-V architecture in every field of technology which can be automotive, AI on the edge, cloud servers, etc. In all of these developments, operating systems play an important role in scheduling various tasks and executing them in the correct order to attain a perfect level of parallelism and overall performance. This testimonial explains the development of xv6 operating system development on RISC-V using Cloud-V.
About xv6 Operating System
Xv6 is a teaching operating system developed in the summer of 2006 for MIT's operating systems course. It is written in ANSI C and is a Unix-like operating system. It is, in fact, a re-implementation of Unix Version 6. It includes multiprocessor support which requires concurrency head-on with locks and threads, and includes a proper file system. There is a booklet provided by MIT containing the details of the xv6 operating system. xv6 compiles using the GNU C compiler. Xv6 can boot on real hardware but is typically booted on the QEMU emulator.
The latest source code of xv6 is available at this repository: https://github.com/mit-pdos/xv6-public
xv6-riscv Operating System
As RISC-V is an open-source ISA, for ease of development, MIT staff ported xv6 to RISC-V, making it an xv6-riscv operating system. The source code of the xv6-riscv repository can be found on the following link:
https://github.com/mit-pdos/xv6-riscv
Integrating xv6-riscv Operating System with Cloud-V
Cloud-V is a platform built for the development of applications on RISC-V. it also provides remote access to all the RISC-V instances for the development of applications for RISC-V. xv6-riscv operating system can be run on QEMU user-mode and Cloud-V has full support of it. So, instead of setting all the environment and necessary tooling, it was convenient to integrate it with Cloud-V. However, there was an issue while integrating this OS on Cloud-V. CI is automated, meaning it runs automatically for certain events on repositories and once a run is complete, it presents us with an output. But once the operating system is booted, it asks for user input on the shell prompt and one cannot do that in a CI run. So there was a need for proper settings such that whatever users need to run, runs automatically on the CI without the need of the user to manually provide the input. To solve this problem, an additional script was written along with the CI script used for running the pipeline on Cloud-V. All the source code and files of the xv6-riscv operating system are available on the following links:
Repository Link: https://github.com/salmanzaffar/xv6-riscv.git
Pipeline file: https://github.com/salmanzaffar/xv6-riscv/blob/riscv/cloud-v-pipeline
User’s custom execution script: https://github.com/salmanzaffar/xv6-riscv/blob/riscv/xv6-bash-script.sh
User Development Experience on Cloud-V
I am fully satisfied with the technical assistance provided by 10x Engineers to me for running the xv6 OS on Cloud-V. Staff at 10xEngineers worked very diligently in solving not only the major installation issues but also the minor technical queries. I will advise the RISC-V researchers both locally and internationally to take advantage of the services offered by the 10xEngineers team.
Salman Zaffar
Dept of Computer Science
Institute of Business Administration
Karachi