Lazarus Archive
The emulation toolkit
The open-source software Lazarus uses to recover, identify, verify and run what it preserves. It is shared with every partner archive and documented here.
Four parts
-
Imaging
Mnemonic
Reads magnetic disks at flux level, and other media sector by sector, keeping every read. It drives 41 kinds of drive, from 8-inch floppies to Zip disks, through open-hardware controllers built by Lazarus volunteers.
-
Format identification
Codex
Identifies more than 6,400 file formats by their internal structure rather than their names, and refers anything it cannot identify to an archivist. Formats nobody has yet identified are kept in a register the team calls the bestiary.
-
Fixity
Vigil
Re-reads every object in the archive on a rolling schedule, compares it with the checksum recorded when it arrived and repairs any damaged copy from a good one. A full pass of the archive takes about eleven weeks.
-
Emulation
Lazarus Runtime
Runs titles in reading rooms under their emulation profiles, always from a read-only copy of the recovered image. Saved games and changes are kept apart from the archive and discarded at the end of a session.
From carrier to reading room
-
Image
Mnemonic reads the carrier, as many times as it takes, and keeps every read.
-
Identify
Codex works out what the image contains: file systems, formats and the platform it was made for.
-
Verify
The image is checksummed, and Vigil takes over its care for as long as the archive exists.
-
Run
The Runtime starts the title under its platform’s profile, in a reading room, exactly as it was.
Profiles
Each platform the archive can run has an emulation profile: an emulator core, the system software and firmware the machine needed, its configuration and the tests it must pass before a release. There are 37 profiles, covering 7,113 records in the online catalog.
Profiles are validated against reference titles for speed, sound, picture and input delay. Emulation and migration explains what they test and why.
Releases
-
4.3
- LZE-PHONE-1 enters beta, the first profile for smartphone applications.
- Vigil’s scheduler now gives priority to objects that have not been read since the August index migration.
-
4.2
- Vigil gains a verification mode for storage migrations, used to re-check every object moved to new storage in August. It found no mismatches.
- Codex identifies 118 more formats, most of them from scientific instruments.
-
4.1
- Mnemonic supports the 3-inch compact floppy drives used by Amstrad computers.
- Every profile test now measures input delay as well as speed and sound.
-
4.0
- The first release built on the fourth edition of the Lazarus Descriptive Standard.
- Profiles gain tests for significant properties, run against reference titles on every release.
-
3.0
- The Runtime moves to the new reading room in Frothly’s Vancouver office, and to partner reading rooms.
-
2.0
- Vigil is introduced, replacing quarterly checks run by hand.
-
1.0
- The first release: the volunteers’ own recovery scripts, tidied up and documented, twelve years to the day after the first rescue.
Licensing and distribution
The toolkit is open source, under the GNU General Public License, version 3. Profiles and their documentation are published under Creative Commons Attribution 4.0.
Releases are distributed directly to partner archives and reading rooms, which run them on their own equipment. This site documents the toolkit; it does not host it. Some profiles need system software or firmware that Lazarus cannot redistribute, and partners obtain those under their own agreements.
In our own reading room in Vancouver, the Runtime runs on workstations with CachyOS, a Linux distribution whose performance-tuned kernels keep the most demanding emulators smooth.
Known limitations
- Online services that no longer exist cannot be emulated, only documented.
- Light guns, plotters and other unusual peripherals are imitated, not replaced.
- The Runtime never writes to an archived image.