aboutsummaryrefslogtreecommitdiff
path: root/el_GR.ISO8859-7/books/handbook/dtrace/chapter.xml
blob: ba77da0fa4165041c26b577f39f206fd3e09c5ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
<?xml version="1.0" encoding="iso-8859-7" standalone="no"?>
<!--

  Ôï Åã÷åéñßäéï ôïõ FreeBSD: DTrace

  The FreeBSD Greek Documentation Project

  $FreeBSD$

  %SOURCE%	en_US.ISO8859-1/books/handbook/dtrace/chapter.xml
  %SRCID%	38826

-->

<chapter id="dtrace">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Tom</firstname>
	<surname>Rhodes</surname>
	<contrib>ÃñÜöçêå áðü ôïí </contrib>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>&dtrace;</title>

  <sect1 id="dtrace-synopsis">
    <title>Óýíïøç</title>

    <indexterm><primary>&dtrace;</primary></indexterm>
    <indexterm>
      <primary>&dtrace; support</primary>
      <see>&dtrace;</see>
    </indexterm>

    <para>Ôï &dtrace;, ãíùóôü åðßóçò ùò Dynamic Tracing, åßíáé Ýíá åñãáëåßï ôï
      ïðïßï áíáðôý÷èçêå áðü ôçí &sun; ãéá ôïí åíôïðéóìü ðñïâëçìÜôùí áðüäïóçò
      óå óõóôÞìáôá ðïõ ðñüêåéôáé íá ÷ñçóéìïðïéçèïýí Þ ÷ñçóéìïðïéïýíôáé Þäç
      óôçí ðáñáãùãÞ.  Äåí ðñüêåéôáé ãéá åñãáëåßï áðïóöáëìÜôùóçò, áëëÜ ãéá
      åñãáëåßï áíÜëõóçò ðñáãìáôéêïý ÷ñüíïõ, ìå ôï ïðïßï ìðïñïýí íá
      åíôïðéóôïýí ðñïâëÞìáôá áðüäïóçò êáé Üëëåò êáôáóôÜóåéò.</para>

    <para>Ôï &dtrace; åßíáé Ýíá èáõìÜóéï åñãáëåßï profiling êáé äéáèÝôåé
      åíôõðùóéáêü ðëÞèïò ÷áñáêôçñéóôéêþí ãéá ôçí äéÜãíùóç ðñïâëçìÜôùí ôïõ
      óõóôÞìáôïò.  Ìðïñåß åðßóçò íá ÷ñçóéìïðïéçèåß ãéá íá åêôåëÝóåé áðü ðñéí
      Ýôïéìá scripts, ìå ôá ïðïßá ìðïñåßôå íá åêìåôáëëåõèåßôå êáëýôåñá ôéò
      äõíáôüôçôåò ôïõ.  Ïé ÷ñÞóôåò ìðïñïýí áêüìá íá ãñÜøïõí êáé ôá äéêÜ ôïõò
      âïçèçôéêÜ ðñïãñÜììáôá, ÷ñçóéìïðïéþíôáò ôçí Ãëþóóá D ðïõ ðáñÝ÷åé ôï
      &dtrace;, êáé íá ðñïóáñìüóïõí ìå áõôü ôïí ôñüðï ôï profiling óôéò äéêÝò
      ôïõò áíÜãêåò.</para>

    <para>Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ãíùñßæåôå:</para>

    <itemizedlist>
      <listitem>
	<para>Ôé åßíáé ôï &dtrace; êáé ôé äõíáôüôçôåò ðáñÝ÷åé.</para>
      </listitem>

      <listitem>
	<para>Ôéò äéáöïñÝò õëïðïßçóçò ìåôáîý ôïõ &dtrace; ôïõ &solaris; êáé
	  ôïõ &os;.</para>
      </listitem>

      <listitem>
	<para>Ðùò íá åíåñãïðïéÞóåôå êáé íá ÷ñçóéìïðïéÞóåôå ôï &dtrace;
	  óôï &os;.</para>
      </listitem>
    </itemizedlist>

    <para>Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:</para>

    <itemizedlist>
      <listitem>
	<para>Íá êáôáíïåßôå âáóéêÝò Ýííïéåò ôïõ &unix; êáé ôïõ &os;
	  (<xref linkend="basics"/>).</para>
      </listitem>

      <listitem>
	<para>Íá åßóôå åîïéêåéùìÝíïò ìå ôéò âáóéêÝò äéáäéêáóßåò ñýèìéóçò êáé
	  ìåôáãëþôôéóçò ðñïóáñìïóìÝíïõ ðõñÞíá
	  (<xref linkend="kernelconfig"/>).</para>
      </listitem>

      <listitem>
	<para>Íá åßóôå åîïéêåéùìÝíïò ìå ôçí áóöÜëåéá êáé ôïí ôñüðï ðïõ áõôÞ
	  ó÷åôßæåôáé ìå ôï &os; (<xref linkend="security"/>).</para>
      </listitem>

      <listitem>
	<para>Íá êáôáíïåßôå ðùò ìðïñåßôå íá áíáêôÞóåôå ôïí ðçãáßï êþäéêá ôïõ
	  &os; êáé íá ôïí ÷ñçóéìïðïéÞóåôå þóôå íá åðáíáìåôáãëùôôßóåôå ôï
	  óýóôçìá óáò (<xref linkend="updating-upgrading"/>).</para>
      </listitem>
    </itemizedlist>

    <!--
      Temporary warning to avoid listing experimental versions
      and production versions of FreeBSD with this technology.
    -->
    <warning>
      <para>Ôç äåäïìÝíç óôéãìÞ, ôï &dtrace; èåùñåßôáé üôé åßíáé óå ðåéñáìáôéêü
	óôÜäéï.  ÏñéóìÝíåò åðéëïãÝò ìðïñåß íá õðïëåßðïíôáé óå ëåéôïõñãéêüôçôá,
	êáé êÜðïéá ôìÞìáôá ßóùò íá ìç ëåéôïõñãïýí êáèüëïõ.  Ìå ôçí ðÜñïäï ôïõ
	÷ñüíïõ, ïé ðáñáðÜíù äõíáôüôçôåò èá èåùñçèïýí Ýôïéìåò ãéá ÷ñÞóç óå
	ìç÷áíÞìáôá ðáñáãùãÞò, êáé ç ðáñïýóá ôåêìçñßùóç èá áíáíåùèåß þóôå íá
	áíôéðñïóùðåýåé áõôÞ ôçí êáôÜóôáóç.</para>
    </warning>
  </sect1>

  <sect1 id="dtrace-implementation">
    <title>ÄéáöïñÝò óôçí Õëïðïßçóç</title>

    <para>Áí êáé ôï &dtrace; óôï &os; åßíáé áñêåôÜ üìïéï ìå áõôü ôïõ &solaris;,
      õðÜñ÷ïõí êÜðïéåò äéáöïñÝò ðïõ èá ðñÝðåé íá ôéò åîçãÞóïõìå ðñéí
      óõíå÷ßóïõìå.  Ç ìåãáëýôåñç äéáöïñÜ ðïõ èá ðáñáôçñÞóïõí ïé ÷ñÞóôåò,
      åßíáé üôé óôï &os; ôï &dtrace; ðñÝðåé íá åíåñãïðïéçèåß ÷åéñïêßíçôá.
      ÕðÜñ÷ïõí äéÜöïñåò åðéëïãÝò êáé áñèñþìáôá ãéá ôïí ðõñÞíá ðïõ ðñÝðåé íá
      åíåñãïðïéçèïýí þóôå ôï &dtrace; íá ëåéôïõñãåß óùóôÜ.  Èá åîçãÞóïõìå
      áñãüôåñá áõôÝò ôéò ñõèìßóåéò.</para>

    <para>Ç åðéëïãÞ <literal>DDB_CTF</literal> ôïõ ðõñÞíá ÷ñçóéìïðïéåßôáé ãéá
      íá åíåñãïðïéÞóåé ôçí õðïóôÞñéîç öïñôþìáôïò ôùí äåäïìÝíùí
      <acronym>CTF</acronym> áðü ôïí ðõñÞíá êáé ôá áñèñþìáôá ôïõ.  Ôï
      <acronym>CTF</acronym> åßíáé ôï Compact C Type format ôïõ &solaris;,
      ôï ïðïßï åíèõëáêþíåé ìéá åëáôôùìÝíç ìïñöÞ ðëçñïöïñéþí áðïóöáëìÜôùóçò
      (debugging), üìïéá ìå ôï <acronym>DWARF</acronym> êáé ôá
      stabs.  ÁõôÜ ôá äåäïìÝíá <acronym>CTF</acronym> ðñïóôßèåíôáé óôá
      åêôåëÝóéìá ìÝóù ôùí åñãáëåßùí <command>ctfconvert</command> êáé
      <command>ctfmerge</command>.  Ôï âïçèçôéêü ðñüãñáììá
      <command>ctfconvert</command> åñìçíåýåé ôá ôìÞìáôá ôùí
      <acronym>DWARF</acronym> <acronym>ELF</acronym> ðïõ ðåñéÝ÷ïõí
      ðëçñïöïñßåò debug (äçìéïõñãïýíôáé áðü ôï ìåôáãëùôôéóôÞ), êáé
      ôï <command>ctfmerge</command> óõã÷ùíåýåé ôá
      ôìÞìáôá <acronym>CTF</acronym> êáé <acronym>ELF</acronym> áðü ôá
      áíôéêåßìåíá óå Üëëá åêôåëÝóéìá Þ êïéíü÷ñçóôåò âéâëéïèÞêåò.
      Ðåñéóóüôåñåò ðëçñïöïñßåò ãéá ôçí åíåñãïðïßçóç ôùí ðáñáðÜíù óôç
      ìåôáãëþôôéóç ôïõ ðõñÞíá êáé ôïõ óõóôÞìáôïò ôïõ &os;, èá äïýìå
      ðáñáêÜôù.</para>

    <para>Óôï &os; êÜðïéïé ðáñï÷åßò åßíáé äéáöïñåôéêïß óå ó÷Ýóç ìå ôï
      &solaris;.  Ï ðéï áîéïóçìåßùôïò åßíáé ï ðáñï÷Ýáò
      <literal>dtmalloc</literal> ï ïðïßïò åðéôñÝðåé ôï tracing ôïõ
      <function>malloc()</function> áíÜëïãá ìå ôïí ôýðï ôïõ, óôïí ðõñÞíá ôïõ
      &os;.</para>

    <para>Ìüíï ï <username>root</username> ìðïñåß íá ÷ñçóéìïðïéÞóåé ôï
      &dtrace; óôï &os;.  Áõôü ó÷åôßæåôáé ìå äéáöïñÝò óôçí áóöÜëåéá, êáèþò ôï
      &solaris; äéáèÝôåé êÜðïéïõò åëÝã÷ïõò áóöÜëåéáò ÷áìçëïý åðéðÝäïõ, ïé
      ïðïßïé äåí õðÜñ÷ïõí áêüìá óôï &os;.  Ãéá ôï ëüãï áõôü, ç ÷ñÞóç ôçò
      óõóêåõÞò <devicename>/dev/dtrace/dtrace</devicename> áðáãïñåýåôáé
      áõóôçñÜ ãéá üëïõò ôïõò ÷ñÞóôåò åêôüò áðü ôïí
      <username>root</username>.</para>

    <para>ÔÝëïò, ôï ëïãéóìéêü &dtrace; âñßóêåôáé õðü ôçí Üäåéá
      <acronym>CDDL</acronym> ôçò &sun;.  Ìðïñåßôå íá äéáâÜóåôå ôï êåßìåíï
      ôçò Üäåéáò <literal>Common Development and Distribution
      License</literal> óôï &os;, óôï áñ÷åßï
      <filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
      Þ íá ôï äéáâÜóåôå online óôç äéåýèõíóç
      <ulink url="http://www.opensolaris.org/os/licensing">http://www.opensolaris.org/os/licensing</ulink>.</para>

    <para>Ç Üäåéá ïõóéáóôéêÜ óçìáßíåé üôé Ýíáò ðõñÞíáò &os; ìå ôéò åðéëïãÝò
      ôïõ &dtrace;, åîáêïëïõèåß íá âñßóêåôáé õðü ôçí Üäåéá
      <acronym>BSD</acronym>.  Ùóôüóï ôï <acronym>CDDL</acronym> åìðëÝêåôáé
      ôç óôéãìÞ ðïõ ãßíåôáé äéáíïìÞ ôùí áñèñùìÜôùí óå äõáäéêÞ ìïñöÞ, Þ ôç
      óôéãìÞ ðïõ öïñôþíïíôáé.</para>
  </sect1>

  <sect1 id="dtrace-enable">
    <title>Åíåñãïðïßçóç ôçò ÕðïóôÞñéîçò &dtrace;</title>

    <para>Ãéá íá åíåñãïðïéÞóåôå ôçí õðïóôÞñéîç ãéá ôï &dtrace;, ðñïóèÝóôå ôéò
      áêüëïõèåò ãñáììÝò óôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá:</para>

    <programlisting>options         KDTRACE_HOOKS
