Assignment: Central Processing Units
For this assignment, you will use QEMU to boot several different virtual systems with different Instruction Set Architectures and various CPU models. You will also use either QEMU or another emulator to run a system with an architecture other than x86_64 or AArch64.
Background Material
Begin by studying the following OER materials:
You will need to download both the x86_64 and aarch64 “Virtual” ISO images of Alpine Linux to do the first part of this assignment. Note that you only need to boot Alpine Linux from the ISO files in virtual machines - it is not necessary to perform an Alpine Linux installation for this assignment.
For the second part of this assignment, you will need to find an architecture other than x86_64 or AArch64 for which an emulator is available for your host operating system. One option would be to use an architecture that has a qemu-system- emulator available for it. Alpine Linux is available for small number of these other architectures, but you do not have to use Alpine Linux for this part of the assignment. Any other distribution or operating system will suffice, as long as it can be booted in the emulator.
An alternative for the second part of the assignment is to use an emulator for an historical computer system or a video game console. Various emulators are available for old computers (such as the TRS-80 or Commodore64) and both historical and modern video game consoles.
Requirements
Prepare a video presentation with the following information:
- Demonstrate that you can boot the Alpine Linux installer for the x86_64 architecture in a QEMU virtual machine. Log into the installer environment and run the uname -a command to show the running architecture. Then, run the command cat /proc/cpuinfo to show information about the virtual CPU.
- Shut down the virtual machine from the previous step. Change the CPU model to something else, then boot the virtual machine again. Show the output of running cat /proc/cpuinfo with this other CPU model.
- Explain what the CPU flags are in the /proc/cpuinfo output. How do these relate to specific features or capabilities of the given CPU model?
- Demonstrate that you can boot the Alpine Linux installer for the AArch64 architecture in a QEMU virtual machine. Log into the installer environment and run uname -a to verify the running architecture. Show the output of cat /proc/cpuinfo for this architecture.
- Shut down the virtual machine from the previous step. Change the CPU model to something else, then boot the virtual machine again. Show the output of running cat /proc/cpuinfo with this other CPU model.
- Explain the differences between the two models of Arm CPU you demonstrated in the previous two steps.
- Demonstrate running an architecture other than x86_64 or AArch64 in a virtual machine. This could be a QEMU virtual machine, an emulator for another computer system, or a video game console emulator.
- Describe the architecture of the system you emulated in the previous step. What Instruction Set Architecture did the system use? For what purpose was (or is) that architecture typically used? Is the emulated system an example of a System-on-a-Chip (SoC) or a more traditional computer with separate CPU and RAM chips?
If you elect to work with a partner, you should each present for approximately equal time.
Be sure to include the URLs to your portfolio (or both portfolios, if working with a partner) in the presentation.
Portfolio Items
Include the following items in your portfolio:
- A screenshot showing the uname -a output of Alpine Linux in an x86_64 virtual machine. Also echo your name in the screenshot.
- A screenshot showing the uname -a output of Alpine Linux in an AArch64 virtual machine. Also echo your name in the screenshot.
- A screenshot demonstrating the successful boot of a virtual machine using an emulator for an architecture other than x86_64 or AArch64.
Submission Requirements
Submit your presentation video to one of the weekly submission boxes for the course. If you’re working with a partner, only one person needs to submit the video.