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
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
|
<?xml version="1.0" encoding="koi8-r" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
"../../../share/xml/freebsd45.dtd">
<!--
The FreeBSD Russian Documentation Project
$FreeBSD$
$FreeBSDru$
Original revision: r38183
-->
<!-- ðÅÒÅ×ÏÄ: ôÁÒÁÓ ëÏÒÅÎËÏ -->
<article lang="ru">
<title>óÏÚÄÁÎÉÅ ËÌÁÓÓÁ GEOM</title>
<articleinfo>
<authorgroup>
<author>
<firstname>Ivan</firstname>
<surname>Voras</surname>
<affiliation>
<address><email>ivoras@FreeBSD.org</email>
</address>
</affiliation>
</author>
</authorgroup>
<legalnotice id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.cvsup;
&tm-attrib.intel;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>üÔÁ ÓÔÁÔØÑ ÄÏËÕÍÅÎÔÉÒÕÅÔ ÎÅËÏÔÏÒÙÅ ÎÁÞÁÌØÎÙÅ ×ÙËÌÁÄËÉ
× ÒÁÚÒÁÂÏÔËÅ GEOM-ËÌÁÓÓÏ×, Á ÔÁËÖÅ ÍÏÄÕÌÅÊ ÑÄÒÁ × ÏÂÝÅÍ.
ðÒÅÄÐÏÌÁÇÁÅÔÓÑ, ÞÔÏ ÞÉÔÁÔÅÌØ ÂÌÉÚËÏ ÚÎÁËÏÍ Ó ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅÍ
ÎÁ óÉ × ËÏÎÔÅËÓÔÅ ÐÒÏÓÔÒÁÎÓÔ×Á ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×
(userland).</para>
</abstract>
</articleinfo>
<sect1 id="intro">
<title>÷ÓÔÕÐÌÅÎÉÅ</title>
<sect2 id="intro-docs">
<title>äÏËÕÍÅÎÔÁÃÉÑ</title>
<para>äÏËÕÍÅÎÔÁÃÉÑ ÐÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÀ ÄÌÑ ÑÄÒÁ ÓËÕÄÎÁÑ, ÜÔÏ ÏÄÎÁ ÉÚ
ÎÅÍÎÏÇÉÈ ÏÂÌÁÓÔÅÊ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÇÄÅ ÐÏÞÔÉ ÎÅÔ ÈÏÒÏÛÉÈ ÕÞÅÂÎÙÈ
ÐÏÓÏÂÉÊ, É ÓÏ×ÅÔ <quote>ÞÉÔÁÊ ÉÓÈÏÄÎÉËÉ!</quote> —
ÓÏÈÒÁÎÑÅÔ Ó×ÏÀ ÓÐÒÁ×ÅÄÌÉ×ÏÓÔØ. ïÄÎÁËÏ, ÓÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ
ÓÔÁÔÅÊ É ËÎÉÇ ÒÁÚÎÏÊ ÁËÔÕÁÌØÎÏÓÔÉ, ËÏÔÏÒÙÅ ÒÅËÏÍÅÎÄÕÀÔÓÑ Ë ÉÚÕÞÅÎÉÀ
ÐÅÒÅÄ ÔÅÍ, ËÁË ÎÁÞÁÔØ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÔØ:</para>
<itemizedlist>
<listitem>
<para><ulink url="&url.books.developers-handbook;/index.html">
òÕËÏ×ÏÄÓÔ×Ï FreeBSD ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×</ulink> — ÞÁÓÔØ
ðÒÏÅËÔÁ äÏËÕÍÅÎÔÁÃÉÉ FreeBSD, ÎÉÞÅÇÏ ÓÐÅÃÉÆÉÞÎÏÇÏ
Ï ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÉ ÑÄÒÁ × ÎÅÍ ÎÅÔ, ÚÁÔÏ ÅÓÔØ ÎÅÍÎÏÇÏ ÏÂÝÅÊ
ÐÏÌÅÚÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.</para>
</listitem>
<listitem>
<para><ulink url="&url.books.arch-handbook;/index.html">
òÕËÏ×ÏÄÓÔ×Ï ÐÏ áÒÈÉÔÅËÔÕÒÅ FreeBSD</ulink> — ÔÁËÖÅ
Ñ×ÌÑÅÔÓÑ ÞÁÓÔØÀ ðÒÏÅËÔÁ äÏËÕÍÅÎÔÁÃÉÉ FreeBSD, ÓÏÄÅÒÖÉÔ ÏÐÉÓÁÎÉÑ
ÎÅËÏÔÏÒÙÈ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÈ ÓÒÅÄÓÔ× É ÐÒÏÃÅÄÕÒ. õÄÅÌÉÔÅ ×ÎÉÍÁÎÉÅ
ÒÁÚÄÅÌÕ ÎÏÍÅÒ 13 —
<ulink url="&url.books.arch-handbook;/driverbasics.html">
îÁÐÉÓÁÎÉÅ ÄÒÁÊ×ÅÒÏ× ÕÓÔÒÏÊÓÔ× ÄÌÑ FreeBSD</ulink>.</para>
</listitem>
<listitem>
<para>îÅÓËÏÌØËÏ ÉÎÔÅÒÅÓÎÙÈ ÓÔÁÔÅÊ Ï ÕÓÔÒÏÊÓÔ×Å ÑÄÒÁ
ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ ÓÁÊÔÅ
<ulink url="http://www.freebsddiary.com">FreeBSD
Diary</ulink>.</para>
</listitem>
<listitem>
<para>óÔÒÁÎÉÃÙ ÉÚ ÒÁÚÄÅÌÁ ÎÏÍÅÒ 9 ÓÉÓÔÅÍÎÏÇÏ ÓÐÒÁ×ÏÞÎÉËÁ,
ÓÏÄÅÒÖÁÔ ×ÁÖÎÕÀ ÄÏËÕÍÅÎÔÁÃÉÀ ÐÏ ÆÕÎËÃÉÑÍ ÑÄÒÁ.</para>
</listitem>
<listitem>
<para>óÔÒÁÎÉÃÁ ÓÐÒÁ×ÏÞÎÉËÁ &man.geom.4;, Á ÔÁËÖÅ <ulink
url="http://phk.freebsd.dk/pubs/">ÓÌÁÊÄÙ ðÏÌÁ-èÅÎÎÉÎÇÁ ëÁÍÐÁ
</ulink> — ÏÂÝÅÅ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ Ï ÐÏÄÓÉÓÔÅÍÅ GEOM.</para>
</listitem>
<listitem>
<para>óÔÒÁÎÉÃÙ ÓÐÒÁ×ÏÞÎÉËÁ &man.g.bio.9;, &man.g.event.9;,
&man.g.data.9;, &man.g.geom.9;, &man.g.provider.9;,
&man.g.consumer.9;, &man.g.access.9;, Á ÔÁËÖÅ ÄÒÕÇÉÅ,
Ó×ÑÚÁÎÎÙÅ Ó ×ÙÛÅÕÐÏÍÑÎÕÔÙÍÉ É ÒÁÓËÒÙ×ÁÀÝÉÅ ÓÐÅÃÉÆÉÞÅÓËÉÊ
ÆÕÎËÃÉÏÎÁÌ ÐÏÄÓÉÓÔÅÍÙ GEOM.</para>
</listitem>
<listitem>
<para>óÔÒÁÎÉÃÁ ÓÐÒÁ×ÏÞÎÉËÁ &man.style.9; — ÄÏËÕÍÅÎÔÉÒÕÅÔ
ÓÏÇÌÁÛÅÎÉÑ Ï ÓÔÉÌÅ ÏÆÏÒÍÌÅÎÉÑ ËÏÄÁ, ËÏÔÏÒÙÅ ÏÂÑÚÁÎÙ ÂÙÔØ ÓÏÂÌÀÄÅÎÙ
ÅÓÌÉ ×Ù ÐÌÁÎÉÒÕÅÔÅ ÐÅÒÅÄÁÔØ ×ÁÛ ËÏÄ × CVS-ÄÒÅ×Ï FreeBSD.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="prelim">
<title>ðÏÄÇÏÔÏ×ËÁ</title>
<para>äÌÑ ÔÏÇÏ, ÞÔÏ ÚÁÎÉÍÁÔØÓÑ ÒÁÚÒÁÂÏÔËÁÍÉ ÄÌÑ ÑÄÒÁ, ÖÅÌÁÔÅÌØÎÏ
ÉÍÅÔØ Ä×Á ÏÔÄÅÌØÎÙÈ ËÏÍÐØÀÔÅÒÁ. ïÄÉÎ ÉÚ ÎÉÈ ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÓÒÅÄÙ
ÒÁÚÒÁÂÏÔËÉ É ÉÓÈÏÄÎÙÈ ËÏÄÏ×, Á ×ÔÏÒÏÊ — ÄÌÑ ÚÁÐÕÓËÁ ÔÅÓÔÏ×
ÏÔÌÁÖÉ×ÁÅÍÏÇÏ ËÏÄÁ. ÷ÔÏÒÏÍÕ ËÏÍÐØÀÔÅÒÕ ÄÌÑ ÒÁÂÏÔÙ ÄÏÓÔÁÔÏÞÎÏ
ÉÍÅÔØ ×ÏÚÍÏÖÎÏÓÔØ ×ÙÐÏÌÎÑÔØ ÎÁÞÁÌØÎÕÀ ÚÁÇÒÕÚËÕ ÐÏ ÓÅÔÉ É ÍÏÎÔÉÒÏ×ÁÎÉÅ
ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ ÐÏ ÓÅÔÉ. ÷ ÜÔÏÊ ÓÉÔÕÁÃÉÉ, ÅÓÌÉ ÏÔÌÁÖÉ×ÁÅÍÙÊ ËÏÄ
ÓÏÄÅÒÖÉÔ ÏÛÉÂËÉ É ×ÙÚÏ×ÅÔ Á×ÁÒÉÊÎÕÀ ÏÓÔÁÎÏ×ËÕ ÓÉÓÔÅÍÙ, ÔÏ ÜÔÏ ÎÅ
ÐÏ×ÌÅÞÅÔ ÐÏÒÞÕ ÉÌÉ ÕÔÅÒÀ ÉÓÈÏÄÎÏÇÏ ËÏÄÁ
<!-- (and other <quote>live</quote> data). -->.
÷ÔÏÒÏÍÕ ËÏÍÐØÀÔÅÒÕ ÄÁÖÅ ÎÅ ÐÏÔÒÅÂÕÅÔÓÑ ÉÍÅÔØ Ó×ÏÊ ÍÏÎÉÔÏÒ,
ÄÏÓÔÁÔÏÞÎÏ ÂÕÄÅÔ ÓÏÅÄÉÎÅÎÉÑ ÁÓÉÎÈÒÏÎÎÙÈ ÐÏÒÔÏ× ËÁÂÅÌÅÍ RS-232 ÉÌÉ
ÓÏÅÄÉÎÅÎÉÑ ÐÒÉ ÐÏÍÏÝÉ KVM-ÕÓÔÒÏÊÓÔ×Á.</para>
<para>îÏ ÔÁË ËÁË ÄÁÌÅËÏ ÎÅ Õ ËÁÖÄÏÇÏ ÅÓÔØ Ä×Á ÉÌÉ ÂÏÌÅÅ ËÏÍÐØÀÔÅÒÏ×
ÐÏÄ ÒÕËÏÊ, ÅÓÔØ ÐÁÒÁ ÓÐÏÓÏÂÏ× ÐÏÄÇÏÔÏ×ÉÔØ ÉÎÕÀ <quote>ÖÉ×ÕÀ</quote>
ÓÉÓÔÅÍÕ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ËÏÄÁ ÄÌÑ ÑÄÒÁ. ïÄÉÎ ÉÚ ÎÉÈ — ÜÔÏ
ÒÁÚÒÁÂÏÔËÁ × <ulink url="http://www.vmware.com/">VMWare</ulink>
ÉÌÉ <ulink url="http://www.qemu.org/">QEmu</ulink> ×ÉÒÔÕÁÌØÎÏÊ ÍÁÛÉÎÅ
(ÜÔÏ ÌÕÞÛÅÅ ÉÚ ÄÏÓÔÕÐÎÏÇÏ, ÐÏÓÌÅ, ËÏÎÅÞÎÏ-ÖÅ, ×ÙÄÅÌÅÎÎÏÇÏ ÄÌÑ ÔÅÓÔÏ×
ËÏÍÐØÀÔÅÒÁ).</para>
<sect2 id="prelim-system">
<title>îÁÓÔÒÏÊËÁ ÓÉÓÔÅÍÙ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ</title>
<para>ðÒÅÖÄÅ ×ÓÅÇÏ ÎÅÏÂÈÏÄÉÍÏ ÉÍÅÔØ × ÑÄÒÅ ÐÏÄÄÅÒÖËÕ
<option>INVARIANTS</option>. äÏÂÁ×ØÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ ×
ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÑÄÒÁ:</para>
<programlisting>options INVARIANT_SUPPORT
options INVARIANTS</programlisting>
<para>äÌÑ ÂÏÌØÛÅÊ ÉÎÆÏÒÍÁÔÉ×ÎÏÓÔÉ ÐÒÉ ÏÔÌÁÄËÅ ×ËÌÀÞÉÔÅ ÐÏÄÄÅÒÖËÕ
WITNESS, ËÏÔÏÒÁÑ ÂÕÄÅÔ ÐÒÅÄÕÐÒÅÖÄÁÔØ ×ÁÓ × ÓÌÕÞÁÅ ×ÏÚÎÉËÎÏ×ÅÎÉÑ
×ÚÁÉÍÏÂÌÏËÉÒÏ×ÏË:</para>
<programlisting>options WITNESS_SUPPORT
options WITNESS
</programlisting>
<para>ôÁËÖÅ ×ËÌÀÞÉÔÅ ÏÔÌÁÄÏÞÎÙÅ ÓÉÍ×ÏÌÙ, ÅÓÌÉ ÐÌÁÎÉÒÕÅÔÅ
×ÙÐÏÌÎÑÔØ ÏÔÌÁÄËÕ ÐÏ ÄÁÍÐÁÍ Á×ÁÒÉÊÎÙÈ ÏÔËÁÚÏ×</para>
<programlisting> makeoptions DEBUG=-g</programlisting>
<para>õÓÔÁÎÏ×ËÁ ÏÔÌÁÄÏÞÎÏÇÏ ÑÄÒÁ ÏÂÙÞÎÙÍ ÓÐÏÓÏÂÏÍ (<command>make
installkernel</command>) ÎÅ ÄÁÓÔ ÐÒÉ×ÙÞÎÏÇÏ ÒÅÚÕÌØÔÁÔÁ:
ÆÁÊÌ ÑÄÒÁ ÂÕÄÅÔ ÎÁÚÙ×ÁÔØÓÑ <filename>kernel.debug</filename>
É ÂÕÄÅÔ ÎÁÈÏÄÉÔØÓÑ ×
<filename>/usr/obj/usr/src/sys/KERNELNAME/</filename>.
äÌÑ ÕÄÏÂÓÔ×Á, ÏÔÌÁÄÏÞÎÏÅ ÑÄÒÏ ÎÅÏÂÈÏÄÉÍÏ ÓËÏÐÉÒÏ×ÁÔØ ×
<filename>/boot/kernel/</filename>.</para>
<para>ôÁËÖÅ ÕÄÏÂÎÏ ÉÍÅÔØ ×ËÌÀÞÅÎÎÙÊ ÏÔÌÁÄÞÉË ÑÄÒÁ, ÔÁË ×Ù ÓÍÏÖÅÔÅ
ÉÓÓÌÅÄÏ×ÁÔØ ÐÁÎÉËÉ ÓÒÁÚÕ-ÖÅ ÐÏÓÌÅ ÉÈ ×ÏÚÎÉËÎÏ×ÅÎÉÑ. äÌÑ ×ËÌÀÞÅÎÉÑ
ÏÔÌÁÄÞÉËÁ ÄÏÂÁ×ØÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ × ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ ÑÄÒÁ:</para>
<programlisting>options KDB
options DDB
options KDB_TRACE</programlisting>
<para>äÌÑ Á×ÔÏÍÁÔÉÞÅÓËÏÇÏ ÚÁÐÕÓËÁ ÏÔÌÁÄÞÉËÁ ÑÄÒÁ ÐÏÓÌÅ ×ÏÚÎÉËÎÏ×ÅÎÉÑ
ÐÁÎÉËÉ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔØÓÑ ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ sysctl:</para>
<programlisting> debug.debugger_on_panic=1</programlisting>
<para>ðÁÎÉËÉ ÓÉÓÔÅÍÙ ÂÕÄÕÔ ÐÒÏÉÓÈÏÄÉÔØ, ÐÏÜÔÏÍÕ ÕÄÅÌÉÔÅ ×ÎÉÍÁÎÉÅ
ËÜÛÕ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ. ïÂÙÞÎÏ, ÐÒÉ ×ËÌÀÞÅÎÎÏÍ ÍÅÈÁÎÉÚÍÅ
softupdates, ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ ÆÁÊÌÁ ÍÏÖÅÔ ÂÙÔØ ÕÔÅÒÑÎÁ ÅÓÌÉ
ÐÁÎÉËÁ ÐÒÏÉÚÏÛÌÁ ÒÁÎØÛÅ ÓÂÒÁÓÙ×ÁÎÉÑ ËÜÛÁ ÎÁ ÕÓÔÒÏÊÓÔ×Ï ÈÒÁÎÅÎÉÑ.
÷ÙËÌÀÞÅÎÉÅ ÍÅÈÁÎÉÚÍÁ softupdates (ÐÏÓÒÅÄÓÔ×ÏÍ ÍÏÎÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÏÊ
ÓÉÓÔÅÍÙ Ó ÏÐÃÉÅÊ <quote>sync</quote>) ÚÎÁÞÉÔÅÌØÎÏ ÓËÁÚÙ×ÁÅÔÓÑ ÎÁ
ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ É, ÏÐÑÔØ-ÖÅ, ÎÅ ÇÁÒÁÎÔÉÒÕÅÔ ÃÅÌÏÓÔÎÏÓÔÉ
ÄÁÎÎÙÈ. ëÁË ËÏÍÐÒÏÍÉÓÓ, ÍÏÖÎÏ ÓÏËÒÁÔÉÔØ ÚÁÄÅÒÖËÉ ÓÂÒÁÓÙ×ÁÎÉÑ
ËÜÛÁ ÍÅÈÁÎÉÚÍÁ softupdates. åÓÔØ ÔÒÉ ÐÅÒÅÍÅÎÎÙÈ sysctl, ÚÎÁÞÅÎÉÑ
ËÏÔÏÒÙÈ ÎÅÏÂÈÏÄÉÍÏ ÉÚÍÅÎÉÔØ (ÌÕÞÛÅ ×ÓÅÇÏ — ÐÒÏÐÉÓÁ× ÉÈ ×
<filename>/etc/sysctl.conf</filename>):</para>
<programlisting>kern.filedelay=5
kern.dirdelay=4
kern.metadelay=3</programlisting>
<para>úÎÁÞÅÎÉÑ ÜÔÉÈ ÐÅÒÅÍÅÎÎÙÈ — ÓÅËÕÎÄÙ.</para>
<para>äÌÑ ÏÔÌÁÄËÉ ÐÁÎÉË ÑÄÒÁ ÎÅÏÂÈÏÄÉÍÙ ÄÁÍÐÙ ÐÁÍÑÔÉ.
ôÁË ËÁË ÐÁÎÉËÁ ÑÄÒÁ ÍÏÖÅÔ <quote>ÓÌÏÍÁÔØ</quote> ÆÁÊÌÏ×ÕÀ
ÓÉÓÔÅÍÕ, ÄÁÍÐ ÓÎÁÞÁÌÁ ÓÏÈÒÁÎÑÅÔÓÑ × <quote>ÓÙÒÏÊ</quote>
ÒÁÚÄÅÌ. ïÂÙÞÎÏ, ÜÔÏ Ó×ÏÐ-ÒÁÚÄÅÌ. ðÏÜÔÏÍÕ, ÒÁÚÍÅÒ Ó×ÏÐ-ÒÁÚÄÅÌÁ
ÄÏÌÖÅÎ ÂÙÔØ ÎÅ ÍÅÎØÛÅ ÒÁÚÍÅÒÁ ïúõ ËÏÍÐØÀÔÅÒÁ. ðÒÉ ÐÏÓÌÅÄÕÀÝÅÊ
ÚÁÇÒÕÚËÅ ÄÁÍÐ ËÏÐÉÒÕÅÔÓÑ × ÏÂÙÞÎÙÊ ÆÁÊÌ. üÔÏ ÐÒÏÉÓÈÏÄÉÔ ÓÒÁÚÕ-ÖÅ
ÐÏÓÌÅ ÐÒÏ×ÅÒËÉ É ÍÏÎÔÉÒÏ×ÁÎÉÑ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ, ÎÏ ÐÅÒÅÄ
ÁËÔÉ×ÉÒÏ×ÁÎÉÅÍ ÒÁÚÄÅÌÁ Ó×ÏÐÁ. ôÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÎÔÒÏÌÉÒÕÅÔÓÑ
ÓÌÅÄÕÀÝÉÍÉ ÐÅÒÅÍÅÎÎÙÍÉ <filename>/etc/rc.conf</filename>:</para>
<programlisting>dumpdev="/dev/ad0s4b"
dumpdir="/usr/core" </programlisting>
<para>ðÅÒÅÍÅÎÎÁÑ <varname>dumpdev</varname> ÕËÁÚÙ×ÁÅÔ ÎÁ ÒÁÚÄÅÌ
ÐÏÄËÁÞËÉ, Á <varname>dumpdir</varname> ÓÏÏÂÝÁÅÔ ÓÉÓÔÅÍÅ ËÕÄÁ
ÐÅÒÅÍÅÝÁÔØ ÄÁÍÐ ÑÄÒÁ ÐÒÉ ÓÌÅÄÕÀÝÅÊ ÚÁÇÒÕÚËÅ.</para>
<para>óÏÈÒÁÎÅÎÉÅ ÄÁÍÐÁ ÑÄÒÁ — ÐÒÏÃÅÓÓ ÍÅÄÌÅÎÎÙÊ, É, ÅÓÌÉ
Õ ×ÁÛÅÇÏ ËÏÍÐØÀÔÅÒÁ ÍÎÏÇÏ ÏÐÅÒÁÔÉ×ÎÏÊ ÐÁÍÑÔÉ (>256M) É ÅÓÌÉ
ÐÁÎÉËÉ ÓÌÕÞÁÀÔÓÑ ÞÁÓÔÏ, ÔÏ ÏÖÉÄÁÎÉÅ ÓÏÈÒÁÎÅÎÉÑ ÄÁÍÐÏ× ÍÏÖÅÔ ÎÁÞÁÔØ
ÒÁÚÄÒÁÖÁÔØ (×ÓÐÏÍÎÉÍ, ÞÔÏ ÎÁÄ ÄÁÍÐÏÍ ÐÒÏÉÓÈÏÄÉÔ Ä×Å ÏÐÅÒÁÃÉÉ:
ÓÏÈÒÁÎÅÎÉÅ × Ó×ÏÐ-ÆÁÊÌ É ÐÅÒÅÍÅÝÅÎÉÅ ÎÁ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ).
÷ ÔÁËÏÍ ÓÌÕÞÁÅ ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ ÕÄÏÂÎÙÍ ÏÇÒÁÎÉÞÉ×ÁÎÉÅ ÏÂßÅÍÁ
ÉÓÐÏÌØÚÕÅÍÏÊ ÓÉÓÔÅÍÏÊ ÐÁÍÑÔÉ ÐÕÔÅÍ ÕÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÏÊ ×
<filename>/boot/loader.conf</filename>:</para>
<programlisting> hw.physmem="256M"</programlisting>
<para>åÓÌÉ ÐÁÎÉËÉ ÓÌÕÞÁÀÔÓÑ ÞÁÓÔÏ É ÒÁÚÍÅÒ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ ÂÏÌØÛÏÊ
(ÉÌÉ ÖÅ ×Ù ÐÒÏÓÔÏ ÎÅ ÄÏ×ÅÒÑÅÔÅ softupdates É ÆÏÎÏ×ÏÊ ÐÒÏ×ÅÒËÅ
ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ), ÒÅËÏÍÅÎÄÕÅÔÓÑ ÏÔËÌÀÞÉÔØ ÆÏÎÏ×ÕÀ ÐÒÏ×ÅÒËÕ ÆÁÊÌÏ×ÙÈ
ÓÉÓÔÅÍ ÐÏÓÒÅÄÓÔ×ÏÍ ÕÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÏÊ ×
<filename>/etc/rc.conf</filename>:</para>
<programlisting> background_fsck="NO"</programlisting>
<para>÷ ÜÔÏÍ ÓÌÕÞÁÅ ÆÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ ÂÕÄÕÔ ÐÒÏ×ÅÒÑÔØÓÑ ÔÏÌØËÏ ÐÒÉ
ÎÅÏÂÈÏÄÉÍÏÓÔÉ. ôÁËÖÅ ÚÁÍÅÔØÔÅ, ÞÔÏ × ÓÌÕÞÁÅ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÆÏÎÏ×ÏÊ
ÐÒÏ×ÅÒËÉ, ÎÏ×ÁÑ ÐÁÎÉËÁ ÍÏÖÅÔ ÓÌÕÞÉÔØÓÑ × ÔÏ ×ÒÅÍÑ, ËÏÇÄÁ
ÐÒÏ×ÅÒÑÀÔÓÑ ÄÉÓËÉ. äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, ÎÁÉÂÏÌÅÅ ÂÅÚÏÐÁÓÎÙÊ ÓÐÏÓÏÂ
— ÎÅ ÉÍÅÔØ ÍÎÏÇÏ ÌÏËÁÌØÎÙÈ ÆÁÊÌÏ×ÙÈ ÓÉÓÔÅÍ, Á ÉÓÐÏÌØÚÏ×ÁÔØ
×ÔÏÒÏÊ ËÏÍÐØÀÔÅÒ × ËÁÞÅÓÔ×Å NFS-ÓÅÒ×ÅÒÁ.</para>
</sect2>
<sect2 id="prelim-starting">
<title>îÁÞÁÌÏ ÐÒÏÅËÔÁ</title>
<para>äÌÑ ÎÁÐÉÓÁÎÉÑ ÎÏ×ÏÇÏ ËÌÁÓÓÁ GEOM ÎÅÏÂÈÏÄÉÍÏ ÓÏÚÄÁÔØ ÐÏÄÄÉÒÅËÔÏÒÉÀ
× ÌÀÂÏÊ ÄÏÓÔÕÐÎÏÊ ÐÏÌØÚÏ×ÁÔÅÌÀ ÄÉÒÅËÔÏÒÉÉ. óÏ×ÓÅÍ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ,
ÞÔÏ ×ÁÛ ÍÏÄÕÌØ ÉÚÎÁÞÁÌØÎÏ ÒÁÚÍÅÝÁÌÓÑ ×
<filename>/usr/src</filename>.</para>
</sect2>
<sect2 id="prelim-makefile">
<title>Makefile</title>
<para>ðÒÁ×ÉÌÏÍ ÈÏÒÏÛÅÇÏ ÔÏÎÁ Ñ×ÌÑÅÔÓÑ ÓÏÚÄÁÎÉÅ
<filename>Makefile</filename>-Ï× ÄÌÑ ËÁÖÄÏÇÏ ÎÅÔÒÉ×ÉÁÌØÎÏÇÏ
ÐÒÏÅËÔÁ, ÐÒÉÍÅÒÏÍ ËÏÔÏÒÏÇÏ ËÏÎÅÞÎÏ-ÖÅ Ñ×ÌÑÅÔÓÑ ÓÏÚÄÁÎÉÅ
ÍÏÄÕÌÅÊ ÑÄÒÁ.</para>
<para>óÏÚÄÁÎÉÅ <filename>Makefile</filename> — ÄÅÌÏ
ÎÅ ÓÌÏÖÎÏÅ ÂÌÁÇÏÄÁÒÑ ÉÓÞÅÒÐÙ×ÁÀÝÅÍÕ ÎÁÂÏÒÕ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÈ ÓÒÅÄÓÔ×,
ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÈ ÓÉÓÔÅÍÏÊ. ÷ ×ËÒÁÔÃÅ, ×ÏÔ ËÁË ÄÏÌÖÅÎ ×ÙÇÌÑÄÅÔØ
<filename>Makefile</filename> ÄÌÑ ÍÏÄÕÌÑ ÑÄÒÁ:</para>
<programlisting>SRCS=g_journal.c
KMOD=geom_journal
.include <bsd.kmod.mk></programlisting>
<para>üÔÏÔ <filename>Makefile</filename> (Ó ÉÚÍÅÎÅÎÎÙÍÉ ÉÍÅÎÁÍÉ
ÆÁÊÌÏ×) ÐÏÄÏÊÄÅÔ Ë ÌÀÂÏÍÕ ÍÏÄÕÌÀ ÑÄÒÁ. ëÌÁÓÓ GEOM ÍÏÖÅÔ ÒÁÚÍÅÝÁÔØÓÑ
× ÏÄÎÏÍ ÅÄÉÎÓÔ×ÅÎÎÏÍ ÍÏÄÕÌÅ ÑÄÒÁ. åÓÌÉ ÄÌÑ ÓÂÏÒËÉ ×ÁÛÅÇÏ ÍÏÄÕÌÑ
ÔÒÅÂÕÅÔÓÑ ÂÏÌØÛÅ, ÞÅÍ ÏÄÉÎ ÆÁÊÌ, ÔÏ ÐÅÒÅÞÉÓÌÉÔÅ ÉÈ ÉÍÅÎÁ,
ÒÁÚÄÅÌÅÎÎÙÅ ÐÒÏÂÅÌØÎÙÍÉ ÓÉÍ×ÏÌÁÍÉ, × ÐÅÒÅÍÅÎÎÏÊ <envar>SRCS</envar>.
</para>
</sect2>
</sect1>
<sect1 id="kernelprog">
<title>ðÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ × ÑÄÒÅ FreeBSD</title>
<sect2 id="kernelprog-memalloc">
<title>÷ÙÄÅÌÅÎÉÅ ÐÁÍÑÔÉ</title>
<para>ðÒÏÞÉÔÁÊÔÅ &man.malloc.9; — ×ÙÄÅÌÅÎÉÅ ÐÁÍÑÔÉ ÌÉÛØ
ÎÅÍÎÏÇÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ Ó×ÏÅÇÏ ÜË×É×ÁÌÅÎÔÁ, ÉÓÐÏÌØÚÕÅÍÏÇÏ × ÐÒÏÓÔÒÁÎÓÔ×Å
ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ× (userland). îÁÉÂÏÌÅÅ ÐÒÉÍÅÔÎÏ ÔÏ, ÞÔÏ
<function>malloc</function>() É <function>free</function>()
ÐÒÉÎÉÍÁÀÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÁÒÁÍÅÔÒÙ, ËÏÔÏÒÙÅ ÏÐÉÓÁÎÙ × ÓÔÒÁÎÉÃÅ
ÓÐÒÁ×ÏÞÎÉËÁ.</para>
<para>ôÉÐ <quote>malloc_type</quote> ÎÅÏÂÈÏÄÉÍÏ ÏÂßÑ×ÉÔØ × ÓÅËÃÉÉ
ÄÅËÌÁÒÁÃÉÊ ÆÁÊÌÁ Ó ÉÓÈÏÄÎÙÍ ËÏÄÏÍ, ÎÁÐÒÉÍÅÒ:</para>
<programlisting> static MALLOC_DEFINE(M_GJOURNAL, "gjournal data", "GEOM_JOURNAL Data");</programlisting>
<para>äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÍÏÖÎÏ ÂÙÌÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏÔ ÍÁËÒÏÓ,
ÎÅÏÂÈÏÄÉÍÏ ×ËÌÀÞÉÔØ ÓÌÅÄÕÀÝÉÅ ÚÁÇÏÌÏ×ÏÞÎÙÅ ÆÁÊÌÙ:
<filename>sys/param.h</filename>,
<filename>sys/kernel.h</filename> É
<filename>sys/malloc.h</filename></para>
<para>óÕÝÅÓÔ×ÕÅÔ ÅÝÅ ÏÄÉÎ ÍÅÈÁÎÉÚÍ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ — UMA
(Universal Memory Allocator), ÏÐÉÓÁÎÎÙÊ × &man.uma.9;.
üÔÏ ÓÐÅÃÉÆÉÞÅÓËÉÊ ÍÅÔÏÄ, ÐÒÅÉÍÕÝÅÓÔ×ÅÎÎÏ ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÊ ÄÌÑ
ÂÙÓÔÒÏÇÏ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ ÐÏÄ ÓÐÉÓËÉ, ÓÏÓÔÏÑÝÉÅ ÉÚ ÜÌÅÍÅÎÔÏ×
ÏÄÉÎÁËÏ×ÏÇÏ ÒÁÚÍÅÒÁ (ÎÁÐÒÉÍÅÒ, ÄÉÎÁÍÉÞÅÓËÉÅ ÍÁÓÓÉ×Ù ÓÔÒÕËÔÕÒ).</para>
</sect2>
<sect2 id="kernelprog-lists">
<title>ïÞÅÒÅÄÉ É ÓÐÉÓËÉ</title>
<para>ïÚÎÁËÏÍØÔÅÓØ Ó &man.queue.3;
÷Ï ÍÎÏÖÅÓÔ×Å ÓÌÕÞÁÅ× ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ ÂÕÄÅÔ ÏÒÇÁÎÉÚÏ×Ù×ÁÔØ É
ÕÐÒÁ×ÌÑÔØ ÔÁËÏÊ ÓÔÒÕËÔÕÒÏÊ ÄÁÎÎÙÈ, ËÁË ÓÐÉÓËÉ. ë ÓÞÁÓÔØÀ, ÜÔÁ
ÓÔÒÕËÔÕÒÁ ÄÁÎÎÙÈ ÒÅÁÌÉÚÏ×ÁÎÁ ÎÅÓËÏÌØËÉÍÉ ÓÐÏÓÏÂÁÍÉ × ×ÉÄÅ ÍÁËÒÏÓÏ×
ÎÁ óÉ, Á ÔÁËÖÅ ×ËÌÀÞÅÎÁ × ÓÉÓÔÅÍÕ. îÁÉÂÏÌÅÅ ÇÉÂËÉÊ É ÞÁÓÔÏ
ÕÐÏÔÒÅÂÌÑÅÍÙÊ ÔÉÐ ÓÐÉÓËÁ — TAILQ. üÔÏÔ ÔÉÐ ÓÐÉÓËÁ ÔÁËÖÅ ÏÄÉÎ
ÉÚ ÎÁÉÂÏÌÅÅ ÔÒÅÂÏ×ÁÔÅÌØÎÙÈ Ë ÐÁÍÑÔÉ (ÅÇÏ ÜÌÅÍÅÎÔÙ - Ó Ä×ÏÊÎÙÍÉ
Ó×ÑÚÑÍÉ), Á ÔÁËÖÅ — ÎÁÉÂÏÌÅÅ ÍÅÄÌÅÎÎÙÊ (ÏÄÎÁËÏ ÓÞÅÔ ÉÄÅÔ
ÎÁ ÎÅÓËÏÌØËÏ ÉÎÓÔÒÕËÃÉÊ ãðõ, ÐÏÜÔÏÍÕ ÐÏÓÌÅÄÎÅÅ ÕÔ×ÅÒÖÄÅÎÉÅ ÎÅ ÓÌÅÄÕÅÔ
×ÏÓÐÒÉÎÉÍÁÔØ × ×ÓÅÒØÅÚ).</para>
<para>åÓÌÉ ×ÁÖÎÁ ÓËÏÒÏÓÔØ ÐÏÌÕÞÅÎÉÑ ÄÁÎÎÙÈ, ÔÏ ×ÏÚØÍÉÔÅ ÎÁ ×ÏÏÒÕÖÅÎÉÅ
&man.tree.3; É &man.hashinit.9;.</para>
</sect2>
<sect2 id="kernelprog-bios">
<title>BIOs</title>
<para>óÔÒÕËÔÕÒÁ <structname>bio</structname> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ×ÓÅÈ
ÏÐÅÒÁÃÉÊ ××ÏÄÁ/×Ù×ÏÄÁ, ËÁÓÁÀÝÉÈÓÑ GEOM. ïÎÁ ÓÏÄÅÒÖÉÔ
ÉÎÆÏÒÍÁÃÉÀ Ï ÔÏÍ, ËÁËÏÅ ÕÓÔÒÏÊÓÔ×Ï ('ÐÏÓÔÁ×ÝÉË geom') ÄÏÌÖÎÏ ÏÔ×ÅÔÉÔØ
ÎÁ ÚÁÐÒÏÓ, ÔÉÐ ÚÁÐÒÏÓÁ, ÓÍÅÝÅÎÉÅ, ÄÌÉÎÕ É ÕËÁÚÁÔÅÌØ ÎÁ ÂÕÆÅÒ,
Á ÔÁËÖÅ ÎÁÂÏÒ <quote>ÏÐÒÅÄÅÌÅÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÍ</quote> ÆÌÁÇÏ× É
ÐÏÌÅÊ
<!-- , ËÏÔÏÒÙÅ ÍÏÇÕÔ ÐÏÍÏÞØ ÏÓÕÝÅÓÔ×ÉÔØ various hacks-->.
</para>
<para>÷ÁÖÎÙÍ ÍÏÍÅÎÔÏÍ Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ <structname>bio</structname>
ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ ÁÓÉÎÈÒÏÎÎÏ. üÔÏ ÚÎÁÞÉÔ, ÞÔÏ ×Ï ÍÎÏÇÉÈ ÞÁÓÔÑÈ ËÏÄÁ
ÎÅÔ ÁÎÁÌÏÇÁ Ë &man.read.2; É &man.write.2; ÆÕÎËÃÉÑÍ ÉÚ ÐÒÏÓÔÒÁÎÓÔ×Á
ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×, ËÏÔÏÒÙÅ ÎÅ ×ÏÚ×ÒÁÝÁÀÔ ÕÐÒÁ×ÌÅÎÉÅ ÐÏËÁ
ÎÅ ×ÙÐÏÌÎÉÔÓÑ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ×. óËÏÒÅÅ, ÐÏ ÚÁ×ÅÒÛÅÎÉÉ ÏÂÒÁÂÏÔËÉ
ÚÁÐÒÏÓÁ (ÉÌÉ × ÓÌÕÞÁÅ ÏÛÉÂËÉ ÐÒÉ ÏÂÒÁÂÏÔËÅ) ËÁË ÉÚ×ÅÝÅÎÉÅ ×ÙÚÙ×ÁÅÔÓÑ
ÏÐÒÅÄÅÌÅÎÎÁÑ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÆÕÎËÃÉÑ.</para>
<para>áÓÉÎÈÒÏÎÎÁÑ ÍÏÄÅÌØ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ × ÞÅÍ-ÔÏ ÓÌÏÖÎÅÊ,
ÎÅÖÅÌÉ ÞÁÝÅ ÉÓÐÏÌØÚÕÅÍÁÑ ÉÍÐÅÒÁÔÉ×ÎÁÑ ÍÏÄÅÌØ, ÉÓÐÏÌØÚÕÅÍÁÑ ×
ÐÒÏÓÔÒÁÎÓÔ×Å ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×; × ÌÀÂÏÍ ÓÌÕÞÁÅ, ÐÒÉ×ÙËÁÎÉÅ
ÚÁÊÍÅÔ ÎÅËÏÔÏÒÏÅ ×ÒÅÍÑ. ÷ ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ
×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÆÕÎËÃÉÉ <function>g_write_data</function>() É
<function>g_read_data</function>(), ÎÏ <emphasis>ÄÁÌÅËÏ ÎÅ
×ÓÅÇÄÁ</emphasis>. ÷ ÞÁÓÔÎÏÓÔÉ, ÜÔÉ ÆÕÎËÃÉÉ ÎÅ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ
ËÏÇÄÁ ÚÁÈ×ÁÞÅÎ ÍØÀÔÅËÓ; ÎÁÐÒÉÍÅÒ, ÍØÀÔÅËÓ GEOM-ÔÏÐÏÌÏÇÉÉ ÉÌÉ
×ÎÕÔÒÅÎÎÉÊ ÍØÀÔÅËÓ, ÕÄÅÒÖÉ×ÁÅÍÙÊ × ÈÏÄÅ ×ÙÐÏÌÎÅÎÉÑ
<function>.start</function>() ÉÌÉ <function>.stop</function>().</para>
</sect2>
</sect1>
<sect1 id="geom">
<title>ðÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ × ÓÉÓÔÅÍÅ GEOM</title>
<sect2 id="geom-ggate">
<title>Ggate</title>
<para>åÓÌÉ ÍÁËÓÉÍÁÌØÎÁÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÎÅ ÔÒÅÂÕÅÔÓÑ,
ÔÏ ÂÏÌÅÅ ÐÒÏÓÔÏÊ ÓÐÏÓÏ ÓÏ×ÅÒÛÁÔØ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÄÁÎÎÙÈ —
ÜÔÏ ×ÙÐÏÌÎÑÔØ ÉÈ × ÐÒÏÓÔÒÁÎÓÔ×Å ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×
ÐÏÓÒÅÄÓÔ×ÏÍ ggate (GEOM gate). ë ÎÅÄÏÓÔÁÔËÁÍ ÓÌÅÄÕÅÔ ÏÔÎÅÓÔÉ
ÎÅ×ÏÚÍÏÖÎÏÓÔØ ÐÒÏÓÔÏÇÏ ÐÅÒÅÎÏÓÁ ËÏÄÁ × ÑÄÒÏ.</para>
</sect2>
<sect2 id="geom-class">
<title>ëÌÁÓÓ GEOM</title>
<para>ëÌÁÓÓ GEOM ×ÙÐÏÌÎÑÅÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÄÁÎÎÙÈ. üÔÉ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ
ÍÏÇÕÔ ÂÙÔØ ÓËÏÍÐÏÎÏ×ÁÎÙ ÄÒÕÇ Ó ÄÒÕÇÏÍ × ×ÉÄÅ ÄÅÒÅ×Á. üËÚÅÍÐÌÑÒ
ËÌÁÓÓÁ GEOM ÎÁÚÙ×ÁÀÔ <emphasis>geom</emphasis>.</para>
<para>÷ ËÁÖÄÏÍ ËÌÁÓÓÅ GEOM ÅÓÔØ ÎÅÓËÏÌØËÏ <quote>ÍÅÔÏÄÏ× ËÌÁÓÓÁ</quote>,
ËÏÔÏÒÙÅ ×ÙÚÙ×ÁÀÔÓÑ ËÏÇÄÁ ÜËÚÅÍÐÌÑÒÁ ËÌÁÓÓÁ ÎÅÔ × ÎÁÌÉÞÉÉ (ÉÌÉ ÖÅ
ÏÎÉ ÎÅ ÐÒÉ×ÑÚÁÎÙ Ë ËÏÎËÒÅÔÎÏÍÕ ÜËÚÅÍÐÌÑÒÕ ËÌÁÓÓÁ).</para>
<itemizedlist>
<listitem>
<para><function>.init</function> ×ÙÚÙ×ÁÅÔÓÑ ÔÏÇÄÁ, ËÏÇÄÁ
ÓÉÓÔÅÍÅ GEOM ÓÔÁÎÏ×ÉÔÓÑ ÉÚ×ÅÓÔÎÏ Ï ËÌÁÓÓÅ GEOM (ÎÁÐÒÉÍÅÒ,
ËÏÇÄÁ ÚÁÇÒÕÖÁÅÔÓÑ ÍÏÄÕÌØ ÑÄÒÁ).</para>
</listitem>
<listitem>
<para><function>.fini</function> ÂÕÄÅÔ ×ÙÚ×ÁÎ × ÓÌÕÞÁÅ ÏÔËÁÚÁ
GEOM ÓÉÓÔÅÍÙ ÏÔ ËÌÁÓÓÁ (ÎÁÐÒÉÍÅÒ, ÐÒÉ ×ÙÇÒÕÚËÅ ÍÏÄÕÌÑ).</para>
</listitem>
<listitem>
<para><function>.taste</function> ×ÙÚÙ×ÁÅÔÓÑ, ËÏÇÄÁ ×
ÓÉÓÔÅÍÅ ÐÏÑ×ÌÑÅÔÓÑ ÎÏ×ÙÊ ËÌÁÓÓ ÉÌÉ ÐÏÓÔÁ×ÝÉË geom
(<quote>provider</quote>). åÓÌÉ ÓÏÏÔ×ÅÔÓÔ×ÉÅ ÎÁÊÄÅÎÏ, ÔÏ ÜÔÁ
ÆÕÎËÃÉÑ ÏÂÙÞÎÏ ÓÏÚÄÁÅÔ É ÚÁÐÕÓËÁÅÔ ÜËÚÅÍÐÌÑÒ geom.</para>
</listitem>
<listitem>
<para><function>.destroy_geom</function> ×ÙÚÙ×ÁÅÔÓÑ ÐÒÉ
ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÒÁÚÒÕÛÉÔØ ÜËÚÅÍÐÌÑÒ geom.</para>
</listitem>
<listitem>
<para><function>.ctlconf</function> ÂÕÄÅÔ ×ÙÚ×ÁÎ, ËÏÇÄÁ
ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÐÒÏÓÉÔ ÉÚÍÅÎÅÎÉÅ ËÏÎÆÉÇÕÒÁÃÉÉ ÓÕÝÅÓÔ×ÕÀÝÅÇÏ
ÜËÚÅÍÐÌÑÒÁ geom</para>
</listitem>
</itemizedlist>
<para>ôÁËÖÅ ÏÐÒÅÄÅÌÅÎÙ ÆÕÎËÃÉÉ ÓÏÂÙÔÉÊ GEOM, ËÏÔÏÒÙÅ ËÏÐÉÒÕÀÔÓÑ
× ÜËÚÅÍÐÌÑÒ geom.</para>
<para>ðÏÌÅ <function>.geom</function> × ÓÔÒÕËÔÕÒÅ
<structname>g_class</structname> — ÜÔÏ ÓÐÉÓÏË (LIST) ÜËÚÅÍÐÌÑÒÏ×
geom, ÒÅÁÌÉÚÏ×ÁÎÎÙÈ ÉÚ ËÌÁÓÓÁ.</para>
<para>üÔÉ ÆÕÎËÃÉÉ ×ÙÚÙ×ÁÀÔÓÑ ÉÚ g_event ÐÏÔÏËÁ ÑÄÒÁ.</para>
</sect2>
<sect2 id="geom-softc">
<title>Softc</title>
<para><quote>softc</quote> — ÜÔÏ ÕÓÔÁÒÅ×ÛÉÊ ÔÅÒÍÉÎ
ÄÌÑ <quote>ÐÒÉ×ÁÔÎÙÈ ÄÁÎÎÙÈ ÄÒÁÊ×ÅÒÁ</quote> (<quote>driver
private data</quote>). îÁÚ×ÁÎÉÅ ×ÅÒÏÑÔÎÅÊ ×ÓÅÇÏ ÐÒÏÉÓÈÏÄÉÔ ÏÔ
ÕÓÔÁÒÅ×ÛÅÇÏ ÔÅÒÍÉÎÁ <quote>software control block</quote>.
÷ ÓÉÓÔÅÍÅ GEOM softc ÜÔÏ ÓÔÒÕËÔÕÒÁ (ÔÏÞÎÅÅ: ÕËÁÚÁÔÅÌØ ÎÁ
ÓÔÒÕËÔÕÒÕ) ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ÐÒÉÓÏÅÄÉÎÅÎÁ Ë ÜËÚÅÍÐÌÑÒÕ geom
É ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÐÒÉ×ÁÔÎÙÅ ÄÁÎÎÙÅ ÜËÚÅÍÐÌÑÒÁ. õ ÂÏÌØÛÉÎÓÔ×Á
ËÌÁÓÓÏ× GEOM ÅÓÔØ ÓÌÅÄÕÀÝÉÅ ÞÌÅÎÙ:</para>
<itemizedlist>
<listitem>
<para><varname>struct g_provider *provider</varname> :
<quote>ÐÏÓÔÁ×ÝÉË geom</quote> ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÊ ÄÁÎÎÙÍ ÜËÚÅÍÐÌÑÒÏÍ
geom</para>
</listitem>
<listitem>
<para><varname>uint16_t n_disks</varname> : ëÏÌÉÞÅÓÔ×Ï
ÐÏÔÒÅÂÉÔÅÌÅÊ geom (<quote>consumer</quote>), ÏÂÓÌÕÖÉ×ÁÅÍÙÈ ÄÁÎÎÙÍ
ÜËÚÅÍÐÌÑÒÏÍ geom</para>
</listitem>
<listitem>
<para><varname>struct g_consumer **disks</varname> :
íÁÓÓÉ× <varname>struct g_consumer*</varname>. (îÅ×ÏÚÍÏÖÎÏ
ÏÂÏÊÔÉÓØ ÏÄÉÎÁÒÎÙÍ ÕËÁÚÁÔÅÌÅÍ, ÐÏÔÏÍÕ ÞÔÏ ÓÉÓÔÅÍÁ GEOM ÓÏÚÄÁÅÔ
ÄÌÑ ÎÁÓ ÓÔÒÕËÔÕÒÙ struct g_consumer*)</para>
</listitem>
</itemizedlist>
<para>óÔÒÕËÔÕÒÁ <structname>softc</structname> ÓÏÄÅÒÖÉÔ ÓÏÓÔÏÑÎÉÅ
ÜËÚÅÍÐÌÑÒÁ geom. õ ËÁÖÄÏÇÏ ÜËÚÅÍÐÌÑÒÁ ÅÓÔØ Ó×ÏÊ softc.</para>
</sect2>
<sect2 id="geom-metadata">
<title>íÅÔÁÄÁÎÎÙÅ</title>
<para>æÏÒÍÁÔ ÍÅÔÁÄÁÎÎÙÈ × ÔÏÊ ÉÌÉ ÉÎÏÊ ÍÅÒÅ ÚÁ×ÉÓÉÔ ÏÔ ËÏÎËÒÅÔÎÏÇÏ
ËÌÁÓÓÁ, ÎÏ <emphasis>ÏÂÑÚÁÎ</emphasis> ÎÁÞÉÎÁÔØÓÑ Ó:</para>
<itemizedlist>
<listitem>
<para>16-ÂÁÊÔÎÏÇÏ ÂÕÆÅÒÁ ÄÌÑ ÐÏÄÐÉÓÉ — ÓÔÒÏËÉ Ó
ÚÁ×ÅÒÛÁÀÝÉÍ ÎÕÌÅÍ (ÏÂÙÞÎÏ ÜÔÏ ÉÍÑ ËÌÁÓÓÁ)</para>
</listitem>
<listitem>
<para>uint32 ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ×ÅÒÓÉÉ</para>
</listitem>
</itemizedlist>
<para>ðÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ, ÞÔÏ ËÌÁÓÓÙ geom ÚÎÁÀÔ ËÁË ÏÂÒÁÝÁÔØÓÑ Ó
ÍÅÔÁÄÁÎÎÙÍÉ Ó ÉÄÅÎÔÉÆÉËÁÔÏÒÁÍÉ ×ÅÒÓÉÊ ÎÉÖÅ, ÞÅÍ ÉÈ ÓÏÂÓÔ×ÅÎÎÙÅ.</para>
<para>íÅÔÁÄÁÎÎÙÅ ÒÁÚÍÅÝÁÀÔÓÑ × ÐÏÓÌÅÄÎÅÍ ÓÅËÔÏÒÅ ÐÏÓÔÁ×ÝÉËÁ geom
(ÐÏÜÔÏÍÕ ÏÂÑÚÁÎÙ ÃÅÌÉËÏÍ ÕÍÅÝÁÔØÓÑ × ÎÅÍ).</para>
<para>(÷ÓÅ ÜÔÏ ÚÁ×ÉÓÉÔ ÏÔ ÒÅÁÌÉÚÁÃÉÉ, ÎÏ ×ÅÓØ ÓÕÝÅÓÔ×ÕÀÝÉÊ ËÏÄ ÒÁÂÏÔÁÅÔ
ÐÏÄÏÂÎÏ ÏÐÉÓÁÎÎÏÍÕ É ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÂÉÂÌÉÏÔÅËÁÍÉ.)</para>
</sect2>
<sect2 id="geom-creating">
<title>íÁÒËÉÒÏ×ÁÎÉÅ/ÓÏÚÄÁÎÉÅ ÜËÚÅÍÐÌÑÒÁ geom</title>
<para>ðÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÓÏÂÙÔÉÊ ÓÌÅÄÕÀÝÁÑ:</para>
<itemizedlist>
<listitem>
<para>ÐÏÌØÚÏ×ÁÔÅÌØ ÚÁÐÕÓËÁÅÔ ÓÌÕÖÅÂÎÕÀ ÐÒÏÇÒÁÍÍÕ &man.geom.8;</para>
</listitem>
<listitem>
<para>ÐÒÏÇÒÁÍÍÁ ÒÅÛÁÅÔ ËÁËÉÍ ËÌÁÓÓÏÍ geom ÅÊ ÐÒÉÄÅÔÓÑ
ÕÐÒÁ×ÌÑÔØ É ÉÝÅÔ ÂÉÂÌÉÏÔÅËÕ
<filename>geom_<replaceable>CLASSNAME</replaceable>.so</filename>
(ËÏÔÏÒÁÑ ÏÂÙÞÎÏ ÎÁÈÏÄÉÔÓÑ × <filename>/lib/geom</filename>).</para>
</listitem>
<listitem>
<para>ÏÎÁ ÏÔËÒÙ×ÁÅÔ ÂÉÂÌÉÏÔÅËÕ ÐÒÉ ÐÏÍÏÝÉ &man.dlopen.3;,
ÉÚ×ÌÅËÁÅÔ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÆÕÎËÃÉÉ É ÏÐÒÅÄÅÌÅÎÉÑ ÐÁÒÁÍÅÔÒÏ×
ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ.</para>
</listitem>
</itemizedlist>
<para>÷ÏÔ ÔÁË ÐÒÏÉÓÈÏÄÉÔ ÓÏÚÄÁÎÉÅ/ÍÁÒËÉÒÏ×ÁÎÉÅ ÎÏ×ÏÇÏ ÜËÚÅÍÐÌÑÒÁ
geom:</para>
<itemizedlist>
<listitem>
<para>&man.geom.8; ÉÝÅÔ ËÏÍÁÎÄÕ × ÁÒÇÕÍÅÎÔÁÈ ËÏÍÁÎÄÎÏÊ
ÓÔÒÏËÉ (ÏÂÙÞÎÏ ÜÔÏ <option>label</option>) É ×ÙÚÙ×ÁÅÔ
×ÓÐÏÍÏÇÁÔÅÌØÎÕÀ ÆÕÎËÃÉÀ.</para>
</listitem>
<listitem>
<para>÷ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÆÕÎËÃÉÑ ÐÒÏ×ÅÒÑÅÔ ÐÁÒÁÍÅÔÒÙ É
ÓÏÂÉÒÁÅÔ ÍÅÔÁÄÁÎÎÙÅ, ËÏÔÏÒÙÅ ÚÁÐÉÓÙ×ÁÀÔÓÑ ×Ï ×ÓÅ ×Ï×ÌÅÞÅÎÎÙÅ
ÐÏÓÔÁ×ÝÉËÉ geom.</para>
</listitem>
<listitem>
<para>üÔÏ <quote>ÐÏ×ÒÅÖÄÁÅÔ (spoil)</quote> ÓÕÝÅÓÔ×ÕÀÝÉÅ
ÜËÚÅÍÐÌÑÒÙ geom (ÅÓÌÉ ÏÎÉ ÂÙÌÉ) É ÐÏÒÏÖÄÁÅÔ ÎÏ×ÙÊ ×ÉÔÏË
<quote>ÔÅÓÔÉÒÏ×ÁÎÉÑ</quote> ÐÏÓÔÁ×ÝÉËÏ× geom. ãÅÌÅ×ÏÊ ËÌÁÓÓ geom
ÏÐÏÚÎÁÅÔ ÍÅÔÁÄÁÎÎÙÅ É ÁËÔÉ×ÉÒÕÅÔ ÜËÚÅÍÐÌÑÒ geom.</para>
</listitem>
</itemizedlist>
<para>(ðÒÉ×ÅÄÅÎÎÁÑ ×ÙÛÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÓÏÂÙÔÉÊ ÚÁ×ÉÓÉÔ ÏÔ
ËÏÎËÒÅÔÎÏÊ ÒÅÁÌÉÚÁÃÉÉ, ÎÏ ×ÅÓØ ÓÕÝÅÓÔ×ÕÀÝÉÊ ËÏÄ ÒÁÂÏÔÁÅÔ
ÐÏÄÏÂÎÏ ÏÐÉÓÁÎÎÏÍÕ É ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÂÉÂÌÉÏÔÅËÁÍÉ.)</para>
</sect2>
<sect2 id="geom-command">
<title>óÔÒÕËÔÕÒÁ ËÏÍÁÎÄ geom</title>
<para>÷ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÂÉÂÌÉÏÔÅËÁ <filename>geom_CLASSNAME.so</filename>
ÜËÓÐÏÒÔÉÒÕÅÔ ÓÔÒÕËÔÕÒÕ <structname>class_commands</structname>,
ËÏÔÏÒÁÑ Ñ×ÌÑÅÔÓÑ ÍÁÓÓÉ×ÏÍ ÜÌÅÍÅÎÔÏ×
<structname>struct g_command</structname>. üÔÉ ËÏÍÁÎÄÙ ÏÄÉÎÁËÏ×ÏÇÏ
ÆÏÒÍÁÔÁ É ×ÙÇÌÑÄÑÔ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ:</para>
<programlisting> ËÏÍÁÎÄÁ [-ÏÐÃÉÉ] ÉÍÑ_geom [ÄÒÕÇÉÅ]</programlisting>
<para>ïÂÝÉÍÉ ËÏÍÁÎÄÁÍÉ Ñ×ÌÑÀÔÓÑ:</para>
<itemizedlist>
<listitem>
<para>label — ÚÁÐÉÓÁÔØ ÍÅÔÁÄÁÎÎÙÅ × ÕÓÔÒÏÊÓÔ×Á,
ÞÔÏÂÙ ÏÎÉ ÍÏÇÌÉ ÂÙÔØ ÏÐÏÚÎÁÎÙ × ÐÒÏÃÅÓÓÅ ÔÅÓÔÉÒÏ×ÁÎÉÑ
É ÉÓÐÏÌØÚÏ×ÁÎÙ × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÜËÚÅÍÐÌÑÒÁÈ geom</para>
</listitem>
<listitem>
<para>destroy — ÒÁÚÒÕÛÉÔØ ÍÅÔÁÄÁÎÎÙÅ, ÚÁ ËÏÔÏÒÙÍ
ÐÏÓÌÅÄÕÅÔ ÒÁÚÒÕÛÅÎÉÅ ÜËÚÅÍÐÌÑÒÏ× geom</para>
</listitem>
</itemizedlist>
<para>ïÂÝÉÅ ÏÐÃÉÉ:</para>
<itemizedlist>
<listitem>
<para><literal>-v</literal> : ÄÅÔÁÌØÎÙÊ ×Ù×ÏÄ</para>
</listitem>
<listitem>
<para><literal>-f</literal> : ÐÒÉÎÕÄÉÔØ</para>
</listitem>
</itemizedlist>
<para>îÅËÏÔÏÒÙÅ ÏÐÅÒÁÃÉÉ, Ë ÐÒÉÍÅÒÕ ÍÁÒËÉÒÏ×ÁÎÉÅ ÍÅÔÁÄÁÎÎÙÍÉ É
ÒÁÚÒÕÛÅÎÉÅ ÍÅÔÁÄÁÎÎÙÈ ÍÏÇÕÔ ÂÙÔØ ×ÙÐÏÌÎÅÎÙ ÉÚ ÐÒÏÓÔÒÁÎÓÔ×Á
ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×. äÌÑ ÜÔÏÇÏ, ÓÔÒÕËÔÕÒÁ
<structname>g_command</structname> ÓÏÄÅÒÖÉÔ ÐÏÌÅ
<varname>gc_func</varname>, ËÏÔÏÒÏÅ ÍÏÖÅÔ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÏ ÎÁ
ÆÕÎËÃÉÀ (× ÔÏÍ-ÖÅ <filename>.so</filename>), ËÏÔÏÒÁÑ ÂÕÄÅÔ ×ÙÚ×ÁÎÁ
ÄÌÑ ÏÂÒÁÂÏÔËÉ ËÏÍÁÎÄÙ. ÷ ÓÌÕÞÁÅ, ËÏÇÄÁ <varname>gc_func</varname>
ÒÁ×ÎÏ NULL, ËÏÍÁÎÄÁ ÂÕÄÅÔ ÐÅÒÅÄÁÎÁ ÍÏÄÕÌÀ ÑÄÒÁ: ÆÕÎËÃÉÉ
<function>.ctlreq</function> ËÌÁÓÓÁ GEOM.</para>
</sect2>
<sect2 id="geom-geoms">
<title>üËÚÅÍÐÌÑÒÙ geom</title>
<para>õ ÜËÚÅÍÐÌÑÒÏ× ËÌÁÓÓÏ× GEOM ÅÓÔØ ×ÎÕÔÒÅÎÎÉÅ ÄÁÎÎÙÅ, ËÏÔÏÒÙÅ
ÈÒÁÎÑÔÓÑ × ÓÔÒÕËÔÕÒÁÈ softc, Á ÔÁËÖÅ ÅÓÔØ ÎÅËÏÔÏÒÙÅ ÆÕÎËÃÉÉ,
ÐÏÓÒÅÄÓÔ×ÏÍ ËÏÔÏÒÙÈ ÏÎÉ ÒÅÁÇÉÒÕÀÔ ÎÁ ×ÎÅÛÎÉÅ ÓÏÂÙÔÉÑ.</para>
<para>æÕÎËÃÉÉ ÓÏÂÙÔÉÊ:</para>
<itemizedlist>
<listitem>
<para><function>.access</function> : ÐÒÏÓÞÉÔÙ×ÁÅÔ
ÐÒÁ×Á ÄÏÓÔÕÐÁ (ÞÔÅÎÉÅ/ÚÁÐÉÓØ/ÉÓËÌÀÞÉÔÅÌØÎÙÊ ÄÏÓÔÕÐ)</para>
</listitem>
<listitem>
<para><function>.dumpconf</function> : ×ÏÚ×ÒÁÝÁÅÔ
ÉÎÆÏÒÍÁÃÉÀ Ï ÜËÚÅÍÐÌÑÒÅ geom; ÆÏÒÍÁÔ XML</para>
</listitem>
<listitem>
<para><function>.orphan</function> : ×ÙÚÙ×ÁÅÔÓÑ, ËÏÇÄÁ
ÏÔÓÏÅÄÉÎÑÅÔÓÑ ÌÀÂÏÊ ÉÚ ÎÉÚÌÅÖÁÝÉÈ ÐÏÓÔÁ×ÝÉËÏ× geom</para>
</listitem>
<listitem>
<para><function>.spoiled</function> : ×ÙÚÙ×ÁÅÔÓÑ, ËÏÇÄÁ
ÐÒÏÉÚ×ÏÄÉÔÓÑ ÚÁÐÉÓØ × ÎÉÚÌÅÖÁÝÉÊ ÐÏÓÔÁ×ÝÉË geom</para>
</listitem>
<listitem>
<para><function>.start</function> : ÏÂÒÁÂÁÔÙ×ÁÅÔ ××ÏÄ/×Ù×ÏÄ</para>
</listitem>
</itemizedlist>
<para>üÔÉ ÆÕÎËÃÉÉ ×ÙÚÙ×ÁÀÔÓÑ ÉÚ ÑÄÅÒÎÏÇÏ ÐÏÔÏËÁ
<function>g_down</function> É × ÜÔÏÍ ËÏÎÔÅËÓÔÅ ÎÅ ÍÏÖÅÔ ÂÙÔØ
ÂÌÏËÉÒÏ×ÏË (ÐÏÉÝÉÔÅ ÏÐÒÅÄÅÌÅÎÉÅ <quote>ÂÌÏËÉÒÏ×ËÁ</quote> × ÄÒÕÇÉÈ
ÉÓÔÏÞÎÉËÁÈ), ÞÔÏ ÎÅÍÎÏÇÏ ÏÇÒÁÎÉÞÉ×ÁÅÔ Ó×ÏÂÏÄÕ ÄÅÊÓÔ×ÉÊ, ÎÏ
ÓÐÏÓÏÂÓÔ×ÕÅÔ ÂÙÓÔÒÏÔÅ ÏÂÒÁÂÏÔËÉ.</para>
<para>éÚ ×ÙÛÅÕÐÏÍÑÎÕÔÙÈ, ÎÁÉÂÏÌÅÅ ×ÁÖÎÏÊ É ×ÙÐÏÌÎÑÀÝÅÊ ÐÏÌÅÚÎÕÀ ÒÁÂÏÔÕ
ÆÕÎËÃÉÅÊ Ñ×ÌÑÅÔÓÑ <function>.start</function>(), ËÏÔÏÒÁÑ ×ÙÚÙ×ÁÅÔÓÑ
×ÓÑËÉÊ ÒÁÚ, ËÏÇÄÁ ÐÏÓÔÁ×ÝÉËÕ geom, ÕÐÒÁ×ÌÑÅÍÏÍÕ ÜËÚÅÍÐÌÑÒÏÍ ËÌÁÓÓÁ,
ÐÒÉÈÏÄÉÔ ÚÁÐÒÏÓ BIO.</para>
</sect2>
<sect2 id="geom-threads">
<title>ðÏÔÏËÉ ×ÙÐÏÌÎÅÎÉÑ ÓÉÓÔÅÍÙ geom</title>
<para>óÉÓÔÅÍÏÊ GEOM × ÑÄÒÅ ïó ÓÏÚÄÁÀÔÓÑ É ÉÓÐÏÌØÚÕÀÔÓÑ ÔÒÉ
ÐÏÔÏËÁ ×ÙÐÏÌÎÅÎÉÑ (kernel threads):</para>
<itemizedlist>
<listitem>
<para><literal>g_down</literal> : ïÂÒÁÂÁÔÙ×ÁÅÔ ÚÁÐÒÏÓÙ,
ÐÒÉÈÏÄÑÝÉÅ ÏÔ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÈ ÓÕÝÎÏÓÔÅÊ (ÔÁËÉÈ, ËÁË ÚÁÐÒÏÓÙ ÉÚ
ÐÒÏÓÔÒÁÎÓÔ×Á ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×) ÎÁ ÐÕÔÉ Ë ÆÉÚÉÞÅÓËÉÍ
ÕÓÔÒÏÊÓÔ×ÁÍ</para>
</listitem>
<listitem>
<para><literal>g_up</literal> : ïÂÒÁÂÁÔÙ×ÁÅÔ ÏÔ×ÅÔÙ ÏÔ
ÄÒÁÊ×ÅÒÏ× ÕÓÔÒÏÊÓÔ× ÎÁ ÚÁÐÒÏÓÙ, ×ÙÐÏÌÎÅÎÎÙÅ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÍÉ
ÓÕÝÎÏÓÔÑÍÉ</para>
</listitem>
<listitem>
<para><literal>g_event</literal> : ïÔÒÁÂÁÔÙ×ÁÅÔ × ÏÓÔÁÌØÎÙÈ
ÓÌÕÞÁÑÈ, ËÁË-ÔÏ ÓÏÚÄÁÎÉÅ ÜËÚÅÍÐÌÑÒÁ geom, ÐÒÏÓÞÉÔÙ×ÁÎÉÅ ÐÒÁ×
ÄÏÓÔÕÐÁ, ÓÏÂÙÔÉÑ <quote>ÐÏ×ÒÅÖÄÅÎÉÑ</quote> É Ô.Ð.</para>
</listitem>
</itemizedlist>
<para>ëÏÇÄÁ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ÐÒÏÃÅÓÓ ÚÁÐÒÁÛÉ×ÁÅÔ <quote>ÐÒÏÞÉÔÁÔØ
ÄÁÎÎÙÅ X ÐÏ ÓÍÅÝÅÎÉÀ Y ÆÁÊÌÁ</quote>, ÐÒÏÉÓÈÏÄÉÔ ÓÌÅÄÕÀÝÅÅ:</para>
<itemizedlist>
<listitem>
<para>æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÐÒÅÏÂÒÁÚÕÅÔ ÚÁÐÒÏÓ × ÜËÚÅÍÐÌÑÒ
ÓÔÒÕËÔÕÒÙ bio É ÐÅÒÅÄÁÅÔ ÅÇÏ ÓÉÓÔÅÍÅ GEOM. æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ
<quote>ÚÎÁÅÔ</quote>, ÞÔÏ ÜËÚÅÍÐÌÑÒ geom ÄÏÌÖÅÎ ÏÂÒÁÂÏÔÁÔØ ÚÁÐÒÏÓ,
ÔÁË ËÁË ÆÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ ÒÁÚÍÅÝÁÀÔÓÑ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ
ÎÁÄ ÜËÚÅÍÐÌÑÒÏÍ geom.</para>
</listitem>
<listitem>
<para>úÁÐÒÏÓ ÚÁ×ÅÒÛÁÅÔÓÑ ×ÙÚÏ×ÏÍ ÆÕÎËÃÉÉ
<function>.start</function>() × ÐÏÔÏËÅ g_down É ÄÏÓÔÉÇÁÅÔ
×ÅÒÈÎÅÇÏ ÜËÚÅÍÐÌÑÒÁ geom.</para>
</listitem>
<listitem>
<para>÷ÅÒÈÎÉÊ ÜËÚÅÍÐÌÑÒ geom (ÎÁÐÒÉÍÅÒ, ÜÔÏ ÓÅËÃÉÏÎÉÒÏ×ÝÉË
ÒÁÚÄÅÌÏ× (partition slicer)) ÏÐÒÅÄÅÌÑÅÔ, ÞÔÏ ÚÁÐÒÏÓ ÄÏÌÖÅÎ ÂÙÔØ
ÐÅÒÅÁÄÒÅÓÏ×ÁÎ ÎÉÖÅÓÔÏÑÝÅÍÕ ÜËÚÅÍÐÌÑÒÕ geom (Ë ÐÒÉÍÅÒÕ, ÄÒÁÊ×ÅÒÕ
ÄÉÓËÁ). ÷ÙÛÅÓÔÏÑÝÉÊ ÜËÚÅÍÐÌÑÒ geom ÓÏÚÄÁÅÔ ËÏÐÉÀ ÚÁÐÒÏÓÁ bio
(ÚÁÐÒÏÓÙ bio <emphasis>÷óåçäá</emphasis> ËÏÐÉÒÕÀÔÓÑ ÐÒÉ ÐÅÒÅÄÁÞÅ
ÍÅÖÄÕ ÜËÚÅÍÐÌÑÒÁÍÉ geom ÐÒÉ ÐÏÍÏÝÉ
<function>g_clone_bio</function>()!),
ÉÚÍÅÎÑÅÔ ÐÏÌÑ ÓÍÅÝÅÎÉÑ É ÃÅÌÅ×ÏÇÏ ÐÏÓÔÁ×ÝÉËÁ geom É ÚÁÐÕÓËÁÅÔ
ÎÁ ÏÂÒÁÂÏÔËÕ ËÏÐÉÀ ÐÒÉ ÐÏÍÏÝÉ ÆÕÎËÃÉÉ
<function>g_io_request</function>()</para>
</listitem>
<listitem>
<para>äÒÁÊ×ÅÒ ÄÉÓËÁ ÔÁËÖÅ ÐÏÌÕÞÁÅÔ ÚÁÐÒÏÓ bio, ËÁË ×ÙÚÏ×
ÆÕÎËÃÉÉ <function>.start</function>() × ÐÏÔÏËÅ
<literal>g_down</literal>. äÒÁÊ×ÅÒ ÏÂÒÁÝÁÅÔÓÑ Ë ËÏÎÔÒÏÌÌÅÒÕ ÄÉÓËÁ,
ÐÏÌÕÞÁÅÔ ÂÌÏË ÄÁÎÎÙÈ É ×ÙÚÙ×ÁÅÔ ÆÕÎËÃÉÀ
<function>g_io_deliver</function>() ÉÓÐÏÌØÚÕÑ ËÏÐÉÀ ÚÁÐÒÏÓÁ bio
</para>
</listitem>
<listitem>
<para>ôÅÐÅÒØ, ÉÚ×ÅÝÅÎÉÅ Ï ÚÁ×ÅÒÛÅÎÉÉ bio
<quote>×ÓÐÌÙ×ÁÅÔ</quote> × ÐÏÔÏËÅ <literal>g_up</literal>.
óÎÁÞÁÌÁ × ÐÏÔÏËÅ <literal>g_up</literal> ×ÙÚÙ×ÁÅÔÓÑ ÆÕÎËÃÉÑ
<function>.done</function>() ÓÅËÃÉÏÎÉÒÏ×ÝÉËÁ ÒÁÚÄÅÌÏ×,
ÐÏÓÌÅÄÎÉÊ ÉÓÐÏÌØÚÕÅÔ ÐÏÌÕÞÅÎÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÒÁÚÒÕÛÁÅÔ
ËÌÏÎÉÒÏ×ÁÎÎÙÊ ÜËÚÅÍÐÌÑÒ ÓÔÒÕËÔÕÒÙ bio ÐÏÓÒÅÄÓÔ×ÏÍ
<function>g_destroy_bio</function>() É ×ÙÚÙ×ÁÅÔ
<function>g_io_deliver</function>() ÉÓÐÏÌØÚÕÑ
ÐÅÒ×ÏÎÁÞÁÌØÎÙÊ ÚÁÐÒÏÓ</para>
</listitem>
<listitem>
<para>æÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÐÏÌÕÞÁÅÔ ÄÁÎÎÙÅ É ÐÅÒÅÄÁÅÔ ÉÈ
ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÍÕ ÐÒÏÃÅÓÓÕ</para>
</listitem>
</itemizedlist>
<para>úÁ ÉÎÆÏÒÍÁÃÉÅÊ Ï ÔÏÍ, ËÁË ÄÁÎÎÙÅ ÐÅÒÅÄÁÀÔÓÑ × ÓÔÒÕËÔÕÒÅ
<structname>bio</structname> ÍÅÖÄÕ ÜËÚÅÍÐÌÑÒÁÍÉ geom,
ÓÍÏÔÒÉÔÅ &man.g.bio.9; (ÏÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÏÌÅÊ
<varname>bio_parent</varname> É <varname>bio_children</varname>).
</para>
<para>÷ÁÖÎÙÊ ÍÏÍÅÎÔ × ÔÏÍ, ÞÔÏ <emphasis>îåìøúñ äïðõóëáôø âìïëéòï÷ïë
÷ ðïôïëáè G_UP é G_DOWN</emphasis>. ÷ÏÔ ÎÅÐÏÌÎÙÊ ÐÅÒÅÞÅÎØ ÔÏÇÏ,
ÞÔÏ ÎÅÌØÚÑ ÄÅÌÁÔØ × ÜÔÉÈ ÐÏÔÏËÁÈ:</para>
<itemizedlist>
<listitem>
<para>÷ÙÚÙ×ÁÔØ ÆÕÎËÃÉÉ <function>msleep</function>() ÉÌÉ
<function>tsleep</function>().</para>
</listitem>
<listitem>
<para>éÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ
<function>g_write_data</function>() É
<function>g_read_data</function>(), ÔÁË ËÁË ÏÎÉ ÂÌÏËÉÒÕÀÔÓÑ
× ÍÏÍÅÎÔ ÏÂÍÅÎÁ ÄÁÎÎÙÍÉ Ó ÐÏÔÒÅÂÉÔÅÌÑÍÉ geom.</para>
</listitem>
<listitem>
<para>ïÖÉÄÁÔØ ××ÏÄ/×Ù×ÏÄ.</para>
</listitem>
<listitem>
<para>÷ÙÚÙ×ÁÔØ &man.malloc.9; É
<function>uma_zalloc</function>() Ó ÕÓÔÁÎÏ×ÌÅÎÎÙÍ ÆÌÁÇÏÍ
<varname>M_WAITOK</varname>.</para>
</listitem>
<listitem>
<para>éÓÐÏÌØÚÏ×ÁÔØ &man.sx.9; <!-- É ÄÒÕÇÉÅ sleepable locks. -->
</para>
</listitem>
</itemizedlist>
<para>üÔÏ ÏÇÒÁÎÉÞÅÎÉÅ ÎÁ ËÏÄ GEOM ÐÒÉÚ×ÁÎÏ ÉÚÂÅÖÁÔØ ÏÔ
<quote>ÚÁÓÏÒÅÎÉÑ</quote> ÐÕÔÉ ÚÁÐÒÏÓÁ ××ÏÄÁ/×Ù×ÏÄÁ, ÔÁË ËÁË
ÂÌÏËÉÒÏ×ËÉ ÏÂÙÞÎÏ ÎÅ ÉÍÅÀÔ ÞÅÔËÉÈ ×ÒÅÍÅÎÎÙÈ ÇÒÁÎÉÃ, É ÎÅÔ ÇÁÒÁÎÔÉÊ
ÎÁ ÚÁÎÉÍÁÅÍÏÅ ×ÒÅÍÑ (ÔÁËÖÅ ÎÁ ÔÏ ÅÓÔØ É ÄÒÕÇÉÅ ÔÅÈÎÉÞÅÓËÉÅ ÐÒÉÞÉÎÙ).
üÔÏ ÔÁËÖÅ ÚÎÁÞÉÔ, ÞÔÏ × ×ÙÛÅÕÐÏÍÑÎÕÔÙÈ ÐÏÔÏËÁÈ ÓËÏÌØ-ÎÉÂÕÄØ ÓÌÏÖÎÙÅ
ÏÐÅÒÁÃÉÉ ×ÙÐÏÌÎÉÔØ ÎÅÌØÚÑ, ÎÁÐÒÉÍÅÒ: ÌÀÂÏÅ ÓÌÏÖÎÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ
ÔÒÅÂÕÅÔ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ. ë ÓÞÁÓÔØÀ ÒÅÛÅÎÉÅ ÅÓÔØ: ÓÏÚÄÁÎÉÅ
ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÑÄÅÒÎÙÈ ÐÏÔÏËÏ×.</para>
</sect2>
<sect2 id="geom-kernelthreads">
<title>ñÄÅÒÎÙÅ ÐÏÔÏËÉ ×ÙÐÏÌÎÅÎÉÑ, ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÅ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
× ËÏÄÅ geom</title>
<para>ñÄÅÒÎÙÅ ÐÏÔÏËÉ ×ÙÐÏÌÎÅÎÉÑ ÓÏÚÄÁÀÔÓÑ ÆÕÎËÃÉÅÊ
&man.kthread.create.9;, × Ó×ÏÅÍ ÐÏ×ÅÄÅÎÉÉ ÏÎÉ ÓÈÏÖÉ Ó ÐÏÔÏËÁÍÉ,
ÓÏÚÄÁÎÎÙÍÉ × ÐÒÏÓÔÒÁÎÓÔ×Å ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ×, ÎÏ ÅÓÔØ ÏÄÎÏ
ÏÔÌÉÞÉÅ: ÏÎÉ ÎÅ ÍÏÇÕÔ ÉÚ×ÅÓÔÉÔØ ×ÙÚ×Á×ÛÉÊ ÉÈ ÐÏÔÏË Ï Ó×ÏÅÍ ÚÁ×ÅÒÛÅÎÉÉ;
ÐÏ ÚÁ×ÅÒÛÅÎÉÀ — ÎÅÏÂÈÏÄÉÍÏ ×ÙÚÙ×ÁÔØ &man.kthread.exit.9;</para>
<para>÷ ËÏÄÅ GEOM ÏÂÙÞÎÏÅ ÎÁÚÎÁÞÅÎÉÅ ÜÔÉÈ ÐÏÔÏËÏ× — ÒÁÚÇÒÕÚÉÔØ
ÐÏÔÏË <literal>g_down</literal>
(ÆÕÎËÃÉÀ <function>.start</function>() ) ÏÔ ÏÂÒÁÂÏÔËÉ ÚÁÐÒÏÓÏ×. üÔÉ
ÐÏÔÏËÉ ÐÏÄÏÂÎÙ <quote>ÏÂÒÁÂÏÔÞÉËÁÍ ÓÏÂÙÔÉÊ</quote>
(<quote>event handlers</quote>):
Õ ÎÉÈ ÅÓÔØ ÏÞÅÒÅÄØ ÓÏÂÙÔÉÊ (ËÏÔÏÒÁÑ ÎÁÐÏÌÎÑÅÔÓÑ ÓÏÂÙÔÉÑÍÉ ÏÔ ÒÁÚÎÙÈ
ÆÕÎËÃÉÊ ÉÚ ÒÁÚÎÙÈ ÐÏÔÏËÏ×; ÏÞÅÒÅÄØ ÎÅÏÂÈÏÄÉÍÏ ÚÁÝÉÝÁÔØ ÍØÀÔÅËÓÏÍ),
ÓÏÂÙÔÉÑ ÉÚ ÏÞÅÒÅÄÉ ×ÙÂÉÒÁÀÔÓÑ ÏÄÎÏ ÚÁ ÄÒÕÇÉÍ É ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ
× ÂÏÌØÛÏÍ ÂÌÏËÅ <literal>switch</literal>().</para>
<para>ïÓÎÏ×ÎÏÅ ÐÒÅÉÍÕÝÅÓÔ×Ï ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÏÔÄÅÌØÎÏÇÏ ÐÏÔÏËÁ, ËÏÔÏÒÙÊ
ÏÂÒÁÂÁÔÙ×ÁÅÔ ÚÁÐÒÏÓÙ ××ÏÄÁ/×Ù×ÏÄÁ, ÔÏ, ÞÔÏ ÏÎ ÍÏÖÅÔ ÂÌÏËÉÒÏ×ÁÔØÓÑ ÐÏ
ÍÅÒÅ ÎÅÏÂÈÏÄÉÍÏÓÔÉ. üÔÏ, ÎÅÓÏÍÎÅÎÎÏ, ÐÒÉ×ÌÅËÁÔÅÌØÎÏ, ÎÏ ÄÏÌÖÎÏ ÂÙÔØ
ÈÏÒÏÛÏ ÏÂÄÕÍÁÎÏ. âÌÏËÉÒÏ×ÁÎÉÅ — ÈÏÒÏÛÏ É ÕÄÏÂÎÏ, ÎÏ ÍÏÖÅÔ
ÓÕÝÅÓÔ×ÅÎÎÏ ÓÎÉÚÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ ÄÁÎÎÙÈ ×
ÓÉÓÔÅÍÅ GEOM. ïÓÏÂÏ ÔÒÅÂÏ×ÁÔÅÌØÎÙÅ Ë ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ËÌÁÓÓÙ
ÍÏÇÕÔ ÄÅÌÁÔØ ×ÓÀ ÒÁÂÏÔÕ × ÆÕÎËÃÉÉ <function>.start</function>(),
ÕÄÅÌÑÑ ÏÓÏÂÏÅ ×ÎÉÍÁÎÉÅ ÏÛÉÂËÁÍ ÐÒÉ ÒÁÂÏÔÅ Ó ÐÁÍÑÔØÀ.</para>
<para>åÝÅ ÏÄÎÏ ÐÒÅÉÍÕÝÅÓÔ×Ï ÐÏÔÏËÁ <quote>ÏÂÒÁÂÏÔÞÉËÁ ÓÏÂÙÔÉÊ</quote>
ÜÔÏ ÓÅÒÉÁÌÉÚÁÃÉÑ ×ÓÅÈ ÚÁÐÒÏÓÏ× É ÏÔ×ÅÔÏ×, ÐÒÉÈÏÄÑÝÉÈ Ó ÒÁÚÎÙÈ
ÐÏÔÏËÏ× geom × ÏÄÉÎ ÐÏÔÏË. üÔÏ ÔÁËÖÅ ÕÄÏÂÎÏ, ÎÏ ÍÏÖÅÔ ÂÙÔØ ÍÅÄÌÅÎÎÙÍ.
÷ ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ×, ÏÂÒÁÂÏÔËÁ ÚÁÐÒÏÓÏ× ÆÕÎËÃÉÅÊ
<function>.done</function>() ÍÏÖÅÔ ÂÙÔØ ÏÓÔÁ×ÌÅÎÁ ÐÏÔÏËÕ
<literal>g_up</literal>.</para>
<para>õ ÍØÀÔÅËÓÏ× × ÑÄÒÅ FreeBSD (&man.mutex.9;) ÅÓÔØ ÏÄÎÏ ÒÁÚÌÉÞÉÅ
Ó ÉÈ ÁÎÁÌÏÇÁÍÉ ÉÚ ÐÒÏÓÔÒÁÎÓÔ×Á ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÐÒÏÃÅÓÓÏ× —
×Ï ×ÒÅÍÑ ÕÄÅÒÖÁÎÉÑ ÍØÀÔÅËÓÁ × ËÏÄÅ ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÂÌÏËÉÒÏ×ËÉ. åÓÌÉ
× ËÏÄÅ ÎÅÏÂÈÏÄÉÍÏ ÂÌÏËÉÒÏ×ÁÎÉÅ, ÔÏ ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ &man.sx.9;.
ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÅÓÌÉ ×ÓÑ ×ÁÛÁ ÒÁÂÏÔÁ ×ÙÐÏÌÎÑÅÔÓÑ × ÏÄÎÏÍ ÐÏÔÏËÅ,
×Ù ÍÏÖÅÔÅ ÏÂÏÊÔÉÓØ ×ÏÏÂÝÅ ÂÅÚ ÍØÀÔÅËÓÏ×.</para>
</sect2>
</sect1>
</article>
|