options         DDB_CTF</programlisting>

    <note>
      <para>Ïé ÷ñÞóôåò ôçò áñ÷éôåêôïíéêÞò AMD64 èá èÝëïõí íá ðñïóèÝóïõí ôçí
	áêüëïõèç ãñáììÞ óôï áñ÷åßï ñõèìßóåùí ôïõ ðõñÞíá ôïõò:</para>

      <programlisting>options         KDTRACE_FRAME</programlisting>

      <para>Ç åðéëïãÞ áõôÞ ðáñÝ÷åé õðïóôÞñéîç ãéá ôç ëåéôïõñãßá
	<acronym>FBT</acronym>.  Ôï &dtrace; ìðïñåß íá ëåéôïõñãÞóåé êáé ÷ùñßò
	áõôÞí.  Ùóôüóï, èá ðáñÝ÷åé ðåñéïñéóìÝíç õðïóôÞñéîç ãéá
	function boundary tracing.</para>
    </note>

    <para>¼ëïò ï ðçãáßïò êþäéêáò èá ðñÝðåé íá ìåôáãëùôôéóôåß îáíÜ ìå ôéò
      åðéëïãÝò <acronym>CTF</acronym>.  Ãéá íá ãßíåé áõôü, ìåôáãëùôôßóôå
      îáíÜ ôï &os; ÷ñçóéìïðïéþíôáò:</para>

    <!-- XXXTR: WITH_CTF has been reported to leave a user with a
	 broken system when used with buildworld.  Until this is
	 fixed, comment out those parts.  When uncommenting, kill
	 the extra screen.
    -->

    <screen>&prompt.root; <userinput>cd /usr/src</userinput>
