Using Emulators to Resurrect Recovered Data
Claire Fox & Ethan Gates January 27, 2020 bit.ly/metroemulationworkshop Today’s Schedule
10:00 - 10:15 Intro and Icebreakers 10:15 - 11:05 Anatomy of a Computer
10:15 - 10:35 Discussion 10:35 - 10:55 Activity (Documentation Scavenger Hunt) 10:55 - 11:05 Break 11:05 -12:00 Emulator Applications bit.ly/metroemulationworkshop 11:05 - 11:45 Activity (Windows 98 in QEMU) 11:45 - 12:00 Activity (Mac emulation) 12:00 - 12:10 Break 12:10 - 1:00 Emulation as a Service
12:10 - 12:30 Activity (Sandbox Scavenger Hunt) 12:30 - 1:00 Discussion Introductions
● Who are we?
● Who are you? ○ [name, pronouns, affiliation] ○ What’s your earliest memory of using a computer?
3 Anatomy of a Computer
Emulation - the representation of a hardware equivalent in software
● Video game consoles on your desktop ● Multimedia CD-ROM art in your browser ● Run “obsolete” computing systems - Amiga, Apple, Atari, Commodore, IBM, *nix, Windows AND MUCH MORE - from your modern OS in a virtual machine 4 5 6 7 Anatomy of a Computer
Emulation Virtualization
● Guest hardware ● Guest software can recreated entirely in run at least in part software directly on host/physical ● Context: overcoming hardware incompatibility or obsolescence ● Context: managing and using hardware more efficiently
8 Anatomy of a Computer
You have: You want: ● a hard drive disk image ● a generic PC system called WindowsHDD.img ● some RAM ● a USB Mouse ● a Windows 98 boot ● a network adapter floppy called ● a sound card Windows98_boot.img ● a video/graphics card ● a Windows 98 installation CD-ROM called Using the QEMU User Manual, can you build a Windows98_install.iso virtual machine featuring all these components? $ command -flag [option] -flag [option]... 9 Break #1
Please make sure you have downloaded the “Downloads” folder!
bit.ly/metroemulationworkshop
10 Emulation Applications
● What is QEMU and how do you use it? ● What does it look like to install a legacy operating system in emulation? ● How do emulation and disk images work together?
11 Emulation Applications
○ Search engines are your friend ○ Break your actions into components ○ Hypothesis -> Test -> Repeat xkcd.com/979
12 Emulation Applications
● Full instructions in “Emulation Applications - Windows 98 in QEMU Activity Instructions”
● $ qemu-img create -f qcow2 WindowsHDD.img 2G
● $ qemu-system-i386 -m 256 -vga cirrus -soundhw sb16 -net nic,model=pcnet -usb -hda WindowsHDD.img -fda Windows98_boot.img -cdrom Windows98_install.iso -boot [a/c]
● VP9VV-VJW7Q-MHY6W-JK47R-M2KGJ
13 Emulation Applications
Emulating Macs
● the ROM problem ● third-party vs. first-party hardware ● nebulous future
14 Emulation Applications
1. Open “Mini vMac” folder 1.1. Make sure your Mini vMac app (.app/.exe) is in same folder as “vMac.ROM” file 2. Double-click “Mini vMac”(.app/.exe) 2.1. Hear a beep, see a flashing floppy 3. In “Apple Mac OS 6.0.3” folder, drag and drop “System Tools.img” on to the Mini vMac window 4. Drag and drop other disk images from “Mini vMac” folder into your emulated Macintosh Plus! 15 Break #2
Please navigate in a browser (Chrome/Firefox preferred) to the EaaSI Open Source Sandbox: https://www.softwarepreservationnetwork.org/eaasi-sandbox/
16 What is Emulation-as- a-Service (EaaS)?
17 Simplifies access to various emulators
EaaS
Clockwise from top: FS-UAE (Amiga), LinApple (Apple II), VICE (Commodore), Mini vMac (Macintosh Plus), SheepShaver (PowerPC Macs), BeebEm (BBC Micro), QEMU (x86 PCs), Hatari (Atari) 18 Enables management of persistent emulation environments
19 20 Emulation-as-a-Service
● In development by the bwFLA team at the University of Freiburg since 2011 (maintained commercially by OpenSLX)
● Since 2017, CiTAR builds RDM workflows to repeat, replicate, reproduce or reuse software based research on top of EaaS
● Since 2018, EaaSI
21 Emulation as a Service
● What is the experience of using an emulator in a browser?
● How do we describe software and emulated environments?
● How do we find that information?
22 Emulation as a Service
1. Pick a partner! 6. Open the “Software Metadata Scavenger Hunt - EaaSI 2. Launch the EaaSI Open Sandbox” spreadsheet in the Source Sandbox together shared Google Drive folder 3. Pick an environment you 7. To the best of your ability, want to look at; select “Run use the spreadsheet to “catalog” Environment” your applications (one application per row) for ~10-15 minutes 4. Explore for ~5 minutes 8. Group discussion/report out 5. Pick two applications in the environment (one each) to
“catalog” 23 24 Our Funders
25 Project Goal
Deploy and scale infrastructure and services for software emulation, including distributed management, sharing, documentation/discovery, and access.
26 EaaSI - Updated UI Wireframe 27 Distributed Mgmt
○ A network of distributed nodes, each contributing to the EaaSI service and the software development roadmap.
○ Affiliation with the Software Preservation Network.
28 Sharing
○ In-network sharing of software images and configured environments. ○ Yale University Library will contribute at least 3000 pre-configured software applications running in configured environments.
29 Documentation/ Discovery
○ Incorporating services developed by Wikidata for Digital Preservation ○ Comprehensive, open, machine-readable documentation ○ Defining profile for description of software and computer environments
30 Access Service Demos
○ Emulated CD-ROM environment sharing service ○ Virtual Reading Rooms Service ○ Scientific Software Portal ○ API to automatically render objects in original software via emulation (the Universal Virtual Interactor) 31 32 Emulation as a Service
● Does anyone have a potential use case for emulation?
● What are the challenges you see for implementing emulation in your own work?
33 Resources + Link Dump
○ More information on the EaaSI program: https://softwarepreservationnetwork.org/eaasi
○ Everything you need to deep dive on using emulators: https://github.com/eg-tech/emulation-resources
○ Instructions for testing EaaSI yourself using Docker: https://eaasi.gitlab.io/eaasi_user_handbook/install/setup.html#testing
○ If you want to help us continue to improve QEMU documentation: https://eaasi.gitlab.io/qemu-qed Thank you!!!!
Claire Fox: ● Email: [email protected] ● Mastodon: @[email protected] ● Twitter: @clairefox Ethan Gates: ● Email: [email protected] ● Mastodon: @[email protected] ● Twitter: @The_BFOOL
xkcd.com/2221