Laplace: Downloads
The Laplace code is thoroughly commented, and each piece comes
with its own doxygen-generated
code documentation. For a richer description of Laplace at a
high level as well as various Laplace utilities, go to the documentation page.
A pre-configured Laplace machine
The easiest way to get started with Laplace to to download
this tarball. It includes a pre-compiled Laplace-on-Bochs
machine simulator, ready for use on Linux/x86 machines; a disk
image that contains a full Slackware installation and a
Laplace-modified kernel, and configuration files to start
running Laplace-on-Bochs immediately. Once you've downloaded
this tarball, see the documentation
for getting started.
-
Laplace 0.8
whole machine: This tarball extracts to a single
directory that contains a complete Laplace machine that is
ready to run. Specifically, it contains a unmodified Bochs
executable, a Laplace-modified Bochs executable, the
necessary configuration and support files needed by Bochs at
runtime, and a disk image file that contains a pre-installed
Slackware installation with a Laplace-modified kernel in
place.
The simulated machine
-
Bochs
1.4 tarball: The actual processor/machine simulator that
forms the basis of Laplace.
-
Laplace 0.8 Bochs
patch: The patch to the Bochs code to make it record
references and kernel events. Note that this patch includes
the configuration for a bochs machine with the desired
characteristics. Just type ``make'' after applying the
patch!
The modified kernel
-
Linux
2.2 kernel: The source code for the kernel that serves
as the basis for the Laplace kernel which records essential
events.
-
Laplace 0.8
Linux patch: The patch to the Linux 2.2.21 kernel to
make it log its own events. Note that this patch includes a
file named ``bochs.config'', which is the configuration file
that you can use to build this kernel in a manner
appropriate for running on a Bochs machine.
-
Laplace 0.8 Linux
kernel: A pre-compiled copy of the kernel. It does not
use modules, so it can be installed as a stand-alone kernel
image.
Reference handlers
-
raw-reference-binary-to-text:
A utility that reads a raw reference trace in its binary
format (as emitted by a Laplace machine) and translates it
into a text format.
-
instruction-level-reduction:
Reads a binary raw reference trace and performs difference
encoding on each record before emitting it in a text format.
Ideal for gathering instruction level traces where the
output of this reference handler can be piped into a text
compressor like gzip or bzip2.
-
page-level-reduction v0.8.2:
Reads a binary raw reference trace and performs SAD
reduction, which eliminates a large number of superfluous
references and leaves a sequence of references to pages
(instead of byte addresses). This sequence is difference
encoded and emitted in a text form and compressed with
zlib, leaving a directory of trace files, one per
task, in a format that gzip can read. These traces
are intended for virtual memory simulations, and thanks to
the lossy SAD reduction, can be orders of magnitude smaller
than their instruction-level counterparts.
Merging post-processor
-
Laplace-merge: The
merging post-processor that reads a reference trace and a
kernel trace and correlates the events in both. It
reconstructs the state of processes, threads, and memory
mappings at each moment, and is capable of producing a
number of final trace formats that contain the unified
information. Note that it is capable reading each of the
reference trace formats produced by the reference
handlers listed above.
Scott F. Kaplan
Last modified: Fri May 30 13:07:08 EDT 2003