<!-- &prompt.root; <userinput>make WITH_CTF=1 buildworld</userinput>-->
&prompt.root; <userinput>make WITH_CTF=1 kernel</userinput></screen>
<!-- &prompt.root; <userinput>make WITH_CTF=1 installworld</userinput>
&prompt.root; <userinput>mergemaster -Ui</userinput></screen> -->

    <para>Èá ÷ñåéáóôåß íá åðáíåêêéíÞóåôå ôï óýóôçìá.</para>

    <para>ÌåôÜ ôçí åðáíåêêßíçóç, êáé ìå ôïí íÝï ðõñÞíá öïñôùìÝíï ðëÝïí óôç
      ìíÞìç, èá ðñÝðåé íá ðñïóèÝóåôå õðïóôÞñéîç ãéá ôï êÝëõöïò Korn.  Áõôü
      áðáéôåßôáé, êáèþò ôá åñãáëåßá &dtrace; ðåñéëáìâÜíïõí äéÜöïñá âïçèçôéêÜ
      ðñïãñÜììáôá ôá ïðïßá åßíáé ãñáììÝíá óå
      <command>ksh</command>.  ÅãêáôáóôÞóôå ôï port
      <filename role="package">shells/ksh93</filename>.  Ìðïñåßôå åðßóçò íá
      åêôåëÝóåôå áõôÜ ôá åñãáëåßá êáé ìÝóù ôïõ
      <filename role="package">shells/pdksh</filename> Þ ôïõ
      <filename role="package">shells/mksh</filename>.</para>

    <para>ÔÝëïò, áíáêôÞóôå ôçí ôñÝ÷ïõóá óåéñÜ åñãáëåßùí &dtrace;.  Ç ôåëåõôáßá
      Ýêäïóç äéáôßèåôáé óôçí ôïðïèåóßá
      <ulink url="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/"></ulink>.
      Äéáôßèåôáé êáé ðñüãñáììá åãêáôÜóôáóçò, ôï ïðïßï äåí åßíáé ùóôüóï
      áðáñáßôçôï íá åêôåëÝóåôå ðñïêåéìÝíïõ íá ÷ñçóéìïðïéÞóåôå ôá
      åñãáëåßá.</para>
  </sect1>

  <sect1 id="dtrace-using">
    <title>×ñçóéìïðïéþíôáò ôï &dtrace;</title>

    <para>Ðñéí ÷ñçóéìïðïéÞóåôå ôéò ëåéôïõñãßåò ôïõ &dtrace;, èá ðñÝðåé íá
      õðÜñ÷åé ç áíôßóôïé÷ç óõóêåõÞ.  Ãéá íá öïñôþóåôå ôç óõóêåõÞ, èá ðñÝðåé
      íá äþóåôå ôçí ðáñáêÜôù åíôïëÞ:</para>

    <screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>

    <para>Èá ðñÝðåé íá Ý÷åôå ðëÝïí õðïóôÞñéîç &dtrace;.  Ãéá íá äåßôå üëá ôá
      probes, èá ðñÝðåé íá åêôåëÝóåôå ùò äéá÷åéñéóôÞò ôçí ðáñáêÜôù
      åíôïëÞ:</para>

    <screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>

    <para>¼ëç ç Ýîïäïò ðåñíÜåé ìÝóù ôïõ âïçèçôéêïý ðñïãñÜììáôïò
      <command>more</command>, äéáöïñåôéêÜ ãñÞãïñá èá õðåñ÷åßëéæå ôçí
      ðñïóùñéíÞ ìíÞìç ôçò ïèüíçò.  Óôï óçìåßï áõôü, èá ðñÝðåé íá èåùñçèåß üôé
      ôï &dtrace; ëåéôïõñãåß.  Åßíáé ðëÝïí þñá íá åîåôÜóïõìå áõôÞ ôç óåéñÜ
      åñãáëåßùí.</para>

    <para>Ç óåéñÜ ôùí åñãáëåßùí åßíáé ìéá óõëëïãÞ áðü Ýôïéìá scripts ðïõ
      åêôåëïýíôáé ìå ôï &dtrace; þóôå íá óõëëÝîïõí ðëçñïöïñßåò ó÷åôéêÜ ìå ôï
      óýóôçìá.  ÕðÜñ÷ïõí scripts ðïõ åëÝã÷ïõí ãéá áíïéêôÜ áñ÷åßá, ôç ìíÞìç,
      ôç ÷ñÞóç ôçò <acronym>CPU</acronym> êáé ðïëëÜ áêüìá.  ÊÜíôå åîáãùãÞ ôùí
      scripts ìå ôçí áêüëïõèç åíôïëÞ:</para>

    <screen>&prompt.root; <userinput>gunzip -c DTraceToolkit* | tar xvf -</userinput></screen>

    <para>Ìåôáêéíçèåßôå óôïí êáôÜëïãï ðïõ ôá áðïóõìðéÝóáôå ìå ôçí åíôïëÞ
      <command>cd</command> êáé áëëÜîôå ôá äéêáéþìáôá åêôÝëåóçò óå üëá ôá
      áñ÷åßá, üðùò óôá áñ÷åßá ìå ôá ìéêñÜ ãñÜììáôá, óå
      <literal>755</literal>.</para>

    <para>Èá ÷ñåéáóôåß íá ãßíïõí áëëáãÝò óôï ðåñéå÷üìåíï óå üëá ôá scripts.
      ¼óá ðåñéÝ÷ïõí ôï
      <filename>/usr/bin/ksh</filename> èá ðñÝðåé íá áëëá÷èïýí óå
      <filename>/usr/local/bin/ksh</filename>, ôá Üëëá ðïõ ðåñéÝ÷ïõí ôï
      <filename>/usr/bin/sh</filename> èá ðñÝðåé íá áëëá÷èïýí óå
      <filename>/bin/sh</filename>, êáé ôÝëïò áõôÜ ðïõ ðåñéÝ÷ïõí ôï
      <filename>/usr/bin/perl</filename> èá ðñÝðåé íá áëëá÷èïýí óå
      <filename>/usr/local/bin/perl</filename>.</para>

    <important>
      <para>Óôï óçìåßï áõôü åßíáé óçìáíôéêü íá õðåíèõìßóïõìå óôïí áíáãíþóôç
	üôé ç õðïóôÞñéîç &dtrace; óôï &os; åßíáé <emphasis>áôåëÞò</emphasis>
	êáé ðåéñáìáôéêÞ.  ÐïëëÜ áðü áõôÜ ôá scripts äåí èá ëåéôïõñãÞóïõí,
	êáèþò åßíáé åßôå ðïëý ðñïóáíáôïëéóìÝíá óôï &solaris;, Þ ÷ñçóéìïðïéïýí
	probes ôá ïðïßá äåí õðïóôçñßæïíôáé ôç äåäïìÝíç óôéãìÞ.</para>
    </important>

    <para>Ôç óôéãìÞ ðïõ ãñÜöïíôáé áõôÝò ïé ãñáììÝò, ìüíï äýï scripts áðü ôç
      óåéñÜ åñãáëåßùí ôïõ &dtrace; õðïóôçñßæïíôáé ðëÞñùò óôï &os;: ôï
      <filename>hotkernel</filename> êáé ôï <filename>procsystime</filename>.
      ÁõôÜ ôá äýï èá åîåñåõíÞóïõìå óôá åðüìåíá ôìÞìáôá áõôÞò ôçò
      åíüôçôáò.</para>

    <para>Ôï <filename>hotkernel</filename> Ý÷åé ó÷åäéáóôåß íá áíáãíùñßæåé
      ðïéá óõíÜñôçóç êáôáíáëþíåé ôï ìåãáëýôåñï ÷ñüíï óôïí ðõñÞíá.  Åêôåëþíôáò
      ôï õðü êáíïíéêÝò óõíèÞêåò, èá äåßôå Ýîïäï ðáñüìïéá ìå ôçí
      ðáñáêÜôù:</para>

    <screen>&prompt.root; <userinput>./hotkernel</userinput>
