aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/books/faq/book.sgml
blob: 92addf06150fd9dff531394dca7a683197b0d71a (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
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
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087
15088
15089
15090
15091
15092
15093
15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
<?xml version="1.0" encoding="eucJP" standalone="no"?>
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
	"../../../share/sgml/freebsd42.dtd" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//JA" "../../share/sgml/entities.ent">
%entities;
]>

<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.204 -->

<book lang='ja'>
  <bookinfo>
    <title>FreeBSD 2.X、3.X、4.X についての FAQ (よくある質問とその答え)</title>

    <corpauthor>FreeBSD ドキュメンテーションプロジェクト</corpauthor>

    <copyright>
      <year>1995</year>
      <year>1996</year>
      <year>1997</year>
      <year>1998</year>
      <year>1999</year>
      <year>2000</year>
      <year>2001</year>
      <holder>FreeBSD ドキュメンテーションプロジェクト</holder>
    </copyright>

    &legalnotice;

    <releaseinfo>$FreeBSD$</releaseinfo>

    <abstract>
      <para>
        この文書は FreeBSD システム・バージョン 2.X、3.X、4.X についての FAQ です。
        特に断わりがない限り、どの項目も FreeBSD 2.0.5 以降のものを想定しています。
        &lt;XXX&gt; のついている項目はまだ作業中のものです。
        この FreeBSD ドキュメンテーションプロジェクトに協力したいと思われる方は、
        &a.doc;
        まで (英語で) 電子メールを送ってください。
        この文書の最新バージョンは、いつでも
        <ulink url="http://www.jp.FreeBSD.org/">日本国内版 FreeBSD World Wide Web サーバ</ulink><ulink url="http://www.FreeBSD.org/">FreeBSD World Wide Web サーバ</ulink>で
        見ることができます。
        また、ひとつの巨大な <ulink url="book.html">HTML</ulink>
        ファイルとして HTTP でダウンロードすることもできます。
        プレーンテキスト、PostScript、PDF、およびその他の形式のものは
        <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD
          FTP サーバ</ulink>に置かれています。
        また、<ulink url="http://www.FreeBSD.org/search/search.html">FAQ
          の検索</ulink>も可能です。</para>

      <para>
        <note>
          <para>20056 月現在、HTML 版以外の日本語 FAQ は用意されていません。</para>
        </note>
      </para>

      <para>
        日本語版の作成は FreeBSD 日本語ドキュメンテーションプロジェクトが
        オリジナルの英語版をもとにして行なっています。
        FreeBSD FAQ 日本語訳および、 FreeBSD FAQ 日本語版のみに関連することは、
        &a.jp.doc-jp; において日本語で議論されています。
        必要に応じて日本語ドキュメンテーションプロジェクトから、
        FreeBSD Documentation Project に対してフィードバックを行ないますので、
        英語が得意でない方は
        &a.jp.doc-jp; まで日本語でコメントをお寄せください。</para>

      <para>また、この FreeBSD FAQ とは別に、日本の FreeBSD ユーザ有志によって
        &a.jp.users-jp;
        やニュースグループ
        <ulink url="news:fj.os.bsd.freebsd">fj.os.bsd.freebsd</ulink>
        などへの投稿をもとに作成された
        <ulink url="http://www.jp.FreeBSD.org/QandA/">QandA</ulink>
        が公開されています。
        特に日本語環境など日本固有の話題が充実していますので、
        こちらも合わせてご覧ください。</para>
    </abstract>
  </bookinfo>

  <preface id="preface">
    <title>まえがき</title>

    <para>
      <emphasis>訳:
        &a.kuriyama;、
        &a.hanai;、
        &a.jp.nakai;、
        &a.motoyuki;、
        &a.jp.sugimura;、
        1997115</emphasis>
    </para>

    <para>
      FreeBSD 2.X-4.X FAQ へようこそ!
    </para>

    <para>
      Usenet の FAQ がそうであるように、
      この文書も FreeBSD オペレーティングシステムに関して
      頻繁に尋ねられる質問を網羅することを目的としています
      (もちろんそれに対する答えも!)。
      FAQ は本来バンド幅を減らし、
      同じ質問が何度も繰り返されるのを避けるために作られたものですが、
      最近は有用な情報源と見なされるようになってきました。
    </para>

    <para>
      この FAQ をできる限り有用なものにしようと、
      あらゆる努力がはらわれています。
      もし何かしらの改善案が浮かんだら、ぜひ
      &a.faq; までメールを送ってください。
    </para>

    <qandaset>
      <qandaentry>
        <question id="what-is-FreeBSD">
          <para>FreeBSD って何?</para>
        </question>

        <answer>
          <para>FreeBSD とは一言で言えば、カリフォルニア大学バークレイ校から
            リリースされた <quote>4.4BSD-Lite</quote><quote>4.4BSD-Lite2</quote> による
            強化の一部に由来する、
            i386 および Alpha/AXP 系のプラットフォーム向けの
            UN*X ライクなオペレーティングシステムです。
            間接的には同じバークレイ校の <quote>Net/2</quote> を William Jolitz が
            i386 系に移植した <quote>386BSD</quote> も基にしていますが、
            386BSD のコードはほとんど残っていません。
            FreeBSD についての詳細と、何ができるかについては
            <ulink url="http://www.FreeBSD.org/">FreeBSD のホームページ</ulink>
            を参照してください。
          </para>

          <para>
            FreeBSD は企業やインターネットサービスプロバイダ、研究者、
            コンピュータ専門家、学生、家庭のユーザなどにより、業務や教育、
            娯楽に用いられています。これらに関しては
            <ulink url="http://www.FreeBSD.org/gallery/gallery.html"
                   >FreeBSD ギャラリー</ulink>をご覧ください。
          </para>

          <para>
            FreeBSD に関するより詳しい情報は
            <ulink url="../handbook/index.html">FreeBSD
            ハンドブック</ulink>を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="FreeBSD-goals">
          <para>FreeBSD が目指しているもの</para>
        </question>

        <answer>
          <para>
            FreeBSD プロジェクトの目的は、
            いかなる用途にも使用でき、
            何ら制限のないソフトウェアを供給することです。
            私たちの多くは、
            コード (そしてプロジェクト) に対してかなりの投資をしてきており、
            これからも多少の代償はあっても投資を続けて行くつもりです。
            ただ、他の人達にも同じような負担をするように主張しているわけではありません。
            FreeBSD に興味を持っている一人残らずすべての人々に、
            目的を限定しないでコードを提供すること。
            これが、
            私たちの最初のそして最大の「任務」であると信じています。
            そうすれば、コードは可能な限り広く使われ、
            最大の恩恵をもたらすことができるでしょう。
            これが、私たちが熱烈に支持しているフリーソフトウェアの最も基本的な目的であると、
            私は信じています。
          </para>

          <para>
            私たちのソースツリーに含まれるソースのうち、GNU
            一般公有使用許諾 (GPL) または GNU ライブラリ
            一般公有使用許諾 (LGPL) に従っているものについては、
            多少制限が科されています。ただし、
            ソースコードへのアクセスの保証という、
            一般の制限とはいわば逆の制限です。
            ただし GPL ソフトウェアを商用で利用する場合、
            さらに複雑になるのは避けられません。
            そのため、それらのソフトウェアを、より制限の少ない
            BSD 著作権に従ったソフトウェアで置き換える努力を、
            可能な限り日々続けています。
          </para>

            <note>
              <title>訳注</title>
              <para>
                GPL では、「ソースコードを実際に受け取るか、
                あるいは希望しさえすればそれを入手することが可能であること」を求めています。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="why-called-FreeBSD">
          <para>どうして FreeBSD と呼ばれているのですか?</para>
        </question>

        <answer>
          <para>
            <itemizedlist>
              <listitem>
                <para>無料 (free) で使うことができる (商利用も含む)。
                </para>
              </listitem>

              <listitem>
                <para>オペレーティングシステムの完全なソースコードが自由 (freely) に手に入り、
                  商利用・非商利用にかかわらず、最低限の制限で他の仕事への利用、配布、導入が可能。
                </para>
              </listitem>

              <listitem>
                <para>改良やバグフィックスがある場合、
                  誰でも (free) そのコードを提出でき、
                  ソースツリーに加えることができます
                  (いくつかの簡単な条件には従ってもらいます)。</para>
              </listitem>

            </itemizedlist>
          </para>

          <para>
            母国語が英語でない読者のために、ここでは <quote>free</quote>
            という単語が二つの意味で用いられていることを指摘しておくと分かりやすいかも知れません。
            ひとつは「無料である」ということ、
            もうひとつは「自分のやりたいようにできる」ということです。
            FreeBSD のコードで<emphasis>できない</emphasis>いくつかのこと
            (自分が書いたものだと偽るなど) を除けば、
            あなたは自分のやりたいことをやることが可能なのです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="latest-version">
          <para>FreeBSD の最新バージョンは?</para>
        </question>
        <answer>

          <para>
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.3-RELEASE/">4.3</ulink>
            が最新の <emphasis>STABLE</emphasis> バージョンで、
            20014 月にリリースされました。
            また、これは最新の <emphasis>RELEASE</emphasis>
            バージョンでもあります。
          </para>

          <para>
            簡単に言ってしまうと、<emphasis>-STABLE</emphasis>
            は最新の <emphasis>-CURRENT</emphasis>
            のスナップショットのすばらしい新機能の数々よりも、
            安定性と変更回数の少なさを好む ISP や、
            他の企業のユーザをターゲットにしています。
            リリースはこの二種類のブランチで行なわれますが、
            (<emphasis>-STABLE</emphasis> と比較すると多少)
            不安定な動作があるということを許容できるなら、
            必要となるのは <emphasis>-CURRENT</emphasis> の方だけでしょう。
          </para>

          <para>
            各リリースは<link linkend="release-freq">
              数カ月毎</link>にしか行なわれません。
            多くの人々が FreeBSD のソースをそのリリースよりも
            最新の状態に維持している
            (<link linkend="current">FreeBSD-current</link><link linkend="stable">FreeBSD-stable</link>
            に関する質問も参照してください) のですが、
            ソースというのは常に改変され続けているため、
            そうすることは一種の慣例になっています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="current">
          <para>FreeBSD-CURRENTって何?</para>
        </question>

        <answer>
          <para>
            <ulink url="../handbook/cutting-edge.html#CURRENT">FreeBSD-CURRENT</ulink>
            はオペレーティングシステムの開発バージョンで、
            やがて 5.0-RELEASE となります。よってこれは、そこに携わっている開発者や、
            どんな障害をも乗り越えていけるタフな愛好家たちにとってのみ興味の対象となるものです。
            -CURRENT の使用に際しての詳細は
            <ulink url="../handbook/index.html">FreeBSD ハンドブック</ulink><ulink url="../handbook/cutting-edge.html#CURRENT">関連するセクション</ulink>
            を参照してください。
          </para>

          <para>
            オペレーティングシステムに馴染みがない場合や、
            それが一時的に発生している問題なのか、
            それとも本質的な問題かを見極める能力がない場合は、
            FreeBSD-CURRENT を使うべきではありません。
            このブランチは時々急激に拡張されたり、
            システムが構築できない状態になることもしょっちゅうあります。
            FreeBSD-CURRENT を使う人は問題を分析し、
            「小さな欠陥」ではなく、
            明らかに間違いであると思われるものだけを報告できるものと想定されています。
            「make world したら group 関係でエラーがでました」のような質問は、
            -CURRENT メーリングリストでは軽蔑の眼差しであしらわれることもあります。
          </para>

          <para>毎日、その時点の -CURRENT と -STABLE のコードを元に
            <ulink url="http://www.FreeBSD.org/releases/snapshots.html">snapshot</ulink>
            が作成されています。
            現在は、その snapshot の配布も利用可能です。
            それぞれの snapshot には以下のような目的があります。
          </para>

          <para>
            <itemizedlist>

              <listitem>
                <para>インストールプログラムの最新版のテスト。
                </para>
              </listitem>

              <listitem>
                <para>
                  試してみたいけれど、
                  基礎的な所から毎日変わるようなものを追いかける時間もバンド幅も無い、
                  という人にも -CURRENT や -STABLE を使えるようにする。
                  また、そのような人たちのシステム移行のための手っ取り早い方法を提供する。
                </para>
              </listitem>

              <listitem>
                <para>
                  あとでとんでもないことをしてしまった時のために、
                  問題となるコードの特定の参照基準点を保存しておく。
                  (通常は CVS がこういうハプニングのような恐ろしい事態を防止して
                  いるんですけどね :)
                </para>
              </listitem>

              <listitem>
                <para>
                  テストが必要な新しい機能を、
                  できる限り多くの隠れテスターに試してもらう。</para>
              </listitem>

            </itemizedlist>
          </para>

          <para>
            どんな目的であれ、-CURRENT snapshot が
            <quote>製品レベルの品質</quote>
            であるとの考えに基づく要求は行わないでください。
            安定性やテスト十分性にこだわる人は、
            完全なリリース、あるいは -STABLE snapshot から離れてはいけません。
          </para>

          <para>
            スナップショットリリースは、5.0-CURRENT が
            <ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/"
                   >ftp://current.FreeBSD.org/pub/FreeBSD/</ulink>
            から、4-STABLE が
            <ulink url="ftp://releng4.FreeBSD.org/pub/FreeBSD"
                   >releng4.FreeBSD.org</ulink>
            から直接入手可能です。
            また、3-STABLE スナップショットは、
            この文章の執筆時点 (20005 月)
            で作成されていません。</para>

          <para>スナップショットリリースは、
            現在、開発や保守作業が行なわれているすべてのブランチにおいて、
            平均して一日一回作成されます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="stable">
          <para>FreeBSD-STABLE のコンセプトは何ですか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.0.5 がリリースされた後、私たちは FreeBSD の開発を
            2 系統に分割することにしました。
            一つは <ulink url="../handbook/stable.html">-STABLE</ulink>
            というブランチで、バグの修正はしっかりテストされ、
            機能の強化は少しずつしか行われません
            (急な変更や実験的機能を望まない、
            インターネットサービスプロバイダや営利企業向け)。
            もう一方のブランチは
            <ulink url="../handbook/cutting-edge.html#CURRENT">-CURRENT</ulink>
            で、2.0 がリリースされて以来
            5.0-RELEASE (そしてその後も) へ向けて脈々と続いているものです。
            ASCII で描いた簡単な図がわかりやすいかは自信がありませんが、
            こんな感じになります。
          </para>

          <programlisting>                 2.0
                  |
                  |
                  |  [2.1-STABLE]
 *BRANCH*       2.0.5 -&gt; 2.1 -&gt; 2.1.5 -&gt; 2.1.6 -&gt; 2.1.7.1  [2.1-STABLE 終了]
                  |                         (1997/03)
                  |
                  |
                  |  [2.2-STABLE]
 *BRANCH*       2.2.1 -&gt; 2.2.2-RELEASE -&gt; 2.2.5 -&gt; 2.2.6 -&gt; 2.2.7 -&gt; 2.2.8 [終了]
                  |         (1997/03)     (1997/10)   (1998/04)   (1998/07)   (1998/12)
                  |
                  |
               3.0-SNAPs  (1997 年第一四半期開始)
                  |
                  |
               3.0-RELEASE (1998/10)
                  |
                  |  [3.0-STABLE]
 *BRANCH*      3.1-RELEASE  (1999/02) -&gt; 3.2 -&gt; 3.3 -&gt; 3.4 -&gt; 3.5 -&gt; 3.5.1
                  |                   (1999/05) (1999/09) (1999/12) (2000/06) (2000/07)
                  |  [4.0-STABLE]
 *BRANCH*        4.0  (2000/03) -&gt;4.1 -&gt; 4.1.1 -&gt; 4.2 -&gt; 4.3 -&gt; ... 将来の 4.x リリース ...
                  |
                  |             (2000/07)   (2000/09)   (2000/11)
                  |
                 \|/
                  +
          [5.0-CURRENT として継続中]</programlisting>

          <para>
            -CURRENT ブランチは
            5.0 とその先へ向けてゆっくりと進化を続けています。
            従来あった 2.2-STABLE ブランチは 2.2.8 のリリースをもって終了しました。
            3-STABLE がそれに代わり、20007 月に
            3.5.1-RELEASE (最後の 3.X リリース)
            がリリースされました。
            20003 月 (3.5 の公開前になりますが) には、
            3-STABLE ブランチはほぼ、4-STABLE ブランチによって置き換えられました。
            4.3-RELEASE は 20014 月にリリースされました。
            4-STABLE は現在 -STABLE ブランチで活発に開発が続けられていますが、
            3-STABLE へのバグの修正 (ほとんどがセキュリティ関連のもの)
            もまだ行なわれています。
            3.X ブランチは 2000 年の夏には公式に開発が終了する予定です。
            現在の <quote>current branch</quote>5.0-CURRENT であり、
            最初の 5.0 系列のリリース予定はまだ決定していません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="release-freq">
          <para>FreeBSD のリリースはいつ作られるのですか?</para>
        </question>

        <answer>
          <para>
            FreeBSD コアチームは原則的に、
            新しい機能やバグフィックスが充分集まり、
            リリースの安定性を損なうことが無いよう、
            さまざまな変更が十分に安定しているという条件を満たしている場合にのみ、
            新しいバージョンの FreeBSD をリリースします。
            たとえこの用心深さが新しい機能が使えるようになることを
            待ち望んでいるユーザを欲求不満にさせるとしても、
            多くのユーザはこのことを FreeBSD
            の最も良い所の一つだと考えています。
          </para>

          <para>リリースの作成は、平均的に言っておよそ 4 ヶ月ごとに行なわれます。</para>

          <para>もう少し刺激が欲しい (あるいは待ち遠しい) 方々向けには、
            毎日バイナリスナップショットが作成されています。
            上記を参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="available-platforms">
          <para>FreeBSD は PC 用だけしかないの?</para>
        </question>

        <answer>
          <para>
            FreeBSD 3.x 以降は x86 アーキテクチャと同様、
            <ulink url="http://www.FreeBSD.org/alpha/alpha.html">DEC Alpha</ulink> でも動作します。
            また、SPARC、PowerPC、IA64 への移植という興味深い話もあります。
          </para>

          <para>
            異なるアーキテクチャのマシンを
            持っていて、ゆっくり待てないという場合には次の URL を
            参照してください。
          </para>

          <para>
            <ulink url="http://www.netbsd.org/">NetBSD</ulink>
            または
            <ulink url="http://www.openbsd.org/">OpenBSD</ulink></para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="responsible">
          <para>FreeBSD の責任者はいったい誰?</para>
        </question>

        <answer>
          <para>
            プロジェクトの全体的な方向性や、
            誰にソースツリーにコードの書き込み権限を与えるか、
            などといった FreeBSD プロジェクトに関する重要な意思決定は、
            9 名からなる<ulink url="../handbook/staff.html#STAFF-CORE">コアチーム
              (core team)</ulink> によってなされます。
            ソースツリーを直接変更できる人はもっと多く、
            200 名以上の<ulink url="../handbook/staff:committers.html">ソースツリー管理者
              (committer)</ulink> がいます。
          </para>

          <para>
            しかし、<link linkend="mailing">メーリングリスト</link>で先行して議論される、
            通常の変更ではないものの議論への参加には、一切制限はありません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="where-get">
          <para>どこから FreeBSD を入手できますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD のすべての主要なリリースは anonymous FTP 経由で
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP サイト</ulink>
            から入手できます。
          </para>

          <para>
            <itemizedlist>
              <listitem>
                <para>
                  現在の 3.X-STABLE リリース、3.5.1-RELEASE は
                  <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.5.1-RELEASE/"
                         >3.5.1-RELEASE のディレクトリ</ulink>にあります。
                </para>
              </listitem>

              <listitem>
                <para>現在の 4-STABLE リリース、4.3-RELEASE は
                  <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.3-RELEASE/"
                         >4.3-RELEASE のディレクトリ</ulink>にあります。</para>
              </listitem>

              <listitem>
                <para>
                  <ulink url="ftp://releng4.FreeBSD.org/pub/FreeBSD/">4.X
                    Snapshot</ulink> は、ほぼ一日に一回作成されています。
                </para>
              </listitem>

            <listitem>
              <para><ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/">5.0 Snapshot</ulink>
                  リリースは <link linkend="current">-CURRENT</link>
                  ブランチ用に一日に一回作成されており、
                  これらは純粋に最先端の開発者およびテスターのために提供されています。
                </para>
              </listitem>

            </itemizedlist>
          </para>

          <para>また、FreeBSD は CD-ROM でも入手でき、次のところで注文できます。</para>

          <address>BSDi
          <street>4041 Pike Lane, Suite F</street>
          <city>Concord</city>, <state>CA</state>
          <postcode>94520</postcode>
          <country>USA</country>

          <phone>Orders:       +1 800 786-9907</phone>
          <phone>Questions:    +1 925 674-0783</phone>
          <fax>FAX:            +1 925 674-0821</fax>
          <otheraddr>email:    <ulink url="mailto:orders@osd.bsdi.com">BSDi Orders address</ulink></otheraddr>
          <otheraddr>WWW:      <ulink url="http://www.osd.bsdi.com/">BSDi Home page</ulink></otheraddr><phone>Orders:  +1 800 786-9907</phone></address>

          <para>オーストラリアでは、次のところに問い合わせてください。</para>

          <address>Advanced Multimedia Distributors
          <street>Factory 1/1 Ovata Drive</street>
          <city>Tullamarine, Melbourne</city>
          <state>Victoria</state>
          <country>Australia</country>
          <phone>Voice:        +61 3 9338 6777</phone>

          <otheraddr>CDROM Support BBS</otheraddr>
          <street>17 Irvine St</street>
          <city>Peppermint Grove</city>, <state>WA</state>
          <postcode>6011</postcode>
          <phone>Voice:        +61 9 385-3793</phone>
          <fax>Fax:            +61 9 385-2360</fax></address>

          <para>イギリスの場合は次のところです。</para>

          <address>The Public Domain &amp; Shareware Library
          <street>Winscombe House, Beacon Rd</street>
          <city>Crowborough</city>
          <state>Sussex. TN6 1UL</state>
          <phone>Voice:        +44 1892 663-298</phone>
          <fax>Fax:            +44 1892 667-473</fax></address>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mailing">
          <para>FreeBSD のメーリングリストについて知りたいのですが?</para>
        </question>

        <answer>

          <para>
            完全な情報が
            <ulink url="../handbook/eresources.html#ERESOURCES-MAIL">FreeBSD
              ハンドブックのメーリングリストの節</ulink>
            にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="y2k">
          <para>FreeBSD の西暦 2000 年問題に関する情報はどこにありますか?</para>
        </question>

        <answer>
          <para>
            完全な情報が
            <ulink url="http://www.FreeBSD.org/y2kbug.html">
              FreeBSD Y2K のページ</ulink>
            にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="newsgroups">
          <para>FreeBSD のニュースグループは何がありますか?</para>
        </question>

        <answer>
          <para>完全な情報が
            <ulink url="../handbook/eresources-news.html">FreeBSD
              ハンドブックのニュースグループの節</ulink>にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="irc">
          <para>FreeBSD の IRC
            (Internet Relay Chat) について何か情報はありますか?</para>
        </question>

        <answer>
          <para>
            あります。
            以下のように、ほとんどの有名な IRC ネットワークには
            FreeBSD のチャットチャンネルがあります。
          </para>

          <itemizedlist>
            <listitem>
              <para>EFNet の Channel <literal>#FreeBSD</literal> は
                FreeBSD 関係のフォーラムですが、
                そこで技術的サポートを期待してはいけません。
                そこにいる人たちはあなたをマニュアルページを読むとか、
                研究をするとかといった苦労から遠ざけようとします。
                まず第一に、これはチャットチャンネルであり、
                そこにあるトピックスは恋人募集、スポーツ、
                核兵器といったようなものであり、
                FreeBSD も同列に扱われています。
                一応注意しましたからね! これは
                <hostid>irc.chat.org</hostid> のサーバー上にあります。
              </para>
            </listitem>

            <listitem>
              <para>EFNet の Channel <emphasis>#FreeBSDhelp</emphasis> は
                FreeBSD ユーザのヘルプ専用チャネルです。
                参加者は <emphasis>#FreeBSD</emphasis>
                チャネルよりも親切に質問に答えてくれます。</para>
             </listitem>

            <listitem>
              <para>DALNET の Channel <literal>#FreeBSD</literal>
                はアメリカでは
                <hostid>irc.dal.net</hostid>、
                ヨーロッパでは
                <hostid>irc.eu.dal.net</hostid>
                にあります。
              </para>
            </listitem>

            <listitem>
              <para>UNDERNET の Channel <literal>#FreeBSD</literal>
                はアメリカでは
                <hostid>us.undernet.org</hostid>、
                ヨーロッパでは <hostid>eu.undernet.org</hostid>
                にあります。
                ここはヘルプチャンネルです。
                ドキュメントを読める準備をしてから利用してください。
              </para>
            </listitem>

            <listitem>
              <para><ulink url="http://www.hybnet.net/">HybNet</ulink> の
                Channel <literal>#FreeBSD</literal>。
                このチャンネルはへルプチャンネル<emphasis>です</emphasis>。
                サーバーのリストは <ulink
                url="http://www.hybnet.net/">HybNet のウェブサイト</ulink>
                にあります。
              </para>
            </listitem>
          </itemizedlist>

          <para>それぞれのチャンネルは別個のもので、
            互いに接続されていません。
            チャットのスタイルも違っていますので、
            自分のチャットのスタイルにあったものを見つけるために一つ一つ試すのもいいでしょう。
            あらゆる種類の IRC トラフィックのため、失礼なことをいう若者たち
            (年輩の方は少数です) のために機嫌を損ねたり、
            手に負えなくなっても気にしてはいけません。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="books">
          <para>FreeBSD の本</para>
        </question>

        <answer>
          <para>
            &a.doc; にコンタクトしてみてください
            (さらに参加すればもっとよいでしょう)。
            このメーリングリストは FreeBSD 関連の文書に関する議論のためのものです。
            FreeBSD に関する質問に対しては、
            &a.questions;
            というメーリングリストがあります。
          </para>

          <para><ulink url="../handbook/index.html">FreeBSD
              ハンドブック</ulink>もあります。
            これは現在作業中で、
            不完全だったり最新情報でないものが含まれていることに注意してください。</para>

          <para>
            FreeBSD のガイド本の決定版は、
            Greg Lehey 氏による <quote>The Complete FreeBSD</quote> です。
            これは BSDi (以前の Walnut Creek CDROM) Books
            から出版されています。
            現在は第三版になっていて、
            インストール、システム管理ガイド、プログラム設定のヘルプ、
            マニュアルページまでの内容が 773
            ページにわたって書かれています。
            この本は (そして現在の FreeBSD リリースは)
            <ulink url="http://www.osd.bsdi.com/">BSDi</ulink><ulink url="http://www.cheapbytes.com/">CheapBytes</ulink>、
            または最寄りの書店で注文することができます。
            ISBN コードは 1-57176-246-9 です
            (これ以外のコードの場合もあるかもしれません)。</para>

          <para>
            また、FreeBSD は Berkeley 4.4BSD-Lite
            ベースなので、多くの 4.4BSD のマニュアルが
            FreeBSD にも応用できます。
            O'Reilly and Associates
            が以下のマニュアルを出版しています。
          </para>

          <para>
            <itemizedlist>

              <listitem>
                <para><xref linkend="biblio-44sysman"/></para>
              </listitem>

              <listitem>
                <para><xref linkend="biblio-44userman"/></para>
              </listitem>

              <listitem>
                <para><xref linkend="biblio-44suppman"/></para>
              </listitem>

              <listitem>
                <para><xref linkend="biblio-44progman"/></para>
              </listitem>

              <listitem>
                <para><xref linkend="biblio-44progsupp"/></para>
              </listitem>

            </itemizedlist>
          </para>

          <para>
            これらの詳細な説明が WWW 経由で
            <ulink url="http://gnn.com/gnn/bus/ora/category/bsd.html">4.4BSD
              books description</ulink>
            から読むことができます。
            販売数が少ないためこれらのマニュアルは入手しにくいかもしれません。
          </para>

          <para>
            4.4BSD のカーネル構成についてより徹底的に知りたいのなら、
            <xref linkend="biblio-44kernel"/> なら間違いないでしょう。</para>

          <para>システム管理についての良書が <xref
            linkend="biblio-nemeth3rd"/> です。</para>

          <note><para>初版ではなく、紫色のカバーの第三版であるか確認してくだ
            さい。</para></note>

          <para>
            この本は TCP/IP だけでなく DNS、NFS、SLIP/PPP、sendmail、
            INN/NNTP、印刷などの基礎を扱っています。
            高価ですが、買う価値はあります。
            第三版では、Solaris, HP/UX, FreeBSD および Linux を取り扱っています。
          </para>
          <!-- hrs/2000/03/09 &#xx; should not be used -->
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="access-pr">
          <para>障害報告 (PR; Problem Report)
            データベースにアクセスする方法は?</para>
        </question>

        <answer>
          <para>
            ユーザからの変更要求がまとめられている
            Problem Report データベースは、
            障害報告の web ベースのインタフェースを通して、
            <ulink url="http://www.FreeBSD.org/ja/send-pr.html">提出</ulink><ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">問い合わせ</ulink>を行なうことができます。
            また、&man.send-pr.1; コマンドを使用して、
            電子メール経由で障害報告や変更要求を提出することもできます。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="doc-formats">
          <para>プレインテキスト (ASCII) 版 や
            PostScript 版の FreeBSD 文書はないのでしょうか?</para>
        </question>

        <answer>
          <para>はい、もちろんあります。
            数多くの異なるフォーマット、圧縮形式の文書が FreeBSD FTP サイトの
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink>
            というディレクトリから入手可能です。</para>

          <para>文書は、次のようなさまざまな観点から分類されています。</para>

          <itemizedlist>
            <listitem>
              <para><literal>faq</literal><literal>handbook</literal>
                といった文書名による分類。</para>
            </listitem>

            <listitem>
              <para>文書の言語とエンコーディングによる分類。これは
                FreeBSD システムの <filename>/usr/share/locale</filename>
                にある locale 名に基づいています。
                現在利用可能な言語、エンコーディングは以下のとおりです。</para>

              <informaltable frame="none">
                <tgroup cols="2">
                  <thead>
                    <row>
                      <entry>名前</entry>

                      <entry>意味</entry>
                    </row>
                  </thead>

                  <tbody>
                    <row>
                      <entry><literal>en_US.ISO8859-1</literal></entry>

                      <entry>英語 (米国)</entry>
                    </row>

                    <row>
                      <entry><literal>de_DE.ISO_8859-1</literal></entry>

                      <entry>ドイツ語</entry>
                     </row>

                    <row>
                      <entry><literal>es_ES.ISO8859-1</literal></entry>

                      <entry>スペイン語</entry>
                    </row>

                    <row>
                      <entry><literal>fr_FR.ISO8859-1</literal></entry>

                      <entry>フランス語</entry>
                    </row>

                    <row>
                      <entry><literal>ja_JP.eucJP</literal></entry>

                      <entry>日本語 (EUC エンコーディング)</entry>
                    </row>

                    <row>
                      <entry><literal>ru_RU.KOI8-R</literal></entry>

                      <entry>ロシア語 (KOI8-R エンコーディング)</entry>
                    </row>

                    <row>
                      <entry><literal>zh_TW.Big5</literal></entry>

                      <entry>中国語 (Big5 エンコーディング)</entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>

              <note>
                <para>言語によっては準備されていない文書も存在します。</para>
              </note>
            </listitem>

            <listitem>
              <para>文書の形式による分類。
                文書は数多くの異なる出力形式を用意し、
                可能な限り柔軟な対応ができるようにしています。
                現在、利用可能な文書形式は以下のとおりです。</para>

              <informaltable frame="none">
                <tgroup cols="2">
                  <thead>
                    <row>
                      <entry>文書形式</entry>

                      <entry>意味</entry>
                    </row>
                  </thead>

                  <tbody>
                    <row>
                      <entry><literal>html-split</literal></entry>

                      <entry>サイズの小さい、
                        リンクされた複数の HTML ファイル</entry>
                    </row>

                    <row>
                      <entry><literal>html</literal></entry>

                      <entry>文書全体を含んだ、単一の大きなファイル</entry>
                    </row>

                    <row>
                      <entry><literal>pdb</literal></entry>

                      <entry><ulink url="http://www.iSilo.com/">iSilo</ulink> で利用可能な
                        Palm Pilot データベース形式
                      </entry>
                    </row>

                    <row>
                      <entry><literal>pdf</literal></entry>

                      <entry>Adobe 社の PDF (Portable Document Format) 形式</entry>
                    </row>

                    <row>
                      <entry><literal>ps</literal></entry>

                      <entry>Postscript 形式</entry>
                    </row>

                    <row>
                      <entry><literal>rtf</literal></entry>

                      <entry>Microsoft 社のリッチテキスト形式<footnote>
                          <para>この形式を Word で読み込んだ場合、
                            ページ番号は自動的に更新されません。
                            ページ番号を更新するには文書を読み込んでから
                            <keycap>CTRL</keycap>+<keycap>A</keycap><keycap>CTRL</keycap>+<keycap>END</keycap><keycap>F9</keycap> を押してください。</para>
                        </footnote>
                      </entry>
                    </row>

                    <row>
                      <entry><literal>txt</literal></entry>

                      <entry>プレインテキスト形式</entry>
                    </row>
                  </tbody>
                </tgroup>
              </informaltable>
            </listitem>

            <listitem>
              <para>圧縮と package 形式による分類。
                現在利用されているのは次の 3 種類です。</para>

              <orderedlist>
                <listitem>
                  <para><literal>html-split</literal> 形式の場合、
                    ファイルはまず、&man.tar.1; を使ってまとめられ、
                    まとめられた <filename>.tar</filename>
                    ファイルは次に解説する方式で圧縮されます。</para>
                </listitem>

                <listitem>
                  <para>その他の形式の場合、ファイルは
                    <filename>book.<replaceable>format</replaceable></filename>
                    (たとえば <filename>book.pdb</filename><filename>book.html</filename> など)
                    という単一のファイルです。</para>

                  <para>上にあげたファイルは
                    3 種類の方式のいずれかで圧縮されます。</para>

                  <informaltable frame="none">
                    <tgroup cols="2">
                      <thead>
                        <row>
                          <entry>方式</entry>

                          <entry>説明</entry>
                        </row>
                      </thead>

                      <tbody>
                        <row>
                          <entry><literal>zip</literal></entry>

                          <entry>Zip 形式。
                            FreeBSD で圧縮を元に戻すには、まず
                            <filename>archivers/unzip</filename> の port
                            をインストールする必要があります。</entry>
                        </row>

                        <row>
                          <entry><literal>gz</literal></entry>

                          <entry>GNU Zip 形式。圧縮を元に戻すには、
                            FreeBSD に含まれる &man.gunzip.1; を使います。</entry>
                        </row>

                        <row>
                          <entry><literal>bz2</literal></entry>

                          <entry>BZip2 形式。
                            他の形式に比べて普及していませんが、
                            一般的にファイルサイズが小さくなります。
                            圧縮を元に戻すには、
                            <filename>archivers/bzip2</filename> port
                            をインストールしてください。</entry>
                        </row>
                      </tbody>
                    </tgroup>
                  </informaltable>

                  <para>Postscript 版のハンドブックが BZip2
                    形式で圧縮されている場合、ファイル名は
                    <filename>handbook/</filename> ディレクトリの中の
                    <filename>book.sgml.bz2</filename> になります。</para>
                </listitem>

                <listitem>
                  <para>さまざまな形式に整形された文書は、以下に述べるように
                    FreeBSD の package としても提供されています。</para>
                </listitem>
              </orderedlist>
            </listitem>
          </itemizedlist>

          <para>ダウンロードする文書と圧縮形式を選択したら、
            文書を FreeBSD <emphasis>package</emphasis>
            としてダウンロードするかどうか決めなければなりません。</para>

          <para>package としてダウンロードしてインストールする場合には、
            文書を &man.pkg.add.1; や &man.pkg.delete.1;
            といった、普通の FreeBSD package
            管理システムを用いた管理が可能であるという利点があります。</para>

          <para>文書の package をダウンロードしてインストールすることに決めたら、
            まずはダウンロードするファイル名を知る必要があります。
            文書の package は、<filename>packages</filename>
            というディレクトリに置かれています。
            そしてそれぞれの package ファイルは、
            <filename><replaceable>文書名</replaceable>.<replaceable>言語</replaceable>.<replaceable>エンコーディング</replaceable>.<replaceable>形式</replaceable>.tgz</filename>
            というような名前になっています。</para>

          <para>たとえば、FAQ の英語版で PDF 形式のものは、
            <filename>faq.en_US.ISO8859-1.pdf.tgz</filename>
            というファイル名です。</para>

          <para>ファイル名がわかったら、
            次のようなコマンドで英語版の PDF 形式 FAQ の package
            をインストールすることができます。</para>

          <screen>&prompt.root; <userinput>pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz</userinput></screen>

          <para>インストールの終了後は
            &man.pkg.info.1; を使い、
            ファイルがどこにインストールされたかを調べることができます。</para>

          <screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO8859-1.pdf</userinput>
Information for faq.en_US.ISO8859-1.pdf:

Packing list:
        Package name: faq.en_US.ISO8859-1.pdf
        CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
File: book.pdf
        CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)</screen>

          <para>ご覧になるとわかるとおり、<filename>book.pdf</filename><filename>/usr/share/doc/en_US.ISO8859-1/books/faq</filename>
            にインストールされます。</para>

          <para>package を利用しない場合は、
            自分で圧縮されたファイルをダウンロードして元に戻し、
            適切な場所にそれをコピーする必要があります。
          </para>

          <para>たとえば、分割された HTML 版の FAQ で、
            &man.gzip.1; で圧縮されているものは
            <filename>en_US.ISO8859-1/books/faq/book.html-split.tar.gz</filename>
            というファイルです。
            これをダウンロードして圧縮を元に戻すには、次のようにする必要があるでしょう。</para>

          <screen>&prompt.root; <userinput>fetch ftp://ftp.freebsd.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz</userinput>
&prompt.root; <userinput>gzip -d book.html-split.tar.gz</userinput>
&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>

          <para>こうすると、複数の <filename>.html</filename>
            ファイルが作成されます。 中心となっているのは
            <filename>index.html</filename> という名前のファイルで、
            目次や前書き、文書の他の部分へのリンクが含まれています。
            これらのファイルは、必要に応じて他の場所にコピーしても構いません。</para>
         </answer>
      </qandaentry>

      <qandaentry>
        <question id="become-web-mirror">
          <para>FreeBSD のウェブサイトのミラーサイトになりたいです!</para>
        </question>

        <answer>
          <para>承知しました!
            ウェブページをミラーするにはいくつかの手段があります。</para>

          <para>
            <itemizedlist>
              <listitem>
                <para><application>CVSup</application> を使います。
                  <application>CVSup</application> を使って
                  <application>CVSup</application> サーバに接続することで、
                  整形されたファイルを取ってくることができます。</para>

              <para>ウェブページを取得する場合は、
                <filename>/usr/share/examples/cvsup/www-supfile</filename>
                にある supfile の例を参考にしてください。</para>
              </listitem>

              <listitem>
                <para>
                  FTP を使ってミラーリングします。
                  あなたの好きな FTP ミラーリングツールを使って、
                  FTP サーバに置いてある web
                  サイトのコピーをダウンロードすることができます。
                  タウンロードは単純に ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-CURRENT/www
                  から始めてください。</para>
              </listitem>
            </itemizedlist>
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="translation">
          <para>この文書を他の言語に翻訳したいのですが?</para>
        </question>

        <answer>
          <para>
            報酬は支払えませんが、
            文書の翻訳を提出してくださる方には、
            フリーの CD、T シャツの手配や、
            ハンドブックにある貢献者一覧への登録を行ないたいと思います。
            翻訳作業をはじめる前に、
            &a.doc;
            へ連絡するようにお願いします。
            翻訳作業を手伝うという人が現われるかも知れませんし。
            既に翻訳チームがあって、あなたの参加を歓迎してくれるかも知れません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="other-info-sources">
          <para>その他の情報</para>
        </question>

        <answer>
          <para>
            以下のニュースグループには FreeBSD
            ユーザに直接関係のある議論が行われてます。
          </para>

          <itemizedlist>
            <listitem>
              <para><ulink url="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink> (moderated)</para>
            </listitem>

            <listitem>
              <para><ulink url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para>
            </listitem>

            <listitem>
              <para><ulink url="news:comp.unix.bsd.misc">comp.unix.bsd.misc</ulink></para>
            </listitem>

          </itemizedlist>

          <para>Web 上のリソース:</para>

          <itemizedlist>
            <listitem>
              <para><ulink url="http://www.FreeBSD.org/">FreeBSD のホームページ</ulink></para>
            </listitem>

            <listitem>
              <para><anchor id="pao"/>
                ラップトップ PC を持っている方は、
                迷うことなく日本の<ulink url="http://www.jp.FreeBSD.org/PAO/">細川 達己氏の
                  Mobile Computing のページ</ulink> を見ましょう。
              </para>
            </listitem>

            <listitem>
              <para><anchor id="smp"/>
                SMP (Symmetric MultiProcessing) に関する情報は、
                <ulink url="http://people.FreeBSD.org/~fsmp/SMP/SMP.html">SMP
                  サポートページ</ulink>をご覧ください。
              </para>
            </listitem>

            <listitem>
              <para><anchor id="multimedia"/>
                FreeBSD のマルチメディアアプリケーションに関する情報は、
                <ulink url="http://people.FreeBSD.org/~faulkner/multimedia/mm.html">マルチメディア</ulink>のページをご覧ください。
                特に
                <ulink url="http://people.FreeBSD.org/~ahasty/Bt848.html">Bt848</ulink>
                ビデオキャプチャチップに興味のある方は、
                リンクをたどってみてください。
              </para>
            </listitem>
          </itemizedlist>

          <para>FreeBSD ハンドブックには、
            実に完成された<ulink url="../handbook/bibliography.html">参考図書</ulink>の一覧があり、
            買うべき本をさがしている方は読む価値があります。
          </para>
        </answer>
      </qandaentry>
    </qandaset>
  </preface>

  <chapter id="install">
    <title>インストール</title>

    <para>
      <emphasis>訳:
        &a.iwasaki;、
        &a.jp.mrt;、
        1997118</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="floppy-download">
          <para>FreeBSD を入手するには、どのファイルをダウンロードすれば良いのでしょうか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 3.1-RELEASE 以前では、
            インストールの際に必要なのは
            <filename>floppies/boot.flp</filename> と名前のついた
            一つのフロッピーディスクイメージだけでした。
            しかし FreeBSD 3.1-RELEASE 以降、
            幅広い種類のハードウェアサポートが基本システムに追加され、
            そのサポートが必要とする容量を補うため、
            3.X と 4.X の系列では新たに、
            <filename>floppies/kernel.flp</filename>
            および
            <filename>floppies/mfsroot.flp</filename>
            という、二つのフロッピーディスクイメージを使うようになりました。
            これらのイメージをフロッピーディスクに書き込むには、
            <command>fdimage</command> や
            &man.dd.1; といったツールが必要となります。
          </para>

          <para>
            (DOS ファイルシステムからのインストールなどで)
            あなた自身が手動で配布ファイルをダウンロードする場合には、
            以下の配布ファイルをダウンロードすることをおすすめします。
          </para>

          <itemizedlist>
            <listitem>
              <para><filename>bin/</filename></para>
            </listitem>

            <listitem>
              <para><filename>manpages/</filename></para>
            </listitem>

            <listitem>
              <para><filename>compat*/</filename></para>
            </listitem>

            <listitem>
              <para><filename>doc/</filename></para>
            </listitem>

            <listitem>
              <para><filename>src/ssys.*</filename></para>
            </listitem>
          </itemizedlist>

          <para>
            この手順の完全な説明と、一般的なインストール時の問題については
            <ulink url="../handbook/install.html">FreeBSD
              ハンドブックのインストールの節</ulink>
            を参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="floppy-image-too-large">
          <para>ブートフロッピーイメージが一枚のフロッピーディスクに納まらないみたい!</para>
        </question>

        <answer>
          <para>
            3.5 インチ (1.44MB) のフロッピーディスクには、
            1474560 バイトのデータを格納できます。
            ブートイメージはちょうど 1474560 バイトの大きさです。
          </para>

          <para>ブートフロッピーディスクを準備する際のよくある間違いには、
            以下のものがあります。</para>

          <itemizedlist>
            <listitem>
              <para><acronym>FTP</acronym>
                によってフロッピーイメージをダウンロードする際に、
                <emphasis>バイナリ (binary)</emphasis> モードにしていなかった。
              </para>

              <para>FTP クライアントの中には、
                転送モードのデフォルトを<emphasis>アスキー (ascii)</emphasis> モードにして、
                クライアント側システムの慣習にあうよう、
                すべての行末の文字を変更するものがあります。
                この場合は常に、ブートイメージが壊れたものになります。
                ダウンロードしたブートイメージのサイズをチェックしてください。
                サーバ上のものと<emphasis>正確に</emphasis>一致しなければ、
                ダウンロードの処理を疑いましょう。
              </para>

              <para>これを回避するには、
                サーバに接続してイメージのダウンロードを開始する前に
                FTP のコマンドプロンプトで
                <command>binary</command> とタイプします。
              </para>
            </listitem>

            <listitem>
              <para>ブートイメージを
                DOS の <command>copy</command> コマンド
                (または GUI の同等のツール) でフロッピーディスクへ転送した。
              </para>

              <para><command>copy</command>
                のようなプログラムは、
                直接起動するように作成されたブートイメージをうまく処理できません。
                イメージにはフロッピーディスクの完全な中身がトラック単位で格納されており、
                フロッピーディスク上に通常のファイルとして
                格納されるように想定されているわけではありません。
                <ulink url="../handbook/install.html">FreeBSD
                  のインストール</ulink>に記述されているように、
                低レベルのツール (たとえば
                <command>fdimage</command><command>rawrite</command>) を使用して
                <quote>そのままの (raw)</quote> の状態でフロッピーディスクに
                転送する必要があります。
              </para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="install-instructions-location">
          <para>FreeBSD のインストールについての説明書はどこにありますか?</para>
        </question>

        <answer>
          <para>
            インストールの説明書は<ulink url="../handbook/install.html">FreeBSD
              ハンドブックのインストールの章</ulink>にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="need-to-run">
          <para>FreeBSD を動作させるには何が必要ですか?</para>
        </question>

        <answer>
          <para>
            386 以上の PC、5MB 以上の RAM、
            そして最低 60MB のハードディスク容量が必要となります。
            ローエンドの MDA カードでも動作しますが、
            X11R6 を使うには VGA かそれ以上のビデオカードが必要となります。
          </para>

          <para>
            <xref linkend="hardware" remap="ハードウェアコンパチビリティ"/>
              もご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="four-meg-ram-install">
          <para>4MB しかメモリがないのですが、インストールできますか?</para>
        </question>

        <answer>
          <para>
            4MB のシステムにインストールできた最後の FreeBSD は
            FreeBSD 2.1.7 でした。2.2 を含むより新しいバージョンの
            FreeBSD は新規のインストールに最低 5MB は必要になります。
          </para>

          <para>
            ただし、インストールプログラムが 4MB では動作しないだけで、
            3.0 を含む FreeBSD のすべてのバージョンは 4MB の RAM
            で<emphasis>動作可能</emphasis>です。
            インストールする時だけさらに 4MB 追加しておき、
            システムがセットアップされて動作するようになった後、
            また 4MB を取り出して元に戻すこともできます。
            あるいは 4MB より多くメモリを搭載したシステムにディスクを持っていき、
            そのマシンでインストールした後にディスクを戻すこともできます。
          </para>

          <para>
            また、FreeBSD 2.1.7 であっても、4MB
            ではインストールできない場合があります。
            正確には、640KB のベースメモリ + 3MB の拡張メモリでは、
            インストールはできません。もしマシンのマザーボードが
            640KB から 1MB
            の領域で「失われた」メモリを再マップできる場合は、
            FreeBSD 2.1.7 をインストールできるかもしれません。
          </para>

          <para>
            BIOS のセットアップ画面で、<quote>remap</quote>
            のオプションを探して有効 (enable) にしてみてください。
            また、ROM shadowing
            を無効 (disable) にする必要もあります。
          </para>

          <para>
            簡単なやり方としては、インストールする時だけあと
            4MB 追加しておく方法があります。
            必要なオプションだけを選択してカスタムカーネルを構築し、
            また 4MB を取り出してもとに戻せばいいのです。
          </para>

          <para>
            また、2.0.5 をインストールして、
            それから 2.1.7 のインストーラの
            <quote>upgrade</quote>
            オプションでシステムを 2.1.7 へアップグレード
            するというやり方もあります。
          </para>

          <para>
            インストールしたあとでカスタムカーネルの構築をした場合には、
            4MB でも動作します。
            2MB で起動に成功した人もいます (でもそのシステムは、
            ほとんど使いものになりませんでした :-))。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="custom-boot-floppy">
          <para>自分用のインストールフロッピーを作るには?</para>
        </question>

        <answer>
          <para>
            現在はカスタムインストールフロッピーディスク「だけ」を作る方法はありません。
            カスタムインストールフロッピーディスクイメージを含む、
            release 環境全体を新たに作る必要があります。
          </para>

          <para>
            カスタムの release 環境をつくるには、
            <link linkend="custrel">ここの指示</link>にしたがってください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="multiboot">
          <para>自分の PC に複数のオペレーティングシステムを入れるには?</para>
        </question>

        <answer>
          <para>
            <ulink url="http://www.FreeBSD.org/tutorials/multi-os/">multi-OS
              のページ</ulink>をご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="windows-coexist">
          <para>同じマシンで Windows 95/98 と共存できますか?</para>
        </question>

        <answer>
          <para>
            まず Windows 95/98 をインストールしてから、そのあとで FreeBSD
            をインストールしてください。FreeBSD のブートマネージャが Win95
            と FreeBSD のブート管理をしてくれるようになります。
            Windows 95/98 を後にインストールした場合はひどいことに、
            問い合わせることもなくブートマネージャを上書きしてしまいます。
            そうなってしまった場合は次の節をご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="win95-damaged-boot-manager">
          <para>Windows 95/98 がブートマネージャを潰しちゃった! どうやって戻すの?</para>
        </question>

        <answer>
          <para>
            ブートマネージャの再インストールの方法として、
            FreeBSD では以下に示す三通りの方法が用意されています。</para>

          <itemizedlist>
            <listitem>
              <para>DOS を起動し、FreeBSD の配布物の中にある
                <filename>tools/</filename> ディレクトリへ移動し、
                <filename>bootinst.exe</filename> を探してください。
                そして次のように実行します。
                </para>

              <screen><prompt>...\TOOLS&gt;</prompt> <userinput>bootinst.exe boot.bin</userinput></screen>

              <para>
                こうすることで、
                ブートマネージャが再インストールされます。
              </para>
            </listitem>

            <listitem>
              <para>
                FreeBSD のブートフロッピーディスクから起動し、
                「カスタム」インストールメニューを選択し、
                続いて「パーティション」を選択します。
                ブートマネージャがインストールされていたドライブ
                (多分最初のもの) を選択し、
                パーティションエディタにたどり着いたら、
                (何も変更せず) そのまま (W)rite を指定します。
                確認のメッセージが出ますので「はい(Y)」と答え、
                ブートマネージャ選択の画面で確実に <quote>Boot Manager</quote>
                を選択します。
                これでブートマネージャがディスクに再び書き込まれます。
                インストールメニューから抜けて再起動すると、
                ハードディスクは元通りになります。
              </para>
            </listitem>

            <listitem>
              <para>FreeBSD 起動フロッピー (もしくは CD-ROM) から起動し、
                <quote>Fixit</quote> メニューを選択します。
                Fixit フロッピーか CD-ROM #2 (<quote>live</quote>
                ファイルシステムオプション) の好きな方を選択して
                fixit シェルに入ります。
                そして、次のコマンドを実行してください。</para>

              <screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>起動デバイス</replaceable></userinput></screen>

              <para><replaceable>起動デバイス</replaceable> の部分は、たとえば
                <devicename>ad0</devicename> (一番目の IDE ディスク)、
                <devicename>ad4</devicename> (セカンダリ IDE コントローラの一番目の IDE ディスク)、
                <devicename>da0</devicename> (一番目の SCSI ディスク)
                などといった、実際の起動デバイスを表しています。</para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="boot-on-thinkpad">
          <para>
            IBM Thinkpad の A、T、X シリーズのいずれかを持っています。
            FreeBSD をインストールしたら起動しなくなってしまいました。
            どうすればいいですか?
          </para>
        </question>

        <answer>
        <para>
          これらのマシンに使われている初期のリビジョンの IBM BIOS
          にはバグがあり、FreeBSD のパーティションをディスクサスペンド用の
          FAT 領域だと誤認します。 そのため、BIOS が FreeBSD のパーティションを
          検出したところでシステムがハング (停止) してしまいます。
        </para>

        <para>
          IBM <footnote><para>これは Keith Frechette
          <email>kfrechet@us.ibm.com</email> からのメールによります。</para></footnote>
          によれば、以下のモデル/BIOS リリース番号には修正が含まれています。
        </para>

          <informaltable frame="none">
            <tgroup cols="2">
              <thead>
                <row>
                  <entry>モデル</entry>
                  <entry>BIOS リビジョン番号</entry>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry>T20</entry>
                  <entry>IYET49WW 以降</entry>
                </row>

                <row>
                  <entry>T21</entry>
                  <entry>KZET22WW 以降</entry>
                </row>

                <row>
                  <entry>A20p</entry>
                  <entry>IVET62WW 以降</entry>
                </row>

                <row>
                  <entry>A20m</entry>
                  <entry>IWET54WW 以降</entry>
                </row>

                <row>
                  <entry>A21p</entry>
                  <entry>KYET27WW 以降</entry>
                </row>

                <row>
                  <entry>A21m</entry>
                  <entry>KXET24WW 以降</entry>
                </row>

                <row>
                  <entry>A21e</entry>
                  <entry>KUET30WW</entry>
                </row>
              </tbody>
            </tgroup>
          </informaltable>

        <para>それより新しいリビジョンの BIOS にまたバグが入り込んだか
          もしれないという報告がありました。Jacques Vidrine は
          <email>mobile@freebsd.org</email> メーリングリストにあてた <ulink
          url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=200565+208320+/usr/local/www/db/text/2001/freebsd-mobile/20010429.freebsd-mobile">メッセージ</ulink>
          で、これ以降の IBM の laptop で FreeBSD が正常に起動しない
          場合におそらくうまく行く、BIOS をアップグレードまたは
          ダウングレードできる手順を説明しています。</para>

        <para>
          もし問題のある BIOS を使っていてアップグレードが選べない場合、
          FreeBSD をインストールしてから FreeBSD が使っているパーティション ID を変更し、
          変更されたパーティション ID を正しく扱うことのできる
          新しい起動ブロックをインストールすることで解決することができます。
        </para>

        <para>
          それにはまず、
          セルフテスト画面を通過する状態にまでマシンを回復させる必要があります。
          そのためには、マシンがプライマリディスクから FreeBSD
          パーティションを見つけないようにして起動しなければなりません。
          たとえば、一度ハードディスクを外してしまって、そのディスクを古い ThinkPad
          (ThinkPad 600 など) やデスクトップ PC に適切な変換ケーブルで接続します。
          その後 FreeBSD のパーティションを削除し、
          ハードディスクを元の ThinkPad に戻します。
          こうすることで ThinkPad は起動可能な状態に戻るはずです。
        </para>

        <para>
          マシンがちゃんと動くようになったら、
          以下の復旧手順に従って FreeBSD をインストールすることができます。
        </para>

          <procedure>
            <step>
              <para>
                <ulink url="http://people.freebsd.org/~bmah/ThinkPad/">http://people.freebsd.org/~bmah/ThinkPad/</ulink>
                から
                <filename>boot1</filename><filename>boot2</filename>
                をダウンロードします。 これらのファイルは、
                あとで必要になった時、取り出せる場所に置いておきます。
              </para>
            </step>

            <step>
              <para>ThinkPad に普通に FreeBSD をインストールします。
                ただし、<literal>Dangerously Dedicated</literal>
                モードを使っては<emphasis>いけません</emphasis>。
                また、インストールが終わっても再起動しては<emphasis>いけません</emphasis></para>
            </step>

            <step>
              <para>
                <quote>緊急ホログラフィックシェル (Emergency Holographic Shell)</quote>
                (<keycombo><keycap>ALT</keycap><keycap>F4</keycap></keycombo>)
                に切り替えるか、<quote>fixit</quote> シェルを起動します。
              </para>
            </step>

            <step>
              <para>
                &man.fdisk.8; を使って FreeBSD のパーティション ID を
                <literal>165</literal> から <literal>166</literal> に
                変更します (これは OpenBSD で使われているものです)。
              </para>
            </step>

            <step>
              <para>
                <filename>boot1</filename><filename>boot2</filename>
                のファイルをローカルファイルシステムに持って来ます。
              </para>
            </step>

            <step>
              <para>
                &man.disklabel.8; を使って
                <filename>boot1</filename><filename>boot2</filename> を
                FreeBSD のスライスに書き込みます。
              </para>

              <screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>

              <para>
                <replaceable>n</replaceable> は、
                あなたが FreeBSD をインストールしたスライスの番号です。
              </para>
            </step>

            <step>
              <para>
                再起動します。起動プロンプトは <literal>OpenBSD</literal>
                と示しますが、実際には、それで FreeBSD が起動します。
              </para>
            </step>
         </procedure>

          <para>
            この方法で FreeBSD と OpenBSD
            をデュアルブートする方法は、読者への練習問題としましょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="install-bad-blocks">
          <para>不良ブロックのあるディスクにインストールできますか?</para>
        </question>

        <answer>
          <para>FreeBSD 3.0 以前のシステムでは、
            不良ブロックを自動的に再マッピングする
            <command>bad144</command> というユーティリティが含まれていましたが、
            現在の IDE ドライブはドライブ自身がこの機能を備えているため、
            <command>bad144</command> は FreeBSD ソースツリーから削除されました。
            FreeBSD 3.0 かそれ以降をインストールしたいと思っているなら、
            比較的新しいディスクドライブを購入することを強くおすすめします。
            新しいドライブを購入する気がなければ、FreeBSD 2.x を利用するべきです。</para>

          <para>現在の IDE ドライブで不良ブロックによるエラーが発生した場合、
            まもなくドライブが故障する可能性があります
            (それはそのドライブ内蔵の再マッピング機能では
            不良ブロックが修正できなくなったということであり、
            ディスクがひどく壊れていることを意味します)。
            新しいハードディスクドライブに交換しましょう。</para>

          <para>不良ブロックのある SCSI ドライブの場合は、
            <link linkend="awre">この回答</link>を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="boot-floppy-strangeness">
          <para>インストーラから起動したら変なことになりました!</para>
        </question>

        <answer>
          <para>
            インストーラから起動しようとしたときに、マシンが固まってし
            まうとか自然と再起動してしまうといった現象であれば、
            次の三つの項目を確認してください。
          </para>

          <orderedlist>
            <listitem>
              <para>新品の、フォーマットしたての、
                エラーのないフロッピーディスクを使っていますか?
                (三年間もベッドの下に放置されていた雑誌の付録みたいなやつではなくて、
                買ってきたばかりの新品を使ってください)
              </para>
            </listitem>

            <listitem>
              <para>フロッピーイメージをバイナリモードでダウンロードしましたか?
                (困った顔をしないでください。私たちの中で一番優秀な人でさえ、
                少なくとも一回はバイナリファイルを
                ASCII モードで思いがけずダウンロードしたことがあるのです!)
              </para>
            </listitem>

            <listitem>
              <para>Windows95 あるいは Windows98 を使用しているなら、
                ありのままの本物の DOS で
                <command>fdimage</command><command>rawrite</command> を実行しましたか?
                これらの OS はディスク作成プログラムのような、
                ハードウェアに直接書き込みを行なうプログラムに干渉する可能性があります。
                GUI の中の DOS シェル内部で動作している場合でも、
                この問題は発生します。</para>
            </listitem>
          </orderedlist>

          <para>また、Netscape
            でブートイメージをダウンロードする場合も問題があることが報告されていますので、
            できれば別の FTP クライアントを使うのがよいでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="no-install-cdrom">
          <para>ATAPI CD-ROM から起動したのですが、
            インストールプログラムは CD-ROM が見つかりませんと言ってきます。
            CD-ROM はどこに行ってしまったのでしょうか?</para>
        </question>

        <answer>
          <para>この問題は通常、CD-ROM ドライブの設定ミスによって発生します。
            大部分の PC の CD-ROM ドライブは、
            セカンダリ側の IDE
            コントローラのスレーブデバイスとして接続され、
            マスタデバイスがない状態で出荷されています。
            この接続方法は ATAPI 規格違反なので、
            Windows は規格どおりに動いたり、動かなかったりしますが、
            BIOS は起動時に規格違反を無視します。
            そのため BIOS は起動時に CD-ROM を見つけられますが、
            FreeBSD は CD-ROM を見つけられず、
            インストールを完了できないのです。</para>

          <para>CD-ROM が 接続されている
            IDE コントローラのマスタデバイスとなるように設定するか、
            もしくはマスタ、
            スレーブの両方にデバイスが接続されているようにシステムを再構成してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cannot-install-tape">
          <para>あれれ? テープからインストールできません!</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.1.7R をテープからインストールする場合、
            tar ブロックサイズを 10 (5120 バイト)
            にしたテープを作る必要があります。
            デフォルト の tar ブロックサイズは 20 (10240 バイト) で、
            このデフォルトサイズで作られたテープでは FreeBSD 2.1.7R
            をインストールすることはできません。
            もしこうしたテープを使うと、
            レコードサイズが大きすぎるというエラーが起きることになります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="parallel-connect">
          <para>PLIP 経由で二つ FreeBSD box を接続したいのですが</para>
        </question>

        <answer>
          <para>Laplink パラレルケーブルを用意して、
            両方の PC のカーネルに <devicename>lpt</devicename>
            ドライバが組み込まれていることを確認してください。
          </para>

          <screen>&prompt.user; <userinput>dmesg | grep lp</userinput>
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface</screen>

          <para>
            パラレルインタフェースに Laplink
            パラレルケーブルを接続します。
          </para>

          <para>
            <username>root</username>
            になって、両方で <devicename>lp0</devicename>
            のネットワークインタフェースパラメータを設定します。
            たとえば、ホスト <hostid>max</hostid><hostid>moritz</hostid> を接続したい場合、
          </para>

          <programlisting>                max &lt;-----&gt; moritz
IP Address      10.0.0.1        10.0.0.2</programlisting>

          <para>max 側で次のようにして、</para>

          <screen>&prompt.root; <userinput>ifconfig lp0 10.0.0.1 10.0.0.2</userinput></screen>

          <para>moritz 側で同様に次のようにします。</para>

          <screen>&prompt.root; <userinput>ifconfig lp0 10.0.0.2 10.0.0.1</userinput></screen>
          <para>以上です!
            &man.lp.4; と &man.lpt.4;
            のマニュアルページも参照してください。
          </para>

          <para>また、
            <filename>/etc/hosts</filename> にホストの追加もしましょう。
          </para>

          <programlisting>127.0.0.1               localhost.my.domain localhost
10.0.0.1                max.my.domain max
10.0.0.2                moritz.my.domain moritz</programlisting>

          <para>
            動作確認は次のようにします。
          </para>

          <para><hostid>max</hostid> 側:</para>

          <screen>&prompt.user; <userinput>ifconfig lp0</userinput>
lp0: flags=8851&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
        inet 10.0.0.1 --&gt; 10.0.0.2 netmask 0xff000000</screen>

          <screen>&prompt.user; <userinput>netstat -r</userinput>
Routing tables

Internet:
Destination        Gateway            Flags     Refs     Use     Netif Expire
moritz              max              UH          4   127592       lp0</screen>

          <screen>&prompt.user; <userinput>ping -c 4 moritz</userinput>
PING moritz (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms

--- moritz ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="install-PLIP">
          <para>ラップトップ PC に PLIP 経由でインストールできますか?</para>
        </question>

        <answer>
          <para>
            次のようにして、二つのコンピュータを Laplink
            パラレルケーブルで接続してください。
          </para>

          <table>
            <title>ネットワーク接続用のパラレルケーブルの結線</title>

            <tgroup cols="5">
              <thead>
                <row>
                  <entry>A-name</entry>

                  <entry>A 側</entry>

                  <entry>B 側</entry>

                  <entry>説明</entry>

                  <entry>ポート / ビット</entry>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry><literallayout>DATA0
-ERROR</literallayout></entry>

                  <entry><literallayout>2
15</literallayout></entry>

                  <entry><literallayout>15
2</literallayout></entry>

                  <entry>Data</entry>

                  <entry><literallayout>0/0x01
1/0x08</literallayout></entry>
                </row>

                <row>
                  <entry><literallayout>DATA1
+SLCT</literallayout></entry>

                  <entry><literallayout>3
13</literallayout></entry>

                  <entry><literallayout>13
3</literallayout></entry>

                  <entry>Data</entry>

                  <entry><literallayout>0/0x02
1/0x10</literallayout></entry>
                </row>

                <row>
                  <entry><literallayout>DATA2
+PE</literallayout></entry>

                  <entry><literallayout>4
12</literallayout></entry>

                  <entry><literallayout>12
4</literallayout></entry>

                  <entry>Data</entry>

                  <entry><literallayout>0/0x04
1/0x20</literallayout></entry>
                </row>

                <row>
                  <entry><literallayout>DATA3
-ACK</literallayout></entry>

                  <entry><literallayout>5
10</literallayout></entry>

                  <entry><literallayout>10
5</literallayout></entry>

                  <entry>Strobe</entry>

                  <entry><literallayout>0/0x08
1/0x40</literallayout></entry>
                </row>

                <row>
                  <entry><literallayout>DATA4
BUSY</literallayout></entry>

                  <entry><literallayout>6
11</literallayout></entry>

                  <entry><literallayout>11
6</literallayout></entry>

                  <entry>Data</entry>

                  <entry><literallayout>0/0x10
1/0x80</literallayout></entry>
                </row>

                <row>
                  <entry>GND</entry>

                  <entry>18-25</entry>

                  <entry>18-25</entry>

                  <entry>GND</entry>

                  <entry>-</entry>
                </row>
              </tbody>
            </tgroup>
          </table>

          <para>また、
            <link linkend="pao">Mobile Computing
              についてのページ</link>もご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="geometry">
          <para>ハードディスクドライブには、
            どのジオメトリを使うべきでしょうか?</para>
        </question>

        <answer>
            <note>
              <para>ここでディスクの「ジオメトリ」とは、ディスクのシリンダ、ヘッダ、
                トラック当りのセクタの数を意味しています - 便宜上、
                C/H/S とすることにします。これはディスクのどの領域で読み書きを
                行なうかを PC の BIOS が決定する手段となります。</para>
            </note>

          <para>
            これについてはある理由のために、誤解されている点が多いようです。
            まず最初に、FreeBSD はディスクブロックで動作しているため、
            SCSI ドライブの <quote>物理的</quote> なジオメトリという言い方は、
            まったく見当違いのものです。事実、
            セクタの密度はディスクによってまちまちであるため、
            物理的なジオメトリというものは存在しません。
            製造者が <quote>本当の</quote> 物理的なジオメトリと公表しているものは通常、
            彼らが検査して得た最小の使用不可容量の結果のジオメトリのことです。
            IDE の場合、FreeBSD は C/H/S で動作しますが、
            最近のドライブはすべて、これを内部で参照するブロックに変換しています。
          </para>

          <para>
            問題はとなるのは<emphasis>論理的な</emphasis>ジオメトリです。
            これは BIOS がそのディスクのジオメトリについて調べた際に取得されるものであり、
            その後のディスクへのアクセスに使用します。
            FreeBSD は起動時に BIOS を使用するため、
            これを正しく取得することは非常に重要なことなのです。
            実際に、ディスク上に複数のオペレーティングシステムがある場合は、
            ジオメトリはどこからでも同じように解釈される必要があります。
            そうしないと、起動時に深刻な問題が発生します。
          </para>

          <para>
            SCSI ディスクでは、
            使用するジオメトリはコントローラの拡張 BIOS
            トランスレーション (<quote>&gt;1GB の
            DOS ディスクドライブのサポート</quote>
            とも呼ばれます) が有効になっているかどうかによります。
            無効になっている場合、N シリンダ、64 ヘッド、
            32 セクタ/トラックを使用しますが、
            ここで `N' は MB 単位のディスク容量です。
            たとえば、2GB ディスクは見かけ上 2048 シリンダ、64 ヘッド、
            32 セクタ/トラックとなります。
          </para>

          <para>
            それが「有効」になっており (MS-DOS
            ではこの方法で、ある制限を回避する場合もあります)、
            ディスク容量が 1GB を越える場合は、M シリンダ、
            63 セクタ/トラック (64 「ではなく」)、
            255 ヘッドを使用します。
            `M' は MB 単位のディスク容量を 7.844238(!)
            で割った値となります。
            ということで、2GB ディスクの例では、
            261 シリンダ、63 セクタ/トラック、255 ヘッドとなります。
            (訳注: 以上は Adaptec 社と NCR 社製の SCSI アダプタの場合です。
            SCSI アダプタによって変換の数値が変わってくるのでマニュアルを
            参照してください)。
          </para>

          <para>
            これについてよく分からない場合や
            FreeBSD がインストール中に正しくジオメトリを取得できない場合、
            これを回避するもっとも簡単な方法は、
            ディスクに小さな DOS パーティションを作ることです。
            そうすると正しいジオメトリが取得されるはずです (そして、
            残しておきたくないとか、
            ネットワークカードのプログラミング用に使いたい場合などには、
            いつでもパーティションエディタで DOS
            パーティションを削除することができます)。
          </para>

          <para>
            もう一つの方法として、FreeBSD
            と一緒に配布されているフリーで使えるユーティリティに
            <filename>pfdisk.exe</filename>
            (FreeBSD CD-ROM の <filename>tools</filename>
            ディレクトリや、他のさまざまな FTP
            サイトにあります)と呼ばれるものがあり、
            ディスク上の他のオペレーティングシステムが使用している
            ジオメトリを調べるのに役立ちます。
            このジオメトリ情報は、
            パーティションエディタに入力することができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="disk-divide-restrictions">
          <para>ディスクの分割の仕方で何か制限はありますか?</para>
        </question>

        <answer>
          <para>
            はい。
            BIOS がカーネルを起動できるようにルートパーティションが
            1024 シリンダ以内にあることを確認する必要があります (これは
            FreeBSD ではなく PC の BIOS の制限です)。
          </para>

          <para>
            SCSI ドライブでは、通常はルートパーティションが最初の 1024MB
            に収まっていることが前提となります (または拡張 BIOS
            トランスレーションが有効になっている場合は最初の 4096MB -
            他の質問をご覧ください)。IDE でそれに相当する値は 504MB
            となります (訳注: E-IDE
            対応の BIOS 搭載マシンの場合は
            IDE の 504MB という制限はありません)。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="disk-manager">
          <para>大容量ディスクを持っていますが、ディスクマネージャは使えますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD は Ontrack Disk Manager を認識し、これを考慮にいれます。
            他のディスクマネージャはサポートしません。
          </para>

          <para>
            ディスク全体を FreeBSD で使いたい場合、
            ディスクマネージャは必要ありません。
            BIOS が扱える容量 (通常 504MB) いっぱいでディスクの設定を行なうと、
            FreeBSD は実際の容量を算出するはずです。
            MFM コントローラ付きの古いディスクを使っている場合は、
            FreeBSD に使用するシリンダ数を詳細に指定する必要があります。
          </para>

          <para>
            FreeBSD
            と他のオペレーティングシステムが入っているディスクを使用したい場合は、
            ディスクマネージャなしでもできるでしょう。
            FreeBSD
            の起動パーティションと他のオペレーティングシステム用のスライスが、
            最初の 1024 シリンダ内に収まっている事を確認するだけです。
            気になる方は、起動パーティションを 20
            メガバイトぐらいにして大きめにするとよいでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="missing-os">
          <para>FreeBSD の起動時に
            <literal>Missing Operating System</literal>
            と表示されます</para>
        </question>

        <answer>
          <para>
            これは FreeBSD や DOS、
            そのほかの OS がディスク領域<link linkend="geometry">ジオメトリ</link>
            のとらえ方で衝突しあっていることから起こる典型的な例です。
            こうなったら FreeBSD
            をインストールし直す以外にはありませんが、
            他のところで説明した手順にしたがってやれば、
            ほぼ間違いなくうまくいくはずです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="stop-at-boot-manager">
          <para>ブートマネージャの <literal>F?</literal> プロンプトが表示されません。</para>
        </question>

        <answer>
          <para>
            これはすでに前に質問されている問題のもう一つの症状です。
            BIOS のジオメトリと FreeBSD のジオメトリ設定が一致していないのです!
            コントローラや BIOS がシリンダの変換 (<literal>&gt;1GB ドライブの
            サポート</literal>とも呼ばれます) をサポートしていたら、
            その設定を無効化して FreeBSD をインストールし直してみてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="need-complete-sources">
          <para>ソースを全部インストールする必要はありますか?</para>
        </question>

        <answer>
          <para>
            一般的には「いいえ」です。
            しかし最低でも、<literal>base</literal>
            ソースキット (これにはこの FAQ
            で述べられているファイルのいくつかが含まれています) と、
            <literal>sys</literal> (kernel)
            ソースキット (これにはカーネルのソースが含まれています)
            をインストールする事を強くおすすめします。
            通常、何かの実行にソースが必要になる事はありません。
            しかし、カーネルをコンフィグレーションするためのプログラム &man.config.8;
            を実行する時は例外です。
            カーネルのソースをインストールしなくてもよい例として、
            どこか別の場所からカーネルのソースを読み込み専用で NFS
            マウントすることができます。また、
            そこから新しいバイナリを作成できるようにもなっています
            (カーネルソースの制限があるので、直接 <filename>/usr/src</filename>
            をマウントする事はおすすめできません。
            それよりもどこか別のディレクトリにマウントして、
            ソースツリーの複製ができるように適切にシンボリックリンクを張ってください)。
          </para>

          <para>
            ソースをネットワーク上に持ち、
            そこからシステムをビルドするようにしておけば、
            FreeBSD の将来のリリースへのアップグレードがずっと簡単になります。
          </para>

          <para>
            実際にソースのサブセットを選択するには、
            システムインストールツールの「配布ファイル」メニューにある、
            「カスタム」メニューを使用します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="need-kernel">
          <para>カーネルは必ず作り直さなくちゃならないんですか?</para>
        </question>

        <answer>
          <para>
            カーネルを新しく作り直すのは元々、
            FreeBSD のインストール時に必須の作業でした。
            でも最近のリリースでは、
            とてもユーザフレンドリなカーネル設定ツールの恩恵を受けています。
            FreeBSD の起動プロンプト (boot:) で <option>-c</option>
            とタイプすればビジュアルな設定画面になり、
            ほとんどの一般的な ISA
            カードについてのカーネルの設定をすることができるのです。
          </para>

          <para>
            今でも、
            必要なデバイスドライバだけを組み込んだカーネルを作ることはよい事とされています。
            ほんのちょっとだけメモリを節約できますからね。
            でもほとんどのシステムでは、
            もはやどうしてもやらなくちゃならないことではないのです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="password-encryption">
          <para>DES と MD5、どちらのパスワードを使うべきなのでしょうか?
            また、ユーザがどちらを使うことになるか指定する方法はありますか?</para>
        </question>

        <answer>
          <para>FreeBSD の標準のパスワードフォーマットは
            <emphasis>MD5</emphasis> を使ったものです。 これは
            <emphasis>DES</emphasis> アルゴリズムに基づいた手法を用いる
            UNIX の伝統的なパスワードフォーマットより安全 (secure) だと
            信じられているものです。 DES パスワードは
            あなたが FreeBSD のパスワードファイルを、
            安全性に劣るパスワードフォーマットを利用している古い OS
            と共有しなければならなくなったときのために
            利用可能になっています (これは利用するためには、
            sysinstall から <quote>crypto</quote> 配布物のインストール
            選ぶか、ソースから build しているなら、
            crypto のソースがインストールされている必要があります)。
            新しいパスワードにどちらのパスワードフォーマットを使うかは
            <filename>/etc/login.conf</filename> の中の
            <quote>passwd_format</quote> という login
            ケーパビリティで制御されます。このケーパビリティは
            <quote>des</quote> (利用できるなら) か
            <quote>md5</quote> のどちらかの値を取ります。
            login ケーパビリティの詳細については &man.login.conf.5; を
            参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="boot-floppy-hangs">
          <para>ブートフロッピーで起動すると、
            <literal>Probing Devices...</literal>
            の画面でハングアップします。</para>
        </question>

        <answer>
          <para>
            IDE Zip か Jaz ドライブが接続されていたら、
            それを取り外してもう一度試してみましょう。
            ブートフロッピーはこの種のドライブを誤認してしまうのです。
            システムがインストールされた後は、そのドライブを再度接続することができます。
            うまくいけばこの問題は将来のリリースで解決されるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="panic-on-install-reboot">
          <para>インストール終了後にシステムを再起動すると、
            <literal>panic: cant mount root</literal>
            のエラーとなります。</para>
        </question>

        <answer>
          <para>
            このエラーはディスクデバイスについて、
            起動ブロックとカーネルの認識が混乱しているために起こります。
            このエラーは通常、
            2 台の IDE ディスクがそれぞれ別の IDE
            コントローラのマスターに一つずつ接続されているシステムにおいて、
            FreeBSD がセカンダリ IDE
            コントローラに接続されたディスクにインストールされている場合に発生します。
            起動ブロックは FreeBSD が
            wd1 (2 台目の BIOS
            ディスク) にインストール
            されていると認識するのに対し、
            カーネルはセカンダリ IDE の 1 台目のハードディスクである
            wd2
            にインストールされていると認識するのです。
            デバイス検出後で、
            カーネルは起動ブロックが起動ディスクだと認識したディスクである
            wd1 をマウントしようとします。
            しかし、実際には起動ディスクは
            wd2 なので失敗してしまうのです。
          </para>

          <para>
            この問題を解決するには、以下のどれか一つを行ってください。
          </para>

          <orderedlist>

            <listitem>
              <para>FreeBSD 3.3 以降を利用している場合には、
                システムを再起動して、<literal>Booting kernel in 10 seconds; hit
                  [Enter] to interrupt</literal>
                が表示されている間に <literal>Enter</literal> キーを押します。
                すると、ブートローダに移行します。
              </para>

              <para>そうしたら、<literal>set
                  root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
                と入力します。 FreeBSD が最初の IDE
                コントローラのマスターに接続されたドライブにインストールされていれば、
                <replaceable>disk_number</replaceable> は
                <literal>0</literal> です。
                また、
                最初の IDE コントローラのスレーブなら <literal>1</literal>、
                二番目の IDE コントローラのマスターなら <literal>2</literal>、
                二番目の IDE コントローラのスレーブなら <literal>3</literal> になります。
              </para>

              <para>その後、<literal>boot</literal> と入力します。
                システムはきちんと再起動するはずです。</para>

              <para>この変更を恒久的なものにする (つまり、
                再起動や電源を入れる度にこの操作をする必要がないようにする) には、
                <filename>/boot/loader.conf.local</filename> に
                <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal>
                という行を追加してください。</para>
            </listitem>

            <listitem>
              <para>
                FreeBSD 3.2 以前を利用している場合は、
                Boot: プロンプトで
                <literal>1:wd(2,a)kernel</literal>
                と入力してエンターキーを押します。
                システムが起動したら、

                <command>echo "1:wd(2,a)kernel" &gt; /boot.config</command>

                というコマンドを実行してこれをデフォルトのブート文字列とします。
              </para>
            </listitem>

            <listitem>
              <para>FreeBSD のディスクをプライマリ IDE コントローラに接続して、
                ハードディスクが連続したドライブ番号で認識されるようにします。
              </para>
            </listitem>

            <listitem>
              <para>カーネルのコンフィグレーションファイルで wd
                の行を以下のように変更し、
                <ulink url="../handbook/kernelconfig.html">カーネルの再構築</ulink>を行って、
                新しいカーネルをインストールします。</para>

              <programlisting>controller      wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr
disk            wd0     at wdc0 drive 0
# disk            wd1     at wdc0 drive 1 # この行をコメントアウト

controller      wdc1    at isa? port "IO_WD2" bio irq 15 vector wdintr
disk            wd1     at wdc1 drive 0 # wd2 から wd1 へ変更
disk            wd2     at wdc1 drive 1 # wd3 から wd2 へ変更</programlisting>

              <para>ディスクの接続を変更して元の設定に戻したい場合は、ディスクを
                お望みの設定の通りの接続に戻してから再起動します。
                システムは正常に起動するはずです。</para>
            </listitem>
          </orderedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="memory-limits">
          <para>メモリの大きさの制限は?</para>
        </question>

        <answer>
          <para>
            認識できるメモリの上限は、4GB です。
            この構成は試験済みで、
            詳細は <ulink url="ftp://ftp.cdrom.com/archive-info/configuration">wcarchive's
              configuration</ulink> をご覧ください。
            このようにたくさんのメモリをマシンに導入しようという場合には、
            注意が必要です。ECC 機能をサポートし、なおかつ
            容量性負荷 (訳注: 多くのメモリ素子は容量性負荷として働きますが、
            メモリバス上に容量性負荷が増えると信号の伝達が遅れ、誤動作の原因となります) を
            低減させるため、18 チップ構成のメモリモジュールより
            9 チップ構成のメモリモジュールを選択することが、おそらく望ましいでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ffs-limits">
          <para>ffs ファイルシステムの大きさの制限は?</para>
        </question>

        <answer>
          <para>
            ffs ファイルシステムの場合、
            論理的な最大の上限は 8 TB (2G ブロック)、
            デフォルトのブロックサイズを 8K とすると 16 TBとなります。
            実際問題として、1 TB のソフトウェアの限界がありますが、
            修正すれば 4 TB のファイルシステムが可能です (実際に存在します)。
          </para>

          <para>一つの ffs のファイルの最大のサイズは、ブロックサイズが 4K の場合で
            約 1G ブロック (4 TB)です。</para>

          <table>
            <title>最大ファイルサイズ</title>

            <tgroup cols="5">
              <thead>
                <row>
                  <entry>fs ブロックサイズ</entry>

                  <entry>2.2.7-stable</entry>

                  <entry>3.0-current</entry>

                  <entry>動作確認済みのサイズ</entry>

                  <entry>動作するはずのサイズ</entry>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry>4K</entry>

                  <entry>4T-1</entry>

                  <entry>4T-1</entry>

                  <entry>4T-1</entry>

                  <entry>&gt;4T</entry>
                </row>

                <row>
                  <entry>8K</entry>

                  <entry>&gt;32G</entry>

                  <entry>8T-1</entry>

                  <entry>&gt;32G</entry>

                  <entry>32T-1</entry>
                </row>

                <row>
                  <entry>16K</entry>

                  <entry>&gt;128G</entry>

                  <entry>16T-1</entry>

                  <entry>&gt;128G</entry>

                  <entry>32T-1</entry>
                </row>

                <row>
                  <entry>32K</entry>

                  <entry>&gt;512G</entry>

                  <entry>32T-1</entry>

                  <entry>&gt;512G</entry>

                  <entry>64T-1</entry>
                </row>

                <row>
                  <entry>64K</entry>

                  <entry>&gt;2048G</entry>

                  <entry>64T-1</entry>

                  <entry>&gt;2048G</entry>

                  <entry>128T-1</entry>
                </row>
              </tbody>
            </tgroup>
          </table>

          <para>
            fs ブロックサイズが 4K の場合は三重間接ブロックが使用され、
            いずれの場合でも三重間接ブロックを使用して表現できる最大の
            fs ブロック番号 (およそ 1K^3 + 1K^2 + 1K) に制限されるはずなのですが、
            実際は fs ブロック番号の (間違った) 上限 1G-1 で制限されます。
            fs ブロック番号の制限は 2G-1 となるはずです。2G-1 付近に
            fs ブロック番号のバグが多少ありますが、fs ブロックサイズが
            4K の場合は、ここまでのブロック番号には到達しません。
          </para>

          <para>
            ブロックサイズが 8K 以上の場合、いずれの場合も
            fs ブロック番号の上限 2G-1 で制限されるはずですが、
            実際は fs ブロック番号の上限
            1G-1 で制限されます。
            例外的に -STABLE では三重間接ブロックまでは到達しないため、
            制限は二重間接ブロックで表現できる最大の
            fs ブロック番号 (およそ (blocksize/4)^2 + (blocksize/4)) となります。
            -CURRENT ではこの制限を超えると問題を引き起こすかもしれません。
            正しい制限値である 2G-1 ブロックを使用すると明らかに問題が出ます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="tb-on-floppy">
          <para>フロッピーに 1 TB のファイルを格納するには?</para>
          <para><emphasis>寄稿: Bruce Evans、19989</emphasis></para>
        </question>

        <answer>
          <para>
            わたしのところでは、
            フロッピーにいくつかの実際のファイルを保存しています :-)。
            最大のファイルサイズは最大のディスクサイズとはあまり関係はありません。
            最大のディスクサイズは 1 TB です。
            ファイルサイズがディスクサイズより大きくなりうるというのは仕様です。
          </para>

          <para>
            以下の例は、32K のディスク容量 (3
            つの間接ブロックと 1 つのデータブロック) を使って、
            小さなルートパーティションに
            8T-1 の大きさのファイルを作成します。
            ここでの dd コマンドは大きなファイルが扱えるものが必要です。
          </para>

          <screen>&prompt.user; <userinput>cat foo</userinput>
df .
dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
ls -l z
du z
df .
&prompt.user; <userinput>sh foo</userinput>
Filesystem  1024-blocks     Used    Avail Capacity  Mounted on
/dev/da0a         64479    27702    31619    47%    /
1+0 records in
1+0 records out
1 bytes transferred in 0.000187 secs (5346 bytes/sec)
-rw-r--r--  1 bde  bin  8796093022207 Sep  7 16:04 z
32      z
Filesystem  1024-blocks     Used    Avail Capacity  Mounted on
/dev/da0a         64479    27734    31587    47%    /</screen>

        </answer>
      </qandaentry>

      <qandaentry>
        <question id="archsw-readin-failed-error">
          <para>新しいカーネルをコンパイルしたら、起動時に
            <literal>archsw.readin.failed</literal>
            というエラーメッセージが表示されるようになってしまいました。</para>
        </question>

        <answer>
          <para>ローダがスタートする前の | が表示されているときに何かキーを押すことで、
            起動のセカンドステージから直接、起動するカーネルを指定して起動することができます。
            特に、カーネルのソースを更新し、<emphasis>make world
              しないで</emphasis>新しいカーネルだけインストールした場合にこの症状が現われます。
            こういう操作は動作が保証されません。きちんと make world してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="upgrade-3x-4x">
           <para>3.X から 4.X にアップグレードするにはどうしたら良いのですか?</para>
        </question>

        <answer>
          <para>アップグレードには、
            バイナリスナップショットを使うことを<emphasis>強く</emphasis>おすすめします。
            4-STABLE スナップショットは
            <ulink
            url="ftp://releng4.FreeBSD.org/">releng4.FreeBSD.org</ulink>
            から入手可能です。</para>

          <para>ソースを使ってアップグレードする場合は、詳細について
            <ulink url="http://www.FreeBSD.org/handbook/cutting-edge.html">FreeBSD
              ハンドブック</ulink>を参照するようにしてください。</para>

          <caution>
          <para>ソースを使ったアップグレードは、
            慣れていないユーザにはまったくおすすめできません。
            3.X から 4.X への場合は特にそうです。
            ソースを使ったアップグレードを試す前に、
            手順を注意深く読むように心がけてください。</para>
          </caution>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="security-profiles">
          <para><quote>セキュリティプロファイル</quote>
            (<quote>security profiles</quote>) とは何ですか?</para>
        </question>

        <answer>
          <para><quote>セキュリティプロファイル</quote>とは、特定の
            プログラムやその他の設定を有効にしたり無効にすることで、求める
            比率で安全と便利さを実現しようとする構成の選択肢の集まりの
            ことです。セキュリティプロファイルが厳しいほど、デフォルトで
            有効になるプログラムが減ります。これは、動かさなければならない
            もの以外は、何も動かしてはいけないというセキュリティの
            基本的原則の一つです。</para>

          <para>セキュリティプロファイルは、単にデフォルトの設定である
            ということに気をつけてください。FreeBSD をインストールした
            あとに <filename>/etc/rc.conf</filename> に適切な行を編集したり
            追加すれば、どのプログラムでも有効にしたり無効にしたりできます。
            後者について詳しいことは &man.rc.conf.5; のマニュアルを
            ご覧ください。</para>

          <para>以下に、各セキュリティプロファイルが何を行うかを説明した
            表を掲載します。列はセキュリティプロファイルの選択肢で、行は
            有効または無効になるプログラムや機能です。</para>

          <table>
            <title>指定できるセキュリティプロファイル</title>

            <tgroup cols="5">
              <thead>
                <row>
                  <entry></entry>

                  <entry>Extreme</entry>

                  <entry>High</entry>

                  <entry>Moderate</entry>

                  <entry>Low</entry>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry>&man.inetd.8;</entry>

                  <entry>NO</entry>

                  <entry>NO</entry>

                  <entry>YES</entry>

                  <entry>YES</entry>
                </row>

                <row>
                  <entry>&man.sendmail.8;</entry>

                  <entry>NO</entry>

                  <entry>YES</entry>

                  <entry>YES</entry>

                  <entry>YES</entry>
                </row>

                <row>
                  <entry>&man.sshd.8;</entry>

                  <entry>NO</entry>

                  <entry>YES</entry>

                  <entry>YES</entry>

                  <entry>YES</entry>
                </row>

                <row>
                  <entry>&man.portmap.8;</entry>

                  <entry>NO</entry>

                  <entry>NO</entry>

                  <entry>おそらく <footnote>
                    <para>インストール時に、すでにマシンを
                      NFS クライアントまたはサーバとして設定していると、
                      ポートマッパが有効になります。</para>
                    </footnote>
                  </entry>

                  <entry>YES</entry>
                </row>

                <row>
                  <entry>NFS server</entry>

                  <entry>NO</entry>

                  <entry>NO</entry>

                  <entry>YES</entry>

                  <entry>YES</entry>
                </row>

                <row>
                  <entry>&man.securelevel.8;</entry>

                  <entry>YES (2) <footnote>
                    <para>securelevel を設定するセキュリティプロファイル
                      (Extreme または High) を選択する場合、その影響を
                      承知していなければなりません。&man.init.8; のマニュアルを
                      読み、セキュリティレベルの意味について特に注意を
                      払ってください。そうしないと、後で深刻な問題が
                      起きるかもしれません。</para>
                    </footnote>
                    </entry>

                  <entry>YES (1)</entry>

                  <entry>NO</entry>

                  <entry>NO</entry>
                </row>
              </tbody>
            </tgroup>
          </table>

            <warning>
              <para>セキュリティプロファイルは魔法の薬ではありません。
                High に設定したら、適当な <ulink
                url="../handbook/eresources.html#ERESOURCES-MAIL">
                メーリングリスト</ulink>を読んだり、良質なパスワードや
                パスフレーズを用いたり、セキュリティについてのよい習慣を
                守ったりしなくていいわけではありません。求めるセキュリティと
                便利さの比率を手軽に設定してくれるだけです。</para>
            </warning>

            <note>
              <para>セキュリティプロファイルの機構は、FreeBSD を最初に
                インストールする時に使うことを想定しています。すでに
                FreeBSD がインストールされているなら、単に求める機能を
                有効にしたり無効にしたりする方が、おそらく効率が
                よいでしょう。もし、本当にセキュリティプロファイルを
                使いたいのであれば、&man.sysinstall.8; を再実行すれば
                設定できます。</para>
            </note>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="hardware">
    <title>ハードウェアコンパチビリティ</title>

    <para>
      <emphasis>訳:
        にしか <email>nishika@cheerful.com</email>19971112</emphasis>
    </para>


    <qandaset>
      <qandaentry>
        <question id="supported-hard-drives">
          <para>FreeBSD は、
            どんなハードディスクドライブをサポートしているのですか?</para>
        </question>

        <answer>
          <para>
            FreeBSD は、EIDE と SCSI
            ハードディスクドライブをサポートしています (互換コントローラも含みます。
            次の節参照)。
            また独自の <quote>Western Digital</quote>
            インタフェースを使用しているすべてのドライブ (MFM、
            RLL、ESDI、もちろん IDE) もサポートしています。
            独自仕様のインタフェースを使用する
            ESDI コントローラでは動作しないものがあり、
            WD1002/3/6/7
            とその互換インタフェースと衝突します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="supported-scsi-controllers">
          <para>どの SCSI コントローラをサポートしているのですか?</para>
        </question>

        <answer>
          <para><ulink url="../handbook/install.html#INSTALL-HW">FreeBSD
              ハンドブック</ulink>に記されている完全なリストを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="supported-cdrom-drives">
          <para>どんな CD-ROM ドライブをサポートしているのですか?</para>
        </question>

        <answer>
          <para>
            サポートされている SCSI コントローラに接続できる SCSI
            ドライブは、すべてサポートされています。
          </para>

          <para>
            また、以下の専用 CD-ROM
            インタフェースもサポートしています。
          </para>

            <itemizedlist>
              <listitem>
                <para>ミツミ LU002 (8bit)、LU005 (16bit) および FX001D (16bit 2倍速)。</para>
              </listitem>

              <listitem>
                <para>ソニー CDU 31/33A</para>
              </listitem>

              <listitem>
                <para>Sound Blaster 非 SCSI タイプの CD-ROM</para>
              </listitem>

              <listitem>
                <para>松下/Panasonic CD-ROM</para>
              </listitem>

              <listitem>
                <para>ATAPI 互換の IDE CD-ROM</para>
              </listitem>
            </itemizedlist>

          <para>
            SCSI でないカードはすべて、SCSI ドライブよりも極めて動作速度が
            遅いことが知られており、ATAPI CD-ROM には動作しないものもあるようです。
          </para>

          <para>
            BSDi の FreeBSD 2.2 CD-ROM からは CD からの直接起動が
            サポートされています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="supported-cdrw-drives">
          <para>FreeBSD は、どの CD-RW ドライブに対応していますか?</para>
        </question>

        <answer>
          <para>FreeBSD は ATAPI 互換の IDE CD-R または CD-RW ドライブで
            あれば対応しています。FreeBSD バージョン 4.0 以降については、
            &man.burncd.8; のマニュアルをご覧ください。それ以前の
            バージョンの FreeBSD では、
            <filename>/usr/share/examples/atapi</filename> にある例を
            ご覧ください。</para>

          <para>また、FreeBSD は SCSI の CD-R または CD-RW ドライブにも
            対応しています。ports または packages から
            <command>cdrecord</command> コマンドをインストールして、
            カーネルに <devicename>pass</devicename> デバイスが組み込まれて
            いることを確認してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="zip-support">
          <para>ZIP ドライブをサポートしていますか?</para>
        </question>

        <answer>
          <para>
            もちろん、
            FreeBSD は SCSI ZIP ドライブ (外付け) をサポートしています。
            ZIP ドライブは SCSI ID を 56 に設定した状態でなら使用できますが、
            もし SCSI ホストアダプタの BIOS がサポートしてさえいれば
            ZIP ドライブから起動させることもできます。
            どのホストアダプタが SCSI ID を 01 以外に設定したデバイスから
            起動できるのかはわかりません。そうしたい場合は、アダプタの
            ドキュメントを参照しなければなりません。</para>

          <para>
            ATAPI (IDE) ZIP ドライブは、FreeBSD 2.2.6
            以降のバージョンでサポートされています。
          </para>

          <para>
            バージョン 3.0 以降の FreeBSD では、
            パラレルポート接続の ZIP ドライブをサポートしています。
            最近のバージョンの FreeBSD をお使いでしたら、
            カーネルコンフィグレーションファイルに
            <devicename>scbus0</devicename><devicename>da0</devicename><devicename>ppbus0</devicename><devicename>vp0</devicename>
            の各ドライバが記述されていることを確認してください。
            (GENERIC カーネルには <devicename>vp0</devicename>
            を除くすべてのドライバが含まれています)。
            これらすべてのドライバがあれば、
            パラレルポートのドライブは
            <devicename>/dev/da0s4</devicename>
            となります。
            ディスクは
            <command>mount /dev/da0s4 /mnt</command> とするか
            <command>mount_msdos /dev/da0s4 /mnt</command> (DOS ディスクの場合)
            とすることでマウントできます。
          </para>

          <para>
            それから<link linkend="jaz">リムーバブルドライブに関する注意</link>および、
            <link linkend="disklabel">「フォーマット」に関する注意</link>についても
            確認しておいてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="jaz-zip-removable-support">
          <para>では、JAZ や EZ、
            それからその他のリムーバブルドライブはサポートしていますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD では、IDE バージョンの EZ
            ドライブを除くすべての SCSI デバイスは、
            SCSI のディスクと同等に扱われます。
            また IDE EZ は IDE ドライブと同等となります。
          </para>

          <para><anchor id="jaz"/>
              システム稼働中のメディア交換について
              FreeBSD がどれほどうまく動くか定かではありません。
              もちろんメディアを入れ替える前にそのドライブのマウントを解除しなければいけないでしょうし、
              FreeBSD がそれらを認識するには、
              起動時に外部ユニットにも電源が投入されていることを確認しなければいけないでしょう。
          </para>

          <para><link linkend="disklabel">「フォーマット」に関する注意</link>も参照のこと。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="multiport-serial-support">
          <para>どのマルチポートシリアルカードをサポートしていますか?</para>
        </question>

        <answer>
          <para>一覧は
            <ulink url="../handbook/install-hw.html#INSTALL-MISC">その他のデバイス</ulink>の節にあります。
          </para>

          <para>
            無名のカードにもうまく動くものがあり、
            特に AST 互換といわれているものに多く見られます。
          </para>

          <para>
            カード設定の詳細な情報は、&man.sio.4;
            のマニュアルページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="usbkbd">
          <para>USB キーボードを持っているのですが、FreeBSD で使えますか?</para>
        </question>

        <answer>
          <para>
            USB デバイスは FreeBSD 3.1 からサポートされましたが、
            実装は FreeBSD 3.2 であってもまだ完全ではないため、
            必ずしも安定して動作するとは限りません。
            もし、それでも USB キーボードを使ってみたいという人は、
            以下の手順を試してみてください。
          </para>

          <procedure>
            <step>
              <para>FreeBSD 3.2 か、それ以降を使います。</para>
            </step>

            <step>
              <para>
                カーネルコンフィグレーションファイルに以下の行を追加し、
                カーネルを再構築します。
              </para>

              <programlisting>device  uhci
device  ohci
device  usb
device  ukbd
options KBD_INSTALL_CDEV</programlisting>

              <para>FreeBSD 4.0 より前のバージョンでは、
                代わりに次のようにします。</para>

              <programlisting>controller      uhci0
controller      ohci0
controller      usb0
controller      ukbd0
options         KBD_INSTALL_CDEV</programlisting>
            </step>

            <step>
              <para><filename>/dev</filename> ディレクトリに移動し、
                次のようにしてデバイスノードを作成します。</para>

              <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV kbd0 kbd1</userinput></screen>
            </step>

            <step>
              <para><filename>/etc/rc.conf</filename> を編集し、
                以下の行を追加します。</para>

              <programlisting>usbd_enable="YES"
usbd_flags=""</programlisting>
            </step>
          </procedure>

          <para>
            システムを再起動させた後、
            AT、USB 両方のキーボードが接続されていれば、
            AT キーボードは <devicename>/dev/kbd0</devicename> に、
            USB キーボードは <devicename>/dev/kbd1</devicename>になります。
            一方、USB キーボードだけが接続されているなら、
            <devicename>/dev/ukbd0</devicename> となります。
          </para>

          <para>
            USB キーボードをコンソールで利用するには、
            それをコンソールドライバに対して明示的に指定する必要があります。
            システムの初期化の際に、次に示すようなコマンドを実行してください。
          </para>

          <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>

          <para>
            ただし、USB キーボードしか接続されていない場合、それは
            <devicename>/dev/kbd0</devicename> としてアクセスされますので、
            コマンドは次のようにしなければなりません。ご注意ください。
          </para>

          <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 &lt; /dev/ttyv0 &gt; /dev/null</userinput></screen>

          <para>
            上のコマンドは、<filename>/etc/rc.i386</filename>
            に追加すると良いでしょう。
          </para>

          <para>
            この設定を一度行なっていれば、
            X 環境でも特に他の設定なしに USB キーボードが利用できます。
          </para>

          <para>
            USB キーボードの活線挿抜 (ホットプラグ機能) は、
            まだおそらくきちんと動作しないと思われます。
            トラブルを避けるためにも、キーボードはシステムを起動させる前に接続しておき、
            シャットダウンするまではずさないようにした方が良いでしょう。
          </para>

          <para>
            詳細については、&man.ukbd.4; のマニュアルページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="busmouse">
          <para>珍しいバスマウスを持っているのですが、どのように設定すればいいのですか?</para>
        </question>

        <answer>
          <para>
            FreeBSD は Microsoft、Logitech、
            ATI 等のメーカーから出ているバスマウスと InPort
            バスマウスをサポートしています。FreeBSD 2.X の場合、
            バスマウスのデバイスドライバは GENERIC カーネルに標準で含まれますが、
            FreeBSD 3.X 以降では標準で含まれていません。もしバスマウスのデバイス
            ドライバを含むカーネルを自分で構築する場合には、
            カーネルコンフィグレーションファイルに以下の行が含まれていることを確認してください。</para>

          <para>それは FreeBSD 3.0 を含む、それ以前のリリースの場合は次のとおり、</para>

          <programlisting>device mse0 at isa? port 0x23c tty irq5 vector mseintr</programlisting>

          <para>FreeBSD 3.X では、次のとおりです。</para>

          <programlisting>device mse0 at isa? port 0x23c tty irq5</programlisting>

          <para>そして FreeBSD 4.X とそれ以降では、次のようになります。</para>

          <programlisting>device mse0 at isa? port 0x23c irq5</programlisting>

          <para>
            通常バスマウスには専用のインタフェースカードが附属しています。
            インタフェースカードによってはポートアドレスや割り込み番号を上記の
            設定以外に変更できるかもしれません。詳しくはバスマウスのマニュアルと
            &man.mse.4; のマニュアルページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ps2mouse">
          <para>PS/2 マウス (「マウスポートマウス」、「キーボードマウス」) を
            使うにはどのように設定すればいいのですか?</para>
        </question>

        <answer>
          <para>
            あなたが 2.2.5 以降のバージョン FreeBSD を使っているのなら、
            必要なドライバ <devicename>psm</devicename>
            はカーネルに含まれていて有効になっています。
            カーネルは起動時に PS/2 マウスを検出するでしょう。
          </para>

          <para>
            あなたの使っている FreeBSD
            が比較的新しいけれど前のバージョン (2.1.x 以降) のものなら、
            インストールの時に、単にカーネルのコンフィグレーションのメニュー上で
            PS/2 マウスを有効化するだけです、あるいは後で
            <prompt>boot:</prompt> プロンプト上で
            <option>-c</option> を指定することでもメニューは現れます。
            デフォルトでは無効に設定されていますので、
            明示的に有効化してあげないといけません。
          </para>

          <para>
            あなたの使っている FreeBSD が比較的古いものなら、
            カーネルコンフィグレーションファイルに以下の行を加えて
            カーネルを再コンパイルする必要があります。
          </para>

          <para>
            それは FreeBSD 3.0 を含む、それ以前のリリースでは次のとおり、</para>

            <programlisting>device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr</programlisting>

            <para>FreeBSD 3.1 を含む、それ以降のリリースでは次のとおり、</para>

            <programlisting>device psm0 at isa? tty irq 12</programlisting>

            <para>FreeBSD 4.0 とそれ以降のリリースでは次のとおりです。</para>

            <programlisting>device psm0 at atkbdc? irq 12</programlisting>

          <para>
            カーネルの再構築についてよく知らないのであれば、
            <ulink url="../handbook/kernelconfig.html">カーネルのコンフィグレーション</ulink>を参照してください。
          </para>

          <para>
            起動時にカーネルが <devicename>psm0</devicename> を検出したら、
            <devicename>psm0</devicename> のエントリが <filename>/dev</filename>
            の中にあることを確認してください。それには、以下のようにします。

           <screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>

            これは <username>root</username> でログインしているときに行なってください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="moused">
          <para>X Window System 以外の環境でマウスを使うことは可能ですか?</para>
        </question>

        <answer>
          <para>
            もしデフォルトのコンソールドライバである syscons
            を使っているのであれば、
            テキストコンソール上でマウスを使って、
            テキストのカットアンドペーストができます。
            マウスデーモンである moused を起動し、
            仮想コンソールでマウスポインタを有効にしてください。
          </para>

           <screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput>
&prompt.root; <userinput>vidcontrol -m on</userinput></screen>

          <para>
            ここで <replaceable>xxxx</replaceable>
            はマウスのデバイス名、
            <replaceable>yyyy</replaceable>
            はマウスのプロトコルタイプです。
            サポートされているプロトコルタイプについては
            &man.moused.8; のマニュアルページを参照してください。
          </para>

          <para>
            システムを起動する時に自動的に
            moused を起動したい場合には、次のようにします。
            FreeBSD 2.2.1 では以下の変数を
            <filename>/etc/sysconfig</filename>
            で設定してください。</para>

          <programlisting>mousedtype="<replaceable>yyyy</replaceable>"
mousedport="<replaceable>xxxx</replaceable>"
mousedflags=""</programlisting>

          <para>
            FreeBSD 2.2.2 以降のバージョンでは
            <filename>/etc/rc.conf</filename>
            で以下のように設定します。</para>

          <programlisting>moused_type="<replaceable>yyyy</replaceable>"
moused_port="<replaceable>xxxx</replaceable>"
moused_flags=""</programlisting>

           <para>FreeBSD 3.1 とそれ以降で PS/2 マウスを利用する場合は、
              <literal>moused_enable=&quot;YES&quot;</literal> を
              <filename>/etc/rc.conf</filename> に書き加えるだけです。</para>

          <para>
            また、起動時にすべての仮想端末で、
            標準のコンソールに加えマウスデーモンも使えるようにしたい、
            という場合には、以下の行を
            <filename>/etc/rc.conf</filename> に加えます。
          </para>

          <programlisting>allscreens_flags="-m on"</programlisting>

          <para>
            FreeBSD 2.2.6 以降の場合で
            比較的新しいシリアルマウスを使っているならば、
            マウスデーモンはマウスのプロトコルタイプを自動判別できます。
            自動判別を試みるには、プロトコルタイプとして
            <literal>auto</literal>
            を指定します。
          </para>

          <para>
            マウスデーモンを実行中は、マウスデーモンと他のプログラム
            (たとえば X Window System)
            の間でマウスへのアクセスを調整しなければなりません。
            この問題については <link linkend="x-and-moused">X とマウス</link>をご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="text-mode-cut-paste">
          <para>マウスを使って、
            テキストコンソールでカットアンドペーストするにはどうしたらよいのですか?</para>
        </question>

        <answer>
          <para>
            マウスデーモンを起動
            (<link linkend="moused">前の質問に対する答え</link>を参照してください)
            したあと、
            ボタン 1 (左ボタン) を押しながらマウスを動かして範囲を指定します。
            ボタン 2 (中ボタン) またはボタン 3 (右ボタン) をクリックするとテキスト
            カーソルの位置に選択した範囲のテキストがペーストされます。
          </para>

          <para>
            FreeBSD 2.2.6 以降では、ボタン 2
            をクリックするとペーストされ、ボタン 3
            をクリックした場合に既存の選択範囲が現在のマウスポインタの位置まで
            「延長または短縮」されます。もしマウスに中ボタンがないなら、
            moused のオプションを使って中ボタンのエミュレーションをするか、
            他のボタンを中ボタンとして使う事ができます。
            詳しくは &man.moused.8; のマニュアルページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="usbmouse">
          <para>USB マウスを持っているのですが、FreeBSD で使えますか?</para>
        </question>

        <answer>
          <para>
            USB デバイスは FreeBSD 3.1 からサポートされましたが、
            実装は FreeBSD 3.2 であってもまだ完全ではないため、
            必ずしも安定して動作するとは限りません。
            もし、それでも USB マウスを使ってみたいという人は、
            以下の手順を試してみてください。
          </para>

          <procedure>
            <step>
              <para>FreeBSD 3.2 か、それ以降を使います。</para>
            </step>

            <step>
              <para>
                カーネルコンフィグレーションファイルに以下の行を追加し、
                カーネルを再構築します。
              </para>

              <programlisting>device  uhci
device  ohci
device  usb
device  ums</programlisting>

              <para>FreeBSD 4.0 より前のバージョンでは、
                代わりに次のようにします。</para>

              <programlisting>controller      uhci0
controller      ohci0
controller      usb0
device          ums0</programlisting>
            </step>

            <step>
              <para><filename>/dev</filename> ディレクトリに移動し、
                次のようにしてデバイスノードを作成します。</para>

              <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV ums0</userinput></screen>
            </step>

            <step>
              <para><filename>/etc/rc.conf</filename> を編集し、
                以下の行を追加します。</para>

              <programlisting>moused_enable="YES"
moused_type="auto"
moused_port="/dev/ums0"
moused_flags=""
usbd_enable="YES"
usbd_flags=""</programlisting>

              <para>moused の設定の詳細については、
                <link linkend="moused">前項</link>も参照してください。
              </para>
            </step>

            <step>
              <para>
                X のセッションで USB マウスを使うには、
                <filename>XF86Config</filename> を編集する必要があります。
                XFree86 3.3.2、もしくはそれ以降を利用している場合は、
                <emphasis>Pointer</emphasis>
                セクションが次のようになっていることを確認してください。
              </para>

              <programlisting>Device          "/dev/sysmouse"
Protocol        "Auto"</programlisting>

              <para>
                それより前のバージョンの XFree86 を利用している場合は、
                <emphasis>Pointer</emphasis>
                セクションが次のようになっていることを確認してください。
              </para>

              <programlisting>Device          "/dev/sysmouse"
Protocol        "SysMouse"</programlisting>
            </step>
          </procedure>

          <para>X 環境でのマウスの利用については、
            <link linkend="x-and-moused">他の項</link>も参照してください。
          </para>

          <para>
            USB マウスの活線挿抜 (ホットプラグ機能) は、
            まだおそらくきちんと動作しないと思われます。
            トラブルを避けるためにも、マウスはシステムを起動させる前に接続しておき、
            シャットダウンするまではずさないようにした方が良いでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mouse-wheel-buttons">
          <para>わたしのマウスにはホイール機能や便利なボタンがついているのですが、
            これは FreeBSD でも使えるのですか?</para>
        </question>

        <answer>
          <para>
            答えは残念ながら「場合によります」です。
            こうしたマウスの付加的な機能は大抵の場合、特殊なドライバを必要とします。
            マウスのデバイスドライバやユーザのプログラムが
            そのマウスに対する固有のサポートをしていない場合には、
            標準的な 2 ボタン/3 ボタンマウスのように振舞います。
          </para>

          <para>
            X ウィンドウシステムの環境でのホイールの使い方については、
            <link linkend="x-and-wheel">X とホイール</link>の項をご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="psmerr">
          <para>
            わたしのマウスはきちんと動いてくれないようです。
            マウスカーソルが画面中をとびまわります。
            このマウスにはホイールがついていて、
            接続は PS/2 ポートです。</para>
        </question>

        <answer>
          <para>
            FreeBSD 3.2 およびそれ以前の PS/2 マウスドライバ psm には、
            Logitech モデル M-S48 とその
            OEM のホイールマウスで不具合が発生します。
            以下のパッチを <filename>/sys/i386/isa/psm.c</filename>
            に適用して、カーネルを再構築してください。
          </para>

          <programlisting>Index: psm.c
===================================================================
RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v
retrieving revision 1.60.2.1
retrieving revision 1.60.2.2
diff -u -r1.60.2.1 -r1.60.2.2
--- psm.c	1999/06/03 12:41:13	1.60.2.1
+++ psm.c	1999/07/12 13:40:52	1.60.2.2
@@ -959,14 +959,28 @@
     sc->mode.packetsize = vendortype[i].packetsize;

     /* set mouse parameters */
+#if 0
+    /*
+     * A version of Logitech FirstMouse+ won't report wheel movement,
+     * if SET_DEFAULTS is sent...  Don't use this command.
+     * This fix was found by Takashi Nishida.
+     */
     i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
     if (verbose >= 2)
 	printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i);
+#endif
     if (sc->config & PSM_CONFIG_RESOLUTION) {
         sc->mode.resolution
 	    = set_mouse_resolution(sc->kbdc,
-	        (sc->config & PSM_CONFIG_RESOLUTION) - 1);
+				   (sc->config & PSM_CONFIG_RESOLUTION) - 1);
+    } else if (sc->mode.resolution >= 0) {
+	sc->mode.resolution
+	    = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
+    }
+    if (sc->mode.rate > 0) {
+	sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
     }
+    set_mouse_scaling(sc->kbdc, 1);

     /* request a data packet and extract sync. bits */
     if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) {</programlisting>

          <para>FreeBSD 3.2
            より新しいリリースではきちんと動作するはずです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="laptop-mouse-trackball">
          <para>ラップトップ PC のマウス/トラックボール/タッチパッドは使えますか?</para>
        </question>

        <answer>
          <para>
            <link linkend="ps2mouse">前の質問に対する答え</link>と、
            <link linkend="pao">モバイルコンピューティングのページ</link>をご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="tape-support">
          <para>どんなテープドライブをサポートしていますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD は SCSI と QIC-36 (QIC-02 インタフェース付き)
            をサポートしています。
            これらには 8-mm (Exabyte と呼ばれています) や DAT ドライブも含まれています。
          </para>

          <para>
            初期の 8-mm ドライブの中には SCSI-2
            とまったく互換性を持たないものがあります。
            これらは FreeBSD 上では動作しません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="tape-changer-support">
          <para>どんなテープチェンジャーをサポートしていますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.2 は &man.ch.4; デバイスと &man.chio.1;
            コマンドを使用した SCSI チェンジャーをサポートしています。
            実際のチェンジャーの制御方法の詳細は、&man.chio.1;
            のマニュアルページを参照してください。
          </para>

          <para>使用している製品が <application>AMANDA</application>
            のようにチェンジャーに対応済みのものでない場合は、
            次のことについて留意してください。
            それらの製品は任意のポイント間のテープの移動を制御するだけなので、
            テープがどのスロットに入っているか、現在ドライブにあるテープが
            どのスロットに戻るべきかを把握しておく必要があります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="sound-card-support">
          <para>どんなサウンドカードをサポートしていますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD は SoundBlaster、SoundBlaster Pro、SoundBlaster 16、
            Pro Audio Spectrum 16、AdLib それから Gravis UltraSound サウンドカードを
            サポートしています。MPU-401 やその互換カードも機能に制限はあるものの
            サポートされています。マイクロソフトサウンドシステムのスペックに準拠
            したカードも、<devicename>pcm</devicename> ドライバでサポートされています。
          </para>

            <note>
              <para>
                これらはサウンドについてのみの話です! これらのドライバは
                CD-ROM、SCSI、カード上にあるジョイスティックをサポートしていません
                (SoundBlaster は例外です)。SoundBlaster SCSI インタフェースと非 SCSI
                CD-ROM はサポートしていますが、そのデバイスからは起動できません。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="es1370-silent-pcm">
          <para><devicename>pcm</devicename>
            ドライバで es1370 から音が出ないのはどうにかなりませんか?</para>
        </question><answer>

          <para>マシンを起動するごとに以下のコマンドを実行してください。</para>

          <screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="network-cards">
          <para>どんなネットワークカードをサポートしていますか?</para>
        </question>

        <answer>
          <para>
            より完全な一覧については<ulink url="../handbook/install-hw.html#INSTALL-NICS">イーサネットカード</ulink>の節を参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="no-math-coprocessor">
          <para>数値演算コプロセッサを持っていませんが、何かまずいでしょうか?</para>
        </question>

        <answer>
            <note>
              <para>
                これらは 386/486SX/486SLC を持っている場合に影響します
                - ほかのマシンでは CPU に内蔵されています。
              </para>
            </note>

          <para>
            一般にこれらは問題とはなりません。
            しかし、数値演算エミュレーションコードのパフォーマンスか、
            正確さのいずれかを選択する状況があります
            (詳しくは <link linkend="emul">FP
              エミュレーション</link> についての節をご覧ください)。
            とくに、X 上で弧を描く際にとても遅くなることでしょう。
            数値演算コプロセッサを購入されることを強くおすすめします。
            とても役立つことでしょう。
          </para>

            <note>
              <para>
                他の数値演算コプロセッサよりも優れたコプロセッサもあります。
                これは言いにくいことなのですが、Intel を買うために躍起になる人もいないでしょう。
                それが FreeBSD 上で動くという確信がないのなら、クローンにご用心を。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="other-device-support">
          <para>FreeBSD がサポートするデバイスは他にもあるんでしょうか?</para>
        </question>

        <answer>
          <para><ulink url="../handbook/install-hw.html#INSTALL-MISC">FreeBSD
              ハンドブック</ulink>に記されている、
            サポートされている他のデバイスの一覧を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="power-management-support">
          <para>パワーマネージメント機能付きのラップトップ PC を持っているのですが…。</para>
        </question>

        <answer>
          <para>
            FreeBSD は一部のマシンの <acronym>APM</acronym> をサポートしています。
            <filename>LINT</filename> カーネルコンフィグファイル の
            <acronym>APM</acronym> の部分をご覧ください。
            さらに詳しいことは &man.apm.4; に載っています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="micron-hang-boot">
          <para>Micron システムが起動時に固まってしまいます。</para>
        </question>

        <answer>
          <para>
            特定の Micron 製のマザーボードの中には、PCI BIOS が規格通りに
            実装されていないために FreeBSD の起動に失敗するものがあります。
            その BIOS は、PCI デバイスをあるアドレスで設定したと報告するにも
            関わらず、実際にはそうしていないのです。
          </para>

          <para>
            この問題を回避するには、BIOS の
            <quote>Plug and Play Operating System</quote>
            を無効に設定してください。また、より詳しい情報は
            <ulink url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink>
            を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="newer-adaptec-support">
          <para>新しい Adaptec コントローラを持っているのですが、
            FreeBSD が検出できないようです。</para>
        </question>

        <answer>
          <para>
            新しい AIC789x シリーズの Adaptec チップは、3.0 でデビューした CAM SCSI
            フレームワークでサポートされています。 2.2-STABLE のパッチは
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/</ulink> にあります。
            CAM システムが入っている高機能ブートフロッピーは
            <ulink url="http://people.FreeBSD.org/~abial/cam-boot/">http://people.FreeBSD.org/~abial/cam-boot/</ulink> にあります。
            どちらの場合にしても、作業を始める前に <filename>README</filename>
            をお読みください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="internal-plugnplay-modem">
          <para>内蔵の Plug &amp; Play
            モデムを持っているのですが、FreeBSD が検出できないようです。</para>
        </question>

        <answer>
          <para>
            モデムの PnP ID を シリアルドライバの PnP ID
            リストに追加する必要があるでしょう。
            Plug &amp; Play サポートを有効にするには、
            <literal>controller pnp0</literal> をコンフィグレーション
            ファイルに付け加え、
            新しいカーネルをコンパイルしてシステムを再起動してください。
            カーネルは、検出したすべてのデバイスの
            PnP ID を表示します。
            モデムの欄にある PnP ID を <filename>/sys/i386/isa/sio.c</filename>2777 行目くらいにあるテーブルに書き入れてください。
            テーブルを見つけるには、構造体
            <literal>siopnp_ids[]</literal> の文字列 <literal>SUP1310</literal>
            を探します。
            カーネルを作り直したらインストールし、システムを再起動してください。
            そうすれば、モデムが検出されるはずです。
          </para>

          <para>
            起動時のコンフィグレーションの際に、<literal>pnp</literal>
            コマンドを使用して PnP の設定をマニュアルで行なわなければならないかもしれません。
            その場合、モデムを検出させるためのコマンドは</para>

          <programlisting>pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8</programlisting>

            <para>のようになります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="serial-console-prompt">
          <para>シリアルコンソールで boot: プロンプトを表示するにはどうすればいい?</para>
        </question>

        <answer>
            <orderedlist>
              <listitem>
                <para>
                  <literal>options COMCONSOLE</literal>
                  を指定してカーネルを構築してください。
                </para>
              </listitem>

              <listitem>
                <para>
                  そして <filename>/boot.config</filename>
                  を作成して <option>-P</option> とだけ書き入れてください。
                </para>
              </listitem>

              <listitem>
                <para>その後、キーボードをシステムから抜きます。</para>
              </listitem>
            </orderedlist>

          <para>
            <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename> に、
            これに関する情報が書かれています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="micron-3comnic-failure">
          <para>なぜ Micron コンピュータで 3Com PCI ネットワークカードが動かないのでしょう?</para>
        </question>

        <answer>
          <para>
            特定の Micron 製のマザーボードの中には、PCI BIOS が規格通りに
            実装されていないために FreeBSD の起動に失敗するものがあります。
            その BIOS は、PCI デバイスをあるアドレスで設定したと報告するにも
            関わらず、実際にはそうしていないのです。
          </para>

          <para>
            この問題を回避するには、BIOS の
            <quote>Plug and Play Operating System</quote>
            を無効に設定してください。また、より詳しい情報は
            <ulink url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink>
            を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="smp-support">
          <para>対称型マルチプロセシング (SMP) をサポートしていますか?</para>
        </question>

        <answer>
          <para>SMP は、3.0-STABLE とそれ以降のリリースでのみサポートされています。
            <emphasis>GENERIC</emphasis> カーネルでは SMP は有効化されていませんので、
            SMP を有効化するにはカーネルを再構築する必要があります。
            <filename>/sys/i386/conf/LINT</filename> を見て、
            カーネルコンフィグファイルにどのオプションを追加すれば良いのか確かめてください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="asusk7v-boot-failure">
          <para>ASUS K7V マザーボードのシステムでブートフロッピーを使うと、
            システムがハングアップします。
            対応策はありませんか?
          </para>
        </question>

        <answer>
          <para>BIOS セットアップで
            <quote>起動時のウィルス保護機能</quote> を無効化してください。</para>
        </answer>
      </qandaentry>

    </qandaset>
  </chapter>

  <chapter id="troubleshoot">
    <title>トラブルシューティング</title>

    <para>
      <emphasis>訳:
        &a.jp.yoshiaki;、
        19971110</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="awre">
          <para>ハードディスクに不良ブロックがあります!</para>
        </question>

        <answer>
          <para>
            SCSI ディスクの場合は自動的に再マップする機能があるはずです。
            しかし、理解し難い理由から多くのドライブがこの機能が無効化
            されて出荷されています…。
          </para>

          <para>
            これを有効化するには、
            最初のデバイスのモードページを変更する必要があります。
            これは次のコマンドを実行することで、FreeBSD
            上で行なうことができます
            (<username>root</username> 権限で行ないます)。
          </para>

         <screen>&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput></screen>

          <para>
            そして、<acronym>AWRE</acronym><acronym>ARRE</acronym>
            の値を 0 から 1 へ変更します
          </para>

          <screen>AWRE (Auto Write Reallocation Enbld):  1
ARRE (Auto Read Reallocation Enbld):  1</screen>

          <para>
            以下は、<ulink url="mailto:tedm@toybox.placo.com">Ted
              Mittelstaedt 氏</ulink>から寄せられたものです。
          </para>

          <para>
            IDE ドライブの場合は通常、不良ブロックは潜在的な障害の兆候です。
            最近の IDE ドライブは、内部の不良ブロック再マッピング機能を有効にした状態で
            出荷されています。また、今日の IDE ハードディスクメーカは、
            出荷以降に不良ブロックが発生することに関して保証を提供していて、
            不良ブロックのあるディスクドライブを交換するサービスを行なっています。
          </para>

          <para>
            もし、不良ブロックのある IDE ディスクドライブを復旧しようと思うなら、
            IDE ドライブメーカが提供する IDE 診断プログラムをダウンロードして、
            そのドライブに使ってみてください。この種のプログラムは大抵、
            ドライブの制御部分に対して不良ブロックを再走査し、
            不良ブロックを使用不能にするようにセットすることができます。
          </para>

          <para>
            ESDI、RLL および MFM ドライブの場合、
            不良ブロックはドライブの正常な部分であり、
            一般的に言って障害を表すものではありません。
            PC では、ディスクドライブコントローラカードと
            BIOS が不良ブロックの使用不能化の作業を行ないます。
            DOS など、ディスクアクセスに BIOS
            を経由する OS にとっては有効に働きますが、FreeBSD
            のディスクドライバは BIOS を利用しません。そのため、
            代替として bad144 という機構が存在します。
            bad144 は、wd ドライバでだけ (つまり FreeBSD 4.0
            ではサポートされていない)動作し、SCSI ドライバに利用することは
            <emphasis>できません</emphasis>。bad144 は、
            検出された不良セクタをスペシャルファイルに記録するという機能を持っています。
          </para>

          <para>
            bad144 を利用する上で、注意しなければならない点が一つあります。
            それは、不良ブロックスペシャルファイルは、
            ディスクの最終トラックに置かれるということです。
            このファイルには、ディスクの先頭の付近、
            <filename>/kernel</filename>
            ファイルが位置しているであろう部分で発生した不良セクタが記録されています。
            したがって、このファイルは BIOS
            コールを使ってカーネルファイルを読み込む起動プログラムが、
            アクセス可能でなければなりません。
            これはつまり、bad144 を利用するディスクは
            1024 シリンダ、16 ヘッド、63 セクタを超えてはならないということを意味し、
            bad144 を利用したディスクが実質 500MB を超えられないことになります。
          </para>

          <para>
            bad144 を使うには、FreeBSD のインストール時に表示される fdisk 画面で
            <quote>Bad Block</quote> 走査を ON に設定するだけです。
            これは、FreeBSD 2.2.7 以降で機能します。
            ディスクは、1024 シリンダ以内でなければなりません。
            ディスクドライブは事前に少なくとも 4 時間、
            ディスクが温度によって膨張し、
            トラックに曲がりが出るまで回転させることをお薦めします
            (訳注: 温度変化に対する膨張によって、
            ディスクが微小変形することにより発生する不良セクタを確実に検出するためです)。
          </para>

          <para>
            大容量の ESDI ドライブのように 1024 シリンダを超えるディスクの場合、
            DOS 上でそのディスクが利用できるよう、
            ESDI コントローラは特殊な変換モードを利用します。
            fdisk の <quote>set geometry</quote> コマンドを使って
            <quote>変換された (translated)</quote>
            ジオメトリに切替えると、wd ドライバはこの変換モードを解釈できます。
            その際、FreeBSD パーティションを作成するのに
            <quote>dangerously dedicated</quote>
            モードを利用してはいけません。
            このモードは、そのようなジオメトリを無視するからです。
            たとえ fdisk がオーバーライドされたジオメトリ情報を使ったとしても、
            依然としてディスクの真の大きさを保持しているため、大きすぎる FreeBSD
            パーティションを作成しようとしてしまうでしょう。
            ディスクジオメトリ情報が変換されたジオメトリ情報にかわっている場合は、
            手動でブロック数を入力し、
            パーティションを作成する必要があります。
          </para>

          <para>
            大容量の ESDI ディスクを ESDI コントローラでセットアップするには、
            ちょっとしたトリックを使います。まず、DOS のディスクで起動して
            そのディスクを DOS パーティションとしてフォーマットします。
            そして FreeBSD を起動し、インストーラの fdisk 画面で
            DOS パーティションのブロックサイズとブロック数を読みとり、メモしておきます。
            ジオメトリ情報を DOS が利用しているものと同一に再設定し、
            DOS パーティションを削除して <quote>cooperative</quote> FreeBSD パーティションを
            先程記録したブロックサイズを使って作成してください。
            そのパーティションを起動可能パーティションに設定し、不良ブロック走査を
            有効にします。 実際のインストールでは、ファイルシステムが作成される前に
            bad144 が最初に実行されます (Alt-F2 を押すことで状況を確認できます)。
            不良セクタファイルを作成中に何らかの障害が発生したなら、
            システムを再起動して、もう一度最初からやり直しになります。
            おそらくディスクジオメトリ情報の設定を大きくしすぎているのでしょう
            (やり直しは、DOS によるフォーマットとパーティション確保を含みます)。
          </para>

          <para>
            もし、不良ブロックの再マッピングを有効にしていて不良ブロックが見付かったら、
            ドライブの交換を考えてください。不良ブロックは、時間とともに悪化するからです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="bustek742a-eisa-scsi">
          <para>Bustek 742a EISA SCSI が認識されません。</para>
        </question>

        <answer>
          <para>
            この情報は 742a のためのものですが、他の Buslogic カードについても
            同様のことが言えます。(Bustek = Buslogic)
          </para>

          <para>
            742a カードには大きくわけて 2 つの「バージョン」が存在します。
            ハードウェアリビジョンの A-G と H 以降です。リビジョンの
            文字はカードの隅にあるアセンブリ番号の後ろにあります。
            742a は二つの ROM チップを持っており、一つは BIOS チップで
            もう一つはファームウェアチップです。FreeBSD はあなたの
            持っているものがどの BIOS バージョンかは問題ありませんが、
            ファームウェアバージョンについては問題となります。
            Buslogic の技術サポート部門に連絡すれば、アップグレード版の
            ROM を送ってくれることでしょう。BIOS チップと
            ファームウェアチップはペアで出荷されます。
            アダプタカードのハードウェアリビジョンにあわせた
            最も新しいファームウェア ROM を使用しなければなりません。
          </para>

          <para>
            リビジョン A-G のカードには、2.41/2.21 までの
            BIOS/ファームウェアのセットを使用することができます。
            リビジョン H 以降のカードには、最新のものである
            4.70/3.37 の BIOS/ファームウェアのセットを
            使用することができます。これらのファームウェアの違いは、
            ファームウェア 3.37 が 「ラウンドロビン方式」
            をサポートしているところからきています。
          </para>

          <para>
            Buslogic のカードには、製造番号も刻印されています。古い
            ハードウェアリビジョンのカードを持っている場合は、Buslogic の RMA
            部門に問い合わせて製造番号を伝えると、新しいハードウェアリビジョンの
            カードに交換することもできます。もしカードが十分新しければ、彼らは
            交換に応じてくれるでしょう。
          </para>

          <para>
            FreeBSD 2.1 は ファームウェアリビジョン 2.21
            以降のものをサポートしています。
            これよりも古いファームウェアリビジョンのものは、
            Buslogic カードとして正常に認識されません。
            しかし、Adaptec 1540 として認識されるかもしれません。
            初期の Buslogic のファームウェアは AHA1540 「互換」モードを
            持っています。しかし、EISA カードにとってこれは
            よいことではありません。
          </para>

          <para>
            古いハードウェアリビジョンのカードを持っていてファームウェア
            2.21 を入手するのであれば、ジャンパ W1 の位置をデフォルトの
            A-B から B-C に合わせる必要があるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="hpnetserver-scsi-failure">
          <para>HP Netserver 上のオンボード SCSI コントローラが認識されません。</para>
        </question>

        <answer>
          <para>
            基本的にこれは既知の問題です。HP Netserver マシンの
            EISA オンボード SCSI コントローラは EISA のスロット番号 11
            を占有しますが、「本当の」EISA
            スロットはすべてそれよりも前のアドレスに配置されているのです。
            残念ながら、
            10 番以上の EISA スロットは PCI
            に割り当てられたアドレス空間と衝突し、FreeBSD
            の自動コンフィグレーションは、
            現状ではうまくこの状況を処理できていないのです。
          </para>

          <para>
            ですから現時点での最良の方法は、カーネルオプションの
            <literal>EISA_SLOTS</literal>12 に変え、
            アドレス空間の衝突がないかの
            ようなふりをさせることです :)
            <ulink url="../handbook/kernelconfig.html">カーネルの再構築</ulink>に記述されているようにしてカーネルを再構築してください。</para>

          <para>
            もちろん、これはこのようなマシンにインストールする際に
            「卵が先か、
            鶏が先か」といった問題を生み出すことになります。
            この問題を回避するために、
            <emphasis>ユーザコンフィグ (UserConfig)</emphasis>
            の中には特別な仕組みが組み込まれています。
            このとき <quote>visual</quote> インタフェースは使用せず、
            コマンドラインインタフェースを使用してください。単純に
          </para>

          <programlisting>eisa 12
quit</programlisting>

          <para>
            とプロンプト上から打ち込み、
            後は普通にインストールを行なってください。
            とにかくカスタムカーネルのコンパイルとインストールを行なうことを
            おすすめします。
          </para>

          <para>
            うまくいけば、将来のバージョンではこの問題が解決していることでしょう。
          </para>

            <note>
              <para>HP Netserver
                では<literal>危険覚悟の専用ディスク</literal>は使用できません。
                詳細については <link linkend="dedicate">この注意事項</link>をご覧ください。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cmd640-ide">
          <para>この CMD640 IDE コントローラはどこかおかしいようです。</para>
        </question>

        <answer>
          <para>
            それは壊れているのです。両方のチャンネルを同時に制御できないのです。
          </para>

          <!-- hrs/2000/03/09 needs &man.wd.4; -->
          <para>
            現在、このチップを使っているシステムを自動的に検出して、
            うまく動かすためのしくみが使えるようになっています。
            くわしくは wd(4) のマニュアルページを参照してください。
          </para>

          <para>
            CMD640 IDE コントローラを使っているシステムで FreeBSD 2.2.1
            あるいは 2.2.2 を使い、
            かつセカンダリのチャネルを使いたいのであれば、
            <literal>options "CMD640"</literal>
            を有効にしてカーネルを作り直してください。
            FreeBSD 2.2.5 以降では、デフォルトでそうなっています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ed1-timeout">
          <para><literal>ed1: timeout</literal>
            のようなメッセージがいつも出ます。</para>
        </question>

        <answer>
          <para>
            たぶん IRQ の衝突が原因でしょう (二つのボードが同じ IRQ
            を使用しているなど)。FreeBSD 2.0.5R
            以前はこれに関して寛大で、
            IRQ の衝突があってもネットワークドライバは機能していました。
            しかし 2.0.5R 以降はもはや、IRQ の衝突に寛大ではありません。
            <option>-c</option> オプションをつけて起動し、
            ed0/de0/... のエントリをボードの設定に合わせてください。
          </para>

          <para>
            ネットワークカードの BNC
            コネクタ (訳注: 10BASE-2 タイプのインタフェース)
            を使っている場合、
            デバイスのタイムアウトはターミネーションの不良によっても起きます。
            これをチェックするにはケーブルを外してターミネータを直接 NIC
            に接続します。そしてエラーメッセージが消えるかどうか
            確認します。
          </para>

          <para>
            NE2000 コンパチブルカードのなかには、
            UTP ポートのリンクがなかったりケーブルが接続されていない場合に
            このエラーを出すものがあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mount-cd-superblock">
          <para>CDROM をマウントしようとすると
            <literal>Incorrect super block</literal> と言われます。</para>
        </question>

        <answer>
          <para>&man.mount.8;
            にマウントしたいデバイスのタイプを指定する必要があります。
            デフォルトでは &man.mount.8;
            はファイルシステムを
            <literal>ufs</literal> とみなします。CDROM のファイルシステムを
            マウントしたいのであれば <option>-t cd9660</option>
            と &man.mount.8; にオプションをつけて明示する必要があります。
            これはもちろん
            CDROM が ISO 9660 ファイルシステムである場合です。ほとんどの
            CDROM はこの形式です。1.1R の FreeBSD では (訳注: 2.1.5R、
            2.2R でも同様です) 自動的に
            Rock Ridge 拡張 (長いファイル名への対応) をうまく解釈します。
          </para>

          <para>
            CDROM のデバイス <devicename>/dev/cd0c</devicename><filename>/mnt</filename>
            にマウントしたい場合の例では、次のようにします。
          </para>

          <screen>&prompt.root; <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput></screen>

          <para>デバイスの名前はインタフェースによっては別の名前になっている
            かもしれないので注意してください
            (<devicename>/dev/cd0c</devicename> はこの場合の例です)。
            オプション <option>-t cd9660</option> によって
            <command>mount_cd9660</command>
            コマンドが実行されることに注意してください。
            このため例は次のようにすることもできます。
          </para>

          <screen>&prompt.root; <userinput>mount_cd9660 /dev/cd0c /mnt</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cdrom-not-configured">
          <para>CDROM をマウントしようとすると
            <literal>Device not configured</literal>
            と言われます。</para>
        </question>

        <answer>
          <para>
            これは 一般的に CDROM ドライブの中に CDROM が入っていないか、
            ドライブがバス上に見えないことを意味します。ドライブに CDROM
            を入れるか、IDE (ATAPI) であれば master/slave
            の状態をチェックしてください。
            また、CDROM ドライブに CDROM
            を入れてから認識するまでには数秒かかりますので、
            少し待ってみてください。
          </para>

          <para>
            SCSI CDROM ではバスリセットへの応答時間が遅いために、
            失敗することがあるかもしれません。
            SCSI CDROM を持っている場合は、
            カーネルコンフィグレーションファイルに以下の行を加えて
            再コンパイルして試してみてください。
          </para>

          <programlisting>options "SCSI_DELAY=15"</programlisting>

            <note>
              <title>訳注</title>
              <para>
                現在の GENERIC カーネルでは上の設定はデフォルトになっています。
                問題がある場合は <literal>SCSI_DELAY</literal>
                の数値を増やしてみてください。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cdrom-unicode-filenames">
          <para>CDROM をマウントすると、ファイル名中の英数字以外の
            文字が、<quote>?</quote> と表示されてしまいます。</para>
        </question>

        <answer>
          <para>もっともありそうなのは、その CDROM が
            <quote>Joliet</quote> 拡張を利用してファイルおよび
            ディレクトリに関する情報を保存しているということです。この拡張は、
            すべてのファイル名を Unicode の 2 バイト文字で保存するように
            規定しています。現在、FreeBSD カーネルに汎用的な Unicode
            インタフェースを導入する作業が行われていますが、
            まだ完了していません。したがって、CD9660
            ドライバはファイル名の文字を解読できません。</para>

          <para>一時的な解決策として、FreeBSD 4.3R 以降では、CD9660
            ドライバに特別な仕掛けを施して、ユーザーがその場で適切な
            変換表を読み込めるようにしました。一般的なエンコーディングに
            対応したいくつかのモジュールが
            <filename>sysutils/cd9660_unicode</filename> port
            で提供されています。</para>

          <note>
            <title>訳注</title>
            <para>この記述は古くなっています。<ulink
              url="../../../en_US.ISO8859-1/books/faq/disks.html#CDROM-UNICODE-FILENAMES">
              英語版の記述</ulink>をご覧ください。</para>
          </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="printer-slow">
          <para>私のプリンタはとてつもなく遅いのです。
            どうしたらよいのでしょう?</para>
        </question>

        <answer>
          <para>
            パラレルインタフェースで、問題はとんでもなく遅いだけであるなら、
            プリンタボートを <quote>polled</quote>
            モードに設定してみてください。</para>

          <screen>&prompt.root; <userinput>lptcontrol -p</userinput></screen>

          <para>
            HP の新しいプリンタには、
            割り込みモードで使えないものがあるようです
            (完全にわかったわけではありませんが)。
            タイミングの問題のように思われます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="signal11">
          <para>わたしのプログラムは時々
            <literal>Signal 11</literal>
            のエラーで止まってしまいます。</para>
        </question>

        <answer>
          <para>Signal 11 エラーはオペレーティングシステムが
            許可を与えていないメモリにアクセスしようとしたときに発生します。
            このようなことがランダムな間隔で起っているようなら、
            注意深く調査していった方が良いです。</para>

          <para>この手の問題はたいていの場合、以下のどちらかです。</para>

          <orderedlist>
            <listitem>
              <para>その問題が特定の、
                あなたが自分で開発したアプリケーションでのみ起っているなら、
                あなたのコードにバグがあるのでしょう。</para>
            </listitem>

            <listitem>
              <para>それが FreeBSD のベースシステムの一部と関連する問題なら、
                コードにバグがあるということになります。
                しかしほとんどの場合、
                普通の FAQ の読者がそのようなコードを使うようになるずっと前に、
                そういった問題は発見され、修正されているはずです
                (それが -current の役目なのですから)。</para>
            </listitem>
          </orderedlist>

          <para>それが FreeBSD のバグでは「ない」という決定的なケースとして、
            その問題の発生がプログラムをコンパイルしているときであり、
            コンパイル毎に毎回、コンパイラの挙動が変るというものがあります。</para>

          <para>たとえば、あなたが <quote>make buildworld</quote> を実行していて、
            コンパイラが ls.c から ls.o をコンパイルしようとしたときに
            コンパイルに失敗したとします。もう一度 <quote>make buildworld</quote>
            を実行したときに、まったく同じ場所でコンパイルが失敗したのなら、
            それは build が壊れている (訳注: つまりソースにバグがある)
            と言うことです -- ソースを更新してやりなおしてみてください。
            もしコンパイルが別の場所でしくじっていたら、
            それはハードウェアの問題です。</para>

          <para>あなたのやるべき事は:</para>

          <para>前者の場合は、
            そのプログラムの間違ったアドレスへアクセスしようとしている部分を、
            gdb 等のデバッガで見つけて修正します。</para>

          <para>後者の場合は、
            ハードウェアに問題がないことを確かめる必要があります。</para>

          <para>その一般的な原因として :</para>

          <orderedlist>
            <listitem>
              <para>ハードディスクが熱を持ちすぎているかも知れません:
                ケースのファンがちゃんと動いていてディスクを冷やしているか
                確かめてください (たぶん、他の部品も過熱しています)。</para>
            </listitem>

            <listitem>
              <para>CPU がオーバーヒートしています:
                CPU をオーバークロックしていませんか? さもなければ
                CPU ファンが死んでいるのかもしれません。
                いずれにせよ、少なくとも問題解決の間では
                ハードウェアが動くべく指定された条件で動かしてください。
                クロックはデフォルトの設定に戻してください。</para>

              <para>もしあなたがクロックアップをしているのなら、
                遅いシステムでも、システムが焼き付いて
                買い換えなければならなくなるよりずっとマシだということを
                覚えておいた方が良いでしょう。
                大きいコミュニティでは特に、
                あなたがそれが安全だと思っているかどうかは関係なく、
                オーバークロックしたシステムに発生した問題には同情的ではありません。</para>
            </listitem>

            <listitem>
              <para>怪しいメモリ:
                もし複数の SIMM や DIMM を使っているならそれを全部抜いてから
                各 SIMM や DIMM を別個に組み込んだシステムを立ち上げてることで
                どの DIMM/SIMM が怪しいのか、それとも組合わせが悪いのか
                と問題の幅が狭まります。</para>
            </listitem>

            <listitem>
              <para>楽観的すぎるマザーボードの設定:
                ほとんどの場合に標準設定で十分なタイミングを、
                BIOS の設定やマザーボード上のジャンパピンを変えることで、
                さまざまに変更することができます。しかし時には RAM の
                アクセスウェイトを低くしすぎたり <quote>RAM Speed: Turbo</quote> や
                その手の BIOS の設定でおかしな挙動が起こることがあります。
                BIOS を標準の設定に戻すというのはいいアイディアですが、
                その前にあなたの設定を書き留めておいた方がいいでしょう。</para>
            </listitem>

            <listitem>
              <para>マザーボードへの電源が安定していない。
                もし使っていない I/O ボードやハードディスク、
                CDROM 等があるなら、一旦それらから電源ケーブルを抜き、
                電源が小さな負荷ならなんとか動作するか確認しましょう。
                あるいは別の電源を試してみましょう。
                その時はなるべく、少し容量の大きいもので試しましょう
                (たとえば、今の電源容量が 250W だったら 300W
                のものを試します)。</para>
            </listitem>
          </orderedlist>

          <para>SIG11 FAQ (下に示します) にはこれらの問題のすべてが
            詳しく説明されています。Linux の視点に基づくものですが、
            これも読んでおいた方がいいでしょう。そこではまた、
            メモリのテストを行うソフトウェアや、
            ハードウェアがなぜ問題のあるメモリを見逃してしまうかについても
            議論されています。</para>

          <para>最後に、これらがどれも助けにならなかったら、
            FreeBSD のバグを発見した可能性があります。
            以下の説明を読んで障害報告を送ってください。</para>

          <para>詳細な FAQ は、<ulink url="http://www.bitwizard.nl/sig11/">
              the SIG11 problem FAQ</ulink> にあります。</para>
          </answer>
      </qandaentry>

      <qandaentry>
        <question id="screen-loses-sync">
          <para>起動の時に画面が真っ暗になって同期も取れません。</para>
        </question>

        <answer>
          <para>
            これは ATI Mach 64 ビデオカードの既知の問題です。
            この問題はカードがアドレス <literal>2e8</literal> を使い、
            4 番目のシリアルポートもここを使うということにあります。
            &man.sio.4; ドライバのバグ (仕様?) のため、
            4 番目のシリアルポートがなくても、
            通常このアドレスを使う sio3 (4 番目のポートにあたります)
            を無効にしても、ドライバはこのアドレスをさわります。
          </para>

          <para>
            バグが修正されるまでは、次のようにして対処してください。
          </para>

            <orderedlist>
              <listitem>
                <para>起動プロンプトが出たら <option>-c</option> と入力します
                  (これによりカーネルはコンフィグレーションモードに入ります)。
                </para>
              </listitem>

              <listitem>
                <para>
                  <devicename>sio0</devicename>,
                  <devicename>sio1</devicename>,
                  <devicename>sio2</devicename>,
                  <devicename>sio3</devicename> (これらすべて) を無効にします。
                  これによって &man.sio.4; ドライバは動作しなくなりますが、問題はありません。
                </para>
              </listitem>

              <listitem>
                <para>exit と入力して起動を続行します。</para>
              </listitem>
            </orderedlist>

          <para>
            もしシリアルポートを有効にしたいのであれば以下の変更を行なって
            新しいカーネルを作る必要があります。
            <filename>/usr/src/sys/i386/isa/sio.c</filename> の中で 1 ヵ所ある
            <literal>0x2e8</literal> という文字列を探し、
            この文字列とその手前にあるコンマを削除します
            (後ろのコンマは残します)。
            後は通常の手続きにしたがって新しいカーネルを作ります。
          </para>

          <para>
            この対処を行なった後でもまだ
            X ウィンドウシステムはうまく動かないかもしれません。
            その場合は、
            使用している XFree86 がすくなくとも XFree86 3.3.3
            以降であることを確かめてください。
            それ以降のバージョンでは、
            Mach64 カードやそれらのカードのためにつくられた
            X サーバ の組込みをサポートします。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="reallybigram">
          <para>128MB の RAM があるのですが、64MB しか認識しません。</para>
        </question>

        <answer>
          <para>
            FreeBSD がメモリのサイズを BIOS から取得する方法の制限により、
            KB 単位で 16 ビット分までしか検出できません (すなわち最大
            65535KB=64MB です。これより少ない場合もあります。
            ある BIOS の場合はメモリサイズが 16MB に制限されます)。
            64MB 以上のメモリを積んでいる場合、
            FreeBSD はそれを検出しようとします。
            しかしその試みは失敗するかもしれません。
          </para>

          <para>
            この問題を回避するには、
            以下に示すカーネルオプションを使用する必要があります。
            完全なメモリ情報を BIOS から取得する方法もありますが、
            起動ブロックに空きが無いため実装できません。
            起動ブロックの問題が解決されれば、
            いつか拡張 BIOS 機能を使用して完全なメモリ情報を取得できるようになるでしょう。
            とりあえず現在は、カーネルオプションを使ってください。
          </para>

          <para><literal>options "MAXMEM=<replaceable>n</replaceable>"</literal></para>

          <para>
            <replaceable>n</replaceable> には、
            キロバイト単位でメモリの量を指定します。128MB
            の場合は、<literal>131072</literal> となります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="panic-kmemmap-too-small">
          <para>FreeBSD 2.0 が
            <literal>kmem_map too small!</literal>
            と言ってパニックします。</para>
        </question>

        <answer>
            <note>
              <para>メッセージは、<literal>mb_map too small!</literal>
                の場合もあります。
              </para>
            </note>

          <para>
            このパニックは、ネットワークバッファ (特に mbuf
            クラスタ) の仮想メモリが無くなったことを示します。
            以下のオプションをカーネルコンフィグファイルに追加して
            mbuf クラスタに使用できる仮想メモリの量を増やしてください。
          </para>

          <para><literal>options "NMBCLUSTERS=<replaceable>n</replaceable>"</literal></para>

          <para>
            <replaceable>n</replaceable>
            には、
            同時に使用したい TCP コネクションの数に応じて
            512 から 4096 までの数値を指定できます。
            とりあえず 2048 を試してみるのをおすすめします。
            これでパニックは完全の予防できるはずです。
            mbuf クラスタの割り当て、使用状況については、
            <command>netstat -m</command> で知ることができます
            (&man.netstat.1; をご覧ください)。
            <literal>NMBCLUSTERS</literal> のデフォルト値は
            <literal>512 + MAXUSERS * 16</literal> です。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cmap-busy-panic">
          <para>新しいカーネルで再起動すると
            <literal>CMAP busy panic</literal>
            となってパニックを起こしてしまいます。
          </para>
        </question>

        <answer>
          <para>
            ファイル <filename>/var/db/kvm_*.db</filename>
            において範囲外のデータを検出するためのロジックは失敗することがあり、
            こうした矛盾のあるファイルを使用することでパニックを引き起こすことがあります。
          </para>

          <para>
            これが起こったなら、シングルユーザで再起動した後に、
            以下のコマンドを実行してください。
          </para>

          <screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="brkadrint-illegal-host-access">
          <para><literal>ahc0: brkadrint,  Illegal Host Access at seqaddr 0x0</literal>
            というエラーが出ます</para>
        </question>

        <answer>
          <para>
            これは Ultrastor SCSI Host Adapter と衝突しています。
          </para>

          <para>
            起動時に kernel configuration メニューに入り、
            問題を起こしている
            <devicename>uha0</devicename>
            を disable にしましょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mail-loopback">
          <para>sendmail が <literal>mail loops back to myself</literal>
            というメッセージを出すのですが。</para>
        </question>

        <answer>
          <para>
            この事は、sendmail FAQ に次のように書いてあります。
          </para>

<literallayout>        * "Local configuration error" というメッセージが出ます。たとえば:

        553 relay.domain.net config error: mail loops back to myself
        554 &lt;user@domain.net&gt;... Local configuration error

        のような物ですが、どのようにしたらこの問題を解決できますか?

        これは、たとえば domain.net のようなドメイン宛てのメールを MX record で
        特定のホスト (ここでは relay.domain.net) に送ろうとしたのに、
        そのホストでは domain.net 宛てのメールを受け取れるような設定に
        なっていない場合です。設定の際に FEATURE(use_cw_file) を
        指定してある場合には /etc/sendmail.cw の中に domain.net を
        追加してください。もしくは、/etc/sendmail.cf の中に
        "Cw domain.net" を追加してください。
            </literallayout>

          <para>
            もはや現在の
            <ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">sendmail FAQ</ulink>
            は sendmail release とは一緒には保守されていません。
            しかし次のネットニュースに定期的に投稿されてます。
            <ulink url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>、
            <ulink url="news:comp.mail.misc">comp.mail.misc</ulink>、
            <ulink url="news:comp.mail.smail">comp.mail.smail</ulink>、
            <ulink url="news:comp.answers">comp.answers</ulink>、
            <ulink url="news:news.answers">news.answers</ulink>。
            また、メール経由でコピーを入手する場合は
            <ulink url="mailto:mail-server@rtfm.mit.edu">mail-server@rtfm.mit.edu</ulink>
            宛まで本文に <literal>send usenet/news.answers/mail/sendmail-faq</literal>
            と書いて送ります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="remote-fullscreen">
          <para>リモートマシン上のフルスクリーンアプリケーションがうまく動かない</para>
        </question>

        <answer>
          <para>
            リモートマシンのターミナルタイプが FreeBSD
            のコンソールで必要とされている <literal>cons25</literal>
            以外のものです。
          </para>

          <para>この問題を解決しうる方法はいろいろあります:</para>

            <itemizedlist>
              <listitem>
                <para>リモートマシンにログインした後、
                  そのリモートマシンが
                  <literal>ansi</literal> か
                  <literal>sco</literal>
                  のターミナルタイプを知っているなら、
                  shell 変数の TERM にそれらのいずれかを設定します。
                </para>
              </listitem>

              <listitem>
                <para>FreeBSD のコンソール側で
                  <application>screen</application>
                  のような VT100 エミュレータを使用します。
                  <application>screen</application>
                  は一つのターミナルの中で複数のセッションを並列動作させることができますし、
                  本来の機能も優れています。
                  各々の <application>screen</application> のウィンドウは
                  VT100 ターミナルのように振る舞うので、
                  リモート側で設定されるべき TERM 変数は
                  <literal>vt100</literal> となります。
                </para>
              </listitem>

              <listitem>
                <para>リモートマシンのターミナルデータベースに
                  <literal>cons25</literal>
                  のエントリをインストールします。
                  このインストール方法はリモートマシンのオペレーティングシステムに依存します。
                  リモートのシステムのシステム管理マニュアルが役に立つことでしょう。
                </para>
              </listitem>

              <listitem>
                <para>FreeBSD 側で X サーバを起動して、
                  リモートマシンに <command>xterm</command>
                  や <command>rxvt</command>
                  のような X ベースのターミナルエミュレータを使ってログインします。
                  (訳注: 日本語が必要な場合は <command>kterm</command> 等を
                  利用します)
                  リモートホストの TERM 変数は
                  <literal>xterm</literal> もしくは
                  <literal>vt100</literal> (訳注: もしくは <literal>kterm</literal>)
                  に設定します。
                </para>
              </listitem>
            </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="calcru-negative">
          <para>私のマシンで <literal>calcru: negative time...</literal>
            と表示されるのですが</para>
        </question>

        <answer>
          <para>
            これは、割り込みに関連するさまざまな不具合によって発生します。
            あるいは、あるデバイスが元々持っているバグが表面化したのかも知れません。
            この症状を再現させる一つの方法として、パラレルポート上で、
            TCP/IP を 大きな MTU
            で走らせるというものがあります。
            グラフィックアクセラレータがこの症状を起こすことがありますが、
            その場合はまず、カードの割り込み設定を確認してください。
          </para>

          <para>
            この問題の副作用として、
            プロセスが <quote>SIGXCPU exceeded cpu time limit</quote>
            というメッセージとともに終了してしまう、というものがあります。</para>

          <para>
            1998 年 11 月 29 日に公開された FreeBSD 3.0 以降で
            この問題が解決しないなら、次の sysctl 変数をセットしてください。
          </para>

          <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>

          <para>
            これは、パフォーマンスへ強い影響を与えますが、
            問題の発生に比べればおそらく気にならない程度でしょう。
            もし、これでもまだ問題が残るようなら、
            カーネルオプションの <literal>NTIMECOUNTER</literal>
            を大きな値に増やしてください。
            <literal>NTIMECOUNTER=20</literal>
            にまで増やしても解決しない場合は、
            計時処理の信頼性が保てない程の割り込みが、
            そのマシン上で起こっていることを意味します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="pcm0-not-found">
          <para><literal>pcm0 not found</literal> という表示を見たり
            カーネルコンフィグレーションファイルには <literal>device pcm0</literal> と
            書いてあるのにサウンドカードが <literal>pcm1</literal> として
            発見されたりします。</para>
        </question>

        <answer>
          <para>これは FreeBSD 3.x で PCI のサウンドカードを使っているときに
            発生します。<literal>pcm0</literal> デバイスは ISA
            のカード専用に予約されているものです。このため、
            あなたが PCI カードを持っているときはこのエラーが表示され、
            カードは <literal>pcm1</literal> として検出されます。
          </para>

            <note>
              <para>この警告を、単にカーネルコンフィグファイルの当該行を
                <literal>device pcm1</literal> に変更することで
                抑制することはできません。その時は <literal>pcm1</literal>
                が ISA カードのために予約され、PCI のカードは
                <literal>pcm2</literal> として
                (<literal>pcm1 not found</literal> の警告とともに)
                検出されます。</para>
            </note>

          <para>
            PCI のサウンドカードを持っているのならば、以下のようにして
            <literal>snd0</literal> デバイスのかわりに <literal>snd1</literal>
            を作る必要があります。</para>

          <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV snd1</userinput></screen>

          <para>この状況は FreeBSD 4.x では生じません。多くの努力の結果より
            <emphasis>PnP 中心</emphasis>に作り替えられ、
            現在、<literal>pcm0</literal> デバイスは ISA
            カード専用に予約されたものではなくなりました。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="pnp-not-found">
          <para>プラグアンドプレイのカードが認識されなくなりました
            (または、<literal>unknown</literal> と認識されるようになりました)。</para>
        </question>

        <answer>
          <para>現在の FreeBSD 4.x はより <emphasis>PnP 中心</emphasis>に
            なっています。その副作用の影響で、FreeBSD 3.x で動いていた PnP デバイス
            (たとえばサウンドカードや内蔵モデム) の中には、
            動かなくなってしまったものもあります。</para>

          <para>この挙動の原因は Peter Wemm が freebsd-questions
            メーリングリストに書いた、以下の
            「FreeBSD 4.x にアップグレードしたところ内蔵モデムが
            見つからなくなった」というメールで解説されています。
            (わかりやすくするために <literal>[]</literal> 内に
            コメントを加えました)。</para>

          <blockquote>
            <para>PnP BIOS はあらかじめ、[モデムを]
              ポート空間に存在しているかのように設定します。
              そのため [3.x では] 従来の手法に基づく ISA
              デバイスの検索により、モデムの存在を「発見」できます。
            </para>

            <para>4.0 の ISA コードは、より PnP 中心になっています。
              [3.x では] ISA デバイスの検索が「はぐれた」デバイスを発見して、
              次に PNP デバイス ID のマッチが行なわれることでリソースの競合が発生し、
              デバイスの検索に失敗する可能性があります。
              したがって、4.0 の ISA コードでは
              二重に検索しないよう、プログラマブルなカードを
              最初に無効にしています。
              これは、対応している PnP ハードウェアの PnP ID が、
              予めわかっている必要がある、ということを意味します。
              ユーザがこの挙動にもっと手を入れられるようにすることが
              TODO リスト中にあげられています。</para>
          </blockquote>

          <para>3.0 で動作していたデバイスを 4.0 でも動作するようにするには、
            それの PnP ID を調べ、ISA デバイスの検索が
            PnP デバイスの識別に使っているリストにそれを追加する必要があります。
            デバイスの検索に使われる &man.pnpinfo.8; を用いて、
            PnP ID を得ることができます。
            たとえば、内蔵モデムに関する &man.pnpinfo.8; の出力は、
            以下のようになります。
          </para>

          <screen>&prompt.root; <userinput>pnpinfo</userinput>
Checking for Plug-n-Play devices...

Card assigned CSN #1
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
PnP Version 1.0, Vendor Version 0
Device Description: Pace 56 Voice Internal Plug & Play Modem

Logical Device ID: PMC2430 0x3024a341 #0
        Device supports I/O Range Check
TAG Start DF
    I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
        [16-bit addr]
    IRQ: 4  - only one type (true/edge)</screen>

          <para>[more TAG lines elided]</para>

          <screen>
TAG End DF
End Tag

Successfully got 31 resources, 1 logical fdevs
-- card select # 0x0001

CSN PMC2430 (0x3024a341), Serial Number 0xffffffff

Logical device #0
IO:  0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
IRQ 5 0
DMA 4 0
IO range check 0x00 activate 0x01</screen>

          <para>必要な情報は、出力の冒頭にある
            <quote>Vendor ID</quote> 行にあります。
            かっこの中の 16 進数 (例の中では 0x3024a341) が PnP ID で、
            直前の文字列 (PMC2430) はユニークな ASCII ID です。
            この情報はファイル <filename>/usr/src/sys/isa/sio.c</filename> に
            追加する必要があります。</para>

          <para>まず失敗したときに備えて <filename>sio.c</filename> の
            バックアップを取るべきです。障害報告を送るために修正パッチを
            作る時にも必要になるでしょう (send-pr しようとしていますよね?)。
            <filename>sio.c</filename> を編集して以下の行を探してください。</para>

          <programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>

          <para>そしてあなたのデバイスのエントリを追加する正しい場所を探します。
            エントリは以下のような形をしていて、&man.pnpinfo.8; の
            出力にある <emphasis>デバイスの説明</emphasis>の全部
            (もし収まれば) か一部とともに行の右の方のコメント領域に書かれている
            ASCII ベンダ ID でソートされています。</para>

          <programlisting>{0x0f804f3f, NULL},     /* OZO800f - Zoom 2812 (56k Modem) */
{0x39804f3f, NULL},     /* OZO8039 - Zoom 56k flex */
{0x3024a341, NULL},     /* PMC2430 - Pace 56 Voice Internal Modem */
{0x1000eb49, NULL},     /* ROK0010 - Rockwell ? */
{0x5002734a, NULL},     /* RSS0250 - 5614Jx3(G) Internal Modem */</programlisting>

          <para>あなたのデバイスの16進数のベンダ ID を正しい場所に
            追加し、ファイルをセーブしてカーネルを作り直して再起動します。
            あなたのデバイスは FreeBSD 3.x の時と同じように
            <literal>sio</literal> として見つかるようになっているはずです。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="nlist-failed">
          <para><command>top</command> や <command>systat</command> の
            実行中に <errorname>nlist failed</errorname> という
            エラーがでます。</para>
        </question>

        <answer>
          <para>このエラーは、
            実行しようとしたアプリケーションが
            あるカーネルシンボルを検索した結果、
            何らかの理由でその検索に失敗した、ということを意味しています。
            これは、以下に示すいずれかの理由によるものです。</para>

          <itemizedlist>
            <listitem>
              <para>カーネルとユーザランドが同期していない (つまり
                カーネルは新しいものを構築したが、
                <maketarget>installworld</maketarget> は行なっていない。
                あるいはその逆) ので、
                シンボルテーブルがユーザアプリケーションの考えているものと異なっている。
                もしこのケースなら、一連のアップグレード手順に従ってアップグレードを行なってください
                (正しいやり方は <filename>/usr/src/UPDATING</filename>
                に書いてあります)。</para>
            </listitem>

            <listitem>
              <para>カーネルをロードするのに
                <command>/boot/loader</command> を使わず、
                直接 boot2 (&man.boot.8; 参照) からロードしている。
                もちろん
                <command>/boot/loader</command>
                を使わなくとも問題はないのですが、
                <command>/boot/loader</command> は一般的に、
                ユーザアプリケーションからカーネルシンボルを
                アクセスできるようにするための機能を持っています。</para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="connection-delay">
          <para>&man.ssh.1; や &man.telnet.1; でコンピュータに接続する
            のに、どうしてこんなに時間がかかるのですか?</para>
        </question>

        <answer>
          <para>症状: TCP コネクションが確立してから、
            クライアントソフトウェアがパスワードを尋ねてくるまで
            (&man.telnet.1; の場合は、ログインプロンプトが表示されるまで)
            に長い時間がかかる、というもの。</para>

          <para>問題: おそらく、サーバソフトウェアがクライアントの
            IP アドレスからホスト名を解決しようとして、遅れが生じている
            のでしょう。FreeBSD に付属する SSH や Telnet を含む多くの
            サーバソフトウェアは、この名前解決をおこないます。これは、
            管理者が後日参照するログファイルに、その他の情報と一緒に
            ホスト名を記録できるようにするのが目的です。</para>

          <para>対処法: もし、あなたのコンピュータ (クライアント)
            からどのサーバに接続する場合にも問題が起こるのであれば、
            クライアントに問題があります。そして、誰かがあなたの
            コンピュータ (サーバ) に接続するときだけ問題が起こるのであれば、
            そのサーバの問題です。</para>

          <para>問題がクライアントにある場合、唯一の対処法は
            サーバがそのクライアントの名前を解決できるように DNS を修正することです。
            症状がローカルネットワークで発生しているなら、サーバの設定に
            原因がありますので、このまま続きを読みましょう。
            そうではなく、グローバルなインターネット環境で発生しているなら、
            ISP に連絡して問題の修正をお願いしなければならない可能性が高いでしょう。</para>

          <para>問題がサーバにあって、症状がローカルネットワークで
            発生しているなら、ローカルのアドレス範囲にあるアドレスを、
            それに対応するホスト名に解決する問合せを処理できるように、
            サーバを設定する必要があります。
            詳しくは、&man.hosts.5; および &man.named.8;
            のマニュアルをご覧ください。グローバルなインターネット環境の場合は、
            サーバのリゾルバが正しく動作していないのが原因かもしれません。
            確認するには、他のホスト (たとえば
            <hostid>www.yahoo.com</hostid>) を引いてみてください。
            うまくいかなければ、あなたのコンピュータの問題です。</para>
        </answer>
      </qandaentry>
      <qandaentry>
        <question id="file-table-full">
          <para><errorname>file: table is full</errorname> という
            メッセージが繰り返し dmesg にあらわれます。
          </para>
        </question>
        <answer>
          <para>
            このエラーは、システムのファイル記述子を使い果たして
            しまった時に発生します。メモリ中のファイルテーブルが一杯に
            なっているのです。
          </para>
          <para>解決法:</para>
          <para>
            手動で sysctl 変数
            <varname>kern.maxfiles</varname> の限界値を調整します。
          </para>
          <screen>&prompt.root; <userinput>sysctl -w kern.maxfiles=n</userinput></screen>
          <para><varname>n</varname> は、システム要件に合わせてください。
            オープンされたファイル、ソケットまたは fifo のそれぞれが
            ファイル記述子を消費します。規模の大きなサーバは、
            同時に実行されるサービスに応じて、いともたやすく何万もの
            ファイル記述子を要求します。</para>
          <para>カーネルに設定されたデフォルトのファイル記述子の
            数を決定するのは、次の</para>
          <programlisting>maxusers        32</programlisting>
          <para>カーネル設定ファイルの <varname>maxusers</varname> 行
            です。<varname>kern.maxfiles</varname> はこの値に比例して
            増加します。
          </para>
          <para>現在設定されている <varname>kern.maxfiles</varname> の
            値は、次のコマンドで調べることができます。
          </para>
          <screen>&prompt.root; <userinput>sysctl kern.maxfiles</userinput>
kern.maxfiles: 1064
          </screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="laptop-clock-skew">
          <para>laptop の時間が狂って、大きく進んだり遅れたりします。</para>
        </question>

        <answer>
          <para>laptop には二つ以上の時計が内蔵されていますが、FreeBSD
            が間違った方を選択して使用しています。</para>

          <para>&man.dmesg.8; を実行して
            <literal>Timecounter</literal> を含む行を確認してください。
            最後に出力された行が FreeBSD が選択したもので、まず間違い
            なく <literal>TSC</literal> でしょう。</para>

          <screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 595573479 Hz</screen>

          <para>&man.sysctl.3; 変数
            <literal>kern.timecounter.hardware</literal> を確認すれば
            裏付けがとれます。</para>

          <screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
kern.timecounter.hardware: TSC</screen>

          <para>バッテリ駆動している時に、BIOS が CPU の速度を変えるために
            TSC クロックを変更したり、電力節約モードに入ることがあります。
            しかし、FreeBSD はそういった調整を関知しないので、
            時間が早まったり遅れたりするようです。</para>

          <para>上記の例では、<literal>i8254</literal> クロックも利用できます。
            &man.sysctl.3; 変数 <literal>kern.timecounter.hardware</literal>
            にその名称を書き込んで選択できます。</para>

          <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
kern.timecounter.hardware: TSC -&gt; i8254</screen>

          <para>これで、laptop はより正確な時間を刻むでしょう。</para>

          <para>この変更を起動時に自動で行うには、次の行を
            <filename>/etc/sysctl.conf</filename> に追加してください。</para>

          <programlisting>kern.timecounter.hardware=i8254</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="boot-read-error">
          <para>BIOS 画面が出た後、FreeBSD のブートローダが
            <errorname>Read error</errorname> と表示して止まって
            しまいます。
          </para>
        </question>

        <answer>
          <para>FreeBSD のブートローダがハードディスクのジオメトリを正しく
            認識していないようです。FreeBSD のスライスを
            fdisk によって手動で作成したり変更したりする際に、
            ジオメトリを誤って指定してしまったのでしょう。
          </para>
          <para>ハードディスクのジオメトリの正しい値は、マシンの BIOS から
            得られます。そのハードディスクのシリンダ、ヘッド、セクタの
            数を探してください。
          </para>
          <para>&man.sysinstall.8; の fdisk において、
            <keycap>G</keycap> を入力してハードディスクのジオメトリを
            設定してください。
	  </para>
          <para>シリンダ、ヘッド、セクタの数を入力するダイアログが出てきます。
            BIOS から得た値を斜線 (/) で区切って入力してください。
          </para>
          <para>5000 シリンダ、250 ヘッド、60 セクタなら、
            <userinput>5000/250/60</userinput>
	    と入力します。
          </para>
          <para>リターンキーを押して値を設定してください。それから
            <keycap>W</keycap> を入力してハードディスクに新しいパーティ
            ションテーブルを書き込んでください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="bootmanager-restore">
          <para>別のオペレーティングシステムが、ブートマネージャを
            壊してしまいました。どうすれば復旧できるでしょうか。
          </para>
        </question>

        <answer>
          <para>&man.sysinstall.8; を立ち上げて Configure (設定)、Fdisk
            の順に選択してください。ブートマネージャが置かれていた
            ディスクを選択して、<keycap>スペース</keycap>キーを
            押してください。<keycap>W</keycap> を押して変更を
            ディスクに書き込んでください。どのブートローダを
            インストールするか尋ねられます。ここで選択すれば戻せます。
          </para>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="commercial">
    <title>商用アプリケーション</title>

    <para>
      <emphasis>訳:
        山下 淳 <email>junkun@esys.tsukuba.ac.jp</email>19971110</emphasis></para>

      <note>
        <para>
          この章はまだまだ情報が足りません。
          情報を追加してくれるような企業を待ち望んでいます。
          FreeBSD グループはここに載っている企業からの金銭的な支援を期待してはいませんので、
          奉仕作業の一つとして掲載しています (そして
          FreeBSD が係わる宣伝は、長い目で見ると FreeBSD
          に対してよい方向へ働くと思っています)。
          私たちは商用ソフトウェアベンダに、
          ここで製品を宣伝してもらうことを望んでいます。詳しくは、
          <ulink url="http://www.FreeBSD.org/commercial/commercial.html"
                 >商用ソフトウェアベンダ覧のページ</ulink>をご覧ください。</para>
      </note>

    <qandaset>
      <qandaentry>
        <question id="officesuite">
          <para>FreeBSD 用のオフィススイートはどこで入手できますか?</para>
        </question>

        <answer>
	  <itemizedlist>
  	    <listitem>
              <para><ulink url="http://www.wccdrom.com">BSDi</ulink>
                は FreeBSD ネイティブ版の <ulink
                url="http://www.vistasource.com">VistaSource</ulink>
                ApplixWare 5 を提供しています。</para>

              <para>ApplixWare は、豪華で機能満載の FreeBSD 向けの
                商用オフィススイートで、ワードプロセッサ、表計算、
                プレゼンテーションソフトウェア、ベクタ描画ソフトウェア、
                その他のアプリケーションを揃えています。</para>

              <para>FreeBSD 版の ApplixWare の購入は <ulink
                url="http://www.wccdrom.com/titles/freebsd/applix.phtml">
                こちら</ulink>からどうぞ。</para>
  	    </listitem>

            <listitem>
              <para>Linux 版の <ulink
                url="http://www.sun.com/staroffice">StarOffice</ulink>
                は FreeBSD で完璧に動作します。Linux 版の StarOffice
                をインストールするもっとも簡単な方法は、<ulink
                url="../handbook/ports.html">FreeBSD Ports
                  コレクション</ulink>を利用することです。
                また、オープンソースの
                <ulink url="http://www.openoffice.org">OpenOffice</ulink>
                も将来のバージョンで動作するでしょう。</para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="motif">
          <para>FreeBSD 用の Motif はどうやったら手に入りますか</para>
        </question>

        <answer>
          <para>
            FreeBSD 用の廉価版 ELF Motif 2.1.20 (i386 版、Alpha 版)
            に関する情報は<link linkend="apps2go">Apps2go</link> から
            手に入れることができます。<anchor id="apps2go"/>
          </para>

          <para>
            この製品には、「開発者版 (development edition)」 と、
            より安価な「ランタイム版 (runtime edition)」
            の二つの版があります。これらの製品は以下の物が含まれています。
          </para>

            <itemizedlist>
              <listitem>
                <para>OSF/Motif manager、xmbind、panner、wsm。
                </para>
              </listitem>

              <listitem>
                <para>uil、mrm、xm、xmcxx、インクルードファイルや Imake
                  ファイルといった開発者向けキット
                </para>
              </listitem>

              <listitem>
                <para>FreeBSD 3.0 以降で利用できる ELF 版スタティックライブラリ、
                  およびダイナミックライブラリ
                </para>
              </listitem>

              <listitem>
                <para>デモンストレーションプログラム
                </para>
              </listitem>
            </itemizedlist>

          <para>
            注文する際には FreeBSD 用の Motif であることをきちんと
            確認してください (あなたの欲しいアーキテクチャを指定するのも
            忘れないでください!)。NetBSD や OpenBSD 用の Motif もまた、
            <emphasis>Apps2go</emphasis>から販売されています。現在、FTP による
            ダウンロードのみ利用可能です。
          </para>

            <variablelist>
              <varlistentry>
                <term>より詳しい情報は</term>
                <listitem>
                  <para><ulink url="http://www.apps2go.com/">Apps2go WWW page</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>問い合わせは</term>
                <listitem>
                  <para><ulink url="mailto:sales@apps2go.com">Sales</ulink> または
                    <ulink url="mailto:support@apps2go.com">Support</ulink> 電子メールアドレス。</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>もしくは</term>
                <listitem>
                  <para>phone (817) 431 8775  or +1 817 431-8775</para>
                </listitem>
              </varlistentry>
            </variablelist>

          <para>
            他の FreeBSD 用 Motif 2.1 (ELF 版、a.out 版) に関する情報は
            <link linkend="metrox">Metro Link</link> から手に入れることができます。
          </para>

          <para>この製品は以下の物が含まれています。</para>

            <itemizedlist>
              <listitem>
                <para>OSF/Motif manager、xmbind、panner、wsm。
                </para>
              </listitem>

              <listitem>
                <para>uil、mrm、xm、xmcxx、インクルードファイルや Imake
                  ファイルといった開発者向けキット
                </para>
              </listitem>

              <listitem>
                <para>スタティックライブラリ、およびダイナミックライブラリ。
                  (FreeBSD 3.0 以降で利用できる ELF 版か、
                  FreeBSD 2.2.8 以前で利用できる a.out 版を指定してください)
                </para>
              </listitem>

              <listitem>
                <para>デモンストレーションプログラム
                </para>
              </listitem>

              <listitem>
                <para>整形済みのマニュアルページ</para>
              </listitem>
            </itemizedlist>

          <para>
            注文する際には FreeBSD 用の Motif であることをきちんと
            確認してください。Linux 用の Motif も <emphasis>Metro Link</emphasis>
            から販売されています。現在、CDROM および FTP
            によるダウンロードが利用可能です。
          </para>

          <para>
            FreeBSD 用の a.out 版 Motif 2.0 に関する情報は
            <link linkend="xig">Xi Graphics</link> から
            手に入れることができます。
          </para>

          <para>
            この製品には以下の物が含まれています。</para>
            <itemizedlist>
              <listitem>
                <para>OSF/Motif manager、xmbind、panner、wsm。
                </para>
              </listitem>

              <listitem>
                <para>uil、mrm、xm、xmcxx、インクルードファイルや Imake
                  ファイルといった開発者向けキット
                </para>
              </listitem>

              <listitem>
                <para>FreeBSD 2.2.8 以前のバージョンで利用できるスタティックライブラリ、
                  およびダイナミックライブラリ
                </para>
              </listitem>

              <listitem>
                <para>デモンストレーションプログラム
                </para>
              </listitem>

              <listitem>
                <para>整形済みのマニュアルページ</para>
              </listitem>
            </itemizedlist>

          <para>
            注文する際には FreeBSD 用の Motif であることをきちんと
            確認してください。BSDI や Linux 用の Motif もまた、<emphasis>Xi Graphics</emphasis>
            から販売されています。現在フロッピーディスク 4枚組ですが、
            将来的には CDE のように統合された CD に変わるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cde">
          <para>FreeBSD 用の CDE はどうやったら手に入りますか</para>
        </question>

        <answer>
          <para>以前
            <link linkend="xig">Xi Graphics</link> より FreeBSD 用の CDE が
            販売されていましたが、現在は既に販売が終了しています。
          </para>

          <para><ulink url="http://www.kde.org/">KDE</ulink>
            多くの点で CDE と類似しているオープンソースの X11 デスクトップ環境です。
            <ulink url="http://www.xfce.org/">xfce</ulink> の
            ルック &amp; フィール (訳注: 外観や操作方法のこと) も気に入るかも知れません。
            KDE、xfce は、いずれも
            <ulink url="http://www.FreeBSD.org/ports/">FreeBSD Ports Collection</ulink>
            に含まれています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="commercial-xserver">
          <para>高機能な商用 X サーバってあるんですか?</para>
        </question>

        <answer>
          <para>はい、<ulink url="http://www.xig.com/">Xi Graphics</ulink><ulink url="http://www.metrolink.com/">Metro Link</ulink>
            から、FreeBSD ほか Intel ベースのシステムで動作する
            Accelerated-X という製品が販売されています。
          </para>

          <para>
            Metro Link は、FreeBSD のパッケージ操作ツールを利用することで
            容易に設定が行なえるほか、数多くのビデオボードをサポートした
            高機能な X サーバを提供しています。配布はバイナリ形式のみで、
            FTP が利用可能です。もちろん、とても安価 ($39) に手に入れることができます。
            <anchor id="metrox"/>
          </para>

          <para>
            また、Metro Link は ELF 版、a.out 版の FreeBSD 用 Motif
            も販売しています (前を参照)。
          </para>

            <variablelist>
              <varlistentry><term>より詳しい情報は</term>
                <listitem>
                  <para><ulink url="http://www.metrolink.com/">Metro Link WWW page</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry><term>問い合わせは</term>
                <listitem>
                  <para><ulink url="mailto:sales@metrolink.com">Sales</ulink>
                    または
                    <ulink url="mailto:tech@metrolink.com">Support</ulink> 電子メールアドレス</para>
                </listitem>
              </varlistentry>

              <varlistentry><term>もしくは</term>
                <listitem>
                  <para>phone (954) 938-0283  or +1 954 938-0283</para>
                </listitem>
              </varlistentry>
            </variablelist>

          <para>
            Xi Graphics が提供している高性能な X サーバは楽に設定を行なえるほか、
            数多くのビデオボード
            をサポートしています。サーバはバイナリのみが含まれます。
            FreeBSD 用と Linux 用の統合されたフロッピーディスクに入っています。
            Xi Graphics は Laptop サポートに特化した高性能 X サーバも提供しています。
            <anchor id="xig"/>
          </para>

          <para>
            バージョン 5.0 の「互換デモ」が無料で入手できます。
          </para>

          <para>
            また Xi Graphics は FreeBSD 用の Motif と CDE も販売しています (前を参照)。
          </para>

            <variablelist>
              <varlistentry>
                <term>より詳しい情報は</term>
                <listitem>
                  <para><ulink url="http://www.xig.com/">Xi Graphics WWW page</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>問い合せは</term>
                <listitem>
                  <para><ulink url="mailto:sales@xig.com">Sales</ulink> または
                    <ulink url="mailto:support@xig.com">Support</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>もしくは</term>
                <listitem>
                  <para>phone (800) 946 7433  or +1 303 298-7478.</para>
                </listitem>
              </varlistentry>
            </variablelist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="database-systems">
          <para>FreeBSD 用のデータベースシステムはありますか?</para>
        </question>

        <answer>
          <para>もちろんです。FreeBSD のウェブサイトにある
            <ulink url="http://www.FreeBSD.org/commercial/software_bycat.html#CATEGORY_DATABASE">
              商用ベンダー</ulink> というセクションをご覧ください。
          </para>

          <para>
            また、FreeBSD Ports Collection
            の<ulink url="http://www.FreeBSD.org/ports/databases.html">データベース</ulink>のセクションも参考になるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="oracle-support">
          <para>Oracle を FreeBSD 上で動かすことはできますか?</para>
        </question>

        <answer>
          <para>
            はい。Linux 版 Oracle を FreeBSD でセットアップするための方法は、
            次に示すページに詳しく書かれています。
          </para>

            <itemizedlist>
              <listitem>
                <para><ulink url="http://www.scc.nl/~marcel/howto-oracle.html">http://www.scc.nl/~marcel/howto-oracle.html</ulink></para>
              </listitem>

              <listitem>
                <para><ulink url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd</ulink></para>
              </listitem>
            </itemizedlist>
        </answer>
      </qandaentry>
    </qandaset>
</chapter>

  <chapter id="applications">
    <title>ユーザアプリケーション</title>

    <para>
      <emphasis>訳:
        山下 淳 <email>junkun@esys.tsukuba.ac.jp</email>、
        &a.jp.shou;、
        1997118</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="user-apps">
          <para>そういうユーザアプリケーションはどこにあるの?</para>
        </question>

        <answer>
          <para>FreeBSDに移植されたソフトウェアパッケージについては、
            <ulink url="http://www.FreeBSD.org/ports/">FreeBSD Ports Collection
              のページ</ulink>をご覧ください。
            このリストには現在 3400 を越える項目があり、
            しかも毎日更新されています。このページをこまめに訪れるか、
            <literal>freebsd-announce</literal><link linkend="mailing">
              メーリングリスト</link>を購読すると、
            新しく入った ports を定期的にチェックすることができます。
          </para>

          <para>
            大部分の ports は 2.23.x および 4.x ブランチで利用できるはずです。
            多くは 2.1.x 系のシステムでも同様に動作するでしょう。
            FreeBSD のリリースが出る度に、そのリリースの時点での ports ツリーの
            スナップショットが撮られ、<filename>ports/</filename> ディレクトリに
            納められることになっています。
          </para>

          <para>
            また、<quote>package</quote>
            という考えも採用されています。これは基本的には
            gzip で圧縮されたバイナリディストリビューションに、
            インストール時に環境に合わせた作業が必要になった場合、
            行う機能を多少付け加えたものです。
            package を使えば、どのようなファイルが配布物として含まれているか、
            と言った細かい事柄にいちいち煩わされることなく、
            簡単にインストールやアンインストールを繰り返すことができます。
          </para>

          <para>
            インストールしたい package があるなら、
            <filename>/stand/sysinstall</filename>の、
            「インストール後の FreeBSD の設定を行う」の下にある
            package のインストールメニューを使うか、
            package のファイル名を指定して
            &man.pkg.add.1; を使用してください。
            package のファイル名には、
            通常末尾に <filename>.tgz</filename> がついています。
            CDROM をご使用の方は、CD の
            <filename>packages/All</filename>
            ディレクトリからそれらのファイルを利用することができます。
            また、以下の場所から、
            FreeBSD の各種バージョンにあわせた package をダウンロードする
            こともできます。
          </para>

            <variablelist>
              <varlistentry>
                <term>2.2.8-RELEASE/2.2.8-STABLE 用</term>
                <listitem>
                  <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>3.X-RELEASE/3.X-STABLE 用</term>
                <listitem>
                  <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term> 4.X-RELEASE/4-STABLE 用</term>
                <listitem>
                  <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>5.X-CURRENT 用</term>

                <listitem>
                  <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current</ulink></para>
                </listitem>
              </varlistentry>

            </variablelist>

          <para>お近くのミラーサイトもご利用ください。</para>

          <para>
            新しい ports が続々と追加されている状態なので、すべての ports に
            対応する package が存在するわけではないことを覚えておいてください。
            定期的に <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>
            マスターサイトを訪れて、どのような
            package が利用できるのかチェックするのも良いでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="minimal-sh">
          <para>なぜ <command>/bin/sh</command> はこんなに低機能なのですか?
            どうして <command>bash</command> や他のシェルを採用しないのでしょう?</para>
        </question>

        <answer>
          <para>それは、POSIX がそのようなシェルがあることを規定しているからです。</para>

          <para>
            もっと込み入った回答:
            多くのユーザは、多くのシステムで同じように動作できるシェルスクリプトを書く必要があります。
            これが、POSIX でシェルやユーティリティコマンドが細く規定されている理由です。
            ほとんどすべてのスクリプトは Bourne shell で書かれているのですが、
            それは、数多くの重要なプログラミングインタフェイス (&man.make.1;、
            &man.system.3;、&man.popen.3;、や Perl や Tcl 等の類似の
            高水準スクリプト言語) が、コマンドの解釈に Bourne shell を使うからです。
            このように Bourne shell が極めて頻繁にかつ広範囲で使われているため、
            素早く起動できて確実に動作し、メモリを少ししか消費しないということが
            重要になります。</para>

          <para>
            既存の実装は、
            私たちに可能な限りこれらの多くの要求を同時に満足することができる最良のものです。
            <command>/bin/sh</command> を小さいままに保つため、
            私たちは他のシェルが持つ様々な便利な機能を提供していません。
            Ports コレクションが bash や scsh、tcsh、zsh などの
            多機能なシェルを含んでいるからです (これらのシェルすべての
            メモリ使用状況は、<command>ps -u</command><quote>VSZ</quote><quote>RSS</quote> の行で、あなた自身が確認することができます)。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="missing-libcso30">
          <para>libc.so.3.0 はどこにありますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.1.x のシステムで 2.2 以降用の
            package を動かそうとしていますね?
            前のセクションを読んで、システムに合った正しい
            port/package を入手してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="missing-libcso40">
          <para><literal>Error: can't find libc.so.4.0</literal>
            というメッセージが表示されるのですが。</para>
        </question>

        <answer>
          <para>何かの手違いで、4.X と 5.X のシステム用 package をダウンロードし、
            FreeBSD 2.X、もしくは 3.X のシステムにインストールしてしまったのでしょう。
            対応する正しいバージョンの package をダウンロードしてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="emul">
          <para>386/486SX のマシンで ghostscript を動かすとエラーがでます。</para>
        </question>

        <answer>
          <para>
            あなたのマシンには数値演算プロセッサが搭載されていませんね?
            カーネルにコプロセッサの代わりとなる数値演算エミュレータを追加する必要があります。
            以下のオプションをカーネルのコンフィグレーションファイルに追加して、
            カーネルを再構築してください。
          </para>

            <programlisting>options GPL_MATH_EMULATE</programlisting>

            <note>
              <para>このオプションを追加する場合、
                <literal>MATH_EMULATE</literal>
                の行を削除してください。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="sco-socksys">
          <para>SCO/iBCS2 のアプリケーションを実行すると、
            <literal>socksys</literal> で落ちてしまいます。
            (FreeBSD 3.0 とそれ以前のみ)</para>
        </question>

        <answer>
          <para>
            まず最初に
            <filename>/etc/sysconfig</filename> (または
            <filename>/etc/rc.conf</filename>, &man.rc.conf.5; 参照)
            の最後のセクションを編集し、
            以下の変数を <literal>YES</literal> に直します。
          </para>

          <programlisting># Set to YES if you want ibcs2 (SCO) emulation loaded at startup
ibcs2=NO</programlisting>

          <para>
            これでシステムの起動時に
            ibcs2
            カーネルモジュールが読み込まるようになります。
          </para>

          <para>
            次に /compat/ibcs2/dev/
            を以下のように編集します。
          </para>

          <screen>lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 X0R@ -&gt; /dev/null
lrwxr-xr-x  1 root  wheel         7 Oct 15 22:20 nfsd@ -&gt; socksys
-rw-rw-r--  1 root  wheel         0 Oct 28 12:02 null
lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 socksys@ -&gt; /dev/null
crw-rw-rw-  1 root  wheel   41,   1 Oct 15 22:14 spx</screen>

          <para>
            open や close の処理は、
            socksys から
            <devicename>/dev/null</devicename> (&man.null.4; 参照)
            へシンボリックリンクを張ることで代用します。
            残りの処理は、-CURRENT に入っているコードが担当しています。
            これは以前のものより ずっとスッキリした方法です。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="configure-inn">
          <para>INN (インターネットニュース) の設定方法は?</para>
        </question>

        <answer>
          <para>inn の package や port をインストールしたあとに
            <ulink url="http://www.cis.ohio-state.edu/~barr/INN.html">Dave Barr's
              INN Page</ulink> を見てみましょう。初心者向けの INN FAQ があります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ms-frontpage">
          <para>どのバージョンの Microsoft FrontPage を手に入れる必要がありますか?</para>
        </question>

          <answer>
          <para>
            ルーク、ports を使うのだ!
            パッチ処理済みの Apache が ports ツリーから入手できます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="java">
          <para>FreeBSD は Java をサポートしていますか?</para>
        </question>

        <answer>
          <para>はい。
            <ulink url="http://www.FreeBSD.org/java/">http://www.FreeBSD.org/java/</ulink>
            をご覧ください。
            <ulink url="../java/">日本語訳</ulink>
            もあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ports-3x">
          <para>3.x-STABLE を載せているマシンで port
            がコンパイルできないことがあります。それはどうしてですか?
          </para>
        </question>

        <answer>
          <para>
            もし、その時点の -CURRENT か -STABLE
            に比べてずっと古いバージョンの FreeBSD を利用しているなら、
            <ulink url="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>
            にある ports アップグレードキットが必要です。
            最新の FreeBSD を利用しているのに発生する場合はおそらく、
            -CURRENT では正常なのに -STABLE ではうまく動かなくなるような変更がその
            port に対して行なわれ、受理されてしまっているのでしょう。
            ports コレクションは -CURRENT と -STABLE、
            両方のブランチで動かなければならないものですので、
            もしそれを発見したら &man.send-pr.1;
            コマンドを使ってバグレポートの提出をお願いします。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="find-ldso">
          <para>ld.so はどこにありますか?</para>
        </question>

        <answer>
          <para>3.1-R 以降などの Elf 化されたマシンで Netscape Navigator などの
            aout 形式のアプリケーションを動かすときには、
            <filename>/usr/libexec/ld.so</filename> と
            aout ライブラリのファイルが必要です。
            それらは配布物の <literal>compat22</literal> に納められています。
            <filename>/stand/sysinstall</filename><filename>compat22</filename> サブディレクトリ内の
            <filename>install.sh</filename> を使って
            <literal>compat22</literal>
            をインストールしてください。
            合わせて 3.1-R と 3.2-R の ERRATA もお読みください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ports-update">
           <para>ソースコードを更新しました。さて、インストール済みの
             ports を更新するにはどうすればよいでしょうか?</para>
        </question>

        <answer>
          <para>残念ながら、インストール済みの ports を更新する簡単な
            方法はありません。<command>pkg_version</command> コマンドを
            用いて ports ツリー中の新しいバージョンに更新する
            スクリプトを次のように生成することができます。</para>

          <screen>&prompt.root; <userinput>pkg_version <option>-c</option> > <replaceable>/tmp/myscript</replaceable></userinput></screen>

          <para>出力されたスクリプトを使う前に、手で
            編集<emphasis>しなければなりません</emphasis>。現在のバージョンの
            <command>pkg_version</command> では、スクリプトの先頭に
            <command>exit</command> を挿入して強制しています。</para>

          <para>スクリプトの出力には、更新された packages に依存する
            packages が記載されているので、保存しておきましょう。これらも
            やはり更新する必要があるかもしれません。通常、更新が
            必要となるのは、共有ライブラリのバージョンが変化し、
            そのライブラリを利用している ports が新しいライブラリを用いるために
            再構築する必要がある場合です。</para>

          <para>システムが常時稼動しているならば、
            <filename>/etc/periodic.conf</filename><literal>weekly_status_pkg_enable="YES"</literal> を
            設定して、&man.periodic.8 システムによって毎週更新が必要な ports
            の一覧を生成できます。</para>
        </answer>
      </qandaentry>
    </qandaset>
</chapter>

  <chapter id="kernelconfig">
    <title>カーネルコンフィグレーション</title>

    <para>
      <emphasis>訳:
        &a.jp.kiroh;、
        19971110</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="make-kernel">
          <para>カーネルをカスタマイズしたいんですが、難しいですか?</para>
        </question>

        <answer>
          <para>
            全然難しくありません。
            <ulink url="../handbook/kernelconfig.html">カーネルの再構築</ulink>を調べてください。
          </para>

          <note>
              <para>うまく動作するカーネルができたら、
                日付入りのカーネルのスナップショットを
                <filename>kernel.<replaceable>YYMMDD</replaceable></filename>
                のように作成することをおすすめします。
                こうしておけば、次にカーネルの構築をやってうまくいかなくなってしまっても、
                <filename>kernel.GENERIC</filename> にわざわざ戻る必要がなくなります。
                これは、GENERIC カーネルでサポートされないデバイスから起動している場合は、
                特に重要です。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="missing-hw-float">
          <para><literal>_hw_float</literal>
            が無いので、カーネルのコンパイルがうまくいきません。</para>
        </question>

        <answer>
          <para>
            推測ですが、数値演算コプロセッサを持ってないからと思って、
            <devicename>npx0</devicename> (&man.npx.4; 参照)
            をカーネルコンフィグファイルから削除してしまったのではないでしょうか?
            <devicename>npx0</devicename><emphasis>必須</emphasis>です。
            コプロセッサがなくても、<devicename>npx0</devicename>
            デバイスは削除してはいけません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="why-kernel-big">
          <para>わたしのカーネルはどうしてこんなに大きい (10MB 以上)
            のでしょうか?</para>
        </question>

        <answer>
          <para>これは<emphasis>デバッグモード</emphasis>でカーネルを構築していることが原因です。
            デバッグモードで構築されたカーネルは、
            デバッグに用いられる膨大なシンボル情報を含んでいるため、
            カーネルのサイズが非常に大きくなります。
            ただし FreeBSD 3.0 とそれ以降のシステムの場合は
            カーネルのサイズは小さくなりますし、
            デバッグカーネルを実行する時のパフォーマンスの低下もありません。
            また、そのカーネルはシステムがパニックした場合に有用です。</para>

          <para>しかし、容量の小さなディスクでシステムを運用していたり、
            単にデバッグカーネルを実行したくない場合は、
            以下の両方が当てはまっているかどうか確認してください。</para>

          <itemizedlist>
            <listitem>
              <para>カーネルコンフィグファイルに以下の行が書かれていないこと。</para>

              <programlisting>makeoptions DEBUG=-g</programlisting>
            </listitem>

            <listitem>
              <para><command>config</command> を実行する際、
                <option>-g</option> オプションを付けていないこと。</para>
            </listitem>
          </itemizedlist>

          <para>上に書かれた指定は両方ともカーネルをデバッグモードで構築するためのものです。
            上の手順を従っている限り、カーネルを普通に構築してサイズの小さなカーネルを得ることができます。
            その場合のカーネルサイズは、およそ 1.5MB から 2MB 程度になります。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="multiport-serial-interrupts">
          <para>
            マルチポートシリアルのコードで割り込みが衝突しています。
          </para>
        </question>

        <answer>
          <para>
            マルチポートシリアルを
            サポートするコードを含んだカーネルをコンパイルしようとすると、
            最初のポートだけ検出され、
            残りのポートは割り込みの競合のためスキップされたと言われます。
            どうやったらいいでしょうか?
          </para>

          <para>
            ここでの問題は、FreeBSD
            にはハードウェアまたはソフトウェアの競合により、
            カーネルがクラッシュするのを防ぐコードが含まれているという点です。
            解決するには、最初のポートにだけ IRQ の設定を書き、
            残りは IRQ の設定を削除します。
            以下に例を示します。
          </para>

          <programlisting># Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="generic-kernel-build-failure">
          <para>カーネルを構築にいつも失敗します。
            GENERIC カーネルも構築できません。</para>
        </question>

        <answer>
          <para>さまざまな理由が考えられます。以下、順に列記します。</para>

          <itemizedlist>
            <listitem>
              <para>あなたは新しい
                <command>make buildkernel</command><command>make installkernel</command>
                ターゲットを使わず、
                現在走っているシステムを構築した時と異なるソースツリーを
                構築しようとしている (たとえば、4.0-RELEASE のシステム上で
                4.3-RELEASE を構築しようとしている) のではないでしょうか?
                もしシステムをアップグレードしようとしているのなら、
                <filename>/usr/src/UPDATING</filename> ファイルを
                <quote>共通項目 (COMMON ITEMS)</quote>
                節に注意しながら最後までお読みください。</para>
            </listitem>

            <listitem>
              <para>あなたは新しい <command>make buildkernel</command><command>make installkernel</command> ターゲットを
                使っているのにも関わらず、
                <command>make buildworld</command>
                を行なっていないのではないでしょうか?
                <command>make buildkernel</command> ターゲットは、
                <command>make buildworld</command>
                ターゲットによって作られるファイルに依存しています
                そのため、<command>make buildkernel</command>
                が正常に終了するためには
                <command>make buildworld</command>
                ターゲットが正常に完了している必要があります。</para>
            </listitem>

            <listitem>
              <para>構築しようとしているのが
                <link linkend="stable">FreeBSD-STABLE</link>
                だったとしても、あなたが入手したソースツリーが何らかの理由で
                書き換わったり、壊れてしまっているのかも知れません。
                <link linkend="stable">FreeBSD-STABLE</link>
                はほとんどの場合、きちんと構築できるようになっていますが、
                確実に構築可能であることが保証されているのは
                リリース版だけです。一度ソースツリーを再取得して、
                問題が解決しないかどうか試してみてください。
                また、あるサーバから取得した時に問題が発生したら、
                別のサーバを試すのも効果があるかも知れません。</para>
            </listitem>
          </itemizedlist>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="admin">
    <title>システム管理</title>

    <para>
      <emphasis>訳:
        にしか <email>nishika@cheerful.com</email>19971112</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="startup-config-files">
          <para>システムスタートアップファイルはどこにあるのですか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.0.5R から 2.2.1R までは、
            プライマリコンフィグレーションファイルは
            <filename>/etc/sysconfig</filename> にあります。
            オプションはすべてこのファイルで設定され、他の
            <filename>/etc/rc</filename> (&man.rc.8; 参照) および
            <filename>/etc/netstart</filename> といった
            ファイルはこれを読み込むだけです。
          </para>

          <para>
            ファイル <filename>/etc/sysconfig</filename>
            を見て、システムに適合するように変更してください。
            このファイルには、
            それぞれの場所に何を書けばいいのかを表すコメントがたくさん書かれています。
          </para>

          <para>
            FreeBSD 2.2.2 から 3.0 までのシステムでは、
            <filename>/etc/sysconfig</filename> は、
            より分りやすい名前の
            &man.rc.conf.5;
            に改名され、それに従って書式もいくぶん改められています。
            <filename>/etc/netstart</filename><filename>/etc/rc.network</filename> に改名され、
            全部のファイルを
            <command>cp /usr/src/etc/rc* /etc</command>
            で一度にコピーすることが出来るようになります。
          </para>

          <para>FreeBSD 3.1 とそれ以降では、
            <filename>/etc/rc.conf</filename><filename>/etc/defaults/rc.conf</filename> に移動しました。
            <emphasis>このファイルを編集してはいけません!</emphasis>
            代わりに、
            <filename>/etc/defaults/rc.conf</filename>
            の中で変えたいエントリの行を
            <filename>/etc/rc.conf</filename> にコピーし、
            そこで変更するようにしてください。</para>

          <para>たとえば named を起動したいとしましょう。
            FreeBSD 3.1 かそれ以降のシステムで FreeBSD 付属の DNS
            サーバを起動するには、次のようにするだけです。</para>

          <screen>&prompt.root; <userinput>echo named_enable="YES" &gt;&gt;
              /etc/rc.conf</userinput></screen>

          <para>FreeBSD 3.1 かそれ以降でローカルサービスを起動するためには、
            <filename>/usr/local/etc/rc.d</filename> ディレクトリにシェルスクリプトを置きます。
            シェルスクリプトは起動可能に設定し、ファイル名が .sh で終わっていなければなりません。
            FreeBSD 3.0 とそれ以前のリリースでは、
            <filename>/etc/rc.local</filename> を編集する必要があります。</para>

          <para>ファイル <filename>/etc/rc.serial</filename>
            はシリアルポートの初期化
            (たとえばポートの設定を固定したり等々)
            のためにあります。</para>

          <para>ファイル <filename>/etc/rc.i386</filename> は iBCS2
            エミュレーションのような
            Intel アーキテクチャ固有の設定や、
            PC システムコンソール設定のためにあります。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="adding-users">
          <para>簡単にユーザを追加するにはどうすればいいのですか?</para>
        </question>

        <answer>
          <para>
            &man.adduser.8; コマンドを使用してください。
            また、&man.pw.8; コマンドを用いることで、さらに細かい操作が可能です。
          </para>

          <para>
            ユーザを削除するには &man.rmuser.8; コマンドを使用してください。
            繰り返しになりますが、&man.pw.8; でも構いません。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="adding-disks">
          <para>FreeBSD システムに新しいハードディスクを追加するには?</para>
        </question>

        <answer>
          <para><ulink url="../../tutorials/formatting-media/">www.FreeBSD.org</ulink>
            に書かれているディスクフォーマットチュートリアルを参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="removable-drives">
          <para>新しいリムーバブルドライブを持っていますが、どうやって使うの?</para>
        </question>

        <answer>
          <para>
            そのリムーバブルドライブが ZIP であれ EZ drive であれ
            (あるいはもしそういう風に使いたいのなら、フロッピーであれ)、
            またハードディスクであれ、一旦システムにインストールされて認識され、
            カートリッジ、フロッピー等々が挿入されていれば、
            ことはどのデバイスでも全く同じように進みます。
          </para>

          <para><anchor id="disklabel"/>
              (このセクションは<ulink url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">Mark Mayo's ZIP FAQ</ulink> に基づいています)
          </para>

          <para>
            ZIP ドライブやフロッピーで、すでに DOS のファイルシステムで
            フォーマットしてある場合、次のコマンドを使うことができます。
            これはフロッピーの場合です。
          </para>

          <screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen>

          <para>出荷時の設定の ZIP ディスクではこうです。</para>

          <screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen>

          <para>
            その他のディスクに関しては、&man.fdisk.8; や
            <filename>/stand/sysinstall</filename> を使って、
            どのようにレイアウトされているか確かめてください。
          </para>

          <para>
            以降は ZIP ドライブが 3 番目の SCSI ディスクで、
            da2 と認識されている場合の例です。
          </para>

          <para>
            他人と共有しなければならないフロッピーやリムーバブルディスク
            でなければ、BSD ファイルシステムを載せてしまうのが良い考えでしょう。
            ロングファイル名もサポートされ、パフォーマンスは少なくとも
            2 倍は向上しますし、おまけにずっと安定しています。
            まず最初に、DOS レベルでのパーティション <filename>/</filename>
            ファイルシステムを無効にしておく必要があります。使用するのは
            <command>fdisk</command> でも
            <filename>/stand/sysinstall</filename> でも結構です。
            複数のオペレーティングシステムを入れることを考慮する
            必要がないような容量の小さなドライブの場合は、
            次のように <acronym>FAT</acronym> パーティションテーブル (スライス)
            全体を飛ばして、BSD
            のパーティション設定を行うだけで良いでしょう。
          </para>

          <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>

          <para>
            複数の BSD パーティションをつくる場合、
            <command>disklabel</command><filename>/stand/sysinstall</filename> を使います。
            固定ディスク上にスワップ領域を加える場合、
            そういうことをしたいと思うのはもっともですが、
            ZIP のようなリムーバブルドライブの上ではそういう考えは不適切
            でしょう。
          </para>

          <para>
            最後に、新しいファイルシステムをつくります。ディスク全体を使用する
            ZIP ドライブの場合は、以下のようにします。
          </para>

          <screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>

          <para>次にマウントします。</para>

          <screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>

          <para>また、次のような行を
            <filename>/etc/fstab</filename> (&man.fstab.5; 参照)
            に入れておくのも良い考えでしょう。
            <command>mount /zip</command>
            と入力するだけでマウントできるようになります。
          </para>

          <programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="root-not-found-cron-errors">
          <para>自分の crontab ファイルを編集した後
            <errorname>root: not found</errorname>
            のようなメッセージが延々と表示されるのですが、
            これはなぜですか?</para>
        </question>

        <answer>
          <para>これは通常、システム crontab (<filename>/etc/crontab</filename>)
            を編集し、&man.crontab.1; を使ってインストールした場合に起こります。</para>

          <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>

          <para>この方法は正しくありません。
            システム crontab のフォーマットは &man.crontab.1;
            が更新する各ユーザの crontab とは異なります
            (フォーマットの相違点の詳細は &man.crontab.5;
            で説明されています)。</para>

          <para>
            もしこのような操作をしてしまったなら、
            あらたな crontab は誤ったフォーマットの
            <filename>/etc/crontab</filename>
            のコピーになってしまっているからです。
            以下のコマンドで削除してください。
          </para>

          <screen>&prompt.root; <userinput>crontab -r</userinput></screen>

          <para>
            今度 <filename>/etc/crontab</filename> を編集する時は、
            その変更を &man.cron.8; に伝えるような操作をしてはいけません。
            &man.cron.8; は、自動的にその変更を認識するからです。</para>

          <para>
            もしあなたが何かを一日一回、あるいは一週間や一ヶ月に一回だけ
            実行させたいなら、シェルスクリプトを
            <filename>/usr/local/etc/periodic</filename> に追加し、
            &man.periodic.8; コマンドにシステムの cron スケジュールから
            他の定期的なシステムのタスクとともに
            実行させたほうが良いかもしれません。
          </para>

          <para>このエラーの実際の原因は、システム crontab には
            どのユーザ権限でコマンドを実行するかを指定する余分なフィールドがあることによるものです。
            FreeBSD に添付されている標準のシステム crontab には、
            すべてのエントリに <username>root</username> が書かれています。
            この crontab が <username>root</username> ユーザの crontab
            (システム crontab とは <emphasis>異なります</emphasis>)
            として使われた場合、&man.cron.8; は <literal>root</literal>
            を実行するコマンドの最初の単語だと認識しますが、
            そのようなコマンドは存在しないのです。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="su-wheel-group">
          <para>&man.su.1; コマンドを実行して
            <username>root</username> になろうとすると、
            su が <errorname>you are not in the correct group to
            su root</errorname> と警告します。</para>
        </question>

        <answer>
          <para>これは、セキュリティ上の機能です。su コマンドを実行して
            <username>root</username> (またはスーパーユーザ権限を持つ
            他のアカウント) になるには、<groupname>wheel</groupname>
            グループに所属していなければなりません。この機能がないと、
            システムにアカウントがあって <username>root</username> の
            パスワードを見つけさえすれば、誰でもスーパーユーザ権限で
            システムにアクセスできてしまいます。この機能がある場合は、
            必ずしもそうはなりません。<groupname>wheel</groupname> グループに
            所属していなければ、&man.su.1; がパスワードの入力すら
            拒否するからです。</para>

          <para>誰かが <username>root</username> に su できるように
            するには、その人を <groupname>wheel</groupname> グループに追加してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="rcconf-readonly">
          <para><filename>rc.conf</filename> やその他の
            スタートアップファイルを書き間違えてしまいました。
            しかもそのためファイルシステムがリードオンリーになってしまっていて
            編集ができません。どうすればいいですか?</para>
        </question>

        <answer><para>
            シェルのパス名を入力するプロンプトが表示されたときに、
            単に <literal>ENTER</literal> を押し、<command>mount /</command> を
            実行してそルートファイルシステムを再マウントさせます。
            また、お気に入りのエディタがあるファイルシステムを
            マウントするために <command>mount -a -t ufs</command> を
            する必要があるかも知れません。あなたのお気に入りのエディタが
            ネットワークファイルシステム上にある場合は、
            ネットワークファイルシステムをマウントする前にネットワークを
            手動で設定するか、&man.ed.1; のようなローカルファイルシステムにある
            エディタを使うかしなければなりません。</para>

          <para>&man.vi.1; や &man.emacs.1; の様なフルスクリーンエディタを
            使うつもりなら <command>export TERM=cons25</command> と
            やってエディタが &man.termcap.5; データベースから正しい
            データを読み取れるようにしなければなりません。</para>

          <para>これを行ったあとはいつもと同様、
            <filename>/etc/rc.conf</filename>
            を編集して間違いを訂正することができるようになります。
            カーネル起動メッセージの直後に表示されたエラーメッセージには、
            問題の起こったファイル内での行番号を表示されているはずです。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mount-dos">
          <para>どのようにしたら DOS の拡張パーティションをマウントできますか?</para>
        </question>

        <answer>
          <para>
            DOS 拡張パーティションは、
            すべての基本パーティションの後に認識されます。
            たとえば、2台目の SCSIドライブの拡張パーティションに
            <quote>E</quote>
            パーティションがあるとしますと、
            これは <filename>/dev</filename>
            に「スライス 5 」のスペシャルファイルを作る必要があり、
            <filename>/dev/da1s5</filename>
            としてマウントされます。
          </para>

          <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV da1s5</userinput>
&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mount-foreign-fs">
          <para>他のシステムのファイルシステムを FreeBSD でマウントすることはできますか?</para>
        </question>

        <answer>
          <para>
            <literal>Digital UNIX</literal>:
            UFS CDROM は直接 FreeBSD でマウントすることができます。
            Digital UNIX やそれ以外のシステムのサポートする
            UFS のディスクパーティションをマウントすることはもっと複雑なことで、
            オペレーティングシステムのディスクパーティションの詳細に依存します。
          </para>

          <para>
            <literal>Linux</literal>:
            2.2 以降は <literal>ext2fs</literal> パーティションをサポートします。
            詳しくは、&man.mount.ext2fs.8; を見てください。
          </para>

          <para>
            <literal>NT</literal>:
            FreeBSD 用の読みだしのみ可能な NTFS ドライバがあります。
            詳しくは、Mark Ovens 氏によって書かれたチュートリアル
            <ulink url="http://ukug.uk.freebsd.org/~mark/ntfs_install.html">http://ukug.uk.freebsd.org/~mark/ntfs_install.html</ulink>
            をご覧ください。
          </para>

          <para>
            この問題について他の情報があれば、他の人から感謝されるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="nt-bootloader">
          <para>どのようにしたら FreeBSD を NT ローダーから起動させることができますか?</para>
        </question>

        <answer>
          <para>
            この手順は 2.2.x と (起動が 3 つのステージに分かれている) 3.x
            のシステムとで多少異なります。
          </para>

          <para>
            FreeBSD のネイティブルートパーティションの最初のセクタをファイルにして
            DOS/NT パーティション上に置くという画期的なアイディアがあります。
            ファイル名を
            <filename>c:\bootsect.bsd</filename> (<filename>c:\bootsect.dos</filename>
            からの発想です) としたとします。
            <filename>c:\boot.ini</filename>ファイルを次のように編集します。
          </para>

          <programlisting>[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"</programlisting>

          <para>
            この手順は、利用しているシステムが 2.2.x であり、DOS、NT、FreeBSD
            あるいはその他のオペレーティングシステムがすべて、
            <emphasis>同じ</emphasis>ディスクのそれぞれの
            fdisk パーティションにインストールされていることを想定しています。
            この例は、DOS と NT を最初の fdisk パーティションにおき、
            FreeBSD は 2 番目においたシステムで確認しています。
            また、FreeBSD は MBR を使わずに、
            ネイティブパーティションから起動するように設定してあります
            (訳注: FreeBSD のインストールで、ブートマネジャを使わずに標準
            MBR を使う場合に相当します)。
          </para>

          <para>
            (もし NTFS に変換してしまっているなら)DOS
            フォーマットのフロッピーディスクか FAT
            パーティションを <filename>/mnt</filename> に DOS
            マウントします。
          </para>

          <screen>&prompt.root; <userinput>dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1</userinput></screen>

          <para>
            再起動して DOS か NT に切替えます。NTFS ユーザは
            <filename>bootsect.bsd</filename><filename>bootsect.lnx</filename> をフロッピーディスクから
            <filename>C:\</filename>
            へコピーします。
            <filename>boot.ini</filename>
            のファイル属性 (パーミッション) の変更を以下のように行ないます。
          </para>

          <screen><prompt>&gt;</prompt> <userinput>attrib -s -r c:\boot.ini</userinput></screen>

          <para>
            上の例の
            <filename>boot.ini</filename> で示したような正しいエントリを加え、
            ファイル属性を元に戻します。
          </para>

          <screen><prompt>&gt;</prompt> <userinput>attrib +s +r c:\boot.ini</userinput></screen>

          <para>
            FreeBSD が MBR から起動するようになっている場合、
            それぞれのネイティブパーティションから起動するように設定した後で、
            DOS から <command>fdisk</command>
            コマンドを実行して元に戻してください。
          </para>

          <para>
            FreeBSD 3.X における手順は、これよりいくぶん簡単です。
          </para>

          <para>
            FreeBSD が NT 起動パーティションとして同じディスクにインストールされている場合には、
            <filename>/boot/boot1</filename> を単純に
            <filename>C:\BOOTSECT.BSD</filename> へコピーします。
            もし FreeBSD が異なったディスクにインストールされている場合には、
            <filename>/boot/boot1</filename> では動作しませんので、
            <filename>/boot/boot0</filename> が必要です。

            <warning>
              <para>ここで <filename>/boot/boot1</filename> の代わりに
                <filename>/boot/boot0</filename> をコピーするようなことをしてはいけません!
                そうすると、パーティションテーブルを上書きしてしまい、
                コンピュータが起動できなくなってしまいます。</para>
            </warning>
          </para>

          <para><filename>/boot/boot0</filename> をインストールするには、
            sysinstall のブートマネージャを利用するかどうか尋ねられる画面で
            FreeBSD ブートマネージャを選択する必要があります。
            <filename>/boot/boot0</filename>
            のパーティションテーブル部分は NULL 文字で埋められているのですが、
            sysinstall は <filename>/boot/boot0</filename> を MBR
            にコピーする前にパーティションテーブルをきちんとコピーしてくれるからです。</para>

          <para>FreeBSD ブートマネージャは最後に起動した OS を記録するために
            パーティションテーブルの最後に起動した OS
            のエントリにあるアクティブフラグをセットし、512 バイト全体を MBR に書き戻します。
            これは <filename>/boot/boot0</filename><filename>C:\BOOTSECT.BSD</filename> にコピーし、
            エントリの一つにアクティブフラグをセットして空のパーティションテーブルを MBR
            に書き込むことと同じです。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="lilo-bootloader">
          <para>FreeBSD と Linux を LILO から起動するには?</para>
        </question>

        <answer>
          <para>
            FreeBSD と Linux が同じディスクにインストールされている場合、
            単に Linux 以外の OS を起動するための LILO のインストール手順に
            従えばいいだけです。非常に簡単にではありますが、記してみましょう。
          </para>

          <para>
            Linux を起動し、<filename>/etc/lilo.conf</filename>
            に以下の行を加えて
            ください。</para>

            <programlisting>other=/dev/hda2
        table=/dev/hda
        label=FreeBSD</programlisting>

          <para>
            (上記の手順は FreeBSD のスライスが Linux から
            <devicename>/dev/hda2</devicename>
            という名前で見えていると仮定しています。
            あなたの設定にあわせてください)
            その後、<command>lilo</command><username>root</username>
            で実行すれば完了です。
          </para>

          <para>
            FreeBSD が別のディスクにインストールされているのなら、
            LILO のエントリに
            <literal>loader=/boot/chain.b</literal>
            を追加してください。たとえば、このようになります。
          </para>

          <programlisting>other=/dev/dab4
        table=/dev/dab
        loader=/boot/chain.b
        label=FreeBSD</programlisting>

          <para>
            場合によっては、二つ目のディスクを正しく起動するために FreeBSD
            ブートローダに BIOS ドライブ番号を指定する必要があるかもしれません。
            たとえば、FreeBSD SCSI ディスクが BIOS によって
            BIOS ディスク 1 として認識されるのなら、
            FreeBSD のブートローダのプロンプトで、次のように指定する必要があります。

            <screen><prompt>Boot:</prompt> <userinput>1:da(0,a)/kernel</userinput></screen>
          </para>

          <para>
            FreeBSD 2.2.5 やそれ以降の版では、&man.boot.8; を設定すれば
            起動時に上記のことが自動的に行えます。
          </para>

          <para>
            <ulink url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD
              mini-HOWTO</ulink> が FreeBSD と Linux
            とを相互に使えるようにするためのよい参考資料になるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="booteasy-loader">
          <para>FreeBSD と Linux を BootEasy から起動するには?</para>
        </question>

        <answer>
          <para>
            LILO をマスターブートレコード (MBR) ではなく
            Linux の起動パーティションにインストールしてください。
            これで BootEasy から
            LILO を起動できるようになります。
          </para>

          <para>
            Windows95 と Linux を使用している場合は、
            いずれにせよ後者の方がおすすめです。
            Windows95 を再インストールする必要にかられたとき、
            Linux を起動可能に戻す手続きが簡単ですむからです
            (Windows95 は偏屈なオペレーティングシステムで、
            マスターブートレコード (MBR) から他のオペレーティングシステムを追い払ってしまうのです)。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dangerously-dedicated">
          <para>「危険覚悟の専用 (dangerously dedicated) ディスク」は健康に悪いの?</para>
        </question>

        <answer>
          <para><anchor id="dedicate"/>
              インストール作業中、
              ハードディスクのパーティションを切る際に
              2 つの方法を選ぶことができます。
              デフォルトの方法では、fdisk のテーブルエントリ (FreeBSD
              ではスライスと呼ばれる) を使って、
              自身のパーティションを使用する FreeBSD のスライスを、
              同じマシンの他のオペレーティングシステムと互換性のある形にします。
              それに付随して、ブートセレクタをインストールすれば、
              ディスク上の使用可能なオペレーティングシステムを切り替えることができます。
              もう一つの方法はディスクすべてを FreeBSD で使うというもので、
              この場合ほかのオペレーティングシステムとの互換性を考慮しないことになります。
          </para>

          <para>
            では、なぜこれが 「危険覚悟の」と言われるのでしょう?
            このモードのディスクが、通常の PC のユーティリティが有効な fdisk
            テーブルと見なす情報を持っていないからです。
            ユーティリティの出来如何によりますが、
            そのようなディスクを発見したとき、
            警告を出すものもあります。また、もっと悪い場合、
            確認も通告もなしに
            BSD のブートストラップにダメージを与えるものもあるでしょう。
            さらには、「危険覚悟の」ディスクレイアウトは多数の BIOS、
            AWARD (たとえば HP Netserver や Micronics システム、
            他多数で使用されていた) や
            Symbios/NCR (人気のあるSCSI コントローラ 53C8xx
            用) などを混乱させることが分かっています。
            これは完全なリストではありません。
            他にもまだまだあります。この混乱の兆候は、
            起動時にシステムがロックするというだけでなく、
            FreeBSD のブートストラップが自分自身を見つけられないために表示する
            <quote>read error</quote>
            というメッセージなどにも現れることでしょう。
          </para>

          <para>
            そもそもいったいなぜこのモードがあるのでしょうか?
            これはわずかに数キロバイトのディスク容量を節約するのみであり、
            新規インストールで実際に問題を生ずるのです。
            「危険覚悟の」モードの起源は新しい FreeBSD インストーラでの、
            BIOS から見えるディスクの
            「ジオメトリ」の値とディスク自身との整合性という、
            もっとも一般的な問題のひとつを回避したいという要求が背景にあります。
          </para>

          <para>
            「ジオメトリ」は時代遅れの概念ですが、
            未だに PC BIOS とディスクへの相互作用の中核をなしています。
            FreeBSD のインストーラがスライスを作る時、
            ディスク上のスライスを BIOS が見つけられるように、
            スライス位置をディスク上に記録します。それが誤っていれば、
            起動できなくなってしまうでしょう。
          </para>

          <para>
            「危険覚悟の」モードはこれを、
            問題を単純にすることで回避しようとします。
            状況によってはこれでうまくいきます。
            しかし次善の策として使われているに過ぎません。
            この問題を解決するもっと良い方法はいくらでもあるのです。
          </para>

          <para>
            では、
            インストール時に「危険覚悟の専用」モードが必要になる
            状況を回避するにはどうすればよいのでしょうか?
            まず BIOS が報告するディスクのジオメトリの値を覚えておくことからはじめましょう。
            <quote>boot:</quote>
            プロンプトで <quote><option>-v</option></quote>
            を指定するか、ローダで
            <quote>boot -v</quote>
            と指定して、
            起動時にカーネルにこの値を表示させることができます。
            インストーラが起動する直前に、
            カーネルがジオメトリ値のリストを表示するでしょう。
            パニックを起こさないでください。
            インストーラが起動するのを待ち、
            逆スクロールでさかのぼって値を確認してください。
            普通は BIOS
            ディスクユニット番号は、
            FreeBSD がディスクを検出する順序と同様であり、
            最初に IDE、次に SCSI となります。
          </para>

          <para>
            ディスクをスライシングする際に、
            FDISK の画面で表示されるディスクのジオメトリが正しいこと (BIOS
            の返す値と一致しているか) を確認してください。
            万一異なっていたら <quote><userinput>g</userinput></quote>
            を押して修正してください。
            ディスクにまったくなにもない場合や、
            他のシステムから持ってきたディスクの場合は
            これを行なう必要があるかもしれません。
            これはそのディスクから起動させようとしている場合にのみ、
            問題になることに注意してください。
            FreeBSD はそのディスクをうまい具合いに他のディスクと区別してくれます。
          </para>

          <para>
            ディスクのジオメトリについて BIOS と FreeBSD
            間で一致させることができたら、この問題はほぼ解決したと思ってよいでしょう。
            そしてもはや「危険覚悟の専用」モードは必要ありません。
            しかし、まだ起動時に恐怖の
            <quote>read error</quote>
            メッセージが出るようであれば、
            お祈りを捧げて新しいディスクを買いましょう。
            もう失うものは何もありません。
          </para>

          <para>
            「危険覚悟の専用ディスク」を通常の PC
            での使用法に戻すには、
            原則として 2 つ方法があります。1 つは十分な NULL
            バイトを MBR に書き込んで、
            きたるべきインストーラにディスクはまっさらだと思い込ませる方法です。
            たとえば、こんな感じです。

            <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen>
          </para>

          <para>
            また、マニュアルには書かれていない DOS の「機能」

            <screen><prompt>&gt;</prompt> <userinput>fdisk /mbr</userinput></screen>

              は、BSD ブートストラップを追い払ってくれる上に、
            新しいマスターブートレコードをインストールしてくれます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="add-swap-space">
          <para>どのようにしたらスワップ領域を増やせますか?</para>
        </question>

        <answer>
          <para>
            スワップパーティションのサイズを増やすのが最良の方法ですが、
            別のディスクを追加しなくて済むという利点のある方法があります。
            経験から得た一般的な方法はメインメモリの 2倍程度のスワップ領域を
            とるというものです。しかしごく小さなメインメモリしかない場合は、
            それ以上のスワップを構成したいと思うでしょう。また、将来のメモリの
            アップグレードに備え、後でスワップの構成を変更する必要がないように
            十分なスワップを構成しておくことは良い考えです。
          </para>

          <para>
            スワップを別のディスク上に追加することは、単純に同じディスク上
            にスワップを追加する場合よりも高速に動作するようになります。
            例に挙げれば、あるディスク上のソースをコンパイルしているとして、
            スワップが別のディスク上に作られていれば、これらが同じディスク上
            にある場合よりも断然速いです。SCSI ディスクの場合は特にそうだと言えます。
          </para>

          <para>
            ディスクが複数ある場合、スワップパーティションを各ディスクに
            作るように構成すると、使用中のディスク上にスワップを置いたとしても、
            通常の場合は有益です。一般的に、システムにある高速なディスクには
            スワップを作るようにすべきでしょう。
            FreeBSD はデフォルトでインターリーブなスワップデバイスを 4つまで
            サポートします。複数のスワップパーティションを構成する際に、
            普通はそれらを大体同じくらいの大きさにして作りたいところですが、
            カーネルのコアダンプを取るのに都合が良いようにメインの
            スワップパーティションを大きめにとる人もいます。
            メインのスワップパーティションはカーネルのコアがとれるように
            最低でも実メモリと同じ大きさにすべきでしょう。
          </para>

          <para>
            IDE ドライブは同時に同じチャネル上の複数のドライブには
            アクセスできません (FreeBSD は mode 4 をサポートしていないので、
            すべての IDE ディスク I/O は <quote>programmed</quote> です)。
            IDE の場合であってもやはり、スワップを別のハードディスク上に
            作成することをおすすめします。
            ドライブは実に安いものです、心配するだけ無駄です。
          </para>

          <para>
            NFS 越しにスワッピングさせる方法は、
            スワップ用のローカルディスクが無い場合にのみ推奨されます。
            NFS 越しのスワッピングは遅く、FreeBSD 4.x より前のリリースでは
            効率が悪いのですが、4.0 以降ではそれなりに高速になります。
            そうはいっても、利用できるネットワークの太さに制限されますし、
            NFS サーバに余計な負荷がかかります。
          </para>

          <para>
            これは 64MBの vn-swap を作る例です (ここでは
            <filename>/usr/swap0</filename>
            としますが、もちろん好きな名前を使うことができます)。
          </para>

          <para>
            カーネルが次の行を含むコンフィグファイルから構成されているかを
            確認します。GENERIC カーネルには、この行が含まれています。
          </para>

          <programlisting>pseudo-device   vn 1   #Vnode driver (turns a file into a device)</programlisting>

          <orderedlist>
            <listitem>
              <para>vn デバイスを作ります</para>
              <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh ./MAKEDEV vn0</userinput></screen>

            </listitem>

            <listitem>
              <para>スワップファイルを作ります
                (<filename>/usr/swap0</filename>)</para>
              <screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen>
            </listitem>

            <listitem>
              <para>スワップファイルに適切なパーミッションを設定します</para>
              <screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen>
            </listitem>

            <listitem>
              <para><filename>/etc/rc.conf</filename>
                でスワップファイルを有効化させます</para>
              <programlisting>swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired.</programlisting>
            </listitem>

            <listitem>
              <para>マシンを再起動します</para>
            </listitem>
          </orderedlist>

          <para>
            スワップファイルをすぐに有効化させたいのなら以下のようにタイプします。
          </para>
            <screen>&prompt.root; <userinput>vnconfig -e /dev/vn0b /usr/swap0 swap</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="printer-setup">
          <para>プリンタのセットアップで問題があります</para>
        </question>

        <answer>
          <para>ハンドブックのプリンタの部分を参照してください。
            探している問題のほとんどが書かれているはずです。
            <ulink url="../handbook/printing.html">FreeBSD
              ハンドブックの「プリンタの利用」</ulink>をご覧ください。
          </para>

          <para>プリンタによっては、印刷するのにホスト側にドライバが
            必要です。これら <quote>WinPrinters</quote> と呼ばれるものは、
            素の FreeBSD では使えません。DOS や Windows NT 4.0 で動作しない
            なら、そのプリンタはおそらく WinPrinter でしょう。
            ただし、唯一の希望が残されています。
            <filename>ports/print/pnm2ppa</filename> の port が
            対応しているかどうか確認してみてください。<ulink
            url="http://www.freebsd.org/cgi/url.cgi?ports/print/pnm2ppa/pkg-descr">
            パッケージの説明</ulink>にはこう書いてあります。</para>

          <blockquote>
            <para>このソフトウェアは PPA (printer performance
              architecture) プロトコルの出力を行います。このプロトコル
              は HP の "Windows 専用" プリンタの一部に使われています。
              そのなかには、HP Deskjet 820C シリーズ、HP DeskJet 720
              シリーズ、および HP DeskJet 1000 シリーズがあります。(略)</para>

            <para>WWW: <ulink
              url="http://pnm2ppa.sourceforge.net/">http://pnm2ppa.sourceforge.net/</ulink></para>
          </blockquote>

        </answer>
      </qandaentry>

      <qandaentry>
        <question id="keyboard-mappings">
          <para>私のシステムのキーボードマッピングは間違っています。</para>
        </question>

        <answer>
          <para>
            <command>kbdcontrol</command> プログラムは、
            キーボードマップファイルを読み込むためのオプションを備えています。
            <filename>/usr/share/syscons/keymaps</filename>
            の下にたくさんのマップファイルがあります。
            システムに関連のあるものを一つ選んで、ロードしてください。
          </para>

          <screen>&prompt.root; <userinput>kbdcontrol -l uk.iso</userinput></screen>

          <para>
            <filename>/usr/share/syscons/keymaps</filename>
            と拡張子
            <filename>.kbd</filename> は、どちらも
            &man.kbdcontrol.1;
            によって使用されます。
          </para>

          <para>
            これは <filename>/etc/sysconfig</filename> (または
            &man.rc.conf.5;)
            中で設定することができます。
            このファイル中にあるそれぞれのコメントを参照してください。
          </para>

          <para>
            FreeBSD 2.0.5R
            やそれ以降の版では、
            テキストフォントやキーボードマッピングに関係のあるものはすべて、
            <filename>/usr/share/examples/syscons</filename>
            の中におさめられています。
          </para>

          <para>現在以下のマッピングがサポートされています。</para>

            <itemizedlist>
              <listitem>
                <para>Belgian ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Brazilian 275 keyboard Codepage 850</para>
              </listitem>

              <listitem>
                <para>Brazilian 275 keyboard ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Danish Codepage 865</para>
              </listitem>

              <listitem>
                <para>Danish ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>French ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>German Codepage 850 </para>
              </listitem>

              <listitem>
                <para>German ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Italian ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Japanese 106</para>
              </listitem>

              <listitem>
                <para>Japanese 106x</para>
              </listitem>

              <listitem>
                <para>Latin American</para>
              </listitem>

              <listitem>
                <para>Norwegian ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Polish ISO-8859-2 (programmer's)</para>
              </listitem>

              <listitem>
                <para>Russian Codepage 866 (alternative)</para>
              </listitem>

              <listitem>
                <para>Russian koi8-r (shift)</para>
              </listitem>

              <listitem>
                <para>Russian koi8-r</para>
              </listitem>

              <listitem>
                <para>Spanish ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Swedish Codepage 850</para>
              </listitem>

              <listitem>
                <para>Swedish ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>Swiss-German ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>United Kingdom Codepage 850</para>
              </listitem>

              <listitem>
                <para>United Kingdom ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>United States of America ISO-8859-1</para>
              </listitem>

              <listitem>
                <para>United States of America dvorak</para>
              </listitem>

              <listitem>
                <para>United States of America dvorakx</para>
              </listitem>

            </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="pnp-resources">
          <para>起動時に、<errorname>unknown: &lt;PNP0303&gt; can't
              assign resources</errorname> というメッセージが表示されるのですが?</para>
        </question>

        <answer>
          <para>以下は、freebsd-current メーリングリストへの投稿からの
            抜粋です。</para>

          <blockquote>
            <attribution>&a.wollman;, 2001424</attribution>

            <para><quote>can't assign resources</quote> というメッセージは、
              そのデバイスがレガシー ISA デバイスで、PnP を意識していない
              ドライバがカーネルに組み込まれていることを示します。
              これには、キーボードコントローラ、プログラム可能な
              割り込み制御 IC やその他さまざまな標準的なデバイスが
              あります。リソースが割り当てられないのは、既にそのアドレスを
              使っているドライバがあるからです。</para>
          </blockquote>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="user-quotas">
          <para>ユーザディスククォータが正常に動作していないようです。</para>
        </question>

        <answer>
            <orderedlist>
              <listitem>
                <para><quote><filename>/</filename></quote>
                  にはディスククォータを設定しないでください。</para>
              </listitem>

              <listitem>
                <para>
                  クォータファイルが置かれるファイルシステム上に
                  クォータファイルを置くようにしてください。
                </para>

                <informaltable frame="none">
                  <tgroup cols="2">
                    <thead>
                      <row>
                        <entry>Filesystem</entry>
                        <entry>Quota file</entry>
                      </row>
                    </thead>

                    <tbody>
                      <row>
                        <entry><filename>/usr</filename></entry>
                        <entry><filename>/usr/admin/quotas</filename></entry>
                      </row>

                      <row>
                        <entry><filename>/home</filename></entry>
                        <entry><filename>/home/admin/quotas</filename></entry>
                      </row>

                      <row>
                        <entry>&hellip;</entry>
                        <entry>&hellip;</entry>
                      </row>
                    </tbody>
                  </tgroup>
                </informaltable>

              </listitem>
            </orderedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="inappropriate-ccd">
          <para>わたしの ccd は、
            何が適合していない (Inappropriate) のでしょう?</para>
        </question>

        <answer>
          <para>次のような症状が現れます。</para>

          <screen>&prompt.root; <userinput>ccdconfig -C</userinput>
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen>

          <para>
            通常この現象はタイプを「未使用 (unused)」のまま放っておかれた
            <literal>c</literal>
            パーティションをつなげようとした場合に現れます。ccd ドライバは
            FS_BSDFFS
            タイプをベースとするパーティションを要求します。
            つなげようとしているディスクのディスクラベルを編集して、
            パーティションのタイプを <literal>4.2BSD</literal>
            に変更してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ccd-disklabel">
          <para>どうしてわたしの ccd のディスクラベルを変更することができないのでしょう?</para>
        </question>

        <answer>
          <para>次のような症状が現れます。</para>

          <screen>&prompt.root; <userinput>disklabel ccd0</userinput>
(it prints something sensible here, so let's try to edit it)
&prompt.root; <userinput>disklabel -e ccd0</userinput>
(edit, save, quit)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label</screen>

          <para>
            これは ccd から返されるディスクラベルが、
            実はディスク上にはないまったくの偽の情報だからです。
            これを明示的に書き直すことで問題を解消できます、
            それには、つぎのようにします。
          </para>

          <screen>&prompt.root; <userinput>disklabel ccd0 &gt; /tmp/disklabel.tmp</userinput>
&prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput>
&prompt.root; <userinput>disklabel -e ccd0</userinput>
(this will work now)</screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="sysv-ipc">
          <para>FreeBSD は System V の IPC プリミティブをサポートしますか?</para>
        </question>

        <answer>
          <para>
            はい。
            FreeBSD は System-V スタイルの IPC をサポートします。
            共有メモリ、メッセージ、セマフォが含まれます。
            以下の行をカーネルコンフィグファイルに加えると、
            サポートが有効になります。
          </para>

          <programlisting>options    SYSVSHM          # enable shared memory
options    SYSVSEM          # enable for semaphores
options    SYSVMSG          # enable for messaging</programlisting>

            <note>
              <para>FreeBSD 3.2 とそれ以降では、
                これらのオプションがあらかじめ <emphasis>GENERIC</emphasis>
                カーネルに含まれていますので、
                あなたのシステムにはすでに組み込まれています。</para>
            </note>

        <para>カーネルを再構築してインストールしてください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="uucpmail">
          <para>UUCP でメールを配送するには sendmail をどう使えばよいのですか?</para>
        </question>

        <answer>
          <para>
            FreeBSD に付属している sendmail は、
            インターネットに直接つながっているサイトにあわせて設定してあります。
            UUCP 経由で mail を交換したい場合には sendmail
            の設定ファイルを改めてインストールしなければなりません。
          </para>

          <para>
            <filename>/etc/sendmail.cf</filename>
            を自分の手で改造するのは純粋主義者のやるような事です。
            sendmail の version 8 は &man.m4.1;
            のようなプリプロセッサを通して設定ファイルを生成する新しいアプローチを取っており、
            より抽象化されたレベルの設定ファイルを編集します。
            <filename>/usr/src/usr.sbin/sendmail/cf</filename>
            ディレクトリの中にある設定ファイルを使用してください。
          </para>

          <para>
            もしすべてのソースをインストールしていない場合には sendmail
            の設定ツールは、別の tar ファイルにまとめてあります。CD-ROM が
            mount されている場合には、次のようにしてください。
          </para>


          <screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen>

          <para>
            これはたった数 100Kbyte ですから心配ないでしょう。
            <filename>cf</filename>
            ディレクトリにある <filename>README</filename>
            に、m4 での設定の基本的な説明があります。
          </para>

          <para>
            UUCP での配送のためには、<literal>mailertable</literal> を使用すれば
            よいでしょう。これによって、sendmail
            が配送方式を決定するデータベースを
            作成することができます。
          </para>

          <para>まずはじめに、
            <filename>.mc</filename> ファイルを作成しなければなりません。
            <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> というディレクトリが、
            これらのファイルを作成する場所です。既にいくつか例があると思います。
            これから作成するファイルの名前を <filename>foo.mc</filename> とすると、
            <filename>sendmail.cf</filename> を求めているような形式に変換するには、
            次のようにしてください。</para>

          <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
&prompt.root; <userinput>make foo.cf</userinput>
&prompt.root; <userinput>cp foo.cf /etc/sendmail.cf</userinput></screen>

          <para>
            標準的な
            <filename>.mc</filename> ファイルは次のようになります。
          </para>

          <programlisting>include(`../m4/cf.m4')
VERSIONID(`<replaceable>Your version number</replaceable>')
OSTYPE(bsd4.4)

FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(mailertable)

define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
define(`UUCP_MAX_SIZE', 200000)

MAILER(local)
MAILER(smtp)
MAILER(uucp)

Cw    <replaceable>your.alias.host.name</replaceable>
Cw    <replaceable>youruucpnodename.UUCP</replaceable></programlisting>

          <para>
            <literal>nodns</literal><literal>nocanonify</literal> という指定をすることで、
            mail の配送に DNS を使用しなくなります。
            <literal>UUCP_RELAY</literal> という
            行に関しては、
            ある理由から必要ですがそれは聞かないでください。
            .UUCP で終わる仮想ドメインを処理することのできるインターネット上での
            ホスト名をここに書いてください。通常は、ISP の mail リレーホストを
            書くことになると思います。
          </para>

          <para>
            これが終了したら、次に
            <filename>/etc/mailertable</filename>
            というファイルが必要です。標準的な例は次のとおりです。
          </para>

<programlisting>#
# makemap hash /etc/mailertable.db &lt; /etc/mailertable
#
horus.interface-business.de   uucp-dom:horus
.interface-business.de        uucp-dom:if-bus
interface-business.de         uucp-dom:if-bus
.heep.sax.de                  smtp8:%1
horus.UUCP                    uucp-dom:horus
if-bus.UUCP                   uucp-dom:if-bus
.                             uucp-dom:</programlisting>


          <para>
            見れば分かるように、これは実在する設定のファイルです。はじめの
            3 行はドメイン名で指定されたメールが default の経路で配送されずに、
            「近道」するために UUCP で隣りのサイトに送るための特別な状況を
            処理するものです。
            次の行は Ethernet でつながっているローカルのドメインに対しては
            SMTP で送るための設定です。
            最後に、UUCP での隣りのサイトが .UUCP で終わる仮想ドメインの書式で
            指定されており、default の rule を
            <literal><replaceable>uucp-neighbour</replaceable>!<replaceable>
            recipient</replaceable></literal>
            で上書きするためのものです。一番最後の行はいつもドットを一つ書きます。
            これは、ここまでの行でマッチしなかったすべてのホストにマッチし、
            このサイトから世界に向けて出ていくための mail gateway に UUCP
            で配送するためのものです。
            <literal>uucp-dom:</literal> に続けて書かれているノード名は、
            <literal>uuname</literal> コマンドで指定することによって UUCP
            で直接配送される正しいノード名でなければなりません。
          </para>

          <para>
            最後に、このファイルは使用する前に DBM データベースのファイルに
            変換する必要があります。これを行なうコマンドラインは mailertable
            の最初のコメントに書いてあります。mailertable を変更した時には、
            必ずこのコマンドを実行してください。
          </para>

          <para>
            最後のヒントです: もし特定のメール配送がうまく作動するかどうか
            確かめたい場合には、sendmail の<option>-bt</option> オプションを
            使用してください。このオプションによって sendmail は
            <emphasis>アドレステストモード</emphasis>で起動します。
            <literal>0</literal>
            の後に配送したいアドレスを書いてください。最後の行に、実際に使用される
            mail agent、この mail agent で送られる送信先のホスト、そして
            (多分変換されている) アドレスが表示されます。このモードを抜けるには
            Control-D を押してください。
          </para>

          <screen>&prompt.user; <userinput>sendmail -bt</userinput>
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter &lt;ruleset&gt; &lt;address&gt;
<prompt>&gt;</prompt> <userinput>0 foo@interface-business.de</userinput>
rewrite: ruleset  0   input: foo @ interface-business . de
...
rewrite: ruleset  0 returns: $# uucp-dom $@ if-bus $: foo \
&lt; @ interface-business . de &gt;
<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ispmail">
          <para>ダイアルアップでインターネットに接続する環境でメールをセットアップするにはどうやるの?</para></question>

        <answer>
          <para>
            静的に IP アドレスが割り当てられる場合は、
            デフォルトの状態を変更する必要はありません。
            割り当てられた名前をホストネームと
            するだけで、sendmail が後のことを引き受けてくれます。
          </para>

          <para>
            ダイアルアップ <application>ppp</application> を
            インターネット接続に使用し、動的に IP アドレスが割り当てられる場合は、
            インターネットサービスプロバイダ (ISP)
            のメールサーバにメールボックスがあるはずです。
            ISP のドメインが
            <hostid role="domainname">myISP.com</hostid>
            で、あなたのユーザ名が
            <username>user</username> だと仮定します。
            また、あなたが自分のマシンを <hostid role="fqdn">bsd.home</hostid>
            と呼んでおり、ISP が
            <hostid role="fqdn">relay.myISP.com</hostid>
            をメールリレーとして使用できると言っているとしましょう。
          </para>

          <para>
            メールボックスからメールを取ってくるためには、
            回収 (retrieval) エージェントをインストールする必要があります。
            <application>Fetchmail</application>
            は多種多様なプロトコルをサポートしているのでお勧めです。
            ISP が使用しているのは、大抵 POP3 プロトコルです。
            ユーザ ppp を使用している場合、
            <filename>/etc/ppp/ppp.linkup</filename>
            に以下のように記述すると、
            インターネットと接続が完了した時点で自動的にメールを取得するようになります。
          </para>

          <programlisting>MYADDR:
        !bg su user -c fetchmail</programlisting>


          <para>
            ローカルでないアカウントにメールを配送するのに
            sendmail を使用している場合 (後述)、
            上に示したエントリの後に
          </para>

<programlisting>        !bg su user -c "sendmail -q"</programlisting>

          <para>
            を記述します。これはネットワーク接続が確立したらすぐに
            <application>sendmail</application> に溜っている
            mailqueue を強制的に処理させるようにします。
          </para>

          <para>
            この例では、<username>user</username><hostid role="fqdn">bsd.home</hostid> にアカウントを持ち、
            <hostid role="fqdn">bsd.home</hostid> 上の
            <username>user</username>
            のホームディレクトリに、以下のような
            <filename>.fetchmailrc</filename>
            ファイルがつくられていることを想定しています。
          </para>

          <programlisting>poll myISP.com protocol pop3 fetchall pass MySecret;</programlisting>

          <para>
            言うまでもなく、このファイルは
            <username>user</username>
            以外のユーザが読むことが出来ないようにしなくてはなりません。
            内容にパスワード <literal>MySecret</literal>
            が含まれているからです。
          </para>

          <para>
            正しい
            <literal>from:</literal>
            ヘッダをつけてメールを送るためには、
            <application>sendmail</application><literal>user@bsd.home</literal> ではなく
            <literal>user@myISP.com</literal>
            を使用するよう教える必要があります。
            メールをより早く転送するために、すべてのメールを
            <hostid role="fqdn">relay.myISP.com</hostid>
            へ送るように <application>sendmail</application> に
            指示しておくのも良いでしょう。
          </para>

          <para>
            上の要件を満たすには、以下のような <filename>.mc</filename>
            ファイルが適しています。
          </para>

          <programlisting>VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`myISP.com')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.myISP.com')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE', `deferred')dnl</programlisting>

          <para>
            <filename>.mc</filename> ファイルから
            <filename>sendmail.cf</filename> への変換方法については、
            前のセクションを参照してください. sendmail.cf を更新した後に
            <application>sendmail</application> をリスタートするのもお忘れなく。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="toor-account">
          <para>この UID が 0<username>toor</username> という
            アカウントとは何ですか? 危険にさらされているのでしょうか?</para>
        </question>

        <answer>
          <para>心配無用です。<username>toor</username><quote>代替の</quote> スーパーユーザーアカウントです
            (toor は root を逆に綴ったものです)。
            以前は、&man.bash.1; シェルがインストールされた時に
            作成されていましたが、現在は標準で作成されています。
            このユーザーが作成されるのは、
            スーパーユーザが非標準のシェルを使う場合を想定しており、
            <username>root</username>
            の標準のシェルを変更しなくてもよくなっています。
            基本配布に含まれていないシェル
            (たとえば ports や packages からインストールされるシェル)
            は、デフォルトでは別のファイルシステムに存在する
            可能性のある <filename>/usr/local/bin</filename> に
            インストールされることが多いので、これは重要です。
            <username>root</username> のシェルが
            <filename>/usr/local/bin</filename> にあり、
            <filename>/usr</filename>
            (または、<filename>/usr/local/bin</filename>
            があるいずれかのファイルシステム)
            が何らかの理由でマウントされていないとすると、
            <username>root</username> は問題を解決するために
            ログインすることができません (シングルユーザーモードで再起動すれば、
            シェルのパスの入力を促されるのですが)。</para>

          <para><username>toor</username> を日々の root の仕事を
            非標準のシェルで行うために使い、<username>root</username> は
            シングルユーザーモードや緊急時のために、標準のシェルのままに
            している人がいます。何もしなければ、パスワードを無効にしてあるので
            <username>toor</username> ではログインできません。
            使いたいなら、<username>root</username> でログインして <username>toor</username> の
            パスワードを設定しましょう。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="forgot-root-pw">
          <para>しまった! root のパスワードを忘れてしまった!</para>
        </question>

        <answer>
          <para>
            慌てないでください! 単にシステムを再起動し、
            シングルユーザモードに移るために <prompt>Boot:</prompt>
            と表示されるプロンプトで <userinput>boot -s</userinput>
            と入力してください
            (FreeBSD の 3.2 より前のリリースでは
            <userinput>-s</userinput>となります)。
            どのシェルを使うのかという質問には、ENTER
            キーを押してください。&prompt.root;
            に移ることができるでしょう。
            <command>mount -u /</command> と入力して
            ルートファイルシステムの読み書きを再マウントし、
            <command>mount -a</command> と入力して、
            すべてのファイルシステムをマウントし直した後、
            <command>passwd root</command>
            と入力して <username>root</username>
            のパスワードを設定し直してください。
            その後、<command>exit</command>
            と入力すれば、起動が続けられます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="CAD-reboot">
          <para>
            <keycap>Control</keycap>-<keycap>Alt</keycap>-<keycap>Delete</keycap>
            でシステムが再起動しないようにするにはどうすればいい?</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.2.7-RELEASE 以降で syscons (デフォルトのコンソールドライバ)
            を使用している場合には、次の行をカーネルコンフィグレーションファイルに追加して
            カーネルを再構築し、インストールしてください。
          </para>

          <programlisting>options SC_DISABLE_REBOOT</programlisting>

          <para>
            FreeBSD 2.2.5-RELEASE 以降で PCVT コンソールドライバを使用している
            場合には、同様に次の行をカーネルコンフィグレーションファイルに追加して
            カーネルを再構築し、インストールしてください。
          </para>

          <programlisting>options PCVT_CTRL_ALT_DEL</programlisting>

          <para>
            上にあげたものよりも古い FreeBSD の場合、
            現在コンソールが使用しているキーマップを編集し、
            キーワード
            <literal>boot</literal><literal>nop</literal> に書き換えてください。
            <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>
            にあります。
            その変更を反映させようとして、
            このキーマップのロードを明示的に行なうために、
            <filename>/etc/rc.conf</filename> を実行すべきかもしれません。
            もちろん他の国のキーマップを使っているのであれば、
            代わりにそのキーマップファイルを編集してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dos-to-unix-txt">
          <para>DOS のテキストファイルを UNIX
            のテキストファイルに整形するにはどうすればいい?</para>
        </question>

        <answer>
          <para>
            単に次の perl コマンドを実行してください。
          </para>

          <screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen>


          <para>
            file
            の部分には処理するファイルを指定してください。
            整形後のファイルは元のファイル名で作成され、
            整形前のファイルはバックアップとして元の
            ファイル名の末尾に拡張子
            <filename>.bak</filename> のつけられた名前で作成されます。
          </para>

          <para>
            あるいは
            &man.tr.1;
            コマンドを使うこともできます。
          </para>

          <screen>&prompt.user; <userinput>tr -d '\r' &lt; <replaceable>dos-text-file</replaceable> &gt; <replaceable>unix-file</replaceable></userinput></screen>

          <para>
            <replaceable>dos-text-file</replaceable> は
            DOS 形式のテストファイル、
            <replaceable>unix-file</replaceable>
            には変換された出力が格納されます。
            perl を使うよりほんのちょっぴり速くなります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="kill-by-name">
          <para>名前で指定してプロセスにシグナルを送るにはどうすればいい?</para>
        </question>

        <answer>
          <para>
            &man.killall.1;
            を使ってください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="root-acl">
          <para>su が not in <username>root</username>'s ACL
            と言って私を悩ませるのはなぜ?</para>
        </question>

        <answer>
          <para>Kerberos の認証システムからくるエラーです。
            この問題は致命的なものではなく、
            うっとおしいといったものです。
            <command>su</command><option>-K</option>
            オプションをつけて起動するか、
            次の質問で説明されている方法で Kerberos
            をアンインストールしてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="uninstall-kerberos">
          <para>Kerberos をアンインストールするにはどうすればいいの?</para>
        </question>

        <answer>
          <para>
            システムから Kerberos を削除するには、
            あなたの動かしているリリースの
            bin ディストリビューションを再インストールしてください。
            もし CDROM を持っているのなら、
            その CDROM をマウント (マウントポイントは
            <filename>/cdrom</filename> と仮定) して、
            次のように入力してください。
          </para>

          <screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
&prompt.root; <userinput>./install.sh</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="add-pty">
          <para>疑似ターミナルを追加するには?</para>
        </question>

        <answer>
          <para>
            telnet、ssh、X、screen をたくさん利用されている場合、
            疑似ターミナルが足りなくなっている可能性があります。
            これを増やすには次のようにします。
          </para>

            <procedure>
              <step>
                <para>
                  次の行をカーネルコンフィグレーションファイルに追加して

                  <programlisting>pseudo-device pty 256</programlisting>

                  新たにカーネルを作りインストールします。
                </para>
              </step>

              <step>
                <para>
                  次のコマンドを実行して

                  <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>

                  新たなターミナル用の 256 個のデバイスノードを作ります。
                </para>
              </step>

              <step>
                <para>
                  <filename>/etc/ttys</filename> を編集し
                  256 個のターミナルごとの定義を追加します。
                  既存のエントリーの形式にあわせる必要があるでしょう。
                  たとえばこんな感じです。
                </para>

                  <programlisting>ttyqc none network</programlisting>

                <para>
                  正規表現を使った指定は
                  <literal>tty[pqrsPQRS][0-9a-v]</literal>
                  となります。
                </para>
              </step>

              <step>
                <para>
                  新しいカーネルでシステムを再起動すると完了です。
                </para>
              </step>
            </procedure>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="create-snd0">
          <para>
            <devicename>snd0</devicename>
            デバイスを作成することができません!</para>
        </question>

        <answer>
          <para><devicename>snd</devicename> というデバイスは存在しません。
            この名前は、FreeBSD
            サウンドドライバによって作成されるさまざまなデバイス、
            <devicename>mixer</devicename><devicename>sequencer</devicename><devicename>dsp</devicename>
            などを総称したものです。
          </para>

          <para>これらのデバイスを作成するには、次のようにする必要があります。</para>

          <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="reread-rc">
          <para>再起動せずにもう一度
            <filename>/etc/rc.conf</filename>
            を読み込んで
            <filename>/etc/rc</filename>
            を開始させるには?</para>
        </question>

        <answer>
          <para>
            シングルユーザモードに移行して、
            マルチユーザモードに戻ってください。
          </para>

          <para>
            コンソールで次のように実行します。

            <screen>&prompt.root; <userinput>shutdown now</userinput><emphasis>(注: <option>-r</option><option>-h</option> は付けません)</emphasis>
&prompt.root; <userinput>return</userinput>
&prompt.root; <userinput>exit</userinput></screen>
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="sandbox">
          <para>砂場 (sandbox) とは何ですか?</para>
        </question>

        <answer>
          <para><quote>砂場 (Sandbox)</quote> とはセキュリティ用語の一つで、
            次の二つの意味があります。
          </para>

            <itemizedlist>
              <listitem>
                <para>
                  一つ目は、「仮想的な『防壁』で囲まれているプロセス」です。
                  その『防壁』は、そのプロセスに侵入した第三者が、
                  さらにシステムの広い範囲に影響を与えることを防ぐように設計されます。
                </para>

                <para>
                  このプロセスの振舞いは、『防壁』の中だけに制限される、と表現できます。
                  つまり、このプロセスにおいて、『防壁』を越えるようなコードの実行は
                  できないという意味です。そのため、コードの実行におけるセキュリティは
                  確かなものであると保証でき、実行の詳細な追跡を行なう必要はなくなります。
                </para>

                <para>
                  その『防壁』とは、たとえばユーザ ID がそれにあたるでしょう。
                  この定義は、security(7) や named(8) のマニュアルページで用いられています。
                </para>

                <para>
                  <literal>ntalk</literal>
                  サービス (/etc/inetd.conf
                  参照のこと) を例にとってみます。
                  このサービスはかつて、実行時の ユーザ ID として
                  root
                  を用いていましたが、現在では
                  tty
                  というユーザ ID で動作します。
                  ユーザ
                  tty は、
                  ntalk を経由してシステムの侵入に成功した第三者が
                  そのユーザ ID 以上の権限を得ることを、
                  より一層困難にするために設計された砂場 (sandbox) なのです。
                </para>
              </listitem>

              <listitem>
                <para>
                  二つ目は「シミュレートされたマシンの内側で実行されるプロセス」のことで、
                  こちらはより中核的です。
                  普通に考えれば、あるプロセスに侵入することができる第三者は、
                  マシンのより広い範囲にも侵入できると信じるものなのですが、
                  この種のプロセスの場合、それは実際にはシミュレートされたマシンに
                  侵入しただけなので、現実のデータを変更することは何一つできません。
                </para>

                <para>
                  これを実現するための最も広く用いられている方法は、
                  シミュレートされた環境をサブディレクトリに構築し、
                  そのディレクトリに chroot して、そのディレクトリで
                  プロセスを実行すること (つまり、そのプロセスにとって
                  <filename>/</filename> は
                  システムの実際のルートディレクトリ
                  <filename>/</filename> ではなく、
                  chroot されたサブディレクトリを指す) です。
                </para>

                <para>
                  広く用いられているもう一つの方法があります。
                  それは、既に存在しているファイルシステムを
                  読み込み専用 (read-only) でマウントし、その上に、あるプロセスに対して
                  そのファイルシステムが書き込み可能であるように見せるような、
                  もう一つのファイルシステムの層を用意するものです。すると、
                  そのプロセスはファイルを書き込むことができると認識し、
                  実際に書き込むことができるのもその特定のプロセスだけ
                  - システムにある他のプロセスは書き込めないのに対して -
                  であるという状況を実現することができます。
                </para>

                <para>
                  この種の砂場 (sandbox) は、
                  その非常に透過的な性質を使って、ユーザ (もしくは侵入者) が
                  その事実に気付かないように実現されます。
                </para>
              </listitem>
            </itemizedlist>

          <para>
            UNIX は、内部的に二つの砂場 (sandbox) を実装しています。
            一つはプロセスレベルのもの、もう一つはユーザ ID レベルのものです。
          </para>

          <para>
            UNIX プロセスはすべて、他の UNIX プロセスから完全に隔離されています。
            どのプロセスも、他のプロセスのアドレス空間を変更することはできません。
            これは、あるプロセスが他のプロセスのアドレス空間を上書きできるような、
            クラッシュにつながる行為が容易に実現できる Windows とは全く異なるものです。
          </para>

          <para>
            UNIX プロセスは、特定のユーザ ID が所有します。
            もし、実行者のユーザ ID が <username>root</username>
            ユーザのものでなければ、
            ユーザ ID は、他のユーザが所有するプロセスから
            そのプロセスを守る機能を果たすわけです。
            また、そのユーザ ID は、ディスク上にあるデータを
            保護するのにも使われています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="securelevel">
          <para>セキュアレベル (securelevel) って何ですか?</para>
        </question>

        <answer>
          <para>セキュアレベルとはカーネルに実装されているセキュリティ機構の一つです。
            簡単に言うと、カーネルはセキュアレベルが正の値の時に、
            ある特定の操作を制限します。この制限は、たとえスーパユーザ
            (<username>root</username> のこと) であっても例外ではありません。
            この文を書いている時点では、
            セキュアレベル機構を使って以下のような操作を制限することができます。</para>

          <itemizedlist>
            <listitem>
              <para>
                <literal>schg</literal> (system immutable flag)
                のようなファイルフラグの変更</para>
            </listitem>

            <listitem>
              <para><devicename>/dev/mem</devicename> および
                <devicename>/dev/kmem</devicename>
                経由でのカーネルメモリへの書き込み</para>
            </listitem>

            <listitem>
              <para>カーネルモジュールのロード</para>
            </listitem>

            <listitem>
              <para>&man.ipfirewall.4; ルールの変更</para>
            </listitem>
          </itemizedlist>

          <para>稼働中のシステムでセキュアレベルの状態をチェックするには、
            次のコマンドを実行します。</para>

          <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>

          <para>出力には、&man.sysctl.8; 変数 (今の場合は
            <varname>kern.securelevel</varname>) と数字が現れます。
            数字が現在のセキュアレベルの値です。
            これがもし正の値なら、
            何らかのセキュアレベルによる制限が有効になっています。</para>

          <para>システム稼働中にセキュアレベルを下げることはできません。
            これは、それを可能にするとセキュアレベルの意味がなくなってしまうからです。
            セキュアレベルが正の値でないことを要求する操作
            (たとえば <maketarget>installworld</maketarget> や日付の変更など)
            を行なう必要がある場合は、<filename>/etc/rc.conf</filename>
            にあるセキュアレベルの設定 (<varname>kern_securelevel</varname><varname>kern_securelevel_enable</varname> という変数)
            を変更して再起動する必要があります。</para>

          <para>セキュアレベルに関する詳しい情報や、
            各レベルで実現される機能に関しては
            &man.init.8; のマニュアルページを参照してください。</para>

            <warning>
              <para>セキュアレベルは万能というわけではなく、
                弱点も数多く存在します。また、場合によっては、
                セキュリティを低下させてしまうこともあります。</para>

              <para>最も大きな問題の一つに、
                セキュアレベルの機能を有効にするには、
                起動処理でセキュアレベルが設定されるまでに使われるすべてのファイルを
                保護する必要があるということがあります。
                もし攻撃者が、システムがセキュアレベルを設定する前にコードを実行することができるとしたら、
                セキュアレベルによる保護は無意味になってしまいます
                (起動時には低いセキュアレベルでしか実行できない処理を行なう必要があるため、
                セキュアレベルの設定は、起動処理の最後の方で行なわれます)。
                起動処理で使われるすべてのファイルを保護することは技術的に不可能です。
                もしそうできたとしても、システムの保守はまさに悪夢となるでしょう。
                設定ファイル一つ書き換えるのにも、
                シングルユーザモードに切替えなければならなくなるのですから。
              </para>

              <para>以上で説明した内容やその他の点については、
                メーリングリストでも良く話題にのぼります。
                議論のようすを<ulink url="http://www.FreeBSD.org/search/">このページ</ulink>から検索してみてください。
                セキュアレベルは、
                いずれより粒度の細かい機構にとって代わるだろうと考えている人々もいますが、
                その点についてはまだ不透明なままです。
              </para>

              <para>どうか注意するようにしてください。</para>
            </warning>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="user-floppymount">
          <para>フロッピーや CDROM や他のリムーバブルメディアのマウントを一般ユーザーに許可するには?</para>
        </question>

        <answer>
          <para>
            一般ユーザーでもデバイスをマウントできるようにすることができます。
            手順は次のとおりです。
          </para>

          <procedure>
            <step>
              <para><username>root</username>
                になって、
                sysctl 変数である
                <varname>vfs.usermount</varname><literal>1</literal> に設定します。
              </para>

                <screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
            </step>

            <step>
              <para><username>root</username>
                になって、
                リムーバブルメディアに関連するブロックデバイスに適切なパーミッションを設定します。
              </para>

              <para>
                例として、最初のフロッピーデバイスをユーザーがマウントできるようにするには、
                次のようにします。
              </para>

              <screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
              <para>
                <groupname>operator</groupname> グループに所属するユーザが
                CDROM ドライブをマウントできるようにするには
                以下のようにします。
              </para>

              <screen>&prompt.root; <userinput>chgrp operator /dev/cd0c</userinput>
&prompt.root; <userinput>chmod 640 /dev/cd0c</userinput></screen>
            </step>

            <step>
              <para>
                最後に <literal>vfs.usermount=1</literal> という行を
                <filename>/etc/sysctl.conf</filename> ファイルに追加し、
                ブート時にセットされるようにしておきます。
              </para>
            </step>

          </procedure>

          <para>
            これで、すべてのユーザは
            フロッピー <devicename>/dev/fd0</devicename> を
            自身の所有するディレクトリへマウントすることができます。
          </para>

          <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
&prompt.user; <userinput>mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen>

          <para>
            これで、<groupname>operator</groupname> グループに所属するユーザは
            CDROM <devicename>/dev/cd0c</devicename> を
            自身の所有するディレクトリへマウントすることができます。
          </para>

          <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
&prompt.user; <userinput>mount -t msdos /dev/cd0c ~/my-mount-point</userinput>
</screen>

          <para>デバイスのアンマウントは簡単です。</para>

          <screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>

          <para>
            しかし、
            <varname>vfs.usermount</varname>
            を有効にすることは、セキュリティ上よいことではありません。
            MSDOS 形式のメディアにアクセスには、Ports コレクションにある
            パッケージ
            <ulink url="http://www.freebsd.org/cgi/ports.cgi?query=%5Emtools-&amp;stype=name">mtools</ulink>
            を使用した方がよいでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="new-huge-disk">
          <para>システムを新しい巨大ディスクへ移すにはどうするのですか?</para>
        </question>

        <answer>
          <para>一番良いのは新しいディスクに OS を再インストールして、
            それからユーザデータを移すことです。特にあなたが -stable を
            複数のリリースを跨いで追い掛けている場合にはこの方法をおすすめします。
            あなたは &man.boot0cfg.8; を使うことで booteasy を両方の
            ディスクにインストールでき、新しい配置で満足している間
            デュアルブートができます。これを行ったあとデータを移す
            方法を探すなら次の段落は読み飛ばしてください。</para>

          <para>何もないディスクへインストールしないことに決めたならば
            <filename>/stand/sysinstall</filename>、なり &man.fdisk.8;
            と &man.disklabel.8; なりを使って新しいディスクに
            パーティションとディスクラベルを作らなければなりません。
            また &man.boot0cfg.8; で booteasy を両方のディスクに
            インストールして、コピーの作業が終わったあとに
            古いシステムからでも新しいディスクからでも起動できるように
            しておく必要があります。この作業の詳細は <ulink
            url="http://www.freebsd.org/tutorials/formatting-media/index.html">formatting-media
            tutorial</ulink> を見てください。</para>

          <para>新しいディスクの立ち上げが終わってデータの移動を
            待つばかりになりました。しかし悲しいかな、無闇やたらと
            コピーすればいいというものではありません。デバイスファイル
            (<filename>/dev</filename>) やシンボリックリンクなどは
            失敗の元になります。これらを理解するツール、すなわち
            &man.dump.8; や &man.tar.1; 等を使う必要があります。
            データの移転はシングルユーザで行うことをお勧めしますが、
            絶対と言うわけではありません。</para>

          <para>あなたは &man.dump.8; と &man.restore.8; 以外のもので
            root ファイルシステムを移行してはなりません。
            &man.tar.1; コマンドでもたぶんうまく行くでしょうが、
            やらないほうがいいでしょう。パーティション一つを
            もう一つのからのパーティションに移すときは
            &man.dump.8; と &man.restore.8; 使うべきです。
            パーティションのデータを新しいパーティションに移すのに
            dump を使うやり方は以下の通りです。</para>

          <procedure>
            <step>
              <para>新しいパーティションに newfs をかける。</para>
            </step>

            <step>
              <para>それを暫定的なマウントポイントにマウントする。</para>
            </step>

            <step>
              <para>そのディレクトリに cd。</para>
            </step>

            <step>
              <para>古いパーティションを dump し、
                その出力をパイプで新しい方へ。</para>
            </step>
          </procedure>

          <para>たとえば root を
            <devicename>/dev/ad1s1a</devicename> へ、暫定的なマウントポイントを
            <filename>/mnt</filename> として移そうとすると以下のようになります。</para>

          <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
&prompt.root; <userinput>mount /dev/ad1s1a</userinput>
&prompt.root; <userinput>cd /mnt</userinput>
&prompt.root; <userinput>dump 0uaf - / | restore xf -</userinput></screen>


          <para>もしパーティションの構成を変えようと思っているなら -
            つまり一つだったものを二つにしたり二つだったものをくっつけたり
            しようとしているなら、自前であるディレクトリ以下のすべてを
            新しい場所へ移す必要が出てくるかも知れません。&man.dump.8; は
            ファイルシステムに働くのでこの目的には使えません。この場合は
            &man.tar.1; を使います。一般に <filename>/old</filename> から
            <filename>/new</filename> への移動は  &man.tar.1; で
            以下のようにします。</para>

          <screen>&prompt.root; <userinput>(cd /old; tar cf - .) | (cd /new; tar xpf -)</userinput></screen>

          <para><filename>/old</filename> に他のファイルシステムが
            マウントされていて、そのデータの移動までは考えてないならば
            最初の &man.tar.1; に 'l' フラグを追加します。</para>

          <screen>&prompt.root; <userinput>(cd /old; tar clf - .) | (cd /new; tar xpf -).</userinput></screen>

          <para>&man.tar.1; のかわりに &man.cpio.1; や &man.pax.1;,
            cpdup (ports/sysutils/cpdup) 等を
            使っても構いません。</para>
         </answer>
      </qandaentry>

      <qandaentry>
        <question id="release-candidate">
          <para>
            システムを最新の -STABLE にアップデートしようとしたのですが
            -RC や -BETA になってしまいました! 何が起こったのですか?
          </para>
        </question>

        <answer>
          <para>
            短い答え: ただの名前です。RC は
            <quote>リリース候補 (Release Candidate)</quote> に
            由来するもので、リリースが間近であることを意味します。
            また、FreeBSD における -BETA は通常、
            リリース前のコードフリーズ期間に入っているという意味になります。
          </para>

          <para>
            長い答え: FreeBSD はそのリリースを 2 ヶ所あるうちの
            一方から派生させます。3.0-RELEASE や 4.0-RELEASE の様な
            (0 のマイナー番号を持つ) メジャーリリースは、一般に <link
            linkend="current">-CURRENT</link> と呼ばれる
            開発版の流れから分岐させられてできます。3.1-RELEASE や
            4.2-RELEASE などのマイナーリリースはアクティブな
            <link linkend="stable">-STABLE</link> ブランチ (枝) の
            スナップショットでした。
            4.3-RELEASE からは、リリース毎にブランチが作成されるように
            なりました。ものすごく保守的な開発速度 (主にセキュリティ
            勧告のみ) を求めている人は、このブランチを追跡すると
            よいでしょう。</para>

          <para>
            リリースを作る時になるとそれを分岐させるブランチは
            特定のプロセスへ突入します。そのプロセスの一つは
            コードフリーズ (コードの凍結) です。コードフリーズが
            始まると、そのブランチの名前がリリースになろうとしていることを
            反映するものに変えられます。たとえば、4.0-STABLE と
            呼ばれていたブランチは名前が 4.1-BETA へと
            変えられ、コードフリーズとリリース前のテストが
            始まったことを示します。
            バグの修正はリリースの一部としてコミットされます。
            ソースコードがリリースの形を取ったなら名前が 4.1-RC へと
            変えられ、それからリリースが作られることを示します。
            ひとたび RC のステージになってしまうと、発見された
            もっとも致命的なバグの修正しかできなくなります。
            ひとたびリリースが (この例では 4.1-RELEASE) 作られれば、
            そのブランチは 4.1-STABLE と改名されます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="kernel-chflag-failure">
          <para>新しいカーネルを入れようとしたのですが、
            chflags に失敗します。どうすれば良いのでしょう?</para>
        </question>

        <answer>
          <para>簡単な回答:
            多分、セキュアレベルが 0 より大きくなっているのでしょう。
            直接シングルユーザモードで再起動して、
            カーネルをインストールしてください。</para>

          <para>詳しい回答:
            FreeBSD では、セキュアレベルが 0 より大きい場合、
            システムフラグの変更が禁止されます。
            現在のセキュアレベルは、次のコマンドを使って調べることができます。
          </para>

          <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>

          <para>セキュアレベルを下げる操作は、できないようになっています。
            そのため、カーネルをインストールするには、
            シングルユーザモードで起動するか、<filename>/etc/rc.conf</filename>
            のセキュリティ設定を変更して再起動する必要があります。
            セキュアレベルの詳細は &man.init.8; を、
            rc.conf の詳細は <filename>/etc/defaults/rc.conf</filename> および、
            &man.rc.conf.5; のマニュアルページをご覧ください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="kernel-securelevel-time">
          <para>システムの時刻を 1 秒以上変更することができないのです!
            どうすれば良いのでしょう?</para>
        </question>

        <answer>
          <para>簡単な回答:
            多分、セキュアレベルが 1 より大きくなっているのでしょう。
            直接シングルユーザモードで再起動して、
            時刻の変更をしてください。</para>

          <para>詳しい回答:
            FreeBSD では、セキュアレベルが 1 より大きい場合、
            1 秒以上の時刻変更が禁止されます。
            現在のセキュアレベルは、次のコマンドを使って調べることができます。
          </para>

          <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>

          <para>セキュアレベルを下げる操作は、できないようになっています。
            そのため、システムの時刻を変更するには、
            シングルユーザモードで起動するか、<filename>/etc/rc.conf</filename>
            のセキュリティ設定を変更して再起動する必要ばあります。
            セキュアレベルの詳細は &man.init.8; を、
            rc.conf の詳細は <filename>/etc/defaults/rc.conf</filename> および、
            &man.rc.conf.5; のマニュアルページをご覧ください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="statd-mem-leak">
          <para>&man.rpc.statd.8; にメモリリークを見つけました!
            メモリを 256 メガバイトも使っています。</para>
        </question>

        <answer>
          <para>いいえ。それはメモリリークではありませんし、
            256 メガバイトのメモリを使っている、ということでもありません。
            おそらく (ほとんどの場合)、
            処理に都合が良いように非常にたくさんの量のメモリを
            そのプロセスのアドレス空間にマッピングしているのでしょう。
            技術的な見地から考えても、これは大きな害があることではなく、
            単に &man.top.1; や &man.ps.1; といったツールの表示に影響がある程度です。
          </para>

          <!-- hrs/2001/03/01: possible typo? generious - generous -->
          <para>&man.rpc.statd.8; は、(<filename>/var</filename> にある)
            ステータスファイルを自分のアドレス空間にマッピングします。
            マッピングは、後で大きな空間が必要になった時に再マッピングしないで済むよう、
            非常に大きなサイズを指定して行なわれます。
            これは、ソースコードに含まれる &man.mmap.2;
            関数のマッピング長を示す引数に
            <literal>0x10000000</literal> が指定されていることからも分かります。
            この数字が IA32 アーキテクチャの持つアドレススペース全体の
            16 分の 1、すなわち、ちょうど 256 メガバイトに相当するのです。</para>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="x">
    <title>X Window System と仮想コンソール</title>

    <para>
      <emphasis>訳:
        &a.motoyuki;
        19971113</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="running-X">
          <para>X を動かしたいのですが、どうすればいいのですか?</para>
        </question>

        <answer>
          <para>
            もっとも簡単な方法は FreeBSD のインストールの際に
            X を動かすことを指定するだけです。
          </para>

          <para>それから <command>xf86config</command>
            ツールのドキュメントを読んでこれに従ってください。
            このツールはあなたのグラフィックカードやマウスなどに合わせて
            XFree86(tm) の設定を行うのを助けてくれます。
          </para>

          <para>
            Xaccel サーバーについて調べてみるのもいいでしょう。
            詳しくは <link linkend="xig">Xi Graphics について</link><link linkend="metrox">Metro Link</link> をご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="running-X-securelevels">
          <para>X を<emphasis>実行しようと</emphasis>して
            <command>startx</command>
            と入力したのですが、
            <errorname>KDENABIO failed (Operation not permitted)</errorname>
            というエラーが表示されます。
            何かおかしなことをやってしまったんでしょうか?</para>
        </question>

        <answer>
          <para>あなたのシステムは高いセキュアレベルで運用されていますね?
            実は、高いセキュアレベルで X を起動することはできないのです。
            どうしてなのかについては、&man.init.8;
            のマニュアルページに書かれています。</para>

          <para>では、代わりにどうすれば良いのかお答えしましょう。
            基本的に 2 つの方法があります。
            一つはセキュアレベルを 0 にする (通常、これは
            <filename>/etc/rc.conf</filename> で指定します) こと、
            もう一つは起動時 (セキュアレベルを上げる前) に
              &man.xdm.1; を実行するかです。</para>

          <para>起動時に &man.xdm.1; を実行する方法の詳細については、
            <xref linkend="xdm-boot"/> を参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="x-and-moused">
          <para>私のマウスはなぜ X で動かないのでしょうか?</para>
        </question>

        <answer>
          <para>syscons (デフォルトのコンソールドライバ) を使っているのであれば、
            それぞれの仮想スクリーンでマウスポインターをサポートするように
            FreeBSD を設定できます。X でのマウスの衝突を避けるために、syscons は
            <devicename>/dev/sysmouse</devicename>
            という仮想デバイスをサポートしています。
            本物のマウスデバイスから入力されたすべてのマウスのイベントは、
            moused を経由して sysmouse デバイスへ出力されます。
            一つ以上の仮想コンソールと X の
            <emphasis>両方で</emphasis> マウスを使いたい場合、
            <xref linkend="moused" remap="another section"/>
            を参照して moused を設定してください。
          </para>

          <para>
            そして、<filename>/etc/XF86Config</filename> を編集し、
            次のように書かれていることを確認してください。</para>

          <programlisting>Section         Pointer
Protocol        "SysMouse"
Device          "/dev/sysmouse"
.....</programlisting>

          <para>
            上の例は、XFree86 3.3.2 以降の場合の例です。
            それより前のバージョンでは、
            <emphasis>Protocol</emphasis> という部分を
            <emphasis>MouseSystems</emphasis> と置き換える必要があります。
          </para>

          <para>
            X で <devicename>/dev/mouse</devicename>
            を使うのを好む人もいます。
            この場合は、
            <devicename>/dev/mouse</devicename><devicename>/dev/sysmouse</devicename> (&man.sysmouse.4; 参照)
            にリンクしてください。
          </para>

          <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>rm -f mouse</userinput>
&prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="x-and-wheel">
          <para>わたしのマウスにはホイール機能が付いているのですが、X で使うことはできますか?</para>
        </question>

        <answer>
          <para>はい、もちろん使えますが、そのためには
            X クライアントプログラムを適切に設定する必要があります。これについては、
            <ulink url="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">Colas Nahaboo
              氏のウェブページ(http://www.inria.fr/koala/colas/mouse-wheel-scroll/)</ulink>
            を参照してください。</para>

          <para>
            <application>imwheel</application>
            というプログラムを使う場合は、
            次のような簡単な手順にしたがってください。
          </para>

          <orderedlist>
            <listitem>
              <para>ホイールイベントの変換</para>

              <para>
                <application>imwheel</application> は、
                マウスのボタン 4、ボタン 5 をキー押下イベントに変換するプログラムです。
                そのためホイールマウスで利用するには、マウスホイールのイベントをボタン 4、
                ボタン 5 のイベントに変換するマウスドライバを利用する必要があります。
                この変換を行なうには二つの方法があります。
                一つは &man.moused.8;
                で行なう方法、二つめは X サーバ自身に変換を行なわせる方法です。
              </para>

              <orderedlist>
                <listitem>
                  <para>ホイールイベントの変換に &man.moused.8; を使う</para>

                  <para>
                    &man.moused.8; にイベントを変換させるには、
                    &man.moused.8; 起動時にオプション
                    <option>-z 4</option> を追加します。
                    たとえば、普段 &man.moused.8; を
                    <command>moused -p /dev/psm0</command>
                    として起動しているなら、その代わりに
                    <command>moused -p /dev/psm0 -z 4</command>
                    とします。
                    もし、
                    <filename>/etc/rc.conf</filename>
                    を使って自動的に起動するように設定しているなら、
                    <filename>/etc/rc.conf</filename>
                    の中の
                    <varname>moused_flags</varname> という変数に
                    <option>-z 4</option> を追加するだけです。
                  </para>

                  <para>
                    そして、5 ボタンマウスを使うことを
                    X サーバに伝える必要があります。
                    これを行なうには
                    <filename>/etc/XF86Config</filename><quote>Pointer</quote> セクションに
                    <literal>Buttons 5</literal> という行を追加するだけです。
                    そうすると
                    <filename>/etc/XF86Config</filename><quote>Pointer</quote> は、
                    たとえば次のようになるでしょう。
                  </para>

                  <example>
                    <title>moused による変換を利用してホイールマウスを
                      使用するための XFree86 3.3.x 系列の XF86Config の
                      <quote>Pointer</quote> セクションの設定例</title>

                    <programlisting>Section "Pointer"
   Protocol        "SysMouse"
   Device          "/dev/sysmouse"
   Buttons         5
EndSection</programlisting>
                  </example>

                  <example>
                    <title>自動的なプロトコル認識機能およびボタン配置変換機能を
                      利用し、ホイールマウスを使用するための XFree86 4.x 系列の
                      XF86Config の <quote>InputDevice</quote> セクションの設定例</title>

                    <programlisting>Section "InputDevice"
   Identifier      "Mouse1"
   Driver          "mouse"
   Option          "Protocol" "auto"
   Option          "Device" "/dev/psm0"
   Option          "Buttons" "5"
   Option          "ZAxisMapping" "4 5"
EndSection</programlisting>
                  </example>

                  <example>
                    <title>ホイールマウスで Emacs 上でのページスクロールを
                      行うための <quote>.emacs</quote> の設定例</title>
                    <programlisting>;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)</programlisting>
                  </example>
                </listitem>

                <listitem>
                  <para>X サーバを使ったホイールイベントの変換</para>

                  <para>
                    &man.moused.8; を起動していなかったり、
                    ホイールイベントの変換に &man.moused.8;
                    を起動したくない場合には、その代わりに
                    X サーバを使うことができます。
                    これには、<filename>/etc/XF86Config</filename>
                    ファイルを書き換える必要があります。
                    まず最初に必要なのは、
                    マウスがどのプロトコルを使っているのかを確認することです。
                    ほとんどのホイールマウスは
                    <quote>IntelliMouse</quote>
                    プロトコルを使用していますが、
                    XFree86 サーバはその他のプロトコル、
                    たとえば
                    Logitech MouseMan+ マウスが利用している
                    <quote>MouseManPlusPS/2</quote>
                    プロトコルなどもサポートしています。
                    使用されているプロトコルが確認できたら
                    <quote>Pointer</quote> セクションに
                    <varname>Protocol</varname> の行を追加してください。
                  </para>

                  <para>
                    つぎに、
                    ホイールのスクロールイベントをマウスボタン 4、
                    マウスボタン 5 に割り当てることを X サーバに伝えます。
                    これを行なうには
                    <varname>ZAxisMapping</varname>
                    オプションを使用します。
                  </para>

                  <para>
                    たとえば、&man.moused.8; が起動していない状態で、
                    PS/2 マウスポートに IntelliMouse が接続されているとしたら
                    <filename>/etc/XF86Config</filename>
                    はおそらく次のようになります。
                  </para>

                  <example>
                    <title>
                      X サーバによる変換を利用してホイールマウスを使用するための
                      XF86Config の <quote>Pointer</quote> セクションの設定例</title>

                    <programlisting>Section "Pointer"
   Protocol        "IntelliMouse"
   Device          "/dev/psm0"
   ZAxisMapping    4 5
EndSection</programlisting>
                  </example>
                </listitem>
              </orderedlist>
            </listitem>

            <listitem>
              <para><application>imwheel</application> のインストール</para>

              <para>
                さて、つぎに Ports Collection から
                <application>imwheel</application> をインストールします。
                これがあるのは <filename>x11</filename> カテゴリです。
                このプログラムは、
                マウスイベントをキーボードイベントに変換します。
                たとえば、マウスホイールを前に回した時、
                <application>imwheel</application><keycap>PageUp</keycap>
                をアプリケーションプログラムに送るような動作をするわけです。
                <application>Imwheel</application>
                はホイールイベントとキーボード押下の対応を設定ファイルを使って設定するため、
                アプリケーション毎に異なる対応を持たせることも可能です。
                <application>imwheel</application> のデフォルトの設定ファイルは
                <filename>/usr/X11R6/etc/imwheelrc</filename>
                にインストールされます。
                これを <filename>~/.imwheelrc</filename> にコピーして編集し、
                お好きなように <application>imwheel</application>
                で利用したいアプリケーションの設定をカスタマイズしてください。
                設定ファイルの書式は &man.imwheel.1; に説明されています。
              </para>
            </listitem>

            <listitem>
              <para><application>Emacs</application><application>Imwheel</application> を使うように設定する
                (<emphasis>必須ではありません</emphasis>)</para>

              <para>
                <application>emacs</application><application>Xemacs</application>
                で利用するには、
                <filename>~/.emacs</filename> にいくらか書き加える必要があります。
                <application>emacs</application> の場合は次の部分を追加してください。
              </para>

              <example>
                <title><application>Imwheel</application> を利用するための
                  <application>Emacs</application> の設定例</title>

                <programlisting>;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
  (interactive)
  (scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
  (interactive)
  (scroll-up imwheel-scroll-interval))
(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
;;; end imwheel section</programlisting>
              </example>

              <para>
                <application>Xemacs</application> の場合は
                <filename>~/.emacs</filename> に次の部分を追加してください。
              </para>

              <example>
                <title><application>Imwheel</application> を利用するための
                  <application>XEmacs</application> の設定例</title>

                <programlisting>;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
  (interactive)
  (scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
  (interactive)
  (scroll-up imwheel-scroll-interval))
(define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines)
(define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines)
;;; end imwheel section</programlisting>
              </example>
            </listitem>

            <listitem>
              <para><application>Imwheel</application> の実行</para>

              <para>
                インストールが完了していれば、単に xterm (訳注:
                日本語環境で広く使われている kterm でも構いません) から
                <command>imwheel</command> を入力するだけで起動できます。
                起動するとバックグラウンドで動作し、すぐに利用できます。
                <application>imwheel</application> をいつも使うように設定するには、
                <filename>.xinitrc</filename><filename>.xsession</filename> のファイルにそのままコマンドを追加してください。
                <application>imwheel</application> が PID
                ファイルに関する警告を表示するかも知れませんが、
                無視しても危険はありません。この警告が意味を持つのは、
                Linux 版の <application>imwheel</application> だけです。
              </para>
            </listitem>
          </orderedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="window-menu-weird">
          <para>X のメニューやダイアログボックスがうまく動きません。</para>
        </question>

        <answer>
          <para>
            Num Lock キーをオフにしてください。
          </para>

          <para>Num Lock キーがデフォルトで起動時にオンになる場合は、
            <filename>XF86Config</filename> ファイルの
            <literal>Keyboard</literal>
            セクションに以下の行を加えてもいいでしょう。
          </para>

          <programlisting># Let the server do the NumLock processing.  This should only be
# required when using pre-R6 clients
    ServerNumLock</programlisting>

            <note>
              <title>訳注</title>
              <para>
                この問題は XFree86 3.2 以降では解決しています。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="virtual-console">
          <para>仮想コンソールとは何ですか? どうやったら使えますか?</para>
        </question>

        <answer>
          <para>
            仮想コンソールは、簡単にいうと、ネットワークや X
            を動かすなどの複雑なことを行なわずに、
            いくつかのセッションを同時に行なうことを可能にします。
          </para>

          <para>
            システムのスタート時には、
            起動メッセージが出た後に login
            プロンプトが表示されます。そこで
            ログイン名とパスワードを入力すると
            1 番目の仮想コンソール上で仕事 (あるいは遊び) を始めることができます。
          </para>

          <para>
            他のセッションを始めたい場合もあるでしょう。
            それは動かしているプログラムのドキュメントを見たり、
            FTP の転送が終わるまで待つ間、
            メールを読もうとしたりすることかもしれません。
            <keycap>Alt</keycap>-<keycap>F2</keycap>
            を押す (<keycap>Alt</keycap> キーを押しながら
            <keycap>F2</keycap> キーを押す) と、
            2 番目の「仮想コンソール」で
            ログインプロンプトが待機していることがわかります。
            最初のセッションに戻りたいときは
            <keycap>Alt</keycap>-<keycap>F1</keycap> を押します。
          </para>

          <para>
            標準の FreeBSDインストールでは、
            3 枚 (3.3-RELEASE では 8 枚) の仮想コンソールが有効になっていて、
            <keycap>Alt</keycap>-<keycap>F1</keycap><keycap>Alt</keycap>-<keycap>F2</keycap><keycap>Alt</keycap>-<keycap>F3</keycap>
            で仮想コンソール間の切替えを行ないます。
          </para>

          <para>
            より多くの仮想コンソールを有効にするには、
            <filename>/etc/ttys</filename> (&man.ttys.5; 参照)
            を編集して
            <quote>Virtual terminals</quote>
            のコメント行の後に
            <devicename>ttyv4</devicename>
            から
            <devicename>ttyvc</devicename>
            の手前までのエントリを加えます
            (以下の例は先頭には空白は入りません)。
          </para>

          <programlisting># /etc/ttys には ttyv3 がありますので
# "off" を "on" に変更します。
ttyv3   "/usr/libexec/getty Pc"         cons25  on secure
ttyv4   "/usr/libexec/getty Pc"         cons25  on secure
ttyv5   "/usr/libexec/getty Pc"         cons25  on secure
ttyv6   "/usr/libexec/getty Pc"         cons25  on secure
ttyv7   "/usr/libexec/getty Pc"         cons25  on secure
ttyv8   "/usr/libexec/getty Pc"         cons25  on secure
ttyv9   "/usr/libexec/getty Pc"         cons25  on secure
ttyva   "/usr/libexec/getty Pc"         cons25  on secure
ttyvb   "/usr/libexec/getty Pc"         cons25  on secure</programlisting>

          <para>
            多くするか少なくするかはあなたの自由です。
            より多くの仮想ターミナルを使うとより多くのリソースを使うことになります。
            8MB 以下のメモリしかない場合はこれは重要な問題です。
            もし必要があれば
            <literal>secure</literal><literal>insecure</literal>
            に変更してください。</para>

            <important>
              <para>X を使いたいのであれば、
                最低一つの仮想ターミナル (のエントリ) を使わずに残しておくか、
                off にしておく必要があります。
                つまり、12 個の
                <keycap>Alt</keycap>-ファンクションキーすべてでログインプロンプトを
                出したいのならば、
                残念ながら X は利用できないということです。
                同じマシンで X サーバーも動かしたいのならば
                11 個しか使えません。
              </para>
            </important>

          <para>
            仮想コンソールを無効にするもっとも簡単な方法は、
            コンソールを
            off にすることです。
            たとえば 12 個すべてのターミナルを割り当てている状態で
            X を動かしたいときは、
            仮想ターミナル 12 を変更します。
          </para>

          <programlisting>ttyvb   "/usr/libexec/getty Pc"         cons25  on secure</programlisting>

          <para>
            これを次のように変更します。
          </para>

          <programlisting>ttyvb   "/usr/libexec/getty Pc"         cons25  off secure</programlisting>

          <para>
            キーボードにファンクションキーが 10 個しかないのであれば、
            次のように設定します。
          </para>

          <programlisting>ttyv9   "/usr/libexec/getty Pc"         cons25  off secure
ttyva   "/usr/libexec/getty Pc"         cons25  off secure
ttyvb   "/usr/libexec/getty Pc"         cons25  off secure</programlisting>

          <para>
            (これらの行を消すだけでもいいです。)
          </para>

          <para>
            <filename>/etc/ttys</filename>
            を編集したら、
            次は十分な数の仮想ターミナルデバイスを作らなくてはなりません。
            もっとも簡単な方法を示します。
          </para>

          <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV vty12</userinput><emphasis> (12 個のデバイスをつくる場合)</emphasis></screen>

          <para>
            さて、仮想コンソールを有効にするもっとも簡単 (そして確実) な方法は、
            再起動することです。しかし、再起動したくない場合は、
            X ウィンドウシステムを終了させて次の内容を
            (<username>root</username>権限で) 実行します。
          </para>

          <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>

          <para>
            重要な点は、
            このコマンドを実行する前に X
            ウィンドウシステムを完全に終了させておくことです。
            もしそうしないと <command>kill</command>
            コマンドを実行した後、
            システムはおそらくハングアップするでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="vty-from-x">
          <para>X から仮想コンソールに切替えるにはどうすればよいのですか?</para>
        </question>

        <answer>
          <para>
            仮想コンソールへ戻るには
            <keycombo action="simul">
              <keycap>Ctrl</keycap>
              <keycap>Alt</keycap>
              <keycap>F<replaceable>n</replaceable></keycap>
            </keycombo> を使ってください。
            最初の仮想コンソールへは
            <keycombo action="simul">
              <keycap>Ctrl</keycap>
              <keycap>Alt</keycap>
              <keycap>F1</keycap>
            </keycombo> で戻れます。
          </para>

          <para>
            テキストコンソールへ移った後は、その中で移動するのに
            今度はいつもどおり
            <keycombo action="simul">
              <keycap>Alt</keycap>
              <keycap>F<replaceable>n</replaceable></keycap>
            </keycombo> を使ってください。
          </para>

          <para>
            X のセッションへ戻るには X の走っている仮想コンソールへ
            切り替える必要があります。もしあなたが X をコマンドラインから
            実行していたのであれば (たとえば <command>startx</command>
            を使う) X のセッションはそれを実行したテキストコンソールではなく
            最初の使われていない仮想コンソールに割り当てられているはずです。
            あなたが仮想端末を 8 個用意している場合は X を 9 番目の
            コンソールにいるはずで、
            <keycombo action="simul">
              <keycap>Alt</keycap>
              <keycap>F9</keycap>
            </keycombo> を使うことになります。
          </para>

            <note>
              <title>訳注</title>
              <para>
                X に戻るには、
                3 枚の仮想コンソールが有効になっている場合は
                <keycap>Alt</keycap>-<keycap>F4</keycap> です。
                有効な仮想コンソールの数 +1 のファンクションキーの
                位置に X が割り当てられます。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="xdm-boot">
          <para>XDM を起動時に起動させるにはどうしますか?</para>
        </question>

        <answer>
          <para>
            <ulink url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm">xdm</ulink>
            の起動方法については二つの流派があります。
            一方の流派では提供された例を使用して xdm を
            <filename>/etc/ttys</filename> (&man.ttys.5; 参照)
            から起動し、もう一方の流派では xdm を単に
            <filename>rc.local</filename> (&man.rc.8; 参照)
            または <filename>/usr/local/etc/rc.d</filename> においた
            <filename>X.sh</filename> スクリプトから起動します。
            どちらも正しく、片方が動作しない場合は、もう片方が動作するでしょう。
            どちらも場合でも結果は同じであり、X はグラフィカルな
            <prompt>login:</prompt> プロンプトを表示します。
          </para>

          <para>
            <filename>ttys</filename> を利用する方法の利点は、
            どの <acronym>vty</acronym> で X が起動したかの記録が残せることと、
            ログアウト時に X サーバを再起動する責任を
            init に押しつけることができることでしょう。
          </para>

          <para>
            <filename>rc.local</filename> からロードされる場合、
            <command>xdm</command> は引数を持たずに
            (すなわち、デーモンとして) 起動します。
            <command>xdm</command><command>getty</command>
            が起動した後にロードされなければなりません。
            そうでないと、<command>xdm</command><command>getty</command>
            と衝突し、コンソールをロックアウトしてしまいます。
            この問題に対処する最善の方法は、
            起動スクリプト (訳注: <filename>rc.local</filename>
            のこと) で 10 秒ほどの <command>sleep</command> を実行させ、
            その後に <command>xdm</command> をロードすることです。
          </para>

          <para>
            <filename>/etc/ttys</filename> から
            <command>xdm</command> を起動させている場合には、
            <command>xdm</command><command>getty</command>
            が衝突する可能性があります。
            この問題を回避するには、<filename>/usr/X11R6/lib/X11/xdm/Xservers</filename><literal>vt</literal> 番号を追加してください。
          </para>

          <programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>

          <para>上の例は、<devicename>/dev/ttyv3</devicename> を
            X サーバに対応させます。番号は 1 から始まりますので注意してください。
            X サーバは
            <acronym>vty</acronym>1 から数えますが、
            FreeBSD カーネルは
            <acronym>vty</acronym>0 から数えます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="xconsole-failure">
          <para><command>xconsole</command> を動かそうとすると
            <quote><computeroutput>Couldn't open console</computeroutput></quote>
            とエラーが出ます。</para>
        </question>

        <answer>
          <para>
            <application>X</application><command>startx</command>
            で起動しますと、<devicename>/dev/console</devicename> のパーミッションは
            <emphasis>変更できない</emphasis>ようになっていますので、
            <command>xterm -C</command><command>xconsole</command>
            は動きません。
          </para>

          <para>
            これはコンソールのパーミッションが、
            標準ではそのように設定されているからです。
            マルチユーザシステムでは、
            ユーザの誰もがシステムコンソールに書き込むことが可能である必要は必ずしもありません。
            <acronym>VTY</acronym>
            を使い直接マシンにログインするユーザのために、
            このような問題を解決するために
            &man.fbtab.5;
            というファイルがあります。
          </para>

          <para>
            要点を述べると、次のような形式の行を
            <filename>/etc/fbtab</filename> (&man.fbtab.5; 参照) に加えます。
          </para>

          <programlisting>/dev/ttyv0 0600 /dev/console</programlisting>

          <para>
            そうすると、
            <devicename>/dev/ttyv0</devicename> からログインしたユーザが
            コンソールを所有することになるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="xfree86-root">
          <para>わたしはいつも XFree86 を一般ユーザから起動していたのですが、
            最近になって <username>root</username> ユーザでなければな
            らないと言われるようになりました。</para>
        </question>

        <answer>
          <para>すべての X サーバは、
            ビデオハードウェアに直接アクセスするために <username>root</username>
            ユーザで実行される必要があります。
            古いバージョンの XFree86 (&lt;= 3.3.6) に含まれるすべてのサーバは、
            自動的に <username>root</username> 権限で実行されるように
            (<username>root</username> ユーザに setuid
            されて) インストールされます。
            X サーバは大きく複雑なプログラムであり、
            これは明らかにセキュリティを危険に晒す要因となります。
            そのため新しいバージョンの XFree86 では、
            サーバを <username>root</username> ユーザに setuid
            しないでインストールするようになりました。</para>

          <para>X サーバを root ユーザで動かすというのは、
            明らかにセキュリティ的に不適当で受け入れられないことです。
            X を一般ユーザで実行するには、二つの方法があります。
            一つは <command>xdm</command> や、その他のディスプレイマネージャ
            (たとえば <command>kdm</command> など) を使うこと、
            もう一つは <command>Xwrapper</command> を使うことです。
          </para>

          <para><command>xdm</command> は、
            グラフィカルなログイン画面を扱うデーモンです。
            通常、起動時に実行され、
            各ユーザの認証とユーザセションを開始させる機能を実現します。
            基本的に、<command>getty</command><command>login</command>
            のグラフィック版、と考えて良いでしょう。
            <command>xdm</command> の詳細については、
            <ulink url="http://www.xfree86.org/support.html">XFree86
              関連文書</ulink> および
            <link linkend="xdm-boot">FAQ 項目</link>をご覧ください。</para>

          <para><command>Xwrapper</command> とは、X サーバ用のラッパ
            (wrapper) のことです。
            これは必要なセキュリティを確保しつつ、一般ユーザが X
            サーバを実行できるようにした小さなユーティリティで、
            コマンドライン引数の正当性チェックを行ない、
            それを通過すれば適切な X サーバを起動します。
            何らかの理由でディスプレイマネージャを使いたくない場合に
            これを使うと良いでしょう。
            Ports Collection 全体をインストールしていれば、
            <filename>/usr/ports/x11/wrapper</filename>
            にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ps2-x">
          <para>私の PS/2 マウスは X ウィンドウシステム上でうまく動きません。</para>
        </question>

        <answer>
          <para>
            あなたのマウスとマウスドライバがうまく同期していないからかもしれません。
          </para>

          <para>
            FreeBSD 2.2.5 までのバージョンでは、X から仮想ターミナルへ切替えて、
            また X へ戻ると再同期するかもしれません。
            この問題がよく起きるようであれば、カーネルコンフィグレーション
            ファイルに次のオプションを書いてカーネルを再構成してみてください。
          </para>

          <programlisting>options PSM_CHECKSYNC</programlisting>

          <para>
            もし、カーネルの再構築を行なったことがないのであれば、
            <link linkend="make-kernel">カーネルを構築する</link>の項を参照してください。
          </para>

          <para>
            このオプションにより、
            マウスとドライバの同期で問題が起きる可能性は少なくなるでしょう。
            もしそれでもこの問題が起きるようならば、
            再同期させるにはマウスを動かさないようにしておいて
            マウスボタンのどれかを押してください。
          </para>

          <para>
            このオプションは残念ながらすべてのシステムで働くわけではなく、
            また、PS/2 マウスポートにつながれているのが
            タップ (tap) 機能を持つ アルプス社製 GlidePoint デバイスの場合、
            タップ機能が無効となってしまいます。
          </para>

          <para>
            FreeBSD 2.2.6 以降のバージョンでは、
            同期のチェック方法が少し改善されたので標準で有効になっています。
            GlidePoint でもうまく働きます (同期チェックが標準の機能になったので
            <literal>PSM_CHECKSYNC</literal>
            オプションはこれらのバージョンからは削除されました)。
            しかしながら、
            まれにドライバが間違って (訳注:
            問題がないのに) 同期に関して問題があると報告し、カーネルから
          </para>

          <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>

          <para>
            というメッセージが出力されて、マウスが正しく動作していないように見える
            ことがあるかもしれません。
          </para>

          <para>
            もしこのようなことが起こる場合には、PS/2 マウスドライバのフラグに
            0x100 を指定して同期チェックを無効にしてください。システムの起動時に
            <quote><option>-c</option></quote>
            起動オプションを与えて
            <emphasis>UserConfig</emphasis> に入ります。
          </para>

          <screen>boot: <userinput>-c</userinput></screen>
          <screen><prompt>boot:</prompt> <userinput><option>-c</option></userinput></screen>

          <para>
            <emphasis>UserConfig</emphasis>
            のコマンドラインで以下のように入力してください。
          </para>

          <screen>UserConfig&gt; <userinput>flags psm0 0x100</userinput>
UserConfig&gt; <userinput>quit</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ps2-mousesystems">
          <para>MouseSystems の PS/2 マウスがうまく動きません。</para>
        </question>

        <answer>
          <para>
            MouseSystems の PS/2 マウスのあるモデルは、
            高解像度モードの場合にのみ正しく動作するということが報告されています。
            それ以外のモードでは、
            マウスカーソルがしょっちゅうスクリーン左上に行ってしまうかもしれません。
          </para>

          <para>
            残念ながら FreeBSD 2.0.X や 2.1.X のバージョンでは、
            この問題を解決する方法はありません。
            2.2 から 2.2.5 のバージョンでは、
            以下のパッチを
            <filename>/sys/i386/isa/psm.c</filename>
            に適用しカーネルの再構築を行なってください。
          </para>

          <para>
            もし、カーネルの再構築を行なったことがないのであれば、
            <link linkend="make-kernel">カーネルの構築</link>の項を参照してください。
          </para>

          <programlisting>@@ -766,6 +766,8 @@
     if (verbose &gt;= 2)
         log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
             unit, i);
+    set_mouse_resolution(sc-&gt;kbdc, PSMD_RES_HIGH);
+
 #if 0
     set_mouse_scaling(sc-&gt;kbdc);    /* 1:1 scaling */
     set_mouse_mode(sc-&gt;kbdc);               /* stream mode */</programlisting>


          <para>
            FreeBSD 2.2.6 以降のバージョンでは、
            PS/2 マウスドライバのフラグに
            0x04 を指定してマウスを高解像度モードにします。
            システムの起動時に
            <option>-c</option>
            起動オプションを与えて
            <emphasis>UserConfig</emphasis> に入ります。
          </para>


          <screen>boot: <userinput>-c</userinput></screen>

          <para>
            <emphasis>UserConfig</emphasis>
            のコマンドラインで以下のように入力してください。
          </para>

          <screen>UserConfig&gt; <userinput>flags psm0 0x04</userinput>
UserConfig&gt; <userinput>quit</userinput></screen>

          <para>
            マウスに関する不具合の他の原因の可能性については、
            直前のセクションも見てみてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="imake-tmpl">
          <para>X のアプリケーションを構築する時に、
            <computeroutput>imake can't find <filename>Imake.tmpl</filename></computeroutput>
            となります。どこにあるのでしょうか?
          </para>
        </question>

        <answer>
          <para>
            <filename>Imake.tmpl</filename> は
            X の標準アプリケーション構築ツールである Imake パッケージの一部です。
            <filename>Imake.tmpl</filename> は、
            X アプリケーションの構築に必要な多くのヘッダファイルと同様に、
            X のプログラムディストリビューションに含まれています。
            <command>sysinstall</command> を使うか、
            手動で X のディストリビューションファイルからインストールすることができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mouse-button-reverse">
          <para>マウスのボタンを入れ替える方法はありますか?</para>
        </question>

        <answer>
          <para>
            <filename>.xinitrc</filename><filename>.xsession</filename></para>

            <programlisting><command>xmodmap</command> <option>-e "pointer = 3 2 1"</option></programlisting>

          <para>
            というコマンドを実行してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="install-splash">
          <para>スプラッシュスクリーンのインストールはどうするのですか。
            どこで見つけることができますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 3.1 のリリース直前に、起動メッセージの表示期間に
            いわゆる &quot;スプラッシュ&quot;
            スクリーンを表示させることができる新しい機能が追加されました。
            いまのところスプラッシュスクリーンは
            256 色のビットマップ (<filename>*.BMP</filename>) か
            ZSoft PCX (<filename>*.PCX</filename>) ファイルです。
            それに加えて、標準の <acronym>VGA</acronym> アダプタでの動作させるには
            320x200 以下の解像度である必要があります。
            カーネルに <acronym>VESA</acronym>
            サポートを追加すれば 1024x768
            までのより大きいビットマップを使用できます。
            <acronym>VESA</acronym> サポートを有効化するにはまず、
            カーネルが
            <literal>VM86</literal>
            カーネルオプションとともにコンパイルされている必要があることに注意してください。
            <acronym>VESA</acronym> サポートそのものは
            <literal>VESA</literal> カーネルコンフィグオプション
            によって直接カーネル中にコンパイルするか、
            起動時に <acronym>VESA</acronym> kld
            モジュールを読み込ませることができます。
          </para>

          <para>
            スプラッシュスクリーンを使うには、
            FreeBSD
            の起動プロセスをコントロールするスタートアップファイルを書き換える必要があります。
            これらのファイルは FreeBSD 3.2 のリリース以前に変更されましたので、
            現在は、スプラッシュスクリーンを読み込む方法が二つあります。
          </para>

            <itemizedlist>
              <listitem>
                <para>FreeBSD 3.1 の場合</para>

                <para>
                  まず最初のステップは、
                  スプラッシュスクリーンのビットマップ版を探してくることです。
                  3.1-RELEASE では Windows
                  のビットマップ形式のスプラッシュスクリーンだけをサポートしています。
                  お望みのスプラッシュスクリーンを見つけたなら、それを
                  <filename>/boot/splash.bmp</filename>
                  にコピーします。次に、これらの行が書かれた
                  <filename>/boot/loader.rc</filename>
                  ファイルが必要です。
                </para>

                <programlisting>load kernel
load -t splash_image_data /boot/splash.bmp
load splash_bmp
autoboot</programlisting>
              </listitem>

              <listitem>
                <para>FreeBSD 3.2 以降の場合</para>

                <para>PCX 形式のスプラッシュスクリーンのサポートが追加されると同時に、
                  FreeBSD 3.2 には起動プロセスを設定する、
                  より洗練された方法が含まれています。
                  もしお望みなら、上に示した
                  FreeBSD 3.1 用の方法を使うこともできます。
                  もしそうしたくて、かつ PCX 形式を使いたいなら、
                  <literal>splash_bmp</literal><literal>splash_pcx</literal> と読み換えてください。
                  そうではなくて、新しい起動設定方法を使うのなら、
                  次の数行が書かれた <filename>/boot/loader.rc</filename>
                  ファイルと、</para>

                <programlisting>include /boot/loader.4th
start</programlisting>

                <para>
                  次の数行が含まれた
                  <filename>/boot/loader.conf</filename>
                  ファイルを作ることが必要です。
                </para>

                <programlisting>splash_bmp_load="YES"
bitmap_load="YES"</programlisting>

                <para>
                  この例では、スプラッシュスクリーンとして
                  <filename>/boot/splash.bmp</filename>
                  を使うことを想定しています。PCX 形式のファイルを使う場合には、
                  そのファイルを <filename>/boot/splash.pcx</filename> にコピーして、
                  上で示したように
                  <filename>/boot/loader.rc</filename> を作ります。
                  そして、次の内容の
                  <filename>/boot/loader.conf</filename>
                  というファイルを作ってください。
                </para>

                <programlisting>splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"</programlisting>
              </listitem>
            </itemizedlist>

          <para>
            さて、あとはスプラッシュスクリーンを用意するだけです。
            それには <ulink url="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</ulink>
            のギャラリーをサーフしてみてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="windows-keys">
          <para>X で Windows(tm) キーを使うことはできるのでしょうか?</para>
        </question>

        <answer>
          <para>
            はい、もちろん。
            どういう動作をするかについて定義するには &man.xmodmap.1; を使います。
          </para>

          <para>
            標準的な &quot;Windows(tm)&quot; キーボードの場合、
            対応するキーコードは 3 種類あります。
          </para>

          <itemizedlist>
            <listitem>
              <para>115 - 左の Ctrl と Alt の間にある Windows(tm) キー</para>
            </listitem>

            <listitem>
              <para>116 - 右の Alt と Gr の間にある Windows(tm) キー</para>
            </listitem>

            <listitem>
              <para>117 - 右の Ctrl の左隣にあるメニューキー</para>
            </listitem>
          </itemizedlist>

          <para>
            左にある Windows(tm) キーを押すとカンマ記号が入力されるようにするには、
            こんな風にします。
          </para>

          <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>

          <para>
            設定を反映させるには、おそらくウィンドウマネージャを再起動する必要があります。
          </para>

          <para>
            Windows(tm) キーのキーマップを X 起動時に毎回、
            自動的に有効化するには <command>xmodmap</command> コマンドを
            <filename>~/.xinitrc</filename> に追加するか、
            もしくはおすすめできる方法として
            <filename>~/.xmodmaprc</filename> というファイルを作成して、
            そのファイルの一行一行に <command>xmodmap</command>
            のオプションを記述し、次の一行
          </para>

          <programlisting>xmodmap $HOME/.xmodmaprc</programlisting>

          <para><filename>~/.xinitrc</filename>
            に追加するという方法があります。</para>

          <para>
            たとえば、先ほどあげた三つのキーを F13、F14、F15 に割り当てるとします。
            こうしておけば、後ほど示すように、アプリケーションや
            ウィンドウマネージャの便利な機能を
            その三つのキーに簡単に割り当てることができます。
          </para>

          <para>
            こうするには、次の内容を <filename>~/.xmodmaprc</filename>
            に追加します。
          </para>

          <programlisting>keycode 115 = F13
keycode 116 = F14
keycode 117 = F15</programlisting>

          <para>
            たとえば <command>fvwm2</command> を使っていたら、
            F13 をカーソル下のウィンドウのアイコン化、
            F14 をウィンドウの前面/背面化、
            F15 を、あたかもデスクトップにカーソルが存在しないかのように、
            メインワークスペース (アプリケーション)
            のメニューを呼び出せる機能に割り当てられます。
            最後の機能は、そのデスクトップがまったく見えないときに便利です。
            (また、キートップのロゴにもぴったりです)
            <!-- hrs/2000/03/10: need refine translation -->
          </para>

          <para>
            <filename>~/.fvwmrc</filename> の次のエントリは、前述の
            設定を実現します。
          </para>

          <programlisting>Key F13        FTIWS    A        Iconify
Key F14        FTIWS    A        RaiseLower
Key F15        A        A        Menu Workplace Nop</programlisting>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="networking">
    <title>ネットワーキング</title>

    <para>
      <emphasis>訳:
        &a.jp.arimura;、
        &a.jp.shou;、
        にしか <email>nishika@cheerful.com</email>、
        &a.jp.kiroh;、
        1998104</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="diskless-booting">
          <para><quote>ディスクレスブート (diskless boot)</quote>
            に関する情報はどこで得られますか?</para>
        </question>

        <answer>
          <para><quote>ディスクレスブート (diskless boot)</quote>
            というのは、FreeBSD がネットワーク上で起動し、
            必要なファイルを自分のハードディスクではなくてサーバから読み込むものです。
            詳細については
            <ulink url="../handbook/diskless.html">FreeBSD
              ハンドブックの「ディスクレスブート」</ulink>を読んでください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="router">
          <para>
            FreeBSD をネットワークのルータ (router) として使用することはできますか?
          </para>
        </question>

        <answer>
          <para>
            インターネット標準やこれまでのよい経験によって指摘されている通り、
            FreeBSD は標準ではパケットを転送 (forward) するように設定されていません。
            しかし、
            &man.rc.conf.5;
            の中で次の変数の値を
            <literal>YES</literal>
            とする事によってこの機能を有効にすることができます。
          </para>

          <programlisting>gateway_enable=YES          # Set to YES if this host will be a gateway</programlisting>

          <para>
            このオプションによって
            &man.sysctl.8;
            の変数
            <varname>net.inet.ip.forwarding</varname><literal>1</literal> になります。
          </para>

          <para>
            ほとんどの場合、
            ルータについての情報を同じネットワークの他の計算機等に知らせるために、
            経路制御のためのプロセスを走らせる必要があるでしょう。
            FreeBSD には BSD の標準経路制御デーモンである
            &man.routed.8;
            が付属していますが、より複雑な状況に対処するためには
            <application>GaTeD</application>(<ulink url="http://www.gated.org/">http://www.gated.org/</ulink>
            から入手可能) を使用することもできます。
            3_5Alpha7 において FreeBSD がサポートされています。
          </para>

          <para>
            注意してほしいのは、FreeBSD をこのようにして使用している場合でも、
            ルータに関するインターネット標準の必要条件を完全には満たしていない
            ということです。しかし、普通に使用する場合にはほとんど問題ありません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="win95-connection">
          <para>Win95 の走っているマシンを、FreeBSD 経由でインターネットに接続できますか?</para>
        </question>

        <answer>
          <para>
            通常、この質問が出てくる状況は自宅に二台の PC があり、一台では
            FreeBSD が、もう一台では Win95 が走っているような場合です。
            ここでやろうとしていう事は FreeBSD の走っている計算機をインターネット
            に接続し、Win95 の走っているマシンからは FreeBSD
            の走っているマシンを経由して接続を行なう事です。
            これは二つ前の質問の特別な場合に相当します。
          </para>

          <para>…で、答えは「はい」です。
            FreeBSD 3.x のユーザモード ppp には <option>-nat</option>
            オプションがあります。
            <application>ppp</application><option>-nat</option>
            オプション付きで起動し、
            <filename>/etc/rc.conf</filename> にある
            <literal>gateway_enable</literal><emphasis>YES</emphasis> に設定します。
            そして Windows マシンを正しく設定すれば、
            きちんと動作するでしょう。</para>

          <para>
            設定に関するさらに詳しい情報は、
            Steve Sims 氏による
            <ulink url="http://www.FreeBSD.org/tutorials/ppp/index.html">Pedantic
              PPP Primer</ulink> にあります。</para>

          <para>カーネルモード ppp を利用する場合や、
            インターネットとのイーサネット接続が利用できる場合は、
            <command>natd</command> を利用する必要があります。
            この FAQ の <link linkend="natd">natd</link>
            のセクションを参照してください。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="latest-bind">
          <para>ISC からリリースされている BIND の最新版はコンパイルできないんでしょうか?</para>
        </question>

        <answer>
          <para>
            BIND の配布物と FreeBSD とでは
            <filename>cdefs.h</filename>
            というファイルの中でデータ型の矛盾があります。
            <filename>compat/include/sys/cdefs.h</filename>
            を削除してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="slip-ppp-support">
          <para>FreeBSD で <acronym>SLIP</acronym><acronym>PPP</acronym> は使えますか?</para>
        </question>

        <answer>
          <para>
            使えます。FreeBSD を用いて他のサイトに接続する場合には、
            &man.slattach.8;、&man.sliplogin.8;、&man.ppp.8; そして
            &man.pppd.8; のマニュアルページをご覧ください。
            &man.ppp.8; と &man.pppd.8; は、
            <acronym>PPP</acronym> のサーバ、クライアント両方の機能を持っています。
            その一方で、&man.sliplogin.8; は
            <acronym>SLIP</acronym> のサーバ専用で、
            &man.slattach.8; は
            <acronym>SLIP</acronym> のクライアント専用です。
          </para>

          <para>これらを使うためのさらなる情報については、<ulink
            url="../handbook/ppp-and-slip.html">ハンドブックの PPP と
            SLIP の章</ulink>をご覧ください。</para>

          <para>
            「シェルアカウント」を通じてのみインターネットへアクセス可能な場合、
            <application>slirp</application>
            package みたいなものが欲しくなるかもしれませんね。
            これを使えば、ローカルマシンから直接 <acronym>ftp</acronym><acronym>http</acronym>
            のようなサービスに (限定的ではありますが) アクセスすることができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="natd">
          <para>FreeBSD は <acronym>NAT</acronym><acronym>IP</acronym> マスカレードをサポートしていますか?
          </para>
        </question>

        <answer>
          <para>
            ローカルなサブネット (一台以上のローカルマシン) を持っているが、
            インターネットプロバイダから 1 つしか <acronym>IP</acronym>
            アドレスの割り当てを受けていない場合 (または <acronym>IP</acronym>
            アドレスを動的に割り当てられている場合でも)、
            &man.natd.8;
            プログラムを使いたくなるかもしれませんね。
            <literal>natd</literal> を使えば、
            1 つしか <acronym>IP</acronym> アドレスを持っていない場合でも、
            サブネット全体をインターネットに接続させることができます。
          </para>

          <para>
            &man.ppp.8;
            も同様の機能を持っており、<option>-nat</option>
            スイッチで有効にすることができます。
            どちらの場合も
            alias ライブラリ (&man.libalias.3;) が使われます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="create-dev-net">
          <para><devicename>/dev/ed0</devicename>
            デバイスを作成することができません。</para>
        </question>

        <answer>
          <para>Berkeley UNIX におけるネットワークの構成において、
            ネットワークのインタフェースはカーネルコードからのみ、
            直接あつかうことができます。
            より詳しく知りたい場合は、
            <filename>/etc/rc.network</filename>
            というファイルや、
            このファイルの中に書いてある、
            さまざまなプログラムについてのマニュアルページを見てください。
            それでもまだ分からない場合には、
            他の BSD 系の OS のネットワーク管理についての本を読むべきでしょう。
            ごく少しの例外をのぞいては、FreeBSD のネットワーク管理は SunOS 4.0
            や Ultrix と基本的に同じです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ethernet-aliases">
          <para>Ethernet アドレスのエイリアス (alias) はどのようにして設定できますか?</para>
        </question>

        <answer>
          <para>
            &man.ifconfig.8;
            のコマンドラインに
            <literal>netmask 0xffffffff</literal>
            を追加して、次のように書いてください。
          </para>

          <screen>&prompt.root; <userinput>ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="port-3c503">
          <para>3C503 で他のネットワークポートを使用するにはどのようにすればよいですか?</para>
        </question>

        <answer>
          <para>
            他のポートを使用したい場合には、
            &man.ifconfig.8;
            のコマンドラインにパラメータを追加しなければなりません。
            デフォルトでは
            <literal>link0</literal>
            が用いられるようになっています。
            BNC のかわりに
            AUI ポートを使用したい場合には、
            <literal>link2</literal>
            というパラメータを追加してください。
            これらのフラグは、
            <filename>/etc/rc.conf</filename> (&man.rc.conf.5; 参照)
            にある ifconfig_*
            の変数を使って指定されるはずです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="nfs">
          <para>FreeBSD との間で NFS がうまくできません。</para>
        </question>

        <answer>
          <para>
            PC 用のネットワークカードによっては、
            NFS のような、
            ネットワークを酷使するアプリケーションにおいて問題を起こすものがあります。
          </para>

          <para>
            この点に関しては
            <ulink url="../handbook/nfs.html">FreeBSD
              ハンドブックの「NFS」</ulink>を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="nfs-linux">
          <para>何故 Linux のディスクを NFS
            マウントできないのでしょうか?</para>
        </question>

        <answer>
          <para>
            Linux の NFS
            のコードには、
            許可されたポートからのリクエストしか受けつけないものがあります。
            以下を試してみてください。
          </para>

           <screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="nfs-sun">
          <para>何故 Sun のディスクを NFS
            マウントできないのでしょうか?</para>
        </question>

        <answer>
          <para>
            SunOS 4.X が走っている Sun Workstation は、
            許可されたポートからのマウント要求しか受けつけません。
            以下を試してみてください。
          </para>

          <screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="exports-errors">
          <para><command>mountd</command> から
            <quote>can't change attributes</quote>
            というメッセージがずっと出続けていて、
            FreeBSD の NFS サーバでは
            <quote>bad exports list</quote>
            と表示されます。これは何が原因なのでしょう?</para>
        </question>

        <answer>
          <para>最も良くある問題は、&man.exports.5;
            のマニュアルページの以下の部分を正しく理解していないことです。</para>

          <blockquote>
            <para>このファイルの各行 (# ではじまるコメント行を除く) は、
              NFS サーバのローカルファイルシステムに存在する、
              他のホストにエクスポートされるマウントポイント (複数可) と、
              それに対するエクスポートフラグを指定します。
              特定のエクスポート先ホストおよび、
              すべてのホストに適用されるデフォルトエントリは両方とも、
              サーバの各ローカルファイルシステムに対して一回だけしか指定できません。</para>
          </blockquote>

          <para>さて、ありがちな間違いをご覧になればはっきりするでしょう。
            もし <filename>/usr</filename>
            以下が単一のファイルシステムである (つまり
            <filename>/usr</filename> に何もマウントされない) 場合、
            次の exports リストは正しくありません。</para>

          <programlisting>/usr/src   client
/usr/ports client</programlisting>

          <para>一つのファイルシステムに対して属性の指定が二行になっています。
            <filename>/usr</filename> は同じホスト
            <hostid>client</hostid> にエクスポートされますから、
            正しい書き方は次のようになります。</para>

          <programlisting>/usr/src /usr/ports  client</programlisting>

          <para>もう一度マニュアルページの文章を確認すると、
            あるホストにエクスポートされる各ファイルシステムの属性は
            すべて一行に書かれていなければならない、となっています
            (ここでは、「アクセス可能なすべてのホスト」
            も一つの独立したホストとして扱われることに注意してください)。
            このことは、ファイルシステムをエクスポートするために
            奇妙な書式を使わなければならない原因にもなっているのですが、
            ほとんどの人にとって、これは問題にはならないでしょう。</para>

          <para>次に示すのは、有効な exports リストの例です。
            ここでは、<filename>/usr</filename><filename>/exports</filename>
            がローカルファイルシステムです。</para>

          <programlisting># Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=0    client01
/usr/src /usr/ports               client02
# The "client" machines have root and can mount anywhere
# up /exports. The world can mount /exports/obj read-only
/exports -alldirs -maproot=0      client01 client02
/exports/obj -ro</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-nextstep">
          <para>PPP で NeXTStep
            に接続する際に問題があるのですが。
          </para>
        </question>

        <answer>
          <para>
            <filename>/etc/rc.conf</filename> (&man.rc.conf.5; 参照)
            の中で次の変数を NO にして、
            TCP extension を無効にしてみてください。
          </para>

          <programlisting>tcp_extensions=NO</programlisting>

          <para>
            Xylogic の Annex も同様の問題がありますので、
            Annex 経由で PPP
            を行なう場合にもこの変更を行ってください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ip-multicast">
          <para>IP
            マルチキャスト (multicast) を有効にするには?</para>
        </question>

        <answer>
          <para>
            FreeBSD 2.0 かそれ以降では、
            標準の状態で完全にマルチキャストに対応しています。
            現在使用している計算機をマルチキャストのルータ (router) として使用するには、
            <literal>MROUTING</literal>
            というオプションを定義したカーネルを作ったうえで、
            <command>mrouted</command>
            を走らせる必要があります。2.2 かそれ以降の FreeBSD ならば、
            <filename>/etc/rc.conf</filename>
            でフラグ
            <literal>mrouted_enable</literal><literal>YES</literal> にセットしておくことで、
            起動時に <command>mrouted</command>
            を起動できます。
          </para>

          <para>
            MBONE
            用のツールは ports 内の専用のカテゴリー mbone
            にあります。
            <command>vic</command><command>vat</command>
            といった会議用のツールを探している場合は、
            この場所を見てください。
          </para>

          <para>
            詳しい情報は
            <ulink url="http://www.mbone.com/">Mbone Information Web</ulink>
            にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dec-pci-chipset">
          <para>
            DEC
            の PCI チップセットを用いているネットワークカードには、
            どのような物がありますか?</para>
        </question>

        <answer>
          <para>
            <ulink url="mailto:gfoster@driver.nsta.org">Glen Foster
              氏</ulink>による一覧に、
            最近の製品を追加したものを以下に示します。
          </para>

          <programlisting>Vendor          Model
----------------------------------------------
ASUS            PCI-L101-TB
Accton          ENI1203
Cogent          EM960PCI
Compex          ENET32-PCI
D-Link          DE-530
Dayna           DP1203, DP2100
DEC             DE435, DE450
Danpex          EN-9400P3
JCIS            Condor JC1260
Linksys         EtherPCI
Mylex           LNP101
SMC             EtherPower 10/100 (Model 9332)
SMC             EtherPower (Model 8432)
TopWare         TE-3500P
Znyx            (2.2.X) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348
                (3.X) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442,
                      ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="fqdn-hosts">
          <para>
            何故自分のサイトのホストに対して FQDN
            を使用する必要があるのですか?</para>
        </question>

        <answer>
          <para>
            実際にはそのホストは別のドメインにあるのではないですか。
            たとえば、foo.bar.edu
            というドメインの中から、
            <hostid role="domainname">bar.edu</hostid> ドメインにある
            <hostid>mumble</hostid>
            というホストを指定したい場合には、
            <hostid>mumble</hostid>
            だけではダメで、
            <hostid role="domainname">mumble.bar.edu</hostid>
            という FQDN (fully-qualified domain name)
            で指定しなければなりません。
          </para>

          <para>
            伝統的に、BSD の
            BIND のリゾルバ (resolver) ではこのような事は可能でしたが、
            FreeBSD に入っている
            <application>bind</application> (&man.named.8; 参照)
            の現在のバージョンでは、
            自分以外のドメインに対して FQDN
            でない別名を自動的につけてくれるような事はありません。
            したがって <hostid>mumble</hostid> というホスト名は、
            <hostid role="fqdn">mumble.foo.bar.edu</hostid>
            という名前か、もしくは root
            ドメイン内にある場合にしか適用されません。
          </para>

          <para>
            これは、
            <hostid role="fqdn">mumble.bar.edu</hostid><hostid role="domainname">mumble.edu</hostid>
            ということなったドメイン名に対してホスト名のサーチが行なわれていた
            以前の振る舞いとは異なったものです。このような事が悪い例もしくは
            セキュリティホールとみなされる理由については
            RFC 1535 を見てください。
          </para>

          <para>
            <filename>/etc/resolv.conf</filename> ファイル
            (&man.resolv.conf.5; 参照)
            の中で
          </para>

            <programlisting>domain foo.bar.edu</programlisting>

          <para>
            と書いてある行を、

            <hostid>search foo.bar.edu bar.edu</hostid>

            のように書きかえることで、上のような事ができます。しかし、
            RFC 1535 にあるように、
            検索順序が「内部 (local) と外部 (public) の管理の境界」をまたがないようにしてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="network-permission-denied">
          <para>すべてのネットワークの操作に対して
            <literal>Permission denied</literal>
            というメッセージが表示されるのですが。</para>
        </question>

        <answer>
          <para>
            <literal>IPFIREWALL</literal>
            オプションを付けてカーネルをコンパイルした場合には、
            2.1-STABLE の開発の途中から変更になった 2.1.7R の標準的な方針として、
            明示的に許可されていないすべてのパケットは落とされる設定
            になっている事を覚えておいてください。
          </para>

          <para>
            もしファイアウォールの設定を間違えた場合にネットワークの操作が再びできる
            ようにするには、<username>root</username>
            でログインして次のコマンドを実行してください。
          </para>

         <screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>

          <para>
            <filename>/etc/rc.conf</filename><literal>firewall_type='open'</literal>
            を追加してもよいでしょう。
          </para>

          <para>
            FreeBSD のファイアウォールの設定についての情報は
            <ulink url="../handbook/firewalls.html">FreeBSD
              ハンドブックの「ファイアウォール」</ulink>にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ipfw-overhead">
          <para>IPFW のオーバヘッドはどのくらいでしょうか?</para>
        </question>

        <answer>
          <para>
            この答えは、
            使っているルールセットとプロセッサのスピードによってほとんど決まります。
            イーサネットに対して少しのルールセットだけを使っている場合には、
            ほとんどその影響は無視できる程度です。
            実際の測定値を見ないと満足できない方々のために、
            実際の測定結果をお見せしましょう。
          </para>

          <para>
            次の測定は 486-66 (訳注: Intel 社製 CPU i486、66MHz のこと) 上で
            2.2.5-STABLE を使用して行なわれました。
            IPFW は変更が加えられて、<literal>ip_fw_chk</literal>
            ルーチン内でかかる時間を
            測定して 1000
            パケット毎に結果をコンソールに表示するようになっています。
          </para>

          <para>
            それぞれ 1000 ずつのルールが入っている 2
            つのルールセットでテストが行なわれました。
            ひとつ目のルールセットは最悪のケースを見るために
          </para>

            <programlisting>ipfw add deny tcp from any to any 55555</programlisting>

          <para>
            というルールを繰り返したものです。
          </para>

          <para>
            IPFW のパケットチェックルーチンは、
            パケットが (ポート番号のせいで) このルールにマッチしないことがわかるまでに、
            何度も実行されます。そのため、これは最悪のケースを示します。
            このルールを 999 個繰り返し並べた後に
          </para>

            <programlisting>allow ip from any to any</programlisting>

          <para>
            が書かれています。
          </para>

          <para>
            2つ目のルールセットは、なるべく早くチェックが終了するように書かれたものです。
          </para>

            <programlisting>ipfw add deny ip from 1.2.3.4 to 1.2.3.4</programlisting>

          <para>
            このルールでは、発信元の IP アドレスがマッチしないので、
            チェックはすぐに終了します。上のルールセットとおなじように、
            1000 個目のルールは
          </para>

            <programlisting>allow ip from any to any</programlisting>

          <para>
            です。
          </para>

          <para>
            1 つ目のルールセットの場合、
            パケットあたりのオーバヘッドはおよそ
            2.703ms/packet、
            これはだいたい 1 つのルールあたり 2.7
            マイクロ秒かかっていることになります。
            したがって、
            このルールにおけるパケット処理時間の理論的な限界は、
            毎秒約 370 パケットです。
            10Mbps のイーサネットで 1500 バイト以下のパケットサイズを仮定すると、
            バンド幅の利用効率は 55.5% が限界となることになります。
          </para>

          <para>
            2 つ目のルールセットでは、それぞれのパケットがおよそ
            1.172msで処理されていますので、
            だいたい 1 つのルールあたり 1.2
            マイクロ秒かかっていることになります。
            パケット処理時間の理論的な限界は、
            毎秒約 853 パケットとなりますので、
            10Mbps Ethernet のバンド幅を使い切ることができます。
          </para>

          <para>
            このテストでのルール数は多過ぎるため、
            実際に使用する際の結果を反映している訳ではありません。
            これらは上に示した数値を出すためだけに用いられたものです。
            効率の良いルールセットを作るためには、
            次のような事を考えておけばよいでしょう。
          </para>

            <itemizedlist>
              <listitem>
                <para>
                  「確定している」ルールは先頭の方に持ってきてください。
                  これは、多数の TCP のトラフィックがこのルールで処理されるためです。
                  そしてこのルールの前には
                  <literal>allow tcp</literal>
                  という記述を置かないでください。
                </para>
              </listitem>

              <listitem>
                <para>
                  良く使われるルールを、あまり良く使われないルールよりも
                  前の方に (もちろん<emphasis>ファイアウォールの許可設定を変えない範囲で</emphasis>)
                  持ってきてください。
                  <command>ipfw -a l</command> のようしてパケット数の統計を取ることで、
                  どのルールが最もよく使われているかを調べることができます。
                </para>
              </listitem>
            </itemizedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ipfw-fwd">
          <para>&man.ipfw.8; <quote>fwd</quote>
            ルールを使って他のマシンにサービスをリダイレクトしたのですが、
            うまく動いてくれないようです。どうしてなんでしょう?</para>
        </question>

        <answer>
          <para>おそらく、あなたが期待している動作とは、
            単なるパケット転送ではなくネットワークアドレス変換 (NAT)
            と呼ばれるものだからでしょう。
            <quote>fwd</quote> ルールは文字どおり、本当に転送しか行ないません。
            パケットの中身については一切手を加えないのです。
            そのため、次のようなルールを設定したとすると、
          </para>

          <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>

          <para>宛先アドレスに <replaceable>foo</replaceable> と書かれたパケットが
            このルールを設定したマシンに到着した場合、そのパケットは
            <replaceable>10.0.0.1</replaceable> に転送されますが、宛先アドレスは
            <replaceable>foo</replaceable> のままになります。
            つまり、パケットに宛先アドレスが <replaceable>10.0.0.1</replaceable>
            に書き換えられるということは<emphasis>ありません</emphasis>。
            自分宛でないパケットを受けとったマシンは、
            おそらくほとんどの場合、そのパケットを破棄すると思います。
            そのため <quote>fwd</quote> ルールは、
            そのルールを書いたユーザが意図したようには動かないことが良くあります。
            この動作はバグではなく、仕様なのです。</para>

          <para>サービスの転送をきちんと動作させる方法については、
            <link linkend="service-redirect">サービスのリダイレクトに関する
              FAQ</link> や &man.natd.8; のマニュアルページ、
            <ulink url="../ports/">Ports Collection</ulink>
            にいくつか含まれているポート転送ユーティリティなどをご覧になると良いでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="service-redirect">
          <para>サービス要求を他のマシンにリダイレクトするには?</para>
        </question>

        <answer>
          <para>
            FTP などのサービスのリクエストは、<quote>socket</quote>
            パッケージを利用してリダイレクトできます。
            <quote>socket</quote>
            パッケージは ports の
            <filename>sysutils</filename>
            カテゴリに含まれています。
            (<filename>/etc/inet.conf</filename>に書かれている)
            コマンド行を、次のように <quote>socket</quote> を呼ぶように変更してください。
        </para>

          <programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp</programlisting>

          <para>
            ここで
            <replaceable>ftp.foo.com</replaceable>
            はリダイレクト先のホスト名、
            行の最後の
            <replaceable>ftp</replaceable> はポート名です。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="bandwidth-mgr-tool">
          <para>バンド幅の管理を行なえるツールはどこで手に入れられますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD 用のバンド幅管理ツールには、無料で手に入れられる
            <ulink url="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink> と、
            <ulink url="http://www.etinc.com/">Emerging Technologies</ulink>
            から入手できる Bandwidth Manager
            という市販のものの 2 種類があります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="extra-named-port">
	  <para>BIND (<command>named</command>) が、53 番ポートのほかに
	    大きな番号のポートで受け付けています。私のホストは
	    乗っ取られたのでしょうか。</para>
	</question>

	<answer>
	  <para>おそらく違います。FreeBSD 3.0 以降では、外向けの問合せに
	    ランダムな大きな番号のポートを用いるバージョンの BIND を
	    用いています。ファイアウォールを通すため、またはあなたの
	    気分で、外向きの問合せを 53 番ポートから行いたいならば、
	    <filename>/etc/namedb/named.conf</filename> に次のように
	    設定してみてください。</para>

	  <programlisting>options {
        query-source address * port 53;
};</programlisting>

	  <para>更に限定したければ、<literal>*</literal> を単一の IP
	    アドレスに置き換えることもできます。</para>

	  <para>それはともかく、おめでとうごさいます。
	    <command>sockstat</command> の出力を見て、おかしな現象に
	    注目するのはよい習慣です。</para>
	</answer>
      </qandaentry>

      <qandaentry>
        <question id="bpf-not-configured">
          <para>なぜ <quote><computeroutput>/dev/bpf0: device not configured</computeroutput></quote>
            が出るのでしょうか?</para>
        </question>

        <answer>
          <para>
            バークレーパケットフィルタ (&man.bpf.4;)
            ドライバは、それを利用するプログラムを実行する前に有効にしておく必要があります。
            カーネルコンフィグファイルに、次のように追加してカーネルの再構築をしてください。
          </para>

          <programlisting>pseudo-device bpfilter		# Berkeley Packet Filter</programlisting>

          <para>
            そして再起動してから、次にデバイスノードを作成する必要があります。
            これは、次のように入力し、<filename>/dev</filename> を変更することで行ないます。
          </para>

          <screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>

          <para>
            デバイスノードの作成の詳細は、
            <ulink url="../handbook/kernelconfig-nodes.html">FreeBSD
              ハンドブックの「デバイスノード」</ulink>を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="mount-smb-share">
          <para>Linux の smbmount のように、
            ネットワーク上の Windows
            マシンのディスクをマウントするにはどうしたら良いのでしょう?</para>
        </question>

        <answer>
          <para>Ports Collection に含まれる
            <application>sharity light</application> パッケージを使ってください、</para>
          <!-- XXX update for bp's SMBFS in CURRENT, when it is imported! -->
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="icmp-response-bw-limit">
          <para><quote>icmp-response bandwidth limit 300/200 pps</quote>
            というメッセージがログファイルに現れるのですが、
            どういうことでしょう?</para>
        </question>

        <answer>
          <para>これは、カーネル自身から「ICMP や TCP のリセット (RST)
            応答を、妥当な数よりも多く送っている」ということを、
            あなたに伝えるメッセージです。
            ICMP 応答は良く、使われていない UDP
            ポートに接続しようとした結果として生成されます。
            また、TCP リセットはオープンされていない TCP
            ポートに接続しようとした結果として生成されます。
            その他、これらのメッセージが表示される原因となる状況として、
            以下のようなものがあります。</para>

          <itemizedlist>
            <listitem>
              <para>(特定のセキュリティ上の弱点を悪用しようとする攻撃ではなく)
                膨大な数のパケットを使った強引なサービス妨害 (DoS) 攻撃。</para>
            </listitem>

            <listitem>
              <para>(一部のウェルノウンポートを狙ったものではなく)
                非常に広い範囲のポートに接続を試みるポートスキャン。</para>
            </listitem>
          </itemizedlist>

          <para>メッセージ中の最初の数字は、
            上限を設定しなかった場合にカーネルが送っていたであろうパケットの数を示し、
            二番目の数字は、パケット数の上限値を示します。
            この上限値は
            <varname>net.inet.icmp.icmplim</varname> という
            sysctl 変数を使うことで、以下のように変更可能です。
            ここでは上限を 1 秒あたりのパケット数で
            <literal>300</literal> にしています。</para>

          <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>

          <para>カーネルの応答制限を無効にせず、
            ログファイル中のメッセージだけを抑制したい場合、
            <varname>net.inet.icmp.icmplim_output</varname> sysctl
            変数を次のようにすることで出力を止めることができます。</para>

          <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>

          <para>最後に、もし応答制限を無効にしたい場合は、
            <varname>net.inet.icmp.icmplim</varname> sysctl 変数に
            (上の例のようにして) <literal>0</literal>
            を設定することで実現できます。
            ただし応答制限を無効化するのは、上記の理由からおすすめしません。</para>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="ppp">
    <title>PPP</title>

    <qandaset>
      <qandaentry>
        <question id="userppp">
          <para><command>ppp</command> が動きません。どこを間違えているのでしょう?</para>
        </question>

        <answer>
          <para>
            まず
            &man.ppp.8;
            のマニュアルと、
            <ulink url="../handbook/ppp-and-slip.html#USERPPP">FreeBSD
              ハンドブックの「PPP」</ulink>を読んでみましょう。
            次に、
          </para>

            <programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>

          <para>
            という命令を <application>ppp</application>
            のコマンドプロンプトに対して打ち込むか、
            設定ファイル
            <filename>/etc/ppp/ppp.conf</filename>
            に加えて (<literal>default</literal>
            セクションの先頭に加えるのが一番良いでしょう)
            ログを有効にしてみてください。
            その際、
            <filename>/etc/syslog.conf</filename> (&man.syslog.conf.5; 参照)
            に
          </para>

            <programlisting>!ppp
*.*              /var/log/ppp.log</programlisting>

          <para>
            と書かれた行が含まれているか、また、
            <filename>/var/log/ppp.log</filename>
            が存在しているかどうか確かめておいてください。
            さて、これで何が起きているのか突き止めるために、
            ログファイルからたくさんの情報を得られるようになりました。
            ログに訳の分らない部分があっても心配ご無用。
            あなたが助けを求めた誰かにとっては、
            その部分が意味をなす場合があるのです。
          </para>

            <note>
              <title>訳注</title>
              <para>
                ログの取得に syslog を使用するようになったのは
                2.2.5 以降からです。
              </para>
            </note>

          <para>
            使用中の <command>ppp</command> のバージョンで
            <quote><literal>set log</literal></quote>
            命令を解釈しない場合は、<ulink url="http://people.FreeBSD.org/~brian/">最新版</ulink>をダウンロードすべきです。
            FreeBSD の 2.1.5 以降でビルドできます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-hangs">
          <para><command>ppp</command> を実行するとハングします</para>
        </question>

        <answer>
          <para>
            ホスト名の解決がうまくいっていないのでしょう。まず、
            リゾルバ (resolver) が
            <filename>/etc/hosts</filename>を参照するように、
            <filename>/etc/host.conf</filename>
            の最初の行に
            <literal>host</literal>
            と書き込んでください。
            つぎに、<filename>/etc/hosts</filename>
            に使用しているマシンのエントリを書き加えます。
            ローカルでネットワークを使用していない場合は、
            <literal>localhost</literal>
            の行を以下のように変更してください。
          </para>

          <programlisting>127.0.0.1      foo.bar.com foo localhost</programlisting>

          <para>
            使用しているホストのエントリを追加してもかまいません。
            詳細は関連するマンページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-nodial-auto">
          <para><command>ppp</command><option>-auto</option> モードでダイアルしてくれない</para>
        </question>

        <answer>
          <para>
            まず最初に、デフォルトルートが確立しているかどうかチェックしてください。
            <command>netstat -rn</command> (&man.netstat.1; 参照)
            を実行すると、以下のような情報が表示されるはずです。
          </para>

          <screen>Destination        Gateway            Flags     Refs     Use     Netif Expire
default            10.0.0.2           UGSc        0        0      tun0
10.0.0.2           10.0.0.1           UH          0        0      tun0</screen>

          <para>
            これはあなたがハンドブックやマニュアル、
            <filename>ppp.conf.sample</filename>
            の中で出てくるアドレスを使用していると仮定した場合の例です。
            デフォルトルートが確立していない場合、
            <filename>ppp.conf</filename>
            の中の
            <literal>HISADDR</literal>
            が理解できない、
            古いバージョンの
            &man.ppp.8;
            が走っている可能性があります。
            FreeBSD 2.2.5 より前のバージョンに付属していた
            <application>ppp</application>
            を使用している場合、
          </para>

            <programlisting>add 0 0 HISADDR</programlisting>

          <para>
            と書かれた行を以下のように修正してください。
          </para>

            <programlisting>add 0 0 10.0.0.2</programlisting>

          <para>
            <command>netstat -rn</command>
            でデフォルトルートの情報が表示されない場合、もう一つ、
            <filename>/etc/rc.conf</filename> (&man.rc.conf.5; 参照) (2.2.2
            より前のリリースでは
            <filename>/etc/sysconfig</filename>
            と呼ばれていました) の中でデフォルトのルータを誤って設定し、
            <filename>ppp.conf</filename> から
          </para>

            <programlisting>delete ALL</programlisting>

          <para>
            の行をうっかり消してしまった可能性があります。
            この場合は、
            <ulink url="../handbook/ppp-and-slip.html#USERPPP-FINAL">FreeBSD
              ハンドブックの「システムの最終設定」</ulink>の項を読み直してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="no-route-to-host">
          <para><quote><computeroutput>No route to host</computeroutput></quote>
            とはどういう意味ですか?</para>
        </question>

        <answer>
          <para>
            このエラーは通常、
            <filename>/etc/ppp/ppp.linkup</filename>
            に以下のようなセクションが無い場合に起こります。
          </para>

            <programlisting>MYADDR:
  delete ALL
  add 0 0 HISADDR</programlisting>

          <para>
            これは動的 <acronym>IP</acronym>
            アドレスを使用している場合、
            またはゲートウェイのアドレスを知らない場合にのみ必要な設定です。
            インタラクティブモードを使用している場合、
            <emphasis>パケットモード</emphasis>に入った後で (プロンプトが
            <acronym>PPP</acronym>
            と大文字に変わったらパケットモードに入ったしるしです)、
            以下の命令を入力してください。
          </para>

          <screen>delete ALL
add 0 0 HISADDR</screen>

          <para>
            詳しい情報については、
            <ulink url="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">FreeBSD
              ハンドブックの「PPP と動的 IP 設定」</ulink>の項を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="connection-threeminutedrop">
          <para>3 分ほど経つと接続が切れてしまう</para>
        </question>

        <answer>
          <para>
            <command>ppp</command>
            のタイムアウトは デフォルトでは 3 分です。
            これは
          </para>

          <programlisting>set timeout <replaceable>NNN</replaceable></programlisting>

          <para>
            という命令によって調整することができます。
            <replaceable>NNN</replaceable> には、
            接続が切れるまでのアイドル時間が秒数で入ります。
            <replaceable>NNN</replaceable>0 の場合、
            タイムアウトによる切断は起こりません。
            このコマンドは <filename>ppp.conf</filename>
            に入れることも、
            インタラクティブモードでプロンプトから入力することも
            できます。
            ソケットを用いる
            &man.telnet.1; か &man.pppctl.8; を使用し、
            <application>ppp</application>
            サーバに接続することによって、
            回線がアクティブな間に限定してタイムアウトの時間を調整することも可能です。
          </para>

            <note>
              <title>訳注</title>
              <para>
                <command>pppctl</command>2.2.5R からです。
              </para>
            </note>

          <para>
            詳しい情報は
            &man.ppp.8;
            のマニュアルページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-drop-heavy-load">
          <para>負荷が高いと接続が切れてしまう</para>
        </question>

        <answer>
          <para>
            Link Quality Reporting (LQR) の設定を行っている場合、
            マシンと接続先の間で非常にたくさんの <acronym>LQR</acronym>
            パケットが失われている可能性があります。結果として
            <command>ppp</command> は回線の具合いが悪いと考え、
            回線を切断するのです。2.2.5 より前のバージョンの FreeBSD では
            <acronym>LQR</acronym>
            はデフォルトで有効になっています。
            現在ではデフォルトの状態で無効です。
            <acronym>LQR</acronym>
            は以下の命令で無効にすることができます。
          </para>

          <programlisting>disable lqr</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-drop-random">
          <para>接続がランダムに切れてしまう</para>
        </question>

        <answer>
          <para>
            ノイズの多い回線、あるいは待ち機能付きの回線では、
            時々モデムが (誤って) キャリアを失ったと思い込み、
            回線が切断されてしまうことがあります。
          </para>

          <para>
            大多数のモデムでは、
            一時的なキャリアの喪失をどれくらいの時間で検出するかを、
            設定で決めることができます。
            たとえば USR Sportster では、S10 レジスタ
            の値を 10 倍した秒数がその値になります。
            この場合、モデムをもっとのんびり屋さんにするには、
            dial 行に次のような文字列を加えると良いでしょう。
          </para>

          <programlisting>set dial "...... ATS10=10 OK ......"</programlisting>

          <para>
            詳しくはお使いのモデムのマニュアルをご覧ください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-hangs-random">
          <para>接続が不規則にハングアップしてしまう</para>
        </question>

        <answer>
          <para>
            たくさんの人が、原因不明のハングアップを経験しています。
            検証のために必要なのは、まずどちら側のリンクでそれが起こっているか、
            ということです。
          </para>

          <para>
            外部接続型モデムを利用しているなら、
            単に <command>ping</command> を使うことで、
            データを送信するときに <acronym>TD</acronym>
            ランプが点灯するかどうかを確認することができます。
            もし、<acronym>TD</acronym> ランプが点灯して、
            <acronym>RD</acronym> ランプが点灯しなければ、
            問題は回線の向こう側にあります。<acronym>TD</acronym> が点灯しなければ、
            問題は回線のこちら側です。内蔵型モデムの場合、
            <filename>ppp.conf</filename> ファイルに
            <command>set server</command> コマンドを入れる必要があるでしょう。
            回線が切断されたとき、<command>pppctl</command>
            を使って <command>ppp</command>
            に接続してください。
            そのとき、
            ネットワーク接続が急に復旧 (診断ソケットへのアクセスで、
            <command>ppp</command> が復活します) するか、
            もしくは接続自体が全くできない (ただし、
            <command>ppp</command>
            起動時に <command>set socket</command>
            コマンドがちゃんと実行されているとします) としたら、
            問題は回線のこちら側です。
            もし、接続可能で、かつ状況が変化しなければ、
            <command>set log local async</command>
            を使ってローカル非同期ログ (async logging) を有効にし、
            <command>ping</command>
            を他のウィンドウかターミナルから使ってください。
            非同期ログには、こちら側のリンクの送受信データが記録されます。
            もし、データが送信されたにもかかわらず返って来ていなければ、
            問題は回線の向こう側にあることになります。
          </para>

          <para>
            問題が回線のどちら側かにあることが分かったら、
            つぎの二つの可能性が考えられるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-remote-not-responding">
          <para>回線の向こう側での反応がない</para>
        </question>

        <answer>
          <para>
            これに対処できることはほとんどありません。大部分の ISP
            は、Microsoft 社製 OS 以外の利用者に対してのサポートを拒否するでしょう。
            <filename>ppp.conf</filename> ファイルの中に
            <literal>enable lqr</literal>
            を記述することで
            <command>ppp</command>
            が回線の向こう側で発生する切断を検出することができますが、
            この検出は比較的遅いため、あまり役に立ちません。また、あなたは
            user-ppp を利用していることを
            ISP に知られたくないと思うかも知れませんね。
          </para>

          <para>
            まず最初に、こちら側の圧縮機能をすべて無効にしてみてください。
            それには、設定ファイルをつぎのようにします。
          </para>

          <programlisting>disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>

          <para>
            そして再接続し、変更前と同じように通信できることを確認します。
            もしこれによって状況が改善されるか、完全に解決したら、
            (上の設定のうち) どの設定で状況が変化したのかを、
            色々な組合せで試してみてください。これは、ISP
            に問い合わせを行なうときの有効な情報となります (ただし、
            あなたが Microsoft
            社製品以外のものを利用していることも明らかにしてしまいますが)。
          </para>

          <para>
            ISP に問い合わせを行なう前に、こちら側の非同期ログを有効にして、
            接続がハングアップするまで待ってください。この作業は、
            非常に多くのディスク空間を消費するかも知れません。
            興味の対象となっているのは、通信ポートから最後に読み込まれたデータです。
            それは通常 <acronym>ASCII</acronym> データで、
            問題点の詳細 (<quote><computeroutput>Memory fault, core dump</computeroutput></quote> など) が
            記載されている可能性があります。
          </para>

          <para>
            回線の向こう側で通信ログを監視することは可能なはずですので、
            切断が発生した時、ISP の対応が好意的ならば
            どうして ISP 側で問題が発生したのかこちらに伝えてくれるかも知れません。
            <email>brian@Awfulhak.org</email>
            まで詳細を送って頂くか、ISP
            に直接私に連絡するように伝えて下さっても構いません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-hung">
          <para><command>ppp</command> がハングアップする</para>
        </question>

        <answer>
          <para>
            ベストな方法は、
            <literal>CFLAGS+=-g</literal><literal>STRIP=</literal><command>ppp</command><filename>Makefile</filename>
            に追加して、
            <command>ppp</command> を再構築し、
            そして
            <literal>make clean &amp;&amp; make &amp;&amp; make install</literal>
            を行なうことです。
            <command>ppp</command> がハングアップした時、
            <literal>ps ajxww | fgrep ppp</literal> を使って
            <command>ppp</command>
            のプロセス ID を調べ、
            <literal>gdb ppp PID</literal> を実行してください。
            <command>gdb</command>
            のプロンプトから、
            <command>bt</command>
            を使ってスタックをトレースすることができます。
          </para>

          <para>
            スタックトレースの結果は、<email>brian@Awfulhak.org</email>
            まで送ってください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-loginok-thennothing">
          <para><computeroutput>Login OK!</computeroutput>
            のメッセージが出た後、何も起こらない</para>
        </question>

        <answer>
          <para>
            2.2.5 より前のリリースの FreeBSD では、
            &man.ppp.8;
            はリンクが確立した後、接続先が <acronym>Line Control Protocol (LCP)</acronym>
            を発信するのを待ちます。しかし、多くの <acronym>ISP</acronym>
            ではネゴシエーションを自分からは起こさず、
            クライアントが起こすのを待っています。
            <application>ppp</application> に強制的に
            <acronym>LCP</acronym> を発信させるには、
            次の命令を使います。
          </para>

            <programlisting>set openmode active</programlisting>

            <note>
              <para>
                両方の側がネゴジェーションを起こしても、
                大抵の場合は何の問題もありません。
                ですから、現在では openmode
                はデフォルトで有効になっています。
                次のセクションでこれが<emphasis>問題になる場合</emphasis>を説明します。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-same-magic">
          <para>でもまだ <quote><computeroutput>magic is the same</computeroutput></quote>
            というエラーが出る</para>
        </question>

        <answer>
          <para>
            時折、接続直後のログに
            <quote><computeroutput>magic is the same</computeroutput></quote>
            というメッセージがあらわれることがあります。
            このメッセージがあらわれても何も起きない場合もありますし、
            どちらかの側が接続を切ってしまう場合もあります。
            <command>ppp</command> の実装の多くはこの問題に対応できておらず、
            その場合にはちゃんと link が上がっている状態であっても、
            <command>ppp</command> が最終的にあきらめてしまい、
            接続を切るまで設定のリクエストが繰り返し送られ、
            設定が行われたという通知がログファイルに残ると思います。
          </para>

          <para>
            これは通常、
            ディスクアクセスの遅いサーバマシンのシリアルポートで
            <command>getty</command> が生きていて、
            <command>ppp</command> がログインスクリプトか、
            ログイン直後に起動されたプログラムから実行されている場合に起こります。
            <command>slirp</command>
            を使用している場合に同様の症状が見られたという報告もあります。
            原因は
            <command>getty</command> の終了されるまでと、
            <command>ppp</command> が実行され、
            クライアント側の
            <command>ppp</command><acronym>Line Control Protocol (LCP)</acronym>
            を送り始めるまでのタイミングにあります。
            サーバ側のシリアルポートで
            <literal>ECHO</literal>
            が有効なままになっているので、
            クライアント側の
            <command>ppp</command>
            にパケットが「反射」してしまうのです。
          </para>

          <para>
            <acronym>LCP</acronym>
            ネゴシエーションの一部として、
            リンクの両サイドで
            magic number を定めて、
            「反射」が起きていないかどうか確かめる作業があります。
            規約では、接続相手がこちらと同じ magic number を提示してきたら、
            <acronym>NAK</acronym> を送って新しい
            magic number を選択しなければならないと定めています。
            この作業の間、サーバのシリアルポートの
            <literal>ECHO</literal> がずっと有効になったままなので、
            クライアント側の <command>ppp</command><acronym>LCP</acronym> パケットを送り、
            パケットが反射して全く同じ magic number
            が送られてくるのを見つけ、
            それに対して <acronym>NAK</acronym>
            を送るのです。一方 <acronym>NAK</acronym>
            自体も (これは <command>ppp</command>
            が magic number
            を変更しなければいけないことを意味しています) 反射してくるので、
            結果として magic number が数えきれないほど変更され、
            そのすべてがサーバの <acronym>tty</acronym>
            バッファの中に積み重なることになるのです。
            サーバでスタートした <command>ppp</command>
            は、すぐに magic number であふれかえってしまい、
            <acronym>LCP</acronym>
            のネゴシエーションを十分に行ったものと判断して、
            さっさと接続を切ってしまいます。
            一方、
            クライアント側は反射が帰ってこなくなったので満足しますが、
            それもサーバが接続を切ったことを知るまでです。
          </para>

          <para>
            この事態は、以下の行を
            <filename>ppp.conf</filename>
            の中に書いて、
            相手がネゴシエーションを開始できるようにする事によって回避できます。
          </para>

          <programlisting>set openmode passive</programlisting>

          <para>
            これで <command>ppp</command> はサーバが
            <acronym>LCP</acronym>
            ネゴシエーションを起こすのを待つようになります。
            しかし、
            自分からは決してネゴジェーションを起こさないサーバもあるかもしれません。
            もしこの状況に遭遇した場合には、次のようにしてください。
          </para>

          <programlisting>set openmode active 3</programlisting>

          <para>
            これによって <command>ppp</command>3 秒間
            passive モードを続けた後で、
            <acronym>LCP</acronym> リクエストを送り始めます。
            この間に相手がリクエストを送り始めた場合には
            3 秒間待たずにこのリクエストに即座に応答します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-lcp-constant">
          <para>接続が切れるまで <acronym>LCP</acronym>
            のネゴシエーションが続くのですが。</para>
        </question>

        <answer>
          <para>
            現在の <application>ppp</application> は、まだ
            <acronym>LCP</acronym><acronym>CCP</acronym><acronym>IPCP</acronym>
            の返事が、
            元のリクエストと連携してくれる機能がきちんと実装されていません。
            その結果、ある
            <application>ppp</application>
            の実装が相手よりも 6 秒以上遅い場合には、
            <acronym>LCP</acronym> 設定のリクエストをさらに 2 回送ります。
            これは致命的な物です。
          </para>

          <para>
            <hostid>A</hostid><hostid>B</hostid>という
            2 つの実装を考えてみましょう。
            <hostid>A</hostid> が接続の直後に
            <acronym>LCP</acronym> リクエストを送り、
            一方 <hostid>B</hostid> の方はスタートするのに
            7 秒かかったとします。<hostid>B</hostid> がスタートする時には
            <hostid>A</hostid><acronym>LCP</acronym>
            リクエストを 3 回送ってしまっています。
            前の節で述べた magic number の問題が起きないよう、
            <literal>ECHO</literal><literal>off</literal> になっていると考えています。
            <hostid>B</hostid><acronym>REQ</acronym> を送ります。
            するとこれは <hostid>A</hostid><acronym>REQ</acronym> のうち、
            最初の物に対する <acronym>ACK</acronym> となります。
            結果として、<hostid>A</hostid><acronym>OPENED</acronym>
            の状態に入り、
            <hostid>B</hostid>
            に対して (最初の) <acronym>ACK</acronym> を送ります。
            そのうちに
            <hostid>B</hostid> は、<hostid>B</hostid>
            がスタートする前に
            <hostid>A</hostid>
            から送られたもう 2 つの
            <acronym>REQ</acronym> に対する
            <acronym>ACK</acronym> を送り返します。
            <hostid>B</hostid><hostid>A</hostid>
            からの最初の
            <acronym>ACK</acronym> を受け取り
            <acronym>OPENED</acronym> の状態に入ります。
            <hostid>A</hostid><hostid>B</hostid> からの
            2 つ目の <acronym>ACK</acronym>
            を受け取りますので、
            <acronym>REQ-SENT</acronym>の状態に戻り、
            さらに、RFC のとおりに (4 つ目の) <acronym>REQ</acronym>
            を送ります。そして 3 つ目の
            <acronym>ACK</acronym>
            を受け取って
            <acronym>OPENED</acronym> 状態に入ります。
            一方、<hostid>B</hostid><hostid>A</hostid>
            からの 4 つ目の
            <acronym>REQ</acronym>
            を受け取りますので、
            <acronym>ACK-SENT</acronym>
            の状態に入り、2 つ目の
            <acronym>REQ</acronym>4 つ目の
            <acronym>ACK</acronym> を
            RFC のとおりに送ります。
            <hostid>A</hostid>は、
            <acronym>REQ</acronym>
            を受けとると
            <acronym>REQ-SENT</acronym>
            の状態になり、さらに
            <acronym>REQ</acronym>
            を送ります。
            そしてすぐに
            <acronym>ACK</acronym> を受け取って
            <acronym>OPENED</acronym>
            の状態に入ります。
          </para>

          <para>
            これが、片方の
            <command>ppp</command>
            があきらめてしまうまで続きます。
          </para>

          <para>
            これを回避する最も良い方法は、
            片方を
            <literal>passive</literal>
            モードに設定する、
            すなわち反対側がネゴシエーションを開始するまで待つようにする事です。
            これは、
          </para>

            <programlisting>set openmode passive</programlisting>

          <para>
            というコマンドでできます。
            このオプションは気を付けて使わないといけません。さらに
          </para>

            <programlisting>set stopped <replaceable>N</replaceable></programlisting>

          <para>
            というコマンドを追加して、
            <application>ppp</application> がネゴシエーションが開始するまで待つ
            最大の時間を設定してください。もしくは、
          </para>

            <programlisting>set openmode active <replaceable>N</replaceable></programlisting>

          <para>
            というコマンド (ここで、
            <replaceable>N</replaceable>
            はネゴシエーションが始まるまで待つ時間) を使うこともできます。
            詳しくはマニュアルページを参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-lockups">
          <para>ppp が接続直後に固まってしまう</para>
        </question>

        <answer>
          <para>
            2.2.5 より前のバージョンの FreeBSD では、<application>ppp</application>
            が Predictor1 圧縮のネゴシエーションを誤って解釈して、
            接続直後にリンクを無効にしている可能性があります。
            これは両サイドが異なる
            <acronym>Compression Control Protocols (CCP)</acronym>
            を使ってネゴジェーションを行った場合にのみ発生します。
            この問題は現在は解決していますが、あなたの走らせている
            <application>ppp</application>
            のバージョンが古い場合でも、次の命令で解決することができます。</para>

          <programlisting>disable pred1</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-shell-test-lockup">
          <para><command>ppp</command> の内部でシェルを起動しようとすると固まってしまう</para>
        </question>

        <answer>
          <para>
            <command>shell</command> あるいは
            <command>!</command>
            コマンドを使用すると、
            <application>ppp</application>
            はシェルを起動し (何か引数を渡した場合は、
            <application>ppp</application>
            は引数も実行します)、
            コマンドが終了するまで処理を中断します。
            コマンドを実行中に <application>ppp</application>
            のリンクを使おうとすると、
            リンクが固まっているように見えますが、
            これは <application>ppp</application> がコマンドの終了を待っているからです。
          </para>

          <para>
            このような場合は、代わりに
            <command>!bg</command>
            コマンドを使用してください。
            与えられたコマンドがバックグラウンドで実行されるので、
            <command>ppp</command>
            はリンクに関するサービスを継続することができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-nullmodem">
          <para>ヌルモデムケーブルを使用しているとき、
            <command>ppp</command> が終了しない</para>
        </question>

        <answer>
          <para>
            ヌルモデムケーブルを使用して直接接続している場合、
            <application>ppp</application>
            は自動的には接続の終了を知ることができません。
            これはヌルモデムシリアルケーブルの配線に起因しています。
            この種の接続形態を用いる場合は、
            以下の命令を用いて <acronym>LQR</acronym>
            を常に有効にする必要があります。
          </para>

          <programlisting>enable lqr</programlisting>

          <para>
            こうすると、接続先がネゴシエーションを行う場合、デフォルトで
            <acronym>LQR</acronym> の使用を受け入れるようになります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-auto-noreasondial">
          <para><command>ppp</command><option>-auto</option> モードで動かすと、
            勝手にダイアルすることがある</para>
        </question>

        <answer>
          <para>
            <application>ppp</application>
            が思いもしないときにダイアルを始める場合、その原因を突き止め、
            防止のためにダイヤルフィルタ (dfilters) をかけてやる
            必要があります。
          </para>

          <para>
            原因を突き止めるためには、以下の命令を使用してください。
          </para>

          <programlisting>set log +tcp/ip</programlisting>

          <para>
            これで接続を通過するすべてのトラフィックをログに残すことができるようになりました。
            次に突然回線がつながったときのログのタイムスタンプをたどれば、
            原因を突き止めることができるはずです。
          </para>

          <para>
            原因がわかったら、次に、このような状況ではダイヤルが起こらないようにしましょう。
            通常、この手の問題は、<acronym>DNS</acronym>
            で名前の解決をしようとしたために起こります。
            <acronym>DNS</acronym> による名前の解決によって、
            接続が行われるのを防止するには、
            次のような手段を用います (これは <application>ppp</application>
            の既に確立した接続に関してパケットのフィルタリングをするものでは<emphasis>ありません</emphasis>)。
          </para>

          <programlisting>set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0</programlisting>

          <para>
            これはデマンドダイヤル機能に問題を生じさせるため、
            常に適切であるとはかぎりません。
            ほとんどのプログラムは他のネットワーク関連の処理を行なう前に
            <acronym>DNS</acronym>
            への問い合わせが必要になります。
          </para>

          <para>
            <acronym>DNS</acronym> の場合は、
            何が実際にホスト名を検索しようとしているのかを突き止めるべきでしょう。
            大抵の場合は、
            &man.sendmail.8;
            が犯人です。
            設定ファイルで sendmail が
            <acronym>DNS</acronym> に問い合わせないようになっているか確認すべきです。
            自分用の設定ファイルを作成するための詳しい方法は、
            <link linkend="ispmail">メールの設定</link> の項をご覧ください。
            または、
            <filename>.mc</filename>
            ファイルに次のような行を追加してもよいでしょう。
          </para>

          <programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>

          <para>
            この行を追加すると、sendmail
            はメールキューを処理する (通常
            sendmail は 30 分ごとにキューを処理するよう、
            <quote><option>-bd -q30m</option></quote>
            というオプションを付けて起動されます) までか、
            または (多分 <filename>ppp.linkup</filename> というファイルの中で)
            <quote><command>sendmail -q</command></quote>
            というコマンドが実行されるまで、
            すべてのメールをキューに溜めるようになります。
          </para>

            <note>
              <title>訳注</title>
              <para>
                <quote><command>sendmail -q</command></quote>
                はその時点のメールキューの内容を処理して終了します。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ccp-errors">
          <para><acronym>CCP</acronym>
            エラーとはどういう意味ですか</para>
        </question>

        <answer>
          <para>
            ログファイル中の以下のエラーは、
          </para>

            <programlisting>CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)</programlisting>

          <para>
            のネゴシエーションにおいて <command>ppp</command> は
            Predictor1 圧縮を用いるべく主張したのに対して、
            接続先は圧縮を使用しないことを主張した場合に起こります。
            このメッセージには何の害もありませんが、
            出るのが嫌なら、以下の命令を用いてこちら側でも
            Predictor1 圧縮を無効にすることで対応できます。
          </para>

          <programlisting>disable pred1</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-lockup-ioerrors">
          <para>ファイル転送の途中で、<command>ppp</command> が
            IO エラーを出して固まってしまう</para>
        </question>

        <answer>

          <para>
            FreeBSD 2.2.2 以前のバージョンの <devicename>tun</devicename>
            ドライバには、<devicename>tun</devicename>
            インタフェースの <acronym>MTU</acronym>
            のサイズより大きなパケットを受け取ることができないというバグがありました。
            <acronym>MTU</acronym>
            のサイズより大きなパケットを受け付けると IO エラーが起こり、
            <command>syslogd</command> 経由で記録されるのです。
          </para>

          <para>
            <command>ppp</command> の仕様では、
            <acronym>LCP</acronym>
            のネゴシエーションを行う場合を含む<emphasis>どのような場合でも</emphasis>最低
            1500 オクテットの
            Maximum Receive Unit (<acronym>MRU</acronym>)
            を受け入れる必要があります。
            ですから、<acronym>MTU</acronym>1500 以下に設定した場合でも、ISP はそれに関係なく
            1500 の大きさのパケットを送ってくるでしょう。
            そしてこのイケてない機能にぶちあたって、
            リンクが固まるのを目にすることになるのです。
          </para>

          <para>
            FreeBSD 2.2.2 以前のバージョンでは、<acronym>MTU</acronym>
            を決して 1500 より小さくしないことで、
            この問題を回避することができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-connectionspeed">
          <para>どうして <command>ppp</command>
            は接続速度をログに残さないんでしょう?</para>
        </question>

        <answer>
          <para>
            モデムとの「やり取り」すべての行をログに残すには、
            以下のようにして接続速度のログの有効化を行ってください。
          </para>

          <programlisting>set log +connect</programlisting>

          <para>これは
            &man.ppp.8;
            に最後にくることが要求されている
            <quote><literal>expect</literal></quote>
            という文字列がくるまでのすべてのものをログに記録させます。
          </para>

          <para>
            接続速度はログにとりたいけれど、<acronym>PAP</acronym><acronym>CHAP</acronym>
            を使っている (その結果、ダイヤルスクリプト中の
            <literal>CONNECT</literal>
            以降に全く「やりとり」を行わない -
            <quote><literal>set login</literal></quote>
            スクリプトには何も書かない) のであれば、
            <application>ppp</application><quote><literal>expect</literal></quote>
            を含んだ <literal>CONNECT</literal>
            行すべてがくるまで待たせるようにしないといけません、
            以下のようになります。
          </para>

          <programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting>

          <para>
            ここで、<literal>CONNECT</literal> を受信してから、
            何も送らず、復帰改行 (linefeed) を待っています、
            <application>ppp</application><literal>CONNECT</literal>
            の応答すべてを読み込ませているわけです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-ignores-backslash">
          <para>私の <literal>chat</literal> スクリプトでは
            <quote><literal>\</literal></quote>
            という文字を <command>PPP</command> が解釈してくれません。</para>
        </question>

        <answer>
          <para>
            <command>PPP</command> は設定ファイルを読み込むときに、
            <literal>set phone "123 456 789"</literal>
            のような文字列を正しく解釈し、
            番号が実際に<emphasis>1 つの</emphasis>引数であると理解します。
            <quote>&quot;</quote>
            という文字を指定するには、バックスラッシュ (backslash;
            <quote><literal>\</literal></quote>) でエスケープしなければなりません。
          </para>

          <para>
            <literal>chat</literal> の各引数が解釈されるときには、
            <quote><literal>\P</literal></quote><quote><literal>\T</literal></quote>
            のような特別なエスケープシーケンス (マニュアルページ参照のこと) を見付けるために、
            もう 1 回、字句解析を行います。
            このように字句解析は 2 回繰り返されますので、
            正しい回数だけエスケープ処理を行わないといけません。
          </para>

          <para>
            モデムにたとえば <quote><literal>\</literal></quote>
            のような文字を送りたい場合には、
            次のようにする必要があります。</para>

          <programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting>

          <para>
            実際にモデムに送られる文字列は次のようになります。
          </para>

          <programlisting>ATZ
OK
AT\X
OK</programlisting>

          <para>
            他の例ですと
          </para>

            <programlisting>set phone 1234567
              set dial "\"\" ATZ OK ATDT\\T"</programlisting>

          <para>
            は次のようになります。
          </para>

            <programlisting>ATZ
OK
ATDT1234567</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-segfault-nocore">
          <para><command>ppp</command><computeroutput>segmentation fault</computeroutput> になるのですが、
            <filename>ppp.core</filename> ファイルがありません</para>
        </question>

        <answer>
          <para>
            <application>ppp</application> (や他のプログラム) は決して
            core を吐いてはいけません。
            <application>ppp</application>
            は実効 uid が 0 で動いていますので、
            オペレーティングシステムは <application>ppp</application>
            を終了させる前にディスクに core イメージを書き込みません。
            しかし <application>ppp</application>
            は実際にはセグメンテーション違反や、
            他の core を吐く原因となるようなシグナルによって終了しており、
            <emphasis>さらに</emphasis>最新のバージョン
            (このセクションの始めを見てください)
            を使用しているならば、次のようにしてください。
          </para>

          <screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput>
&prompt.user; <userinput>cd ppp*/ppp</userinput>
&prompt.user; <userinput>echo STRIP= &gt;&gt;Makefile</userinput>
&prompt.user; <userinput>echo CFLAGS+=-g &gt;&gt;Makefile</userinput>
&prompt.user; <userinput>make clean all</userinput>
&prompt.user; <userinput>su</userinput>
&prompt.root; <userinput>make install</userinput>
&prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen>

          <para>
            これでデバッグ可能なバージョンの
            <application>ppp</application> がインストールされます。
            <username>root</username><application>ppp</application> を実行し、
            すべての特権が無効になっているようにする必要があるでしょう。
            <application>ppp</application> を実行する時には、
            カレントディレクトリが <command>make</command>
            したディレクトリであるようにしてください。
          </para>

          <para>
            これで、<application>ppp</application>
            がセグメンテーション例外を受け取ったときには
            <filename>ppp.core</filename>
            という名前の
            core ファイルを吐くようになります。core が
            吐かれたら次のようにしてください。
          </para>

          <screen>&prompt.user; <userinput>su</userinput>
&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
<prompt>(gdb)</prompt> <userinput>bt</userinput>
.....
<prompt>(gdb)</prompt> <userinput>f 0</userinput>
....
<prompt>(gdb)</prompt> <userinput>i args</userinput>
....
<prompt>(gdb)</prompt> <userinput>l</userinput>
.....</screen>

          <para>
            質問する際には、これらすべての情報を提供して、
            問題点の分析ができるようにしてください。
          </para>

          <para>
            <command>gdb</command>
            の使い方に慣れている場合には、実際に dump
            の原因となった理由やそのアドレス、
            関連した変数の値なども調べる事ができるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-autodialprocess-noconnect">
          <para>auto モードでダイアルをするようなプロセスが接続されない。
          </para>
        </question>

        <answer>
          <para>
            これは <application>ppp</application>
            がローカル側の <acronym>IP</acronym> アドレスを、
            動的に通信相手と交渉するように設定されている時に発生する良く知られた障害でした。
            最新のバージョンでは、
            この問題は修正されています。
            <literal>iface</literal>
            をマニュアルページから検索してみてください。
          </para>

          <para>
            これは、最初のプログラムが
            &man.connect.2;
            を呼び出した時、<devicename>tun</devicename>
            インターフェイスの <acronym>IP</acronym> アドレスが、
            ソケットの終端に割り当てられてしまうという問題です。
            カーネルは、
            外へ出ていく最初のパケットを作り、それを <devicename>tun</devicename>
            デバイスへ書き込みます。
            そして <application>ppp</application> は、
            そのパケットを読み込んで接続を確立します。
            <application>ppp</application>
            は動的に <acronym>IP</acronym>
            アドレスを割り当てるため、
            もしインターフェイスのアドレスが変化してしまうと、
            最初に割り当てられたソケット終端の <acronym>IP</acronym>
            アドレスは無効になってしまいます。
            そのため、それ以降相手に送られるすべてのパケットは通常、
            相手に届くことはないでしょう。もし仮に届いたとしても、
            既にこちらの <acronym>IP</acronym> アドレスは変更されているので、
            どんな反応も最初のマシンには戻ってきません。
          </para>

          <para>
            この問題に対処する理論的な方法がいくつかあります。もし可能なら、
            相手が再度、同じ <acronym>IP</acronym>
            アドレスを割り当ててくれることが一番です <literal>:-)</literal>
            <application>ppp</application>
            の現在のバージョンはこれを行ないますが、
            他のほとんどの実装はそういった動作をしません。
          </para>

          <para>
            我々の側から対処できる最も簡単な方法は、<devicename>tun</devicename>
            インターフェイスの
            <acronym>IP</acronym> アドレスを固定する事です。またそのかわりに、
            外に出ていくパケットを変更して、
            発信元 <acronym>IP</acronym>
            アドレスをインターフェイスの <acronym>IP</acronym>
            アドレスから、交渉によって得られた <acronym>IP</acronym> アドレスに、
            適宜書きかえる事によっても対処できます。
            これは、基本的に
            <application>ppp</application> の最新バージョンにある <literal>iface-alias</literal>
            オプションが行なっていることと同じです
            (&man.libalias.3;
            および、<application>ppp</application><option>-nat</option>
            スイッチにも関係します)。それは、以前の <acronym>IP</acronym>
            アドレスをすべて管理し、
            それらを最後の交渉によって得られた <acronym>IP</acronym>
            アドレスに対して NAT 機能を有効化します。</para>

          <para>
            もう 1 つの (おそらく最も信頼できる) 方法は、bind された
            すべてのソケットの <acronym>IP</acronym> アドレスを、
            異なるものに変更できるシステムコールを実装することです。
            <application>ppp</application>は、
            新しい <acronym>IP</acronym> アドレスが割り当てられた時、
            このシステムコールを用いて実行されているプログラムにある、
            すべてのソケットを書きかえてやるわけです。
            同じシステムコールが、<acronym>DHCP</acronym> クライアントが利用するソケットを
            強制的に再 bind するのにも使うことができるでしょう。
          </para>

          <para>
            3 つ目の方法は、<acronym>IP</acronym>
            アドレスを指定しないでインターフェイスを利用できるようにすることです。
            外に出ていくパケットは、最初の <literal>SIOCAIFADDR</literal>
            ioctl の完了まで、
            255.255.255.255 という <acronym>IP</acronym> アドレスが与えられます。
            これによって、ソケットは常に bind することができます。
            発信元 <acronym>IP</acronym> アドレスを変更するのは
            <application>ppp</application> の仕事です。ただし、
            それは発信元 <acronym>IP</acronym> アドレスが
            255.255.255.255 になっていて、<acronym>IP</acronym> アドレスと
            <acronym>IP</acronym> チェックサムを変更する必要がある場合だけです。
            これは、カーネルが不適切に設定されたインターフェイスへは
            異常なパケットを送出しようとすることを利用して、なにか他の
            仕組みが遡及的に修正を行ってくれることを前提にしている、
            割り切った方法ではあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ppp-nat-games">
          <para>何故ほとんどのゲームが
            <option>-nat</option> スイッチ付きだと動かないんですか?</para>
        </question>

        <answer>
          <para>
            <!--
            <note>
              <title>訳注</title>
              <para>
                この問題は佐藤 淳一さん作の <acronym>NAT</acronym>
                パッチを使っても解決できます。
                <ulink url="http://www2a.biglobe.ne.jp/~junichi/freebsd/lowtech/nat.html">NAT on iij-ppp</ulink>をご覧ください。
              </para>
            </note>
            -->

            libalias を使っている時にゲームなどの類のものが動作しない理由は、
            外側にあるマシンが接続しようとしているか、内側にあるマシンに
            (余計な) UDP パケットを送信しようとしているからです。
            内側のマシンにこれらのパケットを送るべきかについて、
            NAT ソフトウェアは関知しません。
          </para>

          <para>
            うまく動かすためには、
            実行中のものが問題の発生しているソフトウェアだけであるかを確認し、
            ゲートウェイの <devicename>tun</devicename> インタフェースに対して
            <command>tcpdump</command> を実行するか、
            ゲートウェイ上で <command>ppp</command><acronym>TCP</acronym>/<acronym>IP</acronym>
            ログ記録を有効化 (<quote><literal>set log
              +tcp/ip</literal></quote>) してください。</para>

          <para>
            行儀の悪いソフトウェアを起動する際に、
            ゲートウェイマシンを通過するパケットを監視すべきです。
            外側から何かパケットが戻ってきた時に、
            そのパケットは破棄されるでしょう (それが問題なのです)。
            これらのパケットのポート番号に注意して、
            その行儀の悪いソフトウェアを停止してください。
            これを数回繰り返してポート番号が常に同じであるかを確認してみてください。
            同じであった場合は、
            <filename>/etc/ppp/ppp.conf</filename>
            の適切なセクションに次の行を入れると、
            そのソフトウェアは動作するようになるでしょう。
          </para>

          <programlisting>nat <replaceable>port</replaceable> <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable></programlisting>

          <para>
            ここで <replaceable>proto</replaceable><literal>tcp</literal><literal>udp</literal> であり、
            <replaceable>internalmachine</replaceable>
            はパケットを送りたいマシン、そして
            <replaceable>port</replaceable>
            はパケットの送信先のポート番号です。
          </para>

          <para>
            上記のコマンドを変更せずに、
            他のマシン上でそのソフトウェアを使用できるようにはしたくないかもしれません。
            そして同時に二つの内部のマシン上でそのソフトウェアを実行することは、
            この質問の範囲を超えています。結局、外側の世界からは、
            内部ネットワーク全体がただ一つのマシンとして見えるのです。
          </para>

          <para>
            ポート番号が常に同じとは限らない場合、さらに三つのオプションがあります。
          </para>

          <orderedlist>
            <listitem>
              <para>
                libalias でサポートするようにし、結果を送り付ける。
                特定の場合の例は <filename>/usr/src/lib/libalias/alias_*.c</filename>
                にあります (<filename>alias_ftp.c</filename>
                は良いプロトタイプです)。これには通常、外向きの特定のパケットを読み、
                内部の計算機のある特定のポートへの接続を開始するような命令が、
                外部の計算機対して送られていることを見分け、
                後続のパケットがどこに行けばいいのかが分かるように、
                エイリアステーブル中の
                <quote><replaceable>route</replaceable></quote>
                の部分を設定する、という作業が含まれます。
              </para>

              <para>
                これは最も難しい方法ですが、最も良い方法でもありますし、ソフトウェアが
                複数の計算機で動くようにできます。
              </para>
            </listitem>

            <listitem>
              <para>プロキシ (proxy) を使う。アプリケーションが、たとえば socks5
                をサポートしているか、(cvsup のように) <quote>passive</quote>
                オプションを持っているとこの方法が使えます。
                <quote>passive</quote>
                とは相手側のほうから接続を求めてくることを避けるためにあるオプションです。
              </para>
            </listitem>

            <listitem>
              <para>
                <quote><literal>nat addr</literal></quote>
                を使ってなんでもかんでも内部の計算機に向けて流してしまう。
                これはちょっと無理矢理な解決法です。
              </para>
            </listitem>
          </orderedlist>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="useful-port-numbers">
          <para>有用なポート番号のリストはありませんか?</para>
        </question>

        <answer>
          <para>
            まだ出来ていません。しかし、
            これは (関心を持って頂けるならば) そういったリストにしていく予定です。
            それぞれの例にある
            <replaceable>internal</replaceable> は、
            ゲームで遊ぶマシンの <acronym>IP</acronym> アドレスに置き換えてください。
          </para>


          <para>
            <variablelist>
              <varlistentry>
                <term>Asheron's Call</term>

                <listitem>
                  <programlisting>nat port udp <replaceable>internal</replaceable>:65000 65000</programlisting>

                  <para>手動でゲームのポート番号を 65000 に変更してください。
                    マシンが複数ある場合は、それぞれのマシンに重複しないポート番号 (つまり
                    6500165002 など) を設定し、その設定ごとに
                    <literal>nat port</literal> の行を追加します。</para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>Half Life</term>
                <listitem>
                  <programlisting>nat port udp <replaceable>internal</replaceable>:27005 27015</programlisting>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>PCAnywhere 8.0</term>
                <listitem>
                  <programlisting>nat port udp <replaceable>internal</replaceable>:5632 5632
nat port tcp <replaceable>internal</replaceable>:5631 5631</programlisting>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>Quake</term>
                <listitem>
                  <programlisting>nat port udp <replaceable>internal</replaceable>:6112 6112</programlisting>

                  <para>このように設定する代わりに、
                    <ulink url="http://www.battle.net/support/proxy/">www.battle.net</ulink>
                    で Quake のプロキシ (proxy) がサポートされているか調べてもいいでしょう。
                  </para>
                </listitem>
              </varlistentry>

              <varlistentry>
                <term>Quake2</term>
                <listitem>
                  <programlisting>alias port udp <replaceable>internal</replaceable>:27901 27910</programlisting>

                </listitem>
              </varlistentry>

              <varlistentry>
                <term>Red Alert</term>
                <listitem>
                  <programlisting>nat port udp <replaceable>internal</replaceable>:8675 8675
nat port udp <replaceable>internal</replaceable>:5009 5009</programlisting>
                </listitem>
              </varlistentry>

            </variablelist>
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="fcs-errors">
          <para><acronym>FCS</acronym> エラーって何?</para>
        </question>

        <answer>
          <para>
            <acronym>FCS</acronym> とは
            <literal>F</literal>rame <literal>C</literal>heck <literal>S</literal>equence
	    (フレームチェックシーケンス) の略です。
            個々の <application>ppp</application> パケットには、
            送受信するデータが正しいかを調べるためのチェックサムが含まれています。
            受信したパケットの <acronym>FCS</acronym> が正しくない場合は、そのパケットは廃棄され、
            <acronym>HDLC</acronym> <acronym>FCS</acronym> カウントが増やされます。
            <acronym>HDLC</acronym> エラーの数は、
            <command>show hdlc</command>
            コマンドを使って表示できます。
          </para>

          <para>
            リンクの品質が悪かったり、
            シリアルドライバがパケットを取りこぼしていたりすると、
            <acronym>FCS</acronym> エラーがたびたび発生します。
            <acronym>FCS</acronym> エラーは、
            圧縮プロトコルの速度低下の原因にはなりますが、
            特に心配する必要はありません。
            外付けモデムを使っている場合は、
            ケーブルがちゃんとシールドされているかを確認してください。
            そうでない場合、
            <acronym>FCS</acronym> エラーの原因となる場合があります。
          </para>

          <para>
            接続直後からリンクがフリーズし、大量の
            <acronym>FCS</acronym> エラーが発生する場合は、
            リンクが 8 ビットクリーンでない可能性があります。
            ソフトウェアフロー制御 (XON/XOFF)
            が使われていないことを確認してください。
            どうしてもソフトウェアフロー制御を使わなければならない場合は、
            <literal>set accmap 0x000a0000</literal> コマンドを使用して、
            <application>ppp</application><literal>^Q</literal><literal>^S</literal> をエスケープさせてください。
          </para>

          <para>
            リモートホストが <acronym>PPP</acronym>
            プロトコルを使用してない場合も、大量の
            <acronym>FCS</acronym> エラーが発生します。
            この場合はログをとりながら<emphasis>非同期</emphasis>で接続し、
            ログインプロンプトやシェルプロンプトが送られて来ていないか確認してください。
          </para>

          <para>
            ログファイルにリンクを終了した原因となるような記録がない場合は、
            リモートホスト (プロバイダ?) の管理者に、
            セッションを終了された理由を尋ねてください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry id="PPPoEwithNAT">
        <question id="macos-win98-pppoe-freeze">
          <para>ゲートウェイで PPPoE を実行すると MacOS や
            Windows 98 との接続がフリーズしてしまうのですが、
            これはなぜなのでしょうか?</para>
        </question>

        <answer>
          <para>
            Michael Wozniak <email>mwozniak@netcom.ca</email>
            氏が、この現象に関して説明してくれました。
            また、Dan Flemming <email>danflemming@mac.com</email>
            氏は MacOS での解決策を提供してくれました。
            情報の提供に感謝します。
          </para>

          <para>これは、いわゆる「ブラックホールルータ (Black Hole router)」に原因があります。
            Windows 98 と MacOS (および、おそらく他の Microsoft 社製 OS) の TCP パケット送出は、
            PPPoE のフレーム (Ethernet の MTU は標準で
            1500) に入らないような大きなセグメントサイズを要求します。
            <emphasis>そしてさらに</emphasis>分割禁止 (<quote>don't fragment</quote>)
	    フラグビットを (TCP パケットにデフォルトで) セットするのですが、
            Telco のルータは、分割が必須 ("must fragment") であることを示す
            ICMP メッセージを、接続しようとするウェブサイトに対して送出しません
            (つまり、ルータは正しく ICMP パケットを送出しているのですが、
            ウェブサイトのファイアウォールがそれを落としているのです)。
            そのためウェブサーバが PPPoE 接続に対して大きすぎるフレームを送出すると
            Telco のルータはそのフレームを捨ててしまい、
            見ようとしたページが表示されないという症状が現われます
            (MSS より小さいページや画像は表示されます)。
            ほとんどの Telco PPPoE 設定は、標準でこのように設定されているようです。
            (ああ、彼らがルーティングプログラムの作り方を理解してさえいれば…)。
          </para>

          <para>
            一つの解決法は、Windows 95/98 マシンで regedit を使い、
            次のレジストリエントリを追加することです。
          </para>

          <programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting>

          <para>
            レジストリエントリは、<quote>1450</quote> の値
            (もっと正確に言うと、TCP パケットを PPPoE フレームに完全に適合させるには
            <quote>1464</quote> であるべきでですが、
            <quote>1450</quote> とすると、現われる可能性がある他の IP
            プロトコルに対してエラーマージンを確保することができます)
            にする必要があります。
            このレジストリキーは、Windows2000 で
            <literal>Tcpip\Parameters\Interfaces\<replaceable>ID for adapter</replaceable>\MTU</literal>
            に移されたという報告がありました。
          </para>

          <para>
            FreeBSD/NAT/PPPoE ルータと共存させるために Windoze の MTU
            を変更する方法に関する詳細は、
            <ulink url="http://search.support.microsoft.com/kb">Microsoft Knowledge
            Base</ulink> にある、
            番号 <quote>Q158474 - Windows TCPIP Registry Entries</quote>、
            および番号
            <quote>Q120642 - TCPIP & NBT Configuration Parameters for Windows NT</quote>
            を参照してください。
          </para>

          <para>残念なことに、MacOS には
            TCP/IP 設定を変更する方法がありません。
            しかし、<ulink url="http://www.softworks.com/">Sustainable Softworks 社</ulink>
            が販売している OTAdvancedTuner (OT は OpenTransport という
            MacOS の TCP/IP スタックの名前のこと) のような商用ソフトウェアが存在します。
            このソフトウェアは、ユーザから TCP/IP 設定の変更を行なうことを可能にします。
            MacOS NAT ユーザはドロップダウンメニューから
            <literal>ip_interface_MTU</literal> を選択し、
            ボックスにある <literal>1500</literal> の代わりに
            <literal>1450</literal> を入力し、
            <literal>Save as Auto Configure</literal> の隣のボックスをクリックして
            <literal>Make Active</literal> をクリックする必要があります。
          </para>

          <para><application>ppp</application> の最新版
            (2.3 かそれ以降) には、自動的に MSS を適切な値に調節する
            <command>enable tcpmssfixup</command> コマンドがあります。
            この機能は標準で有効になっています。
            もし旧バージョンの <application>ppp</application>
            を使わなければならない状況にあるなら、
            <application>tcpmssd</application> の port
            をご覧になると良いでしょう。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="desperation">
          <para>どれにも当てはまらない! どうしたらいいの?</para>
        </question>

        <answer>
          <para>
            これまでのすべての質問に当てはまらない場合、設定ファイル、
            <application>ppp</application>
            の実行方法、ログファイルの該当部分と
            <command>netstat -rn</command>
            コマンドの出力 (接続前と接続後) を含む、
            あなたの持っているすべての情報を
            &a.questions;
            や
            <ulink url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink>
            ニュースグループへ送ってください。誰かがあなたを正しい方向へ導いてくれるでしょう。
          </para>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="serial">
    <title>シリアル接続</title>

    <para>
      <emphasis>訳:
        一宮 亮 <email>ryo@azusa.shinshu-u.ac.jp</email>19971116</emphasis>
    </para>

    <para>
      このセクションでは、FreeBSD でシリアル接続をする時の一般的な質問に答えます。
      <acronym>PPP</acronym> および
      <acronym>SLIP</acronym> については、
      <xref linkend="networking" remap="ネットワーキング"/>のセクションを参照してください。
    </para>

    <qandaset>
      <qandaentry>
        <question id="found-serial">
          <para>どうやったら FreeBSD がシリアルポートを認識したことを知る事ができますか?</para>
        </question>

        <answer>
          <para>
            FreeBSD のカーネルが起動する時、カーネルはその設定にしたがって、
            システムのシリアルポートを検出します。起動時に表示されるメッセージをよく観察するか、
            起動後に次のコマンドを実行する事によって確認できます。
          </para>

          <screen>dmesg | grep sio</screen>

          <para>ここに上に挙げたコマンドの出力例を示します。</para>

          <screen>sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A</screen>

          <para>
            これは、二つのシリアルポートを示しています。1 番目は、
            irq が 4<literal>0x3f8</literal> のポートアドレスを使用しています。
            そして、16550A-type UART チップが存在します。
            2 番目は、同じチップを使っていますが、
            irq は 3 で、<literal>0x2f8</literal>
            のポートアドレスを使用しています。内蔵のモデムカードは、
            通常のシリアルポートと同じように扱われますが、
            常時シリアルポートにモデムが接続されているという点で異なります。
          </para>

          <para>
            GENERIC カーネルは、上の例と同じ irq
            とポートアドレスの設定の二つのシリアルポートをサポートしています。
            これらの設定があなたのシステムに合わない場合、
            またはモデムカードを追加した場合やカーネルの設定以上にシリアルポートを持っている場合は、
            カーネルを再構築してください。
            詳しくは、
            <link linkend="make-kernel">カーネルの構築</link>の項を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="found-modem">
          <para>
            どうやったら FreeBSD がモデムカードを認識したことを知ることができますか?</para>
        </question>

        <answer>
          <para>
            前の質問を参照してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="missing-tty0X">
          <para>FreeBSD 2.0.5 にアップグレードしたら
	    <devicename>tty0<replaceable>X</replaceable></devicename>
            が見つからなくなってしまったのですが</para>
        </question>

        <answer>
          <para>心配ありません。
	    <devicename>ttyd<replaceable>X</replaceable></devicename>
	    に統合されました。
            ただ、古い設定ファイルのすべてを更新する必要があります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="access-serial-ports">
          <para>どうやったら FreeBSD でシリアルポートにアクセスできますか?</para>
        </question>

        <answer>
          <para>
            3 番目のポート
            <devicename>sio2</devicename> (&man.sio.4; をご覧ください。DOS
            では、<devicename>COM3</devicename> と呼ばれます。) には、
            ダイヤルアウトデバイスとしては <devicename>/dev/cuaa2</devicename>、
            ダイヤルインデバイスとして <devicename>/dev/ttyd2</devicename> があります。
            それではこの両者にはどのような違いがあるのでしょうか?
          </para>

          <para>
            まず、ダイヤルインの時には
            <devicename>ttyd<replaceable>X</replaceable></devicename>
	    を使います。
            <devicename>/dev/ttyd<replaceable>X</replaceable></devicename>
            をブロッキングモードでオープンすると、プロセスは対応する
            <devicename>cuaa<replaceable>X</replaceable></devicename>
            デバイスがインアクティブになるのを待ちます。
            次に <acronym>CD</acronym> 信号がアクティブになるのを待ちます。
            <devicename>cuaa<replaceable>X</replaceable></devicename>
            デバイスをオープンすると、シリアルポートが
            <devicename>ttyd<replaceable>X</replaceable></devicename>
            デバイスによってすでに使われていないかどうかを確認します。
            もしこのポートが使用可能であれば、ポートの使用権を
            <devicename>ttyd<replaceable>X</replaceable></devicename>
            から「奪い取る」のです。また、
            <devicename>cuaa<replaceable>X</replaceable></devicename>
            デバイスは <acronym>CD</acronym> 信号を監視しません。
            この仕組みと自動応答モデムによって、
            リモートユーザーをログインさせたり、
            同じモデムでダイヤルアウトしたりすることができ、
            システムのあらゆるトラブルの面倒を見ることができるでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="enable-multiport-serial">
          <para>マルチポートシリアルカードをサポートさせるにはどうしたらよいのでしょうか?</para>
        </question>

        <answer>
          <para>
            繰り返しになりますが、
            <link linkend="make-kernel">カーネルコンフィグレーション</link>のセクションでは、
            あなたのカーネルの設定についての情報が得られるでしょう。
            マルチポートシリアルカードを使用するためには、カーネルの設定ファイルに、
            カードの持つそれぞれのシリアルポートに対応する
            &man.sio.4;
            の行を記述する必要があります。しかし、
            irq とベクタアドレスは一つのエントリにのみ記述してください。
            カード上のすべてのポートは一つの irq を共有しなければなりません。
            一貫性を持たせるためにも、
            最後のシリアルポートの所で irq を指定してください。
            また、<literal>COM_MULTIPORT</literal> オプションも付けてください。
          </para>

          <para>
            次に示す例は、AST の 4 ポートシリアルカードを irq 7 で設定したものです。
          </para>

          <programlisting>options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr</programlisting>

          <para>
            このフラグはマスタポートがマイナー番号 7
            (<literal>0x700</literal>) を持っていて、
            検出時の診断機能を有効にし (<literal>0x080</literal>)、
            そしてすべてのポートで irq
            を共有する (<literal>0x001</literal>) ということを意味しています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="multiport-serial-share-irq">
          <para>FreeBSD で複数のマルチポートシリアルカード間で
            irq を共有することはできますか?</para>
        </question>

        <answer>
          <para>
            現在のところはできません。それぞれのカード毎に異なった irq
            を使ってください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="default-serial-params">
          <para>
            ポートにデフォルトのパラメータを設定する事は出来ますか?</para>
        </question>

        <answer>
          <para><devicename>ttyd<replaceable>X</replaceable></devicename>
	    デバイス (または
            <devicename>cuaa<replaceable>X</replaceable></devicename>
            デバイス) は、
            アプリケーションのためにオープンする標準的なデバイスです。
            プロセスがそのポートをオープンする時、
            プロセスはデフォルトの端末 I/O 設定を取得します。
            これらの設定は次のコマンドで確認することができます。
          </para>

          <programlisting>stty -a -f /dev/ttyd1</programlisting>

          <para>
            このデバイスに対する設定を変更した場合、
            その設定はデバイスをクローズするまで有効です。
            デバイスを再オープンした場合、それらの設定はデフォルトに戻ってしまいます。
            デフォルトの設定に変更を加えるために、
            「初期設定」デバイスをオープンし、
            設定を修正することができます。
            たとえば、<acronym>CLOCAL</acronym> モード、8 ビット、
            <acronym>XON/XOFF</acronym>
            フロー制御という設定を
            <devicename>ttyd5</devicename>
            のデフォルトにしたい場合、次のように行なってください。
          </para>

          <programlisting>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</programlisting>

          <para>
            この設定を行なうためのコマンドを記述するのに適切なファイルは、
            <filename>/etc/rc.serial</filename> です。
            これでアプリケーションが
            <devicename>ttyd5</devicename> をオープンした時に、
            これらの設定をデフォルトで取得します。
            しかし、こういったリンクによる設定は変更可能です。
          </para>

          <para>
            「設定固定」デバイスを調整してやることによって、
            アプリケーションによる設定の変更を禁止することができます。
            たとえば、<devicename>ttyd5</devicename>
            の通信速度を 57600bps
            に固定するには、次のように行ってください。
          </para>

          <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>

          <para>
            これにより、アプリケーションは <devicename>ttyd5</devicename>
            をオープンし、ポートの通信速度を変更しようとしますが、
            通信速度は 57600bps のままになります。
          </para>
          <para>
            当然のことながら、初期設定デバイスおよび、設定固定デバイスは
            <username>root</username> のみが書き込みできるようになっていなければなりません。
            しかし、&man.MAKEDEV.8;
            スクリプトはデバイスエントリを作成する時に、
            このような設定は<emphasis>行いません</emphasis></para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="enable-dialup">
          <para>どのようにしたらモデム経由でダイヤルアップログインができるのでしょうか?</para>
        </question>

        <answer>
          <para>
            つまり、インターネットサービスプロバイダーになりたいのですね。
            それにはまず、1 台ないし複数の自動応答モデムが必要です。
            モデムには、キャリアーを検出した時には
            <acronym>CD</acronym> 信号を出力し、
            そうでない場合には出力しないことが必要とされます。
            また <acronym>DTR</acronym> 信号が
            on から off になった時には、
            電話回線を切断し、モデム自身をリセットしなければなりません。
            おそらく、<acronym>RTS/CTS</acronym> フロー制御を使うか、
            ローカルフロー制御をまったく使わないかのどちらかでしょう。
            最後に、コンピュータとモデムの間は固定速度でなければなりません。
            ただ、(ダイヤルアップの発呼者に対して親切であるためには、
            ) こちらのモデムと相手側のモデムの間の速度を、
            モデム間で自動調整できるようにすべきでしょう。
          </para>

          <para>
            多くあるヘイズコマンド互換モデムに対して、次のコマンドはこれらの設定を行ない、
            その設定を不揮発性メモリーに保存します。
          </para>

          <programlisting>AT&amp;C1&amp;D3&amp;K3&amp;Q6S0=1&amp;W</programlisting>

          <para>
            MS-DOS のターミナルプログラムに頼らずに AT コマンドを送出するには、
            <link linkend="direct-at">「AT
              コマンドを入力するには」</link>のセクションを参照してください。
          </para>

          <para>
            次に、モデム用のエントリを
            <filename>/etc/ttys</filename> (&man.ttys.5; 参照)
            に作成しましょう。
            このファイルには、
            オペレーティングシステムがログインを待っているすべてのポートが記述されています。
            以下のような行を追加してください。
          </para>

          <programlisting>ttyd1 "/usr/libexec/getty std.57600" dialup on insecure</programlisting>

          <para>
            この行は、2 番目のシリアルポート
            (<devicename>/dev/ttyd1</devicename>) には、
            57600bps の通信速度でノンパリティ (<literal>std.57600</literal>:
            これは
            <filename>/etc/gettytab</filename>
            に記述されています。&man.gettytab.5; 参照)
            のモデムが接続されていることを示しています。
            このポートの端末タイプは <literal>dialup</literal> です。
            またこのポートは、<literal>on</literal>
            すなわちログイン可能であり、<literal>insecure</literal> です。
            これは <username>root</username>
            がこのポートから直接ログインするのは、
            許可されていないということを意味します。
            このようなダイヤルインポートに対しては、
            <devicename>ttyd<replaceable>X</replaceable></devicename>
            のエントリを使用してください。
          </para>

          <para>
            これが一般的な、ターミナルタイプとして <literal>dialup</literal>
            を使う方法です。多くのユーザーは、
            <filename>.profile</filename><filename>.login</filename> で、
            ログイン時の端末タイプが
            <literal>dialup</literal> であった場合には、
            実際の端末タイプをユーザーに問い合わせるように設定しています。
            この例は、ポートが <literal>insecure</literal>
            でした。このポートで <username>root</username> になるには、
            一般ユーザーとしてログインし、それから
            <quote><ulink url="http://www.FreeBSD.org/cgi/man.cgi?su">su</ulink></quote> を使って
            <username>root</username> になってください。
            もし、<literal>secure</literal>
            を指定したならば、
            直接 <username>root</username> がそのポートからログインできます。
          </para>

          <para>
            <filename>/etc/ttys</filename>
            に変更を加えた後は、<acronym>HUP</acronym> シグナル (SIGHUP) を
            &man.init.8;
            プロセスに送る必要があります。
          </para>

          <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>

          <para>
            この操作は <command>init</command> プロセスに
            <filename>/etc/ttys</filename>
            を再読み込みさせます。
            これにより、init プロセスは
            <command>getty</command> プロセスをすべての
            <literal>on</literal>
            となっているポートに起動させます。
            次のようにして、ポートがログイン可能かを知ることができます。
          </para>

          <screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen>

          <para>
            ログイン可能であれば、次のような出力が得られるはずです。
          </para>

          <screen>747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1</screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dumb-terminal">
          <para>ダムターミナルを FreeBSD マシンに接続するにはどうしたらよいのでしょうか?</para>
        </question>

        <answer>
          <para>
            もし、他のコンピューターを FreeBSD の端末として接続したいのならば、
            お互いのシリアルポート間をつなぐヌルモデムケーブル
            (訳注: リバースケーブルもしくはクロスケーブルとも呼ばれます)
            を用意してください。
            もし、既製の端末を使う場合は、付属するマニュアルを参照してください。
          </para>

          <para>
            そして、<filename>/etc/ttys</filename> (&man.ttys.5; 参照)
            を上と同じように変更してください。
            たとえば、WYSE-50 という端末を 5 番目のポートに接続するならば、
            次のようなエントリを使用してください。
          </para>

          <programlisting>ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure</programlisting>

          <para>
            この例は、<devicename>/dev/ttyd4</devicename> ポートにノンパリティ、
            端末タイプが wyse50、通信速度が
            38400bps (<literal>std.38400</literal>: この設定は、
            <filename>/etc/gettytab</filename>
            に記述されています。&man.gettytab.5; 参照) の端末が存在しており、
            <username>root</username>
            のログインが許可されている (<literal>secure</literal>) であることを示しています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cannot-tip">
          <para>どうして <command>tip</command><command>cu</command> が動かないのですか?</para>
        </question>

        <answer>
          <para>
            おそらくあなたのシステムでは
            &man.tip.1; や &man.cu.1; は
            <username>uucp</username> ユーザーか、
            <groupname>dialer</groupname> グループによってのみ実行可能なのでしょう。
            <groupname>dialer</groupname> グループは、
            モデムやリモートシステムにアクセスするユーザーを管理するために、
            使用することができます。
            それには、<filename>/etc/group</filename>
            ファイルの <groupname>dialer</groupname>
            グループにあなた自身を追加してください。
          </para>

          <para>
            そうする代わりに、次のようにタイプすることにより、
            あなたのシステムの全ユーザーが
            <command>tip</command><command>cu</command>
            を実行できるようになります。
          </para>

          <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="hayes-unsupported">
          <para>私の Hayes モデムはサポートされていないのですが、
            どうしたらいいのでしょうか。</para>
        </question>

        <answer>
          <para>
            実際、
            &man.tip.1;
            のオンラインマニュアルは古くなっています。
            すでに、Hayes ダイアラが実装されています。
            <filename>/etc/remote</filename>
            ファイル (&man.remote.5; 参照) で、
            <quote><literal>at=hayes</literal></quote>
            と指定してください。
          </para>

          <para>
            Hayes ドライバは、最近のモデムの新しい機能である、
            <literal>BUSY</literal><literal>NO DIALTONE</literal><literal>CONNECT 115200</literal>
            などのメッセージを認識できるほど賢くはなく、
            単に混乱を起こすだけです。
            &man.tip.1;
            を使う場合には (<literal>ATX0&amp;W</literal>とするなどして)、
            これらのメッセージを表示させないようにしなくてはいけません。
          </para>

          <para>
            また、<literal>tip</literal> のダイヤルのタイムアウトは 60 秒です。
            モデムのタイムアウト設定はそれより短くすべきであり、
            そうしないと <literal>tip</literal>
            は通信に問題があると判断するでしょう。
            <literal>ATS7=45&amp;W</literal> を実行してください。
          </para>

          <para>
            実際、デフォルトの
            <literal>tip</literal> は Hayes
            の完全なサポートをしているわけではありません。
            解決方法は <filename>/usr/src/usr.bin/tip/tip</filename>
            の下の <filename>tipconf.h</filename> を変更することです。
            もちろん、これにはソース配布ファイルが必要です。
          </para>

          <para>
            <quote><literal>#define HAYES 0</literal></quote>
            と記述されている行を
            <quote><literal>#define HAYES1</literal></quote> と変更し、そして
            <quote><command>make</command></quote><quote><command>make install</command></quote>
            を実行します。これでうまく動作するでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="direct-at">
          <para>これらの AT コマンドを入力するには?</para>
        </question>

        <answer>
          <para>
            <filename>/etc/remote</filename>
            ファイル (&man.remote.5; 参照) の中で
            <quote>direct</quote> エントリを作ります。
            たとえばモデムが 1 番目のシリアルポートである
            <devicename>/dev/cuaa0</devicename>に接続されている場合、
            次のようにします。</para>

          <programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting>

          <para>
            モデムがサポートする最大の bps レートを
            <literal>br</literal> フィールドに使います。
            そして <command>tip <devicename>cuaa0</devicename></command> (&man.tip.1; 参照)
            を実行すると、モデムが利用できるようになります。
          </para>

          <para>
            <devicename>/dev/cuaa0</devicename>がシステムに存在しない場合は、次のようにします。
          </para>

          <screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>./MAKEDEV cuaa0</userinput></screen>

          <para>
            または <username>root</username>
            になって以下のように cu を使います。
          </para>

          <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>

          <para><replaceable>line</replaceable>
            にはシリアルポート (たとえば
            <devicename>/dev/cuaa0</devicename>)を指定します。
            そして <replaceable>speed</replaceable>
            には接続する速度 (たとえば
            <literal>57600</literal>) を指定します。
            その後 AT コマンドを実行したら、
            <literal>~.</literal>
            と入力すれば終了します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="gt-failure">
          <para>pn 機能の <literal>&lt;@&gt;</literal> 記号が使えません!</para>
        </question>

        <answer>
          <para>電話番号 (pn) 機能の中での
            <literal>&lt;@&gt;</literal> 記号は、
            <command>tip</command><filename>/etc/phones</filename>
            にある電話番号を参照するように伝えます。しかし
            <literal>&lt;@&gt;</literal> の文字は
            <filename>/etc/remote</filename>
            のような設定ファイルの中では特殊文字となります。
            そこで、バックスラッシュを使ってエスケープを行います。
          </para>

          <programlisting>pn=\@</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dial-command-line">
          <para>コマンドラインから電話番号を指定するには?</para>
        </question>

        <answer>
          <para>
            <quote><literal>generic</literal></quote>
            エントリと呼ばれるものを
            <filename>/etc/remote</filename> ファイル
            (&man.remote.5; 参照) に追加します。
            たとえば、次のようにします。
          </para>

          <programlisting>tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:</programlisting>


          <para>
            そして
            <quote><command>tip -115200 5551234</command></quote>
            のように利用できます。
            &man.tip.1; より &man.cu.1; を使いたい場合、
            <command>cu</command><literal>generic</literal> エントリを使います。
          </para>

          <programlisting>cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting>

          <para>
            そして <quote><command>cu 5551234 -s 115200</command></quote>
            と実行します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="set-bps">
          <para>毎回 bps レートを入力しなければいけませんか?</para>
        </question>

        <answer>
          <para>
            <literal>tip1200</literal><literal>cu1200</literal> 用のエントリを記述し、
            適切な通信速度を <literal>br</literal>
            フィールドに設定します。
            &man.tip.1; は
            1200bps が正しいデフォルト値であるとみなすので、
            <quote><literal>tip1200</literal></quote> エントリを参照します。
            もちろん 1200bps を使わなければならないわけではありません。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="terminal-server">
          <para>ターミナルサーバを経由して複数のホストへアクセスしたいのですが。</para>
        </question>

        <answer>
          <para>
            毎回接続されるのを待って
            <quote><userinput>CONNECT &lt;<replaceable>host</replaceable>&gt;</userinput></quote>
            と入力するかわりに、
            <command>tip</command><literal>cm</literal> 機能を使います。
            たとえば、<filename>/etc/remote</filename> (&man.remote.5; 参照)
            に次のようなエントリを追加します。
          </para>


          <programlisting>pain|pain.deep13.com|Forrester's machine:\
	:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
	:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
	:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>

          <para>
            これで、<quote><command>tip <hostid>pain</hostid></command></quote><quote><command>tip <hostid>muffin</hostid></command></quote>
            と実行すると
            <hostid>pain</hostid><hostid>muffin</hostid> のホストに接続することができ、
            <quote><command>tip <hostid>deep13</hostid></command></quote>
            を実行するとターミナルサーバに接続します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="tip-multiline">
          <para>
            <command>tip</command>
            を使ってそれぞれのサイトの複数の回線に接続できますか?</para>
        </question>

        <answer>
          <para>
            これは大学に電話回線がいくつかあって、
            数千人の学生が接続しようとする場合によくある問題です。
          </para>

          <para>
            あなたの大学のエントリを
            <filename>/etc/remote</filename>
            ファイル (&man.remote.5; 参照) に作成して、
            <literal>pn</literal> のフィールドには
            <literal>&lt;\@&gt;</literal> を使います。
          </para>

          <programlisting>big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting>


          <para>
            そして
            <filename>/etc/phones</filename> ファイル
            (&man.phones.5; 参照) に大学の電話番号の一覧を書きます。
          </para>


          <programlisting>big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114</programlisting>


          <para>
            &man.tip.1;
            は一連の電話番号を上から順に試みて、
            最終的に接続できなければあきらめます。リトライを続けさせたい場合は、
            <command>tip</command> を
            while ループに入れて実行します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="multi-controlp">
          <para><keycap>CTRL</keycap>+<keycap>P</keycap>1 回送るために 2 度押す必要があるのはなぜ?</para>
        </question>

        <answer>
          <para><keycap>CTRL</keycap>+<keycap>P</keycap>
            は通常「強制 (force)」文字であり、
            &man.tip.1;
            に次の文字がリテラルデータであることを伝えます。
            強制文字は「変数の設定」を意味する
            <literal>~s</literal> エスケープによって、
            他の文字にすることができます。
          </para>

          <para>
            <quote><literal>~sforce=<replaceable>&lt;single-char&gt;</replaceable></literal></quote>
            と入力して改行します。
            <replaceable>&lt;single-char&gt;</replaceable> は、任意の 1 バイト文字です。
            <replaceable>&lt;single-char&gt;</replaceable> を省略すると
            <literal>NUL</literal> 文字になり、
            これは <keycap>CTRL</keycap>+<keycap>2</keycap><keycap>CTRL</keycap>+<keycap>SPACE</keycap>
            を押しても入力できます。
            いくつかのターミナルサーバで使われているのを見ただけですが、
            <replaceable>&lt;single-char&gt;</replaceable><keycap>SHIFT</keycap>+<keycap>CTRL</keycap>+<keycap>6</keycap>
            に割り当てるのもよいでしょう。
          </para>

          <para>
            <filename>$HOME/.tiprc</filename> に次のように定義することで、
            任意の文字を強制文字として利用できます。
          </para>

          <programlisting>force=<replaceable>&lt;single-char&gt;</replaceable></programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="uppercase">
          <para>打ち込んだ文字が突然すべて大文字になりました??</para>
        </question>

        <answer>
          <para>
            <keycap>CTRL</keycap>+<keycap>A</keycap>
            を押してしまい、<keycap>caps-lock</keycap>
            キーが壊れている場合のために設計された
            &man.tip.1;
            の <quote>raise character</quote> モードに入ったのでしょう。
            既に述べた <literal>~s</literal> を使って、
            <quote>raisechar</quote> をより適切な値に変更してください。
            もしこれら両方の機能を使用しないのであれば、
            強制文字と同じ設定にすることもできます。
          </para>

          <para>
            以下は <keycap>CTRL</keycap>+<keycap>2</keycap><keycap>CTRL</keycap>+<keycap>A</keycap>
            などを頻繁に使う必要のある Emacs ユーザにうってつけの
            <filename>.tiprc</filename> ファイルのサンプルです。
          </para>

          <programlisting>force=^^
raisechar=^^</programlisting>

          <para>
            <literal>^</literal><keycap>SHIFT</keycap>+<keycap>CTRL</keycap>+<keycap>6</keycap> です。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="tip-filetransfer">
          <para><command>tip</command> でファイルを転送するには?</para>
        </question>

        <answer>
          <para>
            もし他の UNIX のシステムと接続しているなら、
            <literal>~p</literal> (送信) や
            <literal>~t</literal> (受信) でファイルの送受信ができます。
            これらのコマンドは、相手のシステムの上で
            &man.cat.1; や &man.echo.1;
            を実行することで送受信をします。書式は以下のようになります。
          </para>


          <programlisting>~p <replaceable>&lt;ローカルのファイル名&gt;</replaceable> <replaceable>[&lt;リモートのファイル名&gt;]</replaceable>
~t <replaceable>&lt;リモートのファイル名&gt;</replaceable> <replaceable>[&lt;ローカルのファイル名&gt;]</replaceable></programlisting>


          <para>
            この方法ではエラーチェックを行いませんので、
            zmodem などの他のプロトコルを使った方がよいでしょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="zmodem-tip">
          <para><application>tip</application> から zmodem を実行するには?</para>
        </question>

        <answer>
          <para>
            まず始めに、FreeBSD Ports
            Collection から zmodem プログラムのいずれか
            (<application>lrzsz</application><application>rzsz</application>
            の、通信カテゴリーの2 つのプログラムのどちらか) をインストールします。
          </para>

          <para>
            ファイルを受信するには、リモート側で送信プログラムを起動します。
            そして、<keycap>Enter</keycap> キーを押してから
            <quote><literal>~C rz</literal></quote>
            (lrzsz をインストールした場合は
            <quote><literal>~C lrz</literal></quote>) と入力すると、
            ローカル側へのファイルの受信が始まります。
          </para>

          <para>
            ファイルを送信するには、リモート側で受信プログラムを起動します。
            そして、<keycap>Enter</keycap> キーを押してから
            <quote><literal>~C sz <replaceable>&lt;files&gt;</replaceable></literal></quote>
            (lrzsz をインストールした場合は
            <quote><literal>~C lsz
              <replaceable>&lt;files&gt;</replaceable></literal></quote>)
            と入力すると、リモート側へのファイルの送信が始まります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="cannot-find-serial">
          <para>設定が正しいのにもかかわらず、FreeBSD がシリアルポートを見付けられません。</para>
        </question>

        <answer>
          <para>
            マザーボードやシリアルカードが Acer の UART チップを使った物の場合、
            FreeBSD の <devicename>sio</devicename> ドライバでは正しく検出する事が出来ません。
            この問題を解決するためには、
            <ulink url="http://www.lemis.com/serial-port-patch.html">www.lemis.com</ulink>
            からパッチを入手してください。
          </para>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="misc">
    <title>その他の質問</title>

    <para>
      <emphasis>訳:
        &a.jp.yoshiaki;、
        &a.jp.sugimura;、
        福間 康弘 <email>yasuf@big.or.jp</email>19971110 日 - 199958</emphasis>
    </para>


    <qandaset>
      <qandaentry>
        <question id="more-swap">
          <para>FreeBSD は Linux より多くのスワップ領域を消費するのはなぜですか?</para>
        </question>

        <answer>
          <para>
            実際にはそうではありません。
            FreeBSD は Linux よりもスワップを多く使っているように見えるだけです。
            この点における FreeBSD と Linux の主な違いは、
            FreeBSD はより多くのメインメモリを有効利用できるようにするため、
            完全にアイドルになったものやメインメモリ上の使われなくなったページを、
            スワップにあらかじめ積極的に移動しているということです。
            Linux では、
            最後の手段としてページをスワップに移動させるだけという傾向があります。
            このスワップの使い方は、
            メインメモリをより効果的に使用することによってバランスが保たれています。
          </para>

          <para>
            FreeBSD はこのような状況では先手策を取りますが、
            システムが本当に空き状態の時に、
            理由も無くページをスワップしようと決めることはないということに注意してください。
            したがって、
            夜中に使わずにおいたシステムが朝起きたとき、
            すべてページアウトされているということはないのです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="top-freemem">
          <para>ほとんどプログラムは実行されていないのに、
              どうして &man.top.1; は非常に少ない free memory を報告するのでしょうか?</para>
        </question>

        <answer>
          <para>簡単に言えば、free memory
            とは無駄になっているメモリのことだからです。
            プログラムが確保しているメモリ以外のすべてのメモリは、
            FreeBSD カーネル内でディスクキャッシュとして利用されます。
            この値は &man.top.1; において
            <literal>Inact</literal><literal>Cache</literal>
            <literal>Buf</literal> として表示され、
            それぞれは異なるエージングレベル
            (訳注: データがどれだけ古いかを示す評価値)
            でキャッシュされた全データを表します。
            データがキャッシュされると言うのは、
            最近アクセスされたデータであれば、
            再度そのデータをアクセスするためにシステムが遅いディスクにアクセスする必要がない、
            ということを意味します。
            そのため、全体のパフォーマンスが向上します。
            一般的に、&man.top.1; で表示される
            <literal>Free</literal> メモリが小さい値を示すことは良いことで、
            自由に使えるメモリの残量が<emphasis>本当に</emphasis>少ない、
            ということを表しているわけではありません。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="aout-elf">
          <para>FreeBSD の実行フォーマットの a.out、ELF
            とはどのようなものですか?
            また、a.out、ELF を使う理由は何でしょう?</para></question>

        <answer>
          <para>
            FreeBSD が何故 ELF
            フォーマットを利用しているのかを理解するためには、
            まず UNIXにおいて現在「優勢」な
            3 種類の実行フォーマットについて
            いくらか知っておく必要があります。
          </para>

            <note>
              <para>FreeBSD 3.x より前の FreeBSD では a.out
                フォーマットが使われていました。</para>
            </note>


          <itemizedlist>
            <listitem>
              <para>&man.a.out.5;</para>

                <para>
                  最も古く 「由緒正しい」 unix オブジェクトフォーマットです。
                  マジックナンバを含む短くてコンパクトなヘッダが先頭にあり、
                  これがフォーマットの特徴とされています
                  (&man.a.out.5; に詳細な内容があります)。
                  ロードされる 3種類のセグメント、
                  <literal>.text</literal><literal>.data</literal><literal>.bss</literal>
                  と加えてシンボルテーブルと文字列テーブルを含みます。
                </para>
            </listitem>

            <listitem>
              <para><acronym>COFF</acronym></para>
                <para>
                  SVR3 のオブジェクトフォーマットです。
                  ヘッダは単一のセクションテーブルから成り、
                  <literal>.text</literal><literal>.data</literal><literal>.bss</literal>
                  セクション以外の部分を持つことができます。
                </para>
            </listitem>

            <listitem>
              <para><acronym>ELF</acronym></para>
                <para>
                  <acronym>COFF</acronym>の後継です。複数のセクションをサポートし、32-bit
                  と 64-bitのいずれの値も可能です。大きな欠点の一つは、<acronym>ELF</acronym>
                  はそれぞれのシステムアーキテクチャ毎に単一の <acronym>ABI</acronym>
                  のみが存在するという仮定で設計されていることです。
                  この仮定はまったく正しくありません。
                  商用の SYSV の世界でさえそうです (少なくとも SVR4、
                  Solaris、SCO の 3種類の ABI があります)。
                </para>

                <para>
                  FreeBSD はこの問題を解決するための試みとして、
                  既知の <acronym>ELF</acronym>
                  実行ファイルに <acronym>ABI</acronym> に応じた情報を
                  <emphasis>書き加える</emphasis>ユーティリティを提供しています。
                  詳しくは &man.brandelf.1;
                  のマニュアルページを参照してください。
                </para>
            </listitem>
          </itemizedlist>

          <para>
            FreeBSD は伝統的な立場をとり、数多くの世代の BSD
            のリリースで試され、実証されてきた
            &man.a.out.5;
            フォーマットを伝統的に使用しています。
            いつかは FreeBSD システムでネイティブ
            <acronym>ELF</acronym> バイナリを作り、
            実行することができるようになるかもしれませんが、
            初期の頃 FreeBSD
            では <acronym>ELF</acronym>
            をデフォルトのフォーマットに変更するという動きは
            ありませんでした。なぜでしょうか?
            ところで Linux においては、
            <acronym>ELF</acronym> への苦痛をともなった変更は、
            その時に <filename>a.out</filename>
            実行フォーマットから逃れたというよりは、
            ジャンプテーブルベースの共有ライブラリのメカニズムの柔軟性の低さからの脱却でした。
            これはベンダや開発者全体にとって、
            共有ライブラリの作成が非常に難しかった原因でした。
            <acronym>ELF</acronym>
            のツールには共有ライブラリの問題を解決することができるものが提供されており、
            またいずれにせよ一般的に「進歩」していると考えられます。
            このため移行のコストは必要なものとして容認され、
            移行は行なわれました。
          </para>

          <para>
            FreeBSD の場合は、共有ライブラリのメカニズムは Sun の
            <application>SunOS</application> 形式の共有ライブラリの
            メカニズムに極めて近いものになっていて、
            非常に使いやすいものになっています。
            しかしながら、FreeBSD では 3.0 から <acronym>ELF</acronym>
            バイナリをデフォルトのフォーマットとして公式にサポートしています。
            a.out 実行フォーマットはよいものを私達に提供してくれているものの、
            私たちの使っているコンパイラの作者である GNU の人々は
            a.out フォーマットのサポートをやめてしまったのでした。
            このことは、
            私たちに別バージョンのコンパイラとリンカを保守することを余儀なくされることとなり、
            最新の GNU 開発の努力による恩恵から遠ざかることになります。
            その上、ISO C++ の、
            とくにコンストラクタやデストラクタがらみの要求もあって、今後の
            FreeBSD のリリースでネイティブの <acronym>ELF</acronym>
            のサポートされる方向へと話が進んでいます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="binary-formats">
          <para>それにしても、なぜそんなに多くのフォーマットがあるのですか?</para>
        </question>

        <answer>
          <para>
            もうおぼろげになってしまった暗い過去に、単純なハードウェアがありました。
            この単純なハードウェアは、単純で小さなシステムをサポートしていました。
            a.out はこの単純なシステム (PDP-11)
            での作業を行なうバイナリとして完全に適したものだったのです。
            人々はこの単純なシステムから UNIX を移植する際に、a.out
            フォーマットをそのまま使いました。というのは
            Motorola 68k、VAXen、
            といったアーキテクチャへの UNIX の初期の移植ではこれで十分だったからです。
          </para>

          <para>
            やがてある聡明なエンジニアが、
            ソフトウェアでちょっとしたトリックを使うことを決めました。
            彼はいくつかのゲートを削り取って
            CPU のコアをより速く走らせることができたのです。
            これは新しい種類のハードウェア (今日では <acronym>RISC</acronym>
            として知られています) で動いたのです。
            a.out はこのハードウェアには適していなかったので、
            このハードウェア上で多くのフォーマットが、
            限定された単純な a.out
            フォーマットでのものよりもより良いパフォーマンスを出すことを目指して開発されたのです。
            <acronym>COFF</acronym><acronym>ECOFF</acronym>、
            そしていくつかの有名でないフォーマットが
            <acronym>ELF</acronym> が標準になる前に開発され、
            それらの限界が探求されたのです。
          </para>

          <para>
            さらに、プログラムサイズは巨大になり、
            ディスク (および物理メモリ) は依然として相対的に小さかったため、
            共用ライブラリのコンセプトが誕生しました。
            また、VM システムはより複雑なものになりました。
            これらの個々の進歩は a.out フォーマットを使用して遂げられましたが、
            その有用性は新しい機能とともにどんどん広がってきました。
            これらに加え、実行時に必要なものを動的にロードする、
            または初期化コードの実行後にプログラムの一部を破棄し、
            コアメモリおよびスワップ空間を節約するという要望が高まりました。
            プログラミング言語はさらに複雑になり、<literal>main</literal>
            関数の前に自動的にコールされるコードの要望が高まりました。
            多くの機能拡張が行なわれ、a.out
            フォーマットがこれらすべてを実現できるようになり、
            それらはしばらくは基本的に動作していました。
            やがて、a.out はコードでのオーバヘッドと複雑さを増大させずに、
            これらの問題すべてを処理することに無理がでてきました。
            一方、<acronym>ELF</acronym> はこれらの問題の多くを解決しますが、
            現状稼働しているシステムからの切替えは厄介なものになるでしょう。
            そのため <acronym>ELF</acronym> は、a.out のままでいることが
            <acronym>ELF</acronym>
            への移行よりももっと厄介なものになるまで待つ必要がありました。
          </para>

          <para>
            しかし時が経つにつれ、FreeBSD
            のビルドツールの元となったツール群 (特にアセンブラとローダ) と
            FreeBSD のビルドツール群は異なった進化の経路をたどりました。
            FreeBSD のツリーでは、共有ライブラリが追加され、
            バグフィックスも行われました。
            もともとのツール群を作成した GNU の人たちは、プログラムを書き直し、
            クロスコンパイラのサポート、
            異なるフォーマットを任意に取り込む機能などを追加していきました。
            多くの人々が FreeBSD
            をターゲットとしたクロスコンパイラの構築を試みましたが、
            FreeBSD の使っている <command>as</command><command>ld</command>
            の古いプログラムコードはクロスコンパイルをサポートしておらず、
            うまくいきませんでした。
            新しい GNU のツール群 (binutils) は、
            クロスコンパイル、共有ライブラリ、C++
            拡張などの機能をサポートしています。
            さらに数多くのベンダが
            <acronym>ELF</acronym> バイナリをリリースしています。
            FreeBSD にとって <acronym>ELF</acronym>
            バイナリが実行できることは、
            非常にメリットがあります。<acronym>ELF</acronym> バイナリが
            FreeBSD で動くのなら、a.out
            を動かすのに手間をかける必要はありませんね。
            長い間忠実によく働いた老いた馬は、
            そろそろ牧草地で休ませてあげましょう。
          </para>

          <para>
            <acronym>ELF</acronym> は a.out に比べてより表現力があり、
            ベースのシステムに対してより幅広い拡張性を提供できます。
            <acronym>ELF</acronym> 用のツールはよりよく保守されています。
            また多くの人にとって重要なクロスコンパイルもサポートしています。
            <acronym>ELF</acronym> の実行速度は、ほんの少し a.out より遅いかもしれませんが、
            実際に速度の差をはかるのは困難でしょう。
            <acronym>ELF</acronym> と a.out の間には、ページマッピング、
            初期化コードの処理など多くの違いがありますが、
            とりたてて重要なものはありません。しかし違いがあるのは確かです。ほどなく、
            GENERIC カーネルから a.out のサポートが外されます。
            a.out のプログラムを実行する必要性がなくなれば、
            最終的に a.out のサポートはカーネルから削除されます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="chmod-symlinks">
          <para>シンボリックリンクの許可属性を
            <command>chmod</command> で変えられないのはなぜですか?</para>
        </question>

        <answer>
          <para>シンボリックリンクは許可属性を持ちません。
            また &man.chmod.1; のデフォルト動作は、
            シンボリックリンクをたどってリンク先のファイルの許可属性を変更するようになっていません。
            そのため、
            <filename>foo</filename> というファイルがあり、
            このファイルへのシンボリックリンク
            <filename>bar</filename> があったとすると、
            以下のコマンドは常に成功します。
          </para>

          <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>

          <para>しかしこの場合、<filename>foo</filename> の許可属性は変更されません。</para>

          <para>
            この場合、<quote><option>-H</option></quote><quote><option>-L</option></quote> のどちらかのオプションを
            <quote><option>-R</option></quote> と同時に使う必要があります。
            &man.chmod.1; と &man.symlink.7;
            のマニュアルページにはもっと詳しい情報があります。
          </para>

            <warning>
              <para>
                <quote><option>-R</option></quote> オプションは<emphasis>再帰的に</emphasis>
                &man.chmod.1;
                を実行します。ディレクトリやディレクトリへのシンボリックリンクを
                <command>chmod</command> する場合は気をつけてください。
                シンボリックリンクで参照されている単一のディレクトリのパーミッションを変更したい場合は、
                &man.chmod.1;
                をオプションをつけずに、
                シンボリックリンクの名前の後ろにスラッシュ (<quote><filename>/</filename></quote>)
                をつけて使います。たとえば、<quote><filename>foo</filename></quote>
                がディレクトリ <quote><filename>bar</filename></quote>
                へのシンボリックリンクである場合、
                <quote><filename>foo</filename></quote>
                (実際には <quote><filename>bar</filename></quote>)
                のパーミッションを変更したい場合には、このようにします。
              </para>

              <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>

              <para>
                後ろにスラッシュをつけると、
                &man.chmod.1; はシンボリックリンク
                <quote><filename>foo</filename></quote>
                を追いかけてディレクトリ
                <quote><filename>bar</filename></quote>
                のパーミッションを変更します。
              </para>
            </warning>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="login-8char">
          <para>ログイン名が<emphasis>いまだに</emphasis>
            8 文字に制限されているのはなぜですか?</para>
        </question>

        <answer>
          <para>
            <literal>UT_NAMESIZE</literal>
            を変更してシステム全体を作り直せば十分で、
            それだけでうまくいくだろうとあなたは考えるかもしれません。
            残念ながら多くのアプリケーションやユーティリティ (システムツールも含めて) は、
            小さな数値を構造体やバッファなどに使っています (必ずしも
            <quote>8</quote><quote>9</quote> ではなく、
            <quote>15</quote><quote>20</quote> などの変った値を使うものもあります)。
            (固定長のレコードを期待するところで可変長レコードになるため、
            ) 台無しになったログファイルを得ることになるということだけでなく、
            Sun の <acronym>NIS</acronym>
            のクライアントの場合は問題が起きますし、他の UNIX
            システムとの関連においてこれら以外の問題も起きる可能性があります。
          </para>

          <para>
            しかし、FreeBSD 3.0 以降では 16 文字となり、
            多くのユーティリティのハードコードされた名前の長さの問題も解決されます。
            実際にはシステムのあまりに多くの部分を修正するために、
            3.0 になるまでは変更が行われませんでした。
          </para>

          <para>
            それ以前のバージョンでは、これらの問題が起こった場合に、
            問題を自分自身で発見し、解決できることに絶対的な自信がある場合は
            <filename>/usr/include/utmp.h</filename> を編集し、
            <literal>UT_NAMESIZE</literal> の変更にしたがって、
            長いユーザ名を使うことができます。
            また、
            <literal>UT_NAMESIZE</literal> の変更と一致するように
            <filename>/usr/include/sys/param.h</filename><literal>MAXLOGNAME</literal> 更新しなくてはなりません。
            最後に、ソースからビルドする場合は
            <filename>/usr/include</filename>
            を毎回アップデートする必要があることを忘れないように!
            <filename>/usr/src/..</filename> 上のファイルを変更しておいて置き換えましょう。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dos-binaries">
          <para>FreeBSD 上で DOS のバイナリを動かすことはできますか?</para>
        </question>

        <answer>
          <para>
            はい、FreeBSD 3.0 からは、
            統合と改良が重ねられた BSDI の <application>doscmd</application>
            DOS エミュレーションサブシステムを使ってできるようになりました。
            今なお続けられているこの努力に興味を持って参加していただけるなら、
            &a.emulation;
            へメールを送ってください。
          </para>

          <para>FreeBSD 3.0 以前のシステムでは、
            <application>pcemu</application>
            という巧妙なユーティリティが FreeBSD Ports Collection にあり、
            8088 のエミュレーションと DOS
            のテキストモードアプリケーションを動かすに十分な
            BIOS サービスを行ないます。これは X ウィンドウシステムが必要です (XFree86
            として提供されています)。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="free-account">
          <para>どこで無料の FreeBSD のアカウントを取得できますか?</para>
        </question>

        <answer>
          <para>FreeBSD はいずれのサーバーにもアクセスを開放していませんが、
            Unix システムへの自由なアクセスを提供しているところがあります。
            費用はまちまちで、限定されたサービスが利用できます。</para>

          <para>M-Net としても知られる <ulink
            url="http://www.arbornet.org/">Arbornet, Inc</ulink>1983 年から Unix システムへのアクセスを提供しています。
            System III が動作する Altos に始まり、1991 年には
            BSD/OS に移行しました。20006 月には、再び FreeBSD に
            移行しています。M-Net には SSH または telnet 経由で
            アクセスすることができ、FreeBSD ソフトウェア一式が
            利用できるようになっています。ただし、ネットワーク接続は
            会員と、非営利組織として運営されているシステムに寄付をする
            後援者に制限されています。また、M-Net は掲示板システムと
            双方向チャットも提供しています。</para>

          <para><ulink url="http://www.grex.org/">Grex</ulink> は、
            掲示板システムと双方向チャットソフトウェアが同じであることも含め、
            M-Net とよく似たサイトを提供しています。しかし、
            マシンは Sun 4M で、SunOS が動作しています。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="sup-define">
          <para><quote><acronym>sup</acronym></quote> とは何で、
            どのようにして使うものなのでしょうか?</para>
        </question>

        <answer>
          <para>
            <ulink url="http://www.FreeBSD.org/cgi/ports.cgi?^sup">SUP</ulink>
            とは、ソフトウェアアップデートプロトコル (Software Update Protocol) で
            カーネギーメロン大学 (CMU) で開発ツリーの同期のために開発されました。
            私たちの中心開発ツリーをリモートサイトで同期させるために使っていました。
          </para>

          <para>
            SUP はバンド幅を浪費しますので、今は使っていません。
            ソースコードのアップデートの現在のおすすめの方法は
            <ulink url="../handbook/synching.html#CVSUP">FreeBSD
              ハンドブックの「CVSup」</ulink>にあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="very-very-cool">
          <para>FreeBSD をクールに使うには?</para>
          <para>
            FreeBSD を動かす時に温度測定を行なった人はいますか? Linux
            は dos よりも温度が下がるということは知っていますが、FreeBSD
            についてはこのようなことに触れたものを見たことはありません。
            実際熱くなっているように見えます。
          </para>
        </question>

        <answer>
          <para>
            いいえ。
            私たちは 250 マイクログラムの LSD-25
            をあらかじめ与えておいたボランティアに対する、
            目隠し味覚テストを大量に行なっています。
            35% のボランティアは FreeBSD
            はオレンジのような味がすると言っているのに対し、
            Linux は紫煙のような味わいがあると言っている人もいます。
            両方のグループとも温度の不一致については何も触れていません。
            この調査で、非常に多くのボランティアがテストを行なった部屋から不思議そうに出てきて、
            このようなおかしな結果を示したことに私たちは当惑させられました。
            私たちは、ほとんどのボランティアは Apple
            にいて彼らの最新の「引っかいて匂いをかぐ」GUI
            を使っているのではないかと考えています。
            私たちは奇妙な古い仕事をしているのでしょう!
          </para>

          <para>
            真面目に言うと、FreeBSD や Linux は共に
            <quote><acronym>HLT</acronym></quote> (停止)
            命令をシステムのアイドル (idle) 時に使い、
            エネルギーの消費を押えていますので熱の発生も少なくなります。
            また、<acronym>APM (advanced power management)</acronym>
            を設定してあるなら FreeBSD は <acronym>CPU</acronym>
            をローパワーモードにすることができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="letmeoutofhere">
          <para>誰かが私のメモリカードをひっかいているのですか??</para>
          <para>
            FreeBSDでカーネルのコンパイルをしている時、
            メモリから引っかいているような奇妙な音が聞こえるようなことはあるのでしょうか?
            コンパイルをしている時 (あるいは起動時にフロッピドライブを認識した後の短い間など)、
            奇妙な引っかくような音がメモリカードのあたりから聞こえてきます。
          </para>
        </question>

        <answer>
          <para>
            その通り! BSD の文書には良く、デーモン (daemon) という言葉が出てきます。
            ほとんどの人は知らないのですが、
            デーモンとは、あなたのコンピュータを依り代とする、
            純粋で非物質的な存在のことです。
            メモリから聞こえるひっかくような音は、
            さまざまあるシステム管理タスクの扱いをいかに最善なものにするか、
            といったことを決めるときにデーモンたちが交わす、
            かん高いささやき声なのです。
          </para>

          <para>
            この雑音が聞こえたとき、DOS から
            <quote><command>fdisk /mbr</command></quote>
            というプログラムを実行すれば、
            うまくデーモンを追い出すことができるでしょう。
            でも、デーモンはそれに歯向かって <command>fdisk</command>
            の実行をやめさせようとするかも知れません。
            もし、それを実行しているときにスピーカならビル ゲイツ (Bill
            Gates) の悪魔のささやきが聞こえてきたら、
            すぐに立ち上がって逃げてください。決して振り返ってはいけません!
            BSD のデーモンたちが押え込んでいた双子のデーモン、DOS と Windows が解放され、
            あなたの魂を永遠の破滅へ導こうとマシンを再び支配してしまうことでしょう。
            それを知った今や、選べと言われたら、
            むしろひっかき音に慣れる方を選ぶのではありませんか?
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="define-MFC">
          <para>&quot;MFC&quot; とはどういう意味ですか</para>
        </question>

        <answer>
          <para>
            <acronym>MFC</acronym> とは、
            「CURRENT との合流 (Merged From -CURRENT)」の頭文字をとったものです。
            <acronym>CVS</acronym> ログで
            -CURRENT から
            -STABLE ブランチへの合流を示します。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="define-BSD">
          <para>&quot;BSD&quot; とはどういう意味ですか?</para>
        </question>

        <answer>
          <para>
            この言葉は、仲間うちだけに分かる隠語で何とかという意味です。
            文字どおりに訳すことはできませんが、
            BSD の訳は「F1 のレーシングチーム」か「ペンギンはおいしいスナック」、
            あるいは「俺たちゃ
            Linux より洒落は利いてるぜ」とかそのへんだと言っておけばおっけーでしょう。
            <literal>:-)</literal>
          </para>

          <para>
            冗談はさておき、BSD とは、Berkeley
            CSRG (コンピュータシステム評議会) が彼らの
            UNIX の配布形態の名前として当時選んだ
            &quot;Berkeley Software Distribution&quot;
            の略です。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="define-repocopy">
          <para>リポジトリ・コピー (repo-copy)
            とは一体何のことでしょう?</para>
        </question>

        <answer>
          <para>repo-copy (<quote>repository copy</quote> の略) とは、
            CVS リポジトリの中で直接ファイルをコピーすることを示す用語です。</para>

          <para>repo-copy を行なわない場合を考えます。
            リポジトリの中の異なる場所にファイルをコピーしたり、
            移動したりする必要性が生じると、コミッターは
            ファイルを新しい場所に置くために <command>cvs add</command> を、
            そして古いファイルが削除される場合は、古いファイルに対して
            <command>cvs rm</command> を実行するでしょう。</para>

          <para>この方法の欠点は、ファイルの変更履歴
            (たとえば CVS ログのエントリ) が新しい場所にコピーされないことです。
            FreeBSD プロジェクトではこの変更履歴をとても有用なものだと考えているため、
            前述の方法の代わりにリポジトリコピーが良く用いられます。
            この操作は <command>cvs</command> プログラムを利用するのではなく、
            リポジトリの管理担当者がリポジトリの中でファイルを直接コピーすることによって行なわれます。</para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="bikeshed-painting">
          <para>なんでバイク小屋 (bikeshed) の色にまで気を使わなければいけないんですか?</para>
        </question>

        <answer>
          <para>一言で言ってしまえば、そうすべきではありません。
            もう少し詳しく説明しましょう。
            たとえば、あなたがバイク小屋を建てる技術を持っていたとします。
            しかしそれは、塗ろうとしている色が気に入らないからと言って、
            他人がバイク小屋を建てようとしているのを止めて良い理由にはなりませんよね。
            これは、自分の行動について十分な理解を持っているなら、
            あなたは細かな機能すべてにわたって議論する必要はないことを示す比喩です。
            ある変更によって産み出されるノイズの総量は、
            その変更の複雑さに反比例するのだと言っている人達もいます。</para>

          <para>さらに詳しく、完全な回答を紹介しましょう。
            Poul-Henning Kamp は、
            「&man.sleep.1; は分数の秒数を引数として取るべきか」という
            非常に長い議論の後で、
            <quote><ulink url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A bike shed (any colour will do) on greener
            grass...</ulink></quote>
            というタイトルの長文を投稿しました。
            関係のある部分だけを以下に掲載します。</para>

          <blockquote>
            <attribution>1999102 日  freebsd-hackers にて
              Poul-Henning Kamp</attribution>

            <para>
              <quote>このバイク小屋、どうだろう?</quote>
              誰かがたずねました。
            </para>

            <para>
              長い…というか、むしろ古い話になりますが、
              中身はわりと簡単な話です。パーキンソン
              (C. Northcote Parkinson) は 1960 年代初頭に
              <quote>パーキンソンの法則</quote> と呼ばれる本を書きました。
              この中にはさまざまな経営の力学に関する洞察が含まれています。
            </para>

            <para>[ この本に関する解説があったが省略 ]</para>

            <para>バイク小屋に関連する例として、
              もう一つの重要な構成要素となっているのは原子力発電所です。
              この本の年代がわかりますね。</para>

            <para>パーキンソンは、あなたが重役会に出席して
              数百万から数10億ドル規模の原子力発電所の建設の承認を得る
              ことはできるでしょうが、あなたが建てたいのがバイク小屋ならば、
              終わりなき議論に巻き込まれるだろうと言っています。</para>

            <para>パーキンソンはこのように説明しています。
              これは原発が余りに巨大で高価で複雑なので誰もこれを一手に握ることができず、
              それを試みるくらいならむしろ、手が出せなくなる前に
              他の誰かがすべてを詳細にチェックすることを
              引き受けることに頼るのです。
              リチャード・ファインマン (Richard P. Feynmann) は、
              ロスアラモスでこの手の重要な経験を何度も見てきたと本に書いています。
            </para>

            <para>一方でバイク小屋の場合は、誰でも週末にこれを作り上げることができ、
              しかも TV の試合を見る時間があまるほどです。
              なので、どんなに準備が整えてあって、どんなに計画が順当であったとしても、
              わたしは仕事をやっているよ、
              わたしは注意を払っているよ、そして
              わたしは<emphasis>ここ</emphasis>にいるよ、
              ということを示そうとする人が必ず現れます。</para>

            <para>デンマークではこれを「指紋をつける」と呼んでいます。
              これは個人的なプライドや名声を求め、
              ある場所を指し示して「ここ! ここは<emphasis></emphasis>が
              やったんだぜ〜」というようなものです。
              これは政治家に見られる強い特徴ですが、
              その他のほとんどの人もこういう風に振舞う可能性はあるのです。
              生乾きのセメントにつけられた足跡のことを考えればお分かりでしょう。</para>
          </blockquote>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="changing-lightbulbs">
          <para>ひとつの電球を取り替えるのに、何人の FreeBSD ハッカーが必要?</para>
        </question>

        <answer>
          <para>
            1,172人です。
          </para>

          <itemizedlist>
            <listitem>
              <para>電球が消えていると -CURRENT で文句を言うのに 23 人。</para>
            </listitem>
            <listitem>
              <para>設定上の問題で -questions で話をすべきことについて騒ぐのに 4 人。</para>
            </listitem>
            <listitem>
              <para>それを send-pr (訳注: 障害報告) するのに 3
                人 (そのうちのひとつは間違って doc カテゴリに送りつけられたうえに、
                内容が「暗くなった」というだけのもの)。</para>
            </listitem>
            <listitem>
              <para>buildworld を失敗させ、5 分後には元に戻されるような電球を
                テストもせずにコミットするのに 1 人。</para>
            </listitem>
            <listitem>
              <para>send-pr した人に、パッチが含まれていないと「いちゃもん」を付けるのに
                8 人。</para>
            </listitem>
            <listitem>
              <para>buildworld が失敗すると文句を言うのに 5 人。</para>
            </listitem>
            <listitem>
              <para>自分のところではちゃんと動く、
                cvsup したタイミングが悪かったんだろうと答えるのに 31 人。</para>
            </listitem>
            <listitem>
              <para>新しい電球のためのパッチを -hackers に投げるのに 1 人。</para>
            </listitem>
            <listitem>
              <para>自分は 3 年も前にパッチを作ったが、それを -CURRENT
                に投げたときには無視されただけだった、
                自分は send-pr のシステムには嫌な経験があると (おまけに、
                提案された新しい電球には柔軟性が無いとまで) 文句を言うのに 1 人。</para>
            </listitem>
            <listitem>
              <para>電球が基本システムに組み込まれていない、
                committer はコミュニティの意見を聞くこと無しにこんなことをする権利は無いと叫び、
                「こんなときに -core は何をやってるんだ!?」とわめきちらすのに 37 人。</para>
            </listitem>
            <listitem>
              <para>自転車置き場の色に文句を言うのに 200 人。</para>
            </listitem>
            <listitem>
              <para>パッチが &man.style.9; 違反だと指摘するのに 3 人。</para>
            </listitem>
            <listitem>
              <para>提案された新しい電球は GPL の下にあると文句を言うのに 70 人。</para>
            </listitem>
            <listitem>
              <para>GPL と BSD ライセンスと MIT ライセンスと NPL と、
                某 FSF 創立者らの個人的な健康法の優位性についての論争を戦わすのに 586 人。</para>
            </listitem>
            <listitem>
              <para>スレッドのあちこちの枝を -chat や -advocacy に移動するのに 7 人。</para>
            </listitem>
            <listitem>
              <para>提案された電球を、古いのよりずっと薄暗いのにコミットしてしまうのに 1 人。</para>
            </listitem>
            <listitem>
              <para>FreeBSD に薄暗い電球を付けるくらいなら真っ暗のほうがましだという、
                コミットメッセージへの凄まじい非難の嵐によって、
                それを元に戻すのに 2 人。</para>
            </listitem>
            <listitem>
              <para>薄暗い電球が帳消しにされたことに対してどなり声で口論し、
                -core の声明を要求するのに 46 人。</para>
            </listitem>
            <listitem>
              <para>もし FreeBSD をたまごっちに移植することになったときに都合がいいように、
                もっと小さな電球を要求するのに 11 人。</para>
            </listitem>
            <listitem>
              <para>-hackers と -chat の S/N比に文句を言い、
                抗議のため講読を取りやめるのに 73 人。</para>
            </listitem>
            <listitem>
              <para>「unsubscribe」「どうやったら講読をやめられるんですか?」
                「このメーリングリストからわたしを外してください」といった
                メッセージを、例のフッタをくっつけて投稿するのに 13 人。</para>
            </listitem>
            <listitem>
              <para>みんなが激論を戦わせるのに忙がしくて気付かない間に、
                作業中の電球をコミットするのに 1 人。</para>
            </listitem>
            <listitem>
              <para>新しい電球は TenDRA を使ってコンパイルされた場合に 0.364%
                も明るくなる (ただし電球を立方体にしなければならない)、
                だから FreeBSD は EGCS から TenDRA に変えるべきだと指摘するのに 31 人。</para>
            </listitem>
            <listitem>
              <para>新しい電球は美しさに欠けていると文句を言うのに 1 人。</para>
            </listitem>
            <listitem>
              <para>「MFC って何ですか?」と聞くのに 9 人 (send-pr した人も含む)。</para>
            </listitem>
            <listitem>
              <para>電球が取り替えられてから
                2 週間も消えっぱなしだと文句を言うのに 57 人。</para>
            </listitem>
          </itemizedlist>

            <note>
            <title>&a.nik; による追記</title>
              <para>
                これには爆笑しました。
              </para>
              <para>
                それからわたしは考えました。
                「ちょっと待てよ? このリストのどこかに、
                『これを文書にまとめるのに 1人』というのがあってもいいんじゃないか?」
              </para>
              <para>
                それからわたしは悟りを開いたのです <literal>:-)</literal>
              </para>
            </note>

            <para><emphasis>この項目の著作権は
              Copyright (c) 1999 &a.des; にあります。
              無断で使用しないでください。</emphasis>
          </para>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="hackers">
    <title>まじめな FreeBSD ハッカーだけの話題</title>

    <para>
      <emphasis>訳:
        &a.iwasaki;、
        1997118</emphasis>
    </para>

    <qandaset>
      <qandaentry>
        <question id="define-snap-release">
          <para>SNAP とか RELEASE とかは何?</para>
        </question>

        <answer>
          <para>現在、FreeBSD の
            <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS リポジトリ</ulink>
            には、三つのアクティブ/準アクティブなブランチがあります
            (アクティブな開発ブランチは三つしか存在しないため、
            おそらく RELENG_2 ブランチの変更は年に 2 回だけになるでしょう)。</para>

            <itemizedlist>
              <listitem>
                <para>
                  <literal>RELENG_2_2</literal>
                  通称 <emphasis>2.2-STABLE</emphasis>
                </para>
              </listitem>

              <listitem>
                <para>
                  <literal>RELENG_3</literal>
                  通称 <emphasis>3.X-STABLE</emphasis>
                </para>
              </listitem>

              <listitem>
                <para>
                  <literal>RELENG_4</literal>
                  通称 <emphasis>4-STABLE</emphasis></para>
              </listitem>

              <listitem>
                <para><acronym>HEAD</acronym>
                  通称 <option>-CURRENT</option> あるいは
                  <emphasis>5.0-CURRENT</emphasis></para>
              </listitem>

            </itemizedlist>

          <para>
            <acronym>HEAD</acronym>
            は他の二つと違って、
            実際のブランチタグではなく、
            <emphasis>「current、
              分岐していない開発本流」</emphasis>のための単なるシンボリックな定数です。
            私たちはこれを <literal>-CURRENT</literal> と呼んでいます。
          </para>

          <para>
            現在、
            <quote>-CURRENT</quote>5.0 の開発本流であり、
            <literal>4.0-STABLE</literal> ブランチ、
            つまり <literal>RELENG_4</literal>20003 月に
            <quote>-CURRENT</quote> から分岐しています。
          </para>

          <para>
            <literal>2.2-STABLE</literal> ブランチ、
            <literal>RELENG_2_2</literal>199611 月に <quote>-CURRENT</quote> から分岐しました。
            これは保守が完全に終了しています。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="custrel">
          <para>自分用のカスタムリリースを構築するには?</para>
        </question>

        <answer>
          <para>
            リリースを構築するには三つのことが必要です。まず、
            &man.vn.4;
            ドライバが組み込まれたカーネルを実行させている必要があります。
            以下をカーネルコンフィグレーションファイルに追加し、
            カーネルを作り直してください。
          </para>

          <programlisting>pseudo-device vn         #Vnode driver (turns a file into a device)</programlisting>
          <para>
            次に、CVS リポジトリ全体を手元においておく必要があります。
            これを入手するには
            <ulink url="../handbook/synching.html#CVSUP">CVSUP</ulink>
            が使用できますが、supfile で release の名称を cvs にして
            他のタグや date フィールドを削除する必要があります。
          </para>

          <programlisting>*default prefix=/home/ncvs
*default base=/a
*default host=cvsup.FreeBSD.org
*default release=cvs
*default delete compress use-rel-suffix

## Main Source Tree
src-all
src-eBones
src-secure

# Other stuff
ports-all
www
doc-all</programlisting>

          <para>
            そして <command>cvsup -g supfile</command> を実行して自分のマシンに
            CVS リポジトリ全体をコピーします…。
          </para>

          <para>
            最後に、ビルド用にかなりの空き領域を用意する必要があります。
            そのディレクトリを <filename>/some/big/filesystem</filename> として、
            上の例で CVS リポジトリを <filename>/home/ncvs</filename> に置いたものとすると、
            以下のようにしてリリースを構築します。
          </para>

          <screen>&prompt.root; <userinput>setenv CVSROOT /home/ncvs</userinput>
 # or export CVSROOT=/home/ncvs
&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make buildworld</userinput>
&prompt.root; <userinput>cd /usr/src/release</userinput>
&prompt.root; <userinput>make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release</userinput>
      </screen>

        <note>
          <para>ただし、すでに <filename>/usr/obj</filename>
            以下に構築物が存在しているなら、buildworld
            の必要は<emphasis>ありません</emphasis></para>
        </note>

          <para>
            処理が終了すると、
            リリース全体が <filename>/some/big/filesystem/release</filename>
            に構築され、完全な <acronym>FTP</acronym> インストール用の配布物が
            <filename>/some/big/filesystem/release/R/ftp</filename> に作成されます。
            -current 以外の開発ブランチの SNAP を自分で構築したい場合は、
            <literal>RELEASETAG=SOMETAG</literal>
            を上の <command>make release</command> のコマンドラインに追加します。
            たとえば、<literal>RELEASETAG=RELENG_2_2</literal>
            とすると最新の 2.2-STABLE snapshot が構築されます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="custom-install-disks">
          <para>カスタムのインストールディスクを作るにはどうすればいいのですか? </para>
        </question>

        <answer>
          <para>
            <filename>/usr/src/release/Makefile</filename>
            のいろいろなターゲットとしてインストールディスク、
            ソース、バイナリアーカイブを作る完全な処理を自動的に行なうようになっています。
            <filename>Makefile</filename> に十分な情報があります。
            しかし、実行には <quote>make world</quote> が必要で、
            多くの時間とディスクの容量が必要です。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="makeworld-clobbers">
          <para><quote>make world</quote>
            を行なうと既存のバイナリを上書きしてしまうのですが。</para>
        </question>

        <answer>
          <para>ええ、それが一般的な考え方です。名前が示しているように
            <quote>make world</quote>
            はすべてのシステムのバイナリを最初から作り直しますので、結果として、
            クリーンで一貫性のある環境を得ることができます
            (これがそれだけ長い時間がかかる理由です)。
          </para>

          <para>
            環境変数 <literal>DESTDIR</literal><quote><command>make world</command></quote><quote><command>make install</command></quote>
            を実行する時に定義しておくと、新しく作られたバイナリは
            <literal>${DESTDIR}</literal><username>root</username>
            とみなしたディレクトリツリーにインストールされます。
            あるでたらめな共有ライブラリの変更やプログラムの再構築によって
            <quote><command>make world</command></quote>
            は失敗することもあります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="bus-speed-defaulted">
          <para>システム起動時に
            <quote>(<computeroutput>bus speed defaulted</computeroutput>)</quote> とメッセージが出ます。
          </para>
        </question>

        <answer>
          <para>
            Adaptec の 1542 SCSI ホストアダプタは、
            ユーザがソフトウェア的にバスアクセス速度の設定を行なうことができます。
            以前のバージョンの 1542 ドライバは、
            使用可能な最大の速度を求めてアダプタをその設定にしようとしました。
            これは特定のユーザのシステムでは問題がある事がわかり、
            現在ではカーネルコンフィグオプションに
            <quote><symbol>TUNE_1542</symbol></quote> が加えられています。
            これを使用すると、これが働くシステムではディスクが速くなりますが、
            データの衝突が起きて速くはならないシステムもあるでしょう
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="ctm">
          <para>インターネットアクセスに制限があっても current を追いかけられますか?</para>
        </question>

        <answer>
          <para>
            はい、
            <ulink url="../handbook/synching.html#CTM">CTM
              システム</ulink>を使って、
            ソースツリー全体のダウンロードを<emphasis>行なわず</emphasis>に追いかけることができます。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="split-240k">
          <para>どのようにして配布ファイルを 240KB
            に分割しているのですか?</para>
        </question>

        <answer>
          <para>
            比較的新しい BSD ベースのシステムでは、
            <command>split</command> に任意のバイト境界で分割する
            <quote><option>-b</option></quote> オプションがあります。
          </para>

          <para>
            以下は <filename>/usr/src/Makefile</filename> からの例です。
          </para>

          <programlisting>bin-tarball:
              (cd ${DISTDIR}; \
              tar cf - . \
              gzip --no-name -9 -c | \
              split -b 240640 - \
              ${RELEASEDIR}/tarballs/bindist/bin_tgz.)</programlisting>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="submitting-kernel-extensions">
          <para>私はカーネルに拡張を行ないました。
            誰に送ればいいですか? </para></question>

        <answer>
          <para>
            <ulink url="../handbook/contrib.html">FreeBSD
              ハンドブックの「FreeBSD への貢献」</ulink>を参照してください。
          </para>

          <para>
            あなたのアイディアに感謝します!
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="pnp-initialize">
          <para><acronym>PnP</acronym> <acronym>ISA</acronym>
            カードの検出と初期化はどのように行なうのですか? </para>
        </question>

        <answer>
          <para>
            <ulink url="mailto:uhclem@nemesis.lonestar.org">Frank Durda IV 氏</ulink> より:
          </para>

          <blockquote>
            <para>
              要点は、ホストが認識されていないボードを探す時に、すべての
              PnP ボードが応答することのできる少数の I/O
              ポートがあるということです。
              それにより、PnP プローブルーチンが開始したとき、PnP
              ボードが存在するなら、すべての PnP ボードは自分のモデル番号を返します。
              そのポートを I/O read するとプローブルーチンは問いに対するワイアード-OR
              された <quote>yes</quote> を得ます。この場合は
              少なくとも 1 ビットが ON になります。
              そして、プローブルーチンはモデル ID (Microsoft/Intel
              によって割り当てられています)が X より小さいボードを
              <quote>オフライン</quote> にすることができます。
              この操作を行ない、問い合わせに応答しているボードがまだ
              残っているかどうかを調べます。
              もし <quote><literal>0</literal></quote> が返ってくるなら X
              より大きな ID を持つボードはないことになります。
              今度は <quote>X</quote>
              よりも小さな値を持つボードについて問い合わせます。
              もしあるのであれば、
              プローブルーチンはモデル番号が X より小さいことを知ります。
              今度は、X-(limit/4)
              より大きな値を持つボードをオフラインにして問い合わせを繰り返します。
              この ID の範囲による準バイナリサーチを十分繰り返すことにより、
              プローブルーチンはマシンに存在するすべての
              PnP ボードの値を最終的に得ることができます。その繰り返しの回数は
              2^64 よりはるかに少ない回数です。
            </para>

            <para>
              ID は二つの 32-bit (つまり 64bit) フィールド + 8 bit
              チェックサムからなります。最初の 32 bits はベンダの識別子です。
              これは公表されてはいませんが、
              同一のベンダから供給されている異なるタイプのボードでは異なる
              32-bit ベンダ ID を持つことができるように考えられます。
              製造元を特定するだけのために 32-bit
              はいくらか過剰です。
            </para>

            <para>
              下位の 32-bit はシリアル番号、
              イーサネットアドレスなどのボードを特定するものです。
              ベンダは上位 32 bits が異なっていないのであれば、
              下位 32-bit が同一である 2枚目のボードを製造することはありません。
              したがって、同じタイプの複数のボードをマシンにいれることができ、
              この場合でも 64-bit
              全体ではユニークです。
            </para>

            <para>
              32-bit のフィールドはすべてを 0 にすることはできません。
              これは初期化のバイナリサーチの間ワイアード-OR
              によって 0 ではない
              ビットを参照するからです。
            </para>

            <para>
              システムがすべてのボードの与えられた ID を認識すると、
              それぞれのボードに対応した処理を一つずつ (同一の
              I/O ポートを通して) 行ないます。
              そして、利用できる割り込みの選択などのボードが必要とするリソースを検出します。
              すべてのボードについてこの情報を集めます。
            </para>

            <para>
              この情報はハードディスク上の ECU ファイルなどの情報とまとめられ、
              マザーボードの BIOS にも結合されます。
              マザーボード上のハードウェアへの ECU と
              BIOS PnP のサポートは通常は統合されていますが、
              周辺機器については真の PnPであるとはいえません。
              しかし、BIOS の情報に ECU の情報を加えて調査することで、
              プローブルーチンは PnP
              デバイスが再配置できなくなることを避けることができます。
            </para>

            <para>
              それから、再度 PnP デバイスにアクセスし、I/O、DMA、IRQ、
              メモリマップアドレスの設定をします。
              デバイスはこのアドレスに見えるようになり、
              次に再起動するまでこの位置を占めます。しかし、
              あなたの望む時に移動させることが不可能である、
              といっているわけではありません。
            </para>

            <para>
              以上の話では大きく単純化をしてありますが、
              基本的な考え方は得られたでしょう。
            </para>

            <para>
              マイクロソフトは、ボードのロジックが対立する
              I/O サイクルではデコードしていない (訳注:
              おそらく read 時しかデコードされていず
              write 時はポートが空いているという意味でしょう)、
              プライマリプリンタのステータスポートのいくつかを PnP
              のために占有しました。
              私は初期の PnP の提案レビュー時に IBM
              純正のプリンタボードでステータスポートの write
              のデコードがされているということに気がつきましたが、
              MS は <quote>tough (頑固、不運、無法な)</quote>
              と言っています。
              そしてプリンタのステータスポートへアドレスの設定のために
              write を行なっています。また、
              そのアドレス + <literal>0x800</literal> と
              read のための 3番目の I/O ポートが
              <literal>0x200</literal> から
              <literal>0x3ff</literal> の間のどこかに置かれるでしょう。
            </para>
          </blockquote>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="architectures">
          <para>FreeBSD は、他のアーキテクチャをサポートしないんですか? </para>
        </question>

        <answer>
          <para>
            いくつかのグループの人々が、FreeBSD
            の他のアーキテクチャへの移植に関心を示しており、
            FreeBSD/AXP (ALPHA) はこれらの成果としてはとても成功したものの一つです。
            FreeBSD/AXP は現在
            <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/">ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha</ulink>
            から入手できます。
            ALPHA への移植版が現在動く機種は増えつつあり、
            その中には AlphaStation、AXPpci、PC164、Miata そして Multia
            といったモデルが含まれています。
            現状についての情報を得るには
            <email>freebsd-alpha@FreeBSD.org</email><link linkend="mailing">メーリングリスト</link>に参加してください。
          </para>

          <para>
            その他に FreeBSD の SPARC アーキテクチャへの移植があります。
            プロジェクトへの参加に興味がある方は
            <email>freebsd-sparc@FreeBSD.org</email><link linkend="mailing">メーリングリスト</link>
            に参加してください。
            進行中のプラットホームのリストにもっとも最近追加されたのが
            IA-64 と PowerPCです。詳細は
            <email>freebsd-ia64@FreeBSD.org</email> および/あるいは
            <email>freebsd-ppc@FreeBSD.org</email><link
            linkend="mailing">メーリングリスト</link>に参加してください。
            新しいアーキテクチャに関する一般的な議論については
            新しいアーキテクチャに関する一般的な議論については
            <email>freebsd-platforms@FreeBSD.org</email><link linkend="mailing">メーリングリスト</link>
            へ参加してください。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="major-numbers">
          <para>デバイスドライバを開発したので、メジャー番号が欲しいのですが。</para>
        </question>

        <answer>
          <para>
            これは、開発したドライバを公開するかどうかに依存します。
            公開するのであれば、ドライバのソースコード、
            <filename>files.i386</filename> の変更、
            コンフィグファイルのサンプル、
            デバイスが使うスペシャルファイルを作成する
            &man.MAKEDEV.8;
            のコードを私たちに送ってください。
            公開するつもりがない場合、ライセンスの問題により公開できない場合は、
            キャラクタメジャー番号 32 および、
            ブロックメジャー番号 8 がこのような目的のために予約されています。
            これらの番号を使用してください。
            どちらの場合であれ、ドライバに関する情報を
            &a.hackers;
            に流して頂けると助かります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="alternate-directory-layout">
          <para>代替のディレクトリ配置ポリシー</para>
        </question>

        <answer>
          <para>
            現在使われているディレクトリの配置ポリシーは、
            私が 1983 年に書いたものから全く変更されていません。
            私は当初の配置ポリシーを、オリジナルの fast filesystem のために書き、
            まったく改定していません。
            このポリシーはシリンダグループを使い尽くすのを防ぐにはうまくいきましたが、
            お気づきの方もいる通り find の動作には不適切です。
            ほとんどのファイルシステムの内容は、
            深さ優先検索 (ftw とも呼ばれます) によって作られたアーカイブから、
            抽出 (restore) して作成されます。この際、
            ディレクトリは、シリンダグループにまたがって配置され、
            以降の深さ優先検索を行うには、
            考え得る限り最悪の状態になります。
            もし作成するディレクトリの総数がわかっていれば、
            解決方法はあります。(総数/シリンダグループ数) 個のディレクトリを、
            シリンダグループごとにまとめて作成すれば良いのです。
            もちろん最適なディレクトリ配置になるように、
            総数を予測する方法を考えなければなりません。
            しかし仮にシリンダグループあたりのディレクトリ数を
            10 くらいの小さな数に固定してしまったとしても、
            大幅な改善が望めるでしょう。
            このポリシーを用いるべきリストア作業を、通常の作業
            (おそらく既存のポリシーを使用したほうが良いでしょう)
            を区別するには、
            10 秒間の間に作成されたディレクトリを最大
            10 個までまとめて単一のシリンダグループに書き込むという手順が使えるでしょう。
            とにかく私の結論は、そろそろ実験を始めて見る時期だろうということです。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="kernel-panic-troubleshooting">
          <para>カーネルパニックを最大限に利用する</para>
        </question>

        <answer>
            <note>
              <para>
                この節は、freebsd-current <link linkend="mailing">メーリングリスト</link>に
                &a.wpaul; 氏が投稿したメールを、
                &a.des; 氏が校正し、[] 内のコメントを追加して引用したものです。
              </para>
            </note>

          <programlisting>From: Bill Paul &lt;wpaul@skynet.ctr.columbia.edu&gt;
Subject: Re: the fs fun never stops
To: ben@rosengart.com
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.ORG</programlisting>

          <para><emphasis>[&lt;ben@rosengart.com&gt; が以下のパニックメッセージを投稿しました。]</emphasis></para>

          <programlisting>&gt; Fatal trap 12: page fault while in kernel mode
&gt; fault virtual address   = 0x40
&gt; fault code              = supervisor read, page not present
&gt; instruction pointer     = 0x8:0xf014a7e5
                                ^^^^^^^^^^
&gt; stack pointer           = 0x10:0xf4ed6f24
&gt; frame pointer           = 0x10:0xf4ed6f28
&gt; code segment            = base 0x0, limit 0xfffff, type 0x1b
&gt;                         = DPL 0, pres 1, def32 1, gran 1
&gt; processor eflags        = interrupt enabled, resume, IOPL = 0
&gt; current process         = 80 (mount)
&gt; interrupt mask          =
&gt; trap number             = 12
&gt; panic: page fault</programlisting>

          <para>
            このようなメッセージが表示された場合、問題が起きる状況を確認して、
            情報を送るだけでは十分ではありません。
            下線をつけた命令ポインタ値は重要な値ですが、
            残念ながらこの値は構成に依存します。つまり、
            この値は使っているカーネルのイメージに依存するのです。
            もしスナップショットなどの GENERIC カーネルを使っているのであれば、
            他の人間が問題のある関数について追試をすることができますが、
            カスタマイズされたカーネルの場合は、
            使っている本人にしか問題の起こった場所は特定できないのです。
          </para>

          <para>
            何をすれば良いのでしょう?
          </para>

            <procedure>
              <step>
                <para>
                  命令ポインタ値をメモします。
                  <literal>0x8:</literal> という部分は今回必要ありません。
                  必要なのは <literal>0xf0xxxxxx</literal> という部分です。
                </para>
              </step>

              <step>
                <para>
                  システムが再起動したら、以下の操作を行います。

                  <screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen>

                  ここで、<literal>f0xxxxxx</literal> は命令ポインタ値です。
                  カーネルシンボルのテーブルは関数のエントリポイントを含み、
                  命令ポインタ値は、関数内部のある点であり最初の点ではないため、
                  この操作を行っても完全に一致するものが表示されない場合もあります。
                  この場合は、
                  最後の桁を省いてもういちどやってみてください。
                  このようになります。

                  <screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen>

                  これでも一致しない場合は、
                  桁を減らしながら何らかの出力があるまで繰り返してください。
                  何か出力されたら、
                  それがカーネルパニックを引き起こした可能性のある関数のリストです。
                  これは、問題点を見付ける正確な方法ではありませんが、何もないよりましです。
                </para>
              </step>
            </procedure>

          <para>
            このようなパニックメッセージを投稿している人はよく見掛けますが、
            このように、命令ポインタ値を、
            カーネルシンボルテーブルの中の関数とつき合わせて調べている人はまれです。
          </para>

          <para>
            パニックの原因を突き止める最良の方法は、クラッシュダンプをとり、
            &man.gdb.1; でスタックトレースを行うことです。
          </para>

          <para>
            どっちにしろ、私は普通以下のようにします。
          </para>

            <procedure>
              <step>
                <para>
                  カーネルコンフィグファイルを作ります。
                  カーネルデバッガが必要そうであれば
                  <literal>options 'DDB'</literal>
                  を加えても良いです (私は永久ループが起こっていそうな場合に、
                  ブレークポイントを設定するのに使っています)。
                </para>
              </step>

              <step>
                <para>
                  <command>config -g KERNELCONFIG</command>
                  としてビルドディレクトリを設定します。
                </para>
              </step>

              <step>
                <para>
                  <command>cd /sys/compile/KERNELCONFIG; make</command> を実行します。
                </para>
              </step>

              <step>
                <para>カーネルのコンパイルが終了するのを待ちます。</para>
              </step>

              <step>
                <para><command>make install</command> を実行します。</para>
              </step>

              <step>
                <para>再起動します。</para>
              </step>
            </procedure>

          <para>
              &man.make.1; プロセスは2つのカーネル、
            <filename>kernel</filename><filename>kernel.debug</filename> をビルドします。
            <filename>kernel</filename><filename>/kernel</filename>
            としてインストールされ、
            <filename>kernel.debug</filename> は &man.gdb.1;
            のデバッグ用シンボル情報を取り出すために利用されます。
          </para>

          <para>
            確実にクラッシュダンプをとるには、<filename>/etc/rc.conf</filename>
            を編集して <literal>dumpdev</literal>
            を使用しているスワップパーティションに指定する必要があります。
            こうすると &man.rc.8; スクリプトから
            &man.dumpon.8; コマンドが実行され、
            クラッシュダンプ機能が有効になります。
            手動で &man.dumpon.8; コマンドを実行してもかまいません。
            パニックの後、クラッシュダンプは &man.savecore.8;
            コマンドを使用して取り出すこと ができます。
            <literal>dumpdev</literal><filename>/etc/rc.conf</filename> で設定されていれば、
            &man.rc.8; スクリプトから
            &man.savecore.8; が自動的に実行され、クラッシュダンプを
            <filename>/var/crash</filename> に保存します。
           </para>

            <note>
              <para>FreeBSD のクラッシュダンプのサイズは、
                ふつう物理メモリサイズと同じです。
                つまり 64MB のメモリを積んでいれば、
                64MB のクラッシュダンプが生成されることになります。
                <filename>/var/crash</filename>
                に十分な空き容量があることを確認してください。手動で
                &man.savecore.8; を実行すれば、
                もっと空き容量のあるディレクトリにクラッシュダンプを保存できます。
                <literal>options MAXMEM=(foo)</literal>
                という行をカーネルコンフィグファイルに追加することで、
                カーネルのメモリ使用量を制限できます。
                たとえば 128MB のメモリがある場合も、
                カーネルのメモリ使用量を 16MB
                に制限し、クラッシュダンプのサイズも
                128MB ではなく 16MB にすることができます。
              </para>
            </note>

          <para>
            クラッシュダンプを取り出せたら、
            以下のように &man.gdb.1;
            を使ってスタックトレースをとります。
          </para>


          <screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput>
<prompt>(gdb)</prompt> <userinput>where</userinput></screen>


          <para>
            必要な情報が 1 画面に収まらないことも多いので、できれば
            &man.script.1; を使って出力を記録します。
            strip していないカーネルイメージを使うことで、
            すべてのデバッグシンボルが参照でき、
            パニックの発生したカーネルのソースコードの行が表示されているはずです。
            通常、正確なクラッシュへの過程を追跡するには、
            出力を最後の行から逆方向に読まなければなりません。
            また &man.gdb.1; を使って、
            変数や構造体の内容を表示させ、
            クラッシュした時のシステムの状態を調べられます。
          </para>

          <para>
            もしあなたがデバッグ狂で、同時に別のコンピュータを利用できる環境にあれば、
            &man.gdb.1; をリモートデバッグに使うこともできます。
            リモートデバッグを使うと、あるコンピュータ上の
            &man.gdb.1; を使って、
            別のコンピュータのカーネルをデバッグできます。
            ブレークポイントの設定、カーネルコードのステップ実行など、
            ふつうのプログラムのデバッグと変わりません。
            コンピュータを 2 台並べてデバッグするチャンスにはなかなか恵まれないので、
            私はまだリモートデバッグを試したことはありません。
          </para>

            <note>
              <title>Bill による追記</title>
              <para>
                DDB を有効にしていてカーネルがデバッガに
                落ちたら、ddb のプロンプトで &quot;<command>panic</command>&quot;
                と入力すれば、強制的にパニックを起こしクラッシュダンプさせることができます。
                パニックの途中で、再びデバッガに落ちるかもしれませんが、
                &quot;<command>continue</command>&quot;
                と入力すれば、
                クラッシュダンプを最後まで実行させられます。
              </para>
            </note>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="dlsym-failure">
          <para><function>dlsym()</function> が ELF 実行形式では動作しなくなります!</para>
        </question>

        <answer>
          <para>
            <acronym>ELF</acronym> のツール類は、
            デフォルトでは実行形式の中に定義されているシンボルを、
            ダイナミックリンカから見えるようにはしません。
            このため、<function>dlopen(NULL, flags)</function>
            を呼び出して得られたハンドルに対して、
            <function>dlsym()</function> で探索を行っても、
            こういったシンボルを見つけられません。
          </para>

          <para>
            もし、あなたがプロセスの中心にあたる実行形式の中にあるシンボルを探索したければ、
            ELF リンカ (&man.ld.1;) に
            <option>-export-dynamic</option>
            オプションを付けて実行形式をリンクする必要があります。
          </para>
        </answer>
      </qandaentry>

      <qandaentry>
        <question id="change-kernel-address-space">
          <para>カーネルアドレス空間を大きくしたり、
            小さくするにはどうしたら良いのですか?</para>
        </question>

        <answer>
          <para>
            カーネルアドレス空間は、FreeBSD 3.X 上で
            256MB、FreeBSD 4.X 上で 1GB がデフォルトになっています。
            負荷の高いネットワークサーバ (たとえば大きな FTP、HTTP サーバ)
            を運用する場合は、256MB では足りないことに気付くかも知れません。
          </para>

          <para>
            では、アドレス空間を大きくするにはどうしたら良いのでしょうか?
            それには、二つの段階を踏みます。まず、
            より大きいアドレス空間を割り当てることをカーネルに知らせる必要があります。
            次に、カーネルはアドレス空間の先頭にロードされるため、
            アドレスの先頭が天井
            (訳注:カーネルアドレス空間の最下端アドレスのこと) と
            ぶつかることのないように、ロードアドレスを今までより低位に設定する必要があります。
          </para>

          <para>
            最初の段階は、<filename>src/sys/i386/include/pmap.h</filename> にある
            <literal>NKPDE</literal> の値を増加させることで行ないます。
            ここに 1GB のアドレス空間にするために、どのようにすれば良いかを示します。
          </para>

<programlisting>#ifndef NKPDE
#ifdef SMP
#define NKPDE                   254     /* addressable number of page tables/pde's */
#else
#define NKPDE                   255     /* addressable number of page tables/pde's */
#endif  /* SMP */
#endif</programlisting>

          <para>
            正確な <literal>NKPDE</literal> の値を計算するには、
            望みのアドレス空間の大きさ (メガバイト単位) を 4 で割って、
            それから単一プロセッサ (UP) なら 1、SMP なら 2 を引き算してください。
          </para>

          <para>
            次の段階を行なうには、ロードアドレスを正確に計算することが必要です。
            単純に、アドレス空間の大きさ
            (バイト単位) を 0x100100000 から引き算してください。
            1GB アドレス空間の場合、その結果は 0xc0100000 になります。
            そして、<filename>src/sys/i386/conf/Makefile.i386</filename> にある
            <symbol>LOAD_ADDRESS</symbol> に、今計算した値を入れます。また、次のように
            <filename>src/sys/i386/conf/kernel.script</filename>
            のセクションの始めの方にあるロケーションカウンタにも同じ値を入れてください。
          </para>

          <programlisting>OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(btext)
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  . = 0xc0100000 + SIZEOF_HEADERS;
  .interp     : { *(.interp)    }</programlisting>

          <para>
            それが完了したら、<command>config</command> し直してカーネルを再構築してください。
            おそらく、&man.ps.1;、&man.top.1;
            などに不具合が出るでしょう。
            それらを正常にするために、<command>make world</command>
            (もしくは、変更した <filename>pmap.h</filename><filename>/usr/include/vm/</filename> にコピーした後に、
            <filename>libkvm</filename><command>ps</command> および <command>top</command>
            を手動で再構築すること) を行なうべきです。
          </para>

            <note>
              <para>カーネルアドレス空間の大きさは、4MB の倍数である必要があります。</para>
            </note>

            <note>
              <title>&a.dg; 氏による補足</title>
              <para>
                カーネルアドレス空間は 2 の乗数である必要があると思いますが、
                それが確かなことかどうかははっきりしていません。
                昔の起動コードには、良く高位アドレスビットのトリックが使われていたため、
                少なくとも 256MB の粒度であることが想定されていたと思います。
              </para>
            </note>
        </answer>
      </qandaentry>
    </qandaset>
  </chapter>

  <chapter id="acknowledgments">
    <title>謝辞</title>

    <para>
      <emphasis>訳:
        &a.jp.y-koga;、
        19971110</emphasis>
    </para>

    <blockquote>
      <attribution>FreeBSD Core Team</attribution>
      <para>
        この FAQ について問題を見つけたり、何か登録したい場合は、
        &a.faq; までメールを送ってください。
        フィードバックしてくれるみなさんには感謝感謝なのです。
        みなさんに手伝ってもらわないとこの FAQ はよくなりませんから!
      </para>
    </blockquote>

      <variablelist>
        <varlistentry><term>&a.jkh;</term>
          <listitem>
            <para>たまに起こす FAQ の並べ替えや更新の発作</para>
          </listitem>
        </varlistentry>

        <varlistentry><term>&a.dwhite;</term>
          <listitem>
            <para>freebsd-questions メーリングリストでの義務を超えたサービス</para>
          </listitem>
        </varlistentry>

        <varlistentry><term>&a.joerg;</term>
          <listitem>
            <para>Usenet (NetNews) での義務を超えたサービス</para>
          </listitem>
        </varlistentry>

        <varlistentry><term>&a.wollman;</term>
          <listitem>
            <para>ネットワーク節の執筆と文書整形</para>
          </listitem>
        </varlistentry>

        <varlistentry><term>Jim Lowe</term>
          <listitem>
            <para>マルチキャストについて</para>
          </listitem>
        </varlistentry>

        <varlistentry><term>&a.pds;</term>
          <listitem>
            <para>FreeBSD FAQ タイピング機械奴隷</para>
          </listitem>
        </varlistentry>

        <varlistentry><term>FreeBSD チーム</term>
          <listitem>
            <para>不平を言ったり、うめいたり、情報提供してくれたり</para>
          </listitem>
        </varlistentry>
      </variablelist>

    <para>
      あと、抜けてしまった他の方々に対して、謝罪と心からの感謝を捧げます!
    </para>
  </chapter>

  <chapter id="jcontrib">
    <title>FreeBSD FAQ 日本語化について</title>

    <para>
      FreeBSD 日本語ドキュメンテーションプロジェクトは、
      FreeBSD 関係の日本語文書が少ないことを嘆いた数人の
      FreeBSD ユーザの提唱によって 1996226 日にスタートし、
      FreeBSD 日本語ハンドブックの作成をはじめとした活動を行なってきました。
      FreeBSD FAQ の日本語化についてはオリジナルの翻訳作業だけでなく、
      日本国内に固有の話題についても広く情報を集め、
      日本の FreeBSD ユーザにとって真に有益なドキュメントを提供しようと考えています。
      オリジナルの FAQ は日毎に更新されており、
      私たちもまたこれに追い付くために作業を続けていきます。もちろん、新しいメンバも大歓迎です。
      日本語翻訳版について、何かお気づきの点がありましたら、
      &a.jp.doc-jp;
      までご連絡ください。
      また、もし私たちの作業を手伝ってくれるなら、
      <ulink url="http://www.jp.FreeBSD.org/doc-jp/">FreeBSD
        日本語ドキュメンテーションプロジェクトのページ</ulink>をご覧の上、是非参加してください。
    </para>

    <bridgehead renderas="sect2">翻訳者 (五十音順)</bridgehead>

    <itemizedlist>
      <listitem><para>&a.jp.arimura;</para></listitem>
      <listitem><para>一宮 亮 <email>ryo@azusa.shinshu-u.ac.jp</email></para></listitem>
      <listitem><para>&a.iwasaki;</para></listitem>
      <listitem><para>&a.jp.yoshiaki;</para></listitem>
      <listitem><para>&a.kuriyama;</para></listitem>
      <listitem><para>&a.jp.y-koga;</para></listitem>
      <listitem><para>&a.motoyuki;</para></listitem>
      <listitem><para>&a.jp.sugimura;</para></listitem>
      <listitem><para>&a.jp.nakai;</para></listitem>
      <listitem><para>にしか <email>nishika@cheerful.com</email></para></listitem>
      <listitem><para>&a.hanai;</para></listitem>
      <listitem><para>&a.jp.kiroh;</para></listitem>
      <listitem><para>&a.jp.shou;</para></listitem>
      <listitem><para>福間 康弘 <email>yasuf@big.or.jp</email></para></listitem>
      <listitem><para>&a.jp.mrt;</para></listitem>
      <listitem><para>山下 淳 <email>junkun@esys.tsukuba.ac.jp</email></para></listitem>
    </itemizedlist>

    <bridgehead renderas="sect2">査読者 (五十音順)</bridgehead>

    <itemizedlist>
      <listitem><para>&a.asami;</para></listitem>
      <listitem><para>&a.iwasaki;</para></listitem>
      <listitem><para>&a.jp.yoshiaki;</para></listitem>
      <listitem><para>大橋 健 <email>ohashi@mickey.ai.kyutech.ac.jp</email></para></listitem>
      <listitem><para>&a.kuriyama;</para></listitem>
      <listitem><para>&a.motoyuki;</para></listitem>
      <listitem><para>&a.jp.saeki;</para></listitem>
      <listitem><para>&a.jp.sugimura;</para></listitem>
      <listitem><para>&a.hanai;</para></listitem>
      <listitem><para>&a.jp.nao;</para></listitem>
      <listitem><para>&a.jp.kiroh;</para></listitem>
      <listitem><para>&a.jp.hino;</para></listitem>
      <listitem><para>檜山  卓 <email>shiyama@intercity.or.jp</email></para></listitem>
      <listitem><para>&a.jp.shou;</para></listitem>
      <listitem><para>&a.jp.mrt;</para></listitem>
      <listitem><para>若井  久史 <email>earth@hokuto7.or.jp</email></para></listitem>
    </itemizedlist>

    <bridgehead renderas="sect2">作業環境整備 (五十音順)</bridgehead>

    <itemizedlist>
      <listitem><para>一宮 亮 <email>ryo@azusa.shinshu-u.ac.jp</email></para></listitem>
      <listitem><para>&a.jp.iwasaki;</para></listitem>
      <listitem><para>&a.jp.simokawa;</para></listitem>
      <listitem><para>鈴木  秀幸 <email>hideyuki@jp.FreeBSD.org</email></para></listitem>
    </itemizedlist>

  </chapter>

  <bibliography id="bibliography">
    <title>有用な書籍</title>

    <biblioentry id="biblio-44sysman">
      <biblioset relation="book">
        <title>4.4BSD System Manager's Manual</title>

        <corpauthor>Computer Systems Research Group, University of
          California, Berkeley</corpauthor>

        <publisher>
          <publishername>O'Reilly and Associates</publishername>
        </publisher>

        <edition>1st Edition</edition>

        <pubdate>June 1994</pubdate>

        <pagenums>804 pages</pagenums>

        <isbn>ISBN 1-56592-080-5</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-44userman">
      <biblioset relation="book">
        <title>4.4BSD User's Reference Manual</title>
        <corpauthor>Computer Systems Research Group, University of
          California, Berkeley</corpauthor>

        <publisher>
          <publishername>O'Reilly and Associates</publishername>
        </publisher>

        <edition>1st Edition</edition>

        <pubdate>June 1994</pubdate>

        <pagenums>905 pages</pagenums>

        <isbn>ISBN 1-56592-075-9</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-44suppman">
      <biblioset relation="book">
        <title>4.4BSD User's Supplementary Documents</title>

        <corpauthor>Computer Systems Research Group, University of
          California, Berkeley</corpauthor>

        <publisher>
          <publishername>O'Reilly and Associates</publishername>
        </publisher>

        <edition>1st Edition</edition>

       <pubdate>June 1994</pubdate>

        <pagenums>712 pages</pagenums>

        <isbn>ISBN 1-56592-076-7</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-44progman">
      <biblioset relation="book">
        <title>4.4BSD Programmer's Reference Manual</title>

        <corpauthor>Computer Systems Research Group, University of
         California, Berkeley</corpauthor>

        <publisher>
          <publishername>O'Reilly and Associates</publishername>
        </publisher>

        <edition>1st Edition</edition>
        <pubdate>June 1994</pubdate>

        <pagenums>866 pages</pagenums>

        <isbn>ISBN 1-56592-078-3</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-44progsupp">
      <biblioset relation="book">
        <title>4.4BSD Programmer's Supplementary Documents</title>

        <corpauthor>Computer Systems Research Group, University of
          California, Berkeley</corpauthor>

        <publisher>
          <publishername>O'Reilly and Associates</publishername>
        </publisher>

        <edition>1st Edition</edition>

        <pubdate>June 1994</pubdate>

        <pagenums>596 pages</pagenums>

        <isbn>ISBN 1-56592-079-1</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-44kernel">
      <biblioset relation="book">
        <title>The Design and Implementation of the 4.4BSD Operating System</title>

        <authorgroup>
          <author>
            <firstname>M. K.</firstname>

            <surname>McKusick</surname>
          </author>

          <author>
            <firstname>Kirk</firstname>

            <surname>Marshall</surname>
          </author>

          <author>
            <firstname>Keith</firstname>

            <surname>Bostic</surname>
          </author>

          <author>
            <firstname>Michael J</firstname>

            <surname>Karels</surname>
          </author>

          <author>
            <firstname>John</firstname>

            <surname>Quarterman</surname>
          </author>
        </authorgroup>

        <publisher>
          <publishername>Addison-Wesley</publishername>

          <address>
            <city>Reading</city>
            <state>MA</state>
          </address>
        </publisher>

        <pubdate>1996</pubdate>

        <isbn>ISBN 0-201-54979-4</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-nemeth3rd">
      <biblioset relation="book">
        <title>Unix System Administration Handbook</title>

        <authorgroup>
          <author>
            <firstname>Evi</firstname>

            <surname>Nemeth</surname>
          </author>

          <author>
            <firstname>Garth</firstname>

            <surname>Snyder</surname>
          </author>

          <author>
            <firstname>Scott</firstname>

            <surname>Seebass</surname>
          </author>

          <author>
            <firstname>Trent R.</firstname>

            <surname>Hein</surname>
          </author>

          <author>
            <firstname>John</firstname>

            <surname>Quarterman</surname>
          </author>
        </authorgroup>

        <publisher>
          <publishername>Prentice-Hall</publishername>
        </publisher>

        <edition>3rd edition</edition>

        <pubdate>2000</pubdate>

        <isbn>ISBN 0-13-020601-6</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="lehey3rd">
      <biblioset relation="book">
        <title>The Complete FreeBSD</title>

        <author>
          <firstname>Greg</firstname>

          <surname>Lehey</surname>
        </author>

        <publisher>
          <publishername>Walnut Creek</publishername>
        </publisher>

        <edition>3rd edition</edition>

        <pubdate>June 1999</pubdate>

        <pagenums>773 pages</pagenums>

        <isbn>ISBN 1-57176-246-9</isbn>
      </biblioset>
    </biblioentry>

    <biblioentry id="biblio-mckusick-1">
      <abbrev>McKusick et al, 1994</abbrev>

      <biblioset relation="manual">
        <title>Berkeley Software Architecture Manual, 4.4BSD
          Edition</title>

        <authorgroup>
          <author>
            <firstname>M. K.</firstname>

            <surname>McKusick</surname>
          </author>

          <author>
            <firstname>M. J.</firstname>

            <surname>Karels</surname>
          </author>

          <author>
            <firstname>S. J.</firstname>

            <surname>Leffler</surname>
          </author>

          <author>
            <firstname>W. N.</firstname>

            <surname>Joy</surname>
          </author>

          <author>
            <firstname>R. S.</firstname>

            <surname>Faber</surname>
          </author>
        </authorgroup>

        <pagenums>5:1-42</pagenums>
      </biblioset>
    </biblioentry>
  </bibliography>
</book>