1
1
OpenDTrace is a dynamic tracing facility integrated into the Solaris,
2
- FreeBSD, and macOS operating systems -- with ports also available for
2
+ FreeBSD, and macOS operating systems\textemdash with ports also available for
3
3
Linux and Windows. Dynamic tracing allows system administrators and
4
4
software developers to develop short scripts (in the D programming
5
5
language) that instruct OpenDTrace to instrument aspects of system
8
8
available for the D programming language, command-line tools, and
9
9
OpenDTrace-based investigation and operation, the internal formats to
10
10
OpenDTrace are generally documented via the source code. This report
11
- acts as a de facto specification for those formats, including the
11
+ acts as a \textit { de facto } specification for those formats, including the
12
12
DTrace Intermediate Format (DIF), which is a bytecode that D scripts
13
13
are compiled into for safe execution within the kernel, and the DTrace
14
14
Object Format (DOF), which bundles together complete scripts along
@@ -20,15 +20,15 @@ \section{Background}
20
20
The original DTrace code was designed and developed by Sun
21
21
Microsystems to solve a particular problem, being able to instrument
22
22
systems that were currently deployed, without requiring the
23
- recompilation of any code\cite {DTrace2004 }. The DTrace system was
23
+ recompilation of any code \cite {DTrace2004 }. The DTrace system was
24
24
written in a portable style typical of code from the Sun Microsystems
25
25
Kernel Development group in the early 2000s. Shortly after the
26
26
release of the original DTrace system a port was made, by John Birrel,
27
27
to the FreeBSD Operating System. A port was also made by Apple to
28
28
their macOS at about the same time. DTrace gained popularity as a
29
29
dynamic tracing system throughout the first decade of the 21st Century
30
30
and its usage is well
31
- documented\cite {mckusick2014design }\cite {Microsystems2008a }\cite {Gregg:2011:DDT:1971960 }.
31
+ documented \cite {mckusick2014design }\cite {Microsystems2008a }\cite {Gregg:2011:DDT:1971960 }.
32
32
33
33
The OpenDTrace system is meant to capture information about systems at
34
34
run time, without the need to stop the program or kernel being
@@ -47,14 +47,14 @@ \section{Background}
47
47
of module X?'' , is a typical query that might be made of a debugger.
48
48
The answer to this question is gathered by setting a break point at
49
49
line 100, where the program will stop, and printing the value of the
50
- varialbe \emph {A }. Debuggers are most often used in a \emph {stop and
50
+ variable \emph {A }. Debuggers are most often used in a \emph {stop and
51
51
inquire } mode, while a tracing system, such as OpenDTrace, aims to
52
- keep overheads low enogh that we can capture and analyze information
52
+ keep overheads low enough that we can capture and analyze information
53
53
at run time with very little perturbation to the overall system. The
54
54
tracing system \emph {only } captures data at run time and \emph {never }
55
55
stops the running system, which has the side effect of being quite
56
56
useful for critical systems such as the operating system kernel and
57
- its components, such as device drivers, locking primitves and
57
+ its components, such as device drivers, locking primitives and
58
58
scheduler.
59
59
60
60
From the perspective of the user the OpenDTrace model is one of
0 commit comments