preface: C language skills -> programming language skills
[lttng-docs.git] / contents / preface.md
CommitLineData
5e0cbfb0
PP
1---
2id: preface
3---
4
5<div class="copyright">
6 <p>
7 Copyright © 2014 The LTTng Project
8 </p>
9
10 <p>
11 This work is licensed under a
12 <a class="ext" href="http://creativecommons.org/licenses/by/4.0/">Creative
13 Commons Attribution 4.0 International License</a>.
14 </p>
15</div>
16
17
18## Welcome!
19
20Welcome to the **LTTng Documentation**!
21
22The _Linux Trace Toolkit: next generation_
23is an open source system software package for correlated tracing of the
24Linux kernel, user applications and libraries. LTTng consists of kernel
25modules (for Linux kernel tracing) and dynamically loaded libraries (for
26user application and library tracing). It is controlled by a session
27daemon, which receives commands from a command line interface.
28
29
5e0cbfb0
PP
30### Convention
31
32Function and argument names, variable names, command names,
33file system paths, file names and other precise strings are written
34using a <code>monospaced typeface</code> in this document. An
35<code><em>italic</em> word</code> within such a block is a
36placeholder, usually described in the following sentence.
37
38Practical tips and sidenotes are given throughout the document using a
39blue background:
40
41<div class="tip">
42<p><span class="t">Tip:</span>Make sure you read the tips.</p>
43</div>
44
45Terminal boxes are used to show command lines:
46
47<pre class="term">
48echo This is a terminal box
49</pre>
50
51Typical command prompts, like `$` and `#`, are not shown in terminal
52boxes to make copy/paste operations easier, especially for multiline
53commands which may be copied and pasted as is in a user's terminal.
54Commands to be executed as a root user begin with `sudo`.
55
56
57### Target audience
58
59The material of this documentation is appropriate for intermediate to
60advanced software developers working in a Linux environment who are
61interested in efficient software tracing. LTTng may also be worth a
62try for students interested in the inner mechanics of their systems.
63
64Readers who do not have a programming background may wish to skip
65everything related to instrumentation, which requires, most of the
638e2868 66time, some programming language skills.
5e0cbfb0
PP
67
68<div class="tip">
69<p><span class="t">Note to readers:</span>This is an <strong>open
70documentation</strong>: its source is available in a
71<a class="ext" href="https://github.com/lttng/lttng-docs">public Git
72repository</a>. Should you find any error in the contents of this text,
73any grammatical mistake or any dead link, we would be very grateful if
74you would fill a GitHub issue for it or, even better, contribute a patch
75to this documentation using a GitHub pull request.</p>
76</div>
77
78### Chapter descriptions
79
80What follows is a list of brief descriptions of this documentation's
81chapters. The latter are ordered in such a way as to make the reading
82as linear as possible.
83
84 1. [Nuts and bolts](#doc-nuts-and-bolts) explains the
85 rudiments of software tracing and the rationale behind the
86 LTTng project.
87 2. [Installing LTTng](#doc-installing-lttng) is divided into
88 sections describing the steps needed to get a working installation
89 of LTTng packages for common Linux distributions and from its
90 source.
91 3. [Getting started](#doc-getting-started) is a very concise guide to
92 get started quickly with LTTng kernel and user space tracing. This
93 chapter is recommended if you're new to LTTng or software tracing
94 in general.
95 4. [Understanding LTTng](#doc-understanding-lttng) deals with some
96 core concepts and components of the LTTng suite. Understanding
97 those is important since the next chapter assumes you're familiar
98 with them.
99 5. [Using LTTng](#doc-using-lttng) is a complete user guide of the
100 LTTng project. It shows in great details how to instrument user
101 applications and the Linux kernel, how to control tracing sessions
102 using the `lttng` command line tool and miscellaneous practical use
103 cases.
104 6. [Reference](#doc-reference) contains references of LTTng components,
105 like links to online manpages and various APIs.
106
107We recommend that you read the above chapters in this order, although
108some of them may be skipped depending on your situation. You may skip
109[Nuts and bolts](#doc-nuts-and-bolts) if you're familiar with tracing
110and LTTng. Also, you may jump over
111[Installing LTTng](#doc-installing-lttng) if LTTng is already properly
112installed on your target system.
113
114
115### Acknowledgements
116
117A few people made the online LTTng Documentation possible.
118
119Philippe Proulx wrote and formatted most of the text.
120Daniel U. Thibault, from the
121<abbr title="Defence Research and Development Canada">DRDC</abbr>,
122wrote an open guide called <em>LTTng: The Linux Trace Toolkit Next
123Generation&nbsp;&mdash;&nbsp;A Comprehensive User's Guide (version 2.3
124edition)</em> which was mostly used to complete parts of the
125[Understanding LTTng](#doc-understanding-lttng) chapter and for a few
126passages here and there.
127The whole <a href="http://www.efficios.com/" class="ext">EfficiOS</a>
128team (Christian Babeux, Antoine Busque, Julien Desfossez,
129Mathieu Desnoyers, Jérémie Galarneau and David Goulet) made essential
130reviews of the whole document.
131
132We sincerely thank everyone who helped make this documentation what
133it is. We hope you enjoy reading it as much as we did writing it.
This page took 0.027026 seconds and 4 git commands to generate.