Sampling... Hit Ctrl-C to end.</screen>

    <para>Ï äéá÷åéñéóôÞò ôïõ óõóôÞìáôïò èá ðñÝðåé íá ÷ñçóéìïðïéÞóåé ôï
      óõíäõáóìü ðëÞêôñùí <keycombo
	action="simul"><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> ãéá
      íá óôáìáôÞóåé ôç äéåñãáóßá.  Ìå ôïí ôåñìáôéóìü ôïõ, ôï script èá
      áðåéêïíßóåé ìéá óåéñÜ áðü óõíáñôÞóåéò ôïõ ðõñÞíá êáé ðëçñïöïñßåò ó÷åôéêÜ
      ìå ôï ÷ñüíï ôïõò, ôáîéíïìþíôáò ôéò óå áýîïõóá óåéñÜ áíÜëïãá ìå ôï
      ÷ñüíï:</para>

    <screen>kernel`_thread_lock_flags                                   2   0.0%
0xc1097063                                                  2   0.0%
kernel`sched_userret                                        2   0.0%
kernel`kern_select                                          2   0.0%
kernel`generic_copyin                                       3   0.0%
kernel`_mtx_assert                                          3   0.0%
kernel`vm_fault                                             3   0.0%
kernel`sopoll_generic                                       3   0.0%
kernel`fixup_filename                                       4   0.0%
kernel`_isitmyx                                             4   0.0%
kernel`find_instance                                        4   0.0%
kernel`_mtx_unlock_flags                                    5   0.0%
kernel`syscall                                              5   0.0%
kernel`DELAY                                                5   0.0%
0xc108a253                                                  6   0.0%
kernel`witness_lock                                         7   0.0%
kernel`read_aux_data_no_wait                                7   0.0%
kernel`Xint0x80_syscall                                     7   0.0%
kernel`witness_checkorder                                   7   0.0%
kernel`sse2_pagezero                                        8   0.0%
kernel`strncmp                                              9   0.0%
kernel`spinlock_exit                                       10   0.0%
kernel`_mtx_lock_flags                                     11   0.0%
kernel`witness_unlock                                      15   0.0%
kernel`sched_idletd                                       137   0.3%
0xc10981a5                                              42139  99.3%</screen>

    <!-- XXXTR: I attempted to use objdump and nm on /boot/kernel/kernel
        to find 0xc10981a5, but to no avail.  It would be nice to know
	how we should look that up. -->

    <para>Ôï script áõôü ëåéôïõñãåß åðßóçò ìå áñèñþìáôá ôïõ ðõñÞíá.  Ãéá íá
      ÷ñçóéìïðïéÞóåôå áõôü ôï ÷áñáêôçñéóôéêü, åêôåëÝóôå ôï ìå ôçí åðéëïãÞ
      <option>-m</option>:</para>

    <screen>&prompt.root; <userinput>./hotkernel -m</userinput>
Sampling... Hit Ctrl-C to end.
^C
MODULE                                                  COUNT   PCNT
0xc107882e                                                  1   0.0%
0xc10e6aa4                                                  1   0.0%
0xc1076983                                                  1   0.0%
0xc109708a                                                  1   0.0%
0xc1075a5d                                                  1   0.0%
0xc1077325                                                  1   0.0%
0xc108a245                                                  1   0.0%
0xc107730d                                                  1   0.0%
0xc1097063                                                  2   0.0%
0xc108a253                                                 73   0.0%
kernel                                                    874   0.4%
0xc10981a5                                             213781  99.6%</screen>

    <!-- XXXTR: I was unable to match these up with output from
        kldstat and kldstat -v and grep.  Maybe I'm missing something
	seriously obvious.  It is 5AM btw. -->

    <para>Ôï <filename>procsystime</filename> script óõëëáìâÜíåé êáé ôõðþíåé
      ôïí ÷ñüíï ôùí êëÞóåùí óõóôÞìáôïò ãéá ìéá óõãêåêñéìÝíç äéåñãáóßá ìÝóù
      ôïõ <acronym>PID</acronym> Þ ôïõ ïíüìáôïò ôçò.  Óôï ðáñáêÜôù ðáñÜäåéãìá
      Ý÷ïõìå îåêéíÞóåé ìéá íÝá äéåñãáóßá ôïõ <filename>/bin/csh</filename>.
      ÅêôåëÝóáìå ôï <filename>procsystime</filename> êáé ôï áöÞóáìå óôçí
      áíáìïíÞ êáèþò ãñÜöáìå ìåñéêÝò åíôïëÝò óôï <command>csh</command> ðïõ
      åß÷áìå áíïßîåé.  ÁõôÜ åßíáé ôá áðïôåëÝóìáôá ôçò äïêéìÞò ìáò:</para>

    <screen>&prompt.root; <userinput>./procsystime -n csh</userinput>
Tracing... Hit Ctrl-C to end...
^C

Elapsed Times for processes csh,

         SYSCALL          TIME (ns)
          getpid               6131
       sigreturn               8121
           close              19127
           fcntl              19959
             dup              26955
         setpgid              28070
            stat              31899
       setitimer              40938
           wait4              62717
       sigaction              67372
     sigprocmask             119091
    gettimeofday             183710
           write             263242
          execve             492547
           ioctl             770073
           vfork            3258923
      sigsuspend            6985124
            read         3988049784</screen>

    <para>¼ðùò öáßíåôáé, ç êëÞóç ôïõ óõóôÞìáôïò ãéá áíÜãíùóç
      (<function>read()</function>) åßíáé áõôÞ ðïõ êáôáíáëþíåé ôïí
      ðåñéóóüôåñï ÷ñüíï óå íáíïäåõôåñüëåðôá, åíþ ôï ëéãüôåñï ôïí êáôáíáëþíåé
      ç êëÞóç óõóôÞìáôïò <function>getpid()</function>.</para>
  </sect1>

  <sect1 id="dtrace-language">
    <title>Ç Ãëþóóá D</title>

    <para>Ç óåéñÜ åñãáëåßùí &dtrace;, ðåñéëáìâÜíåé áñêåôÜ scripts ãñáììÝíá óôçí
      åéäéêÞ ãëþóóá ôïõ &dtrace;.  Ç ãëþóóá áõôÞ ïíïìÜæåôáé
      <quote>ç ãëþóóá D</quote> óôçí ôåêìçñßùóç ôçò &sun;, êáé åßíáé áñêåôÜ
      üìïéá ìå ôç C++.  ÁíáëõôéêÞ ðåñéãñáöÞ áõôÞò ôçò ãëþóóáò åßíáé ðÝñá áðü
      ôïõò óêïðïýò áõôïý ôïõ êåéìÝíïõ.  ÕðÜñ÷åé åíåñãÞ óõæÞôçóç ó÷åôéêÜ ìå
      áõôÞ, óôç äéåýèõíóç <ulink
	url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
  </sect1>
</chapter>