Using 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 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 4 5 6 7 Anatomy of a Computer

Emulation

● 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 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”

● $ -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 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 ( 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 : 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