summaryrefslogtreecommitdiffstats
path: root/release/doc/zh_CN.GB2312/relnotes/common/new.sgml
blob: 7c27e7dd4ce8abf3d3ea591a8a666352e71abf22 (plain)
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
<!--
     The FreeBSD Simplified Chinese Project

     Original revision: 1.761.2.11
-->
<articleinfo>
  <title>&os;/&arch; &release.current; 发行说明</title>

  <corpauthor>The &os; Project</corpauthor>

  <pubdate>$FreeBSD$</pubdate>

  <copyright>
    <year>2000</year>
    <year>2001</year>
    <year>2002</year>
    <year>2003</year>
    <year>2004</year>
    <holder role="mailto:doc@FreeBSD.org">The &os; Documentation Project</holder>
  </copyright>

  <abstract>
    <para>&os; &release.current; 的发行说明包括了自 &release.prev; 以来
      &os; 基本系统所进行的改动的总结。
      这份文档列举了对上一发行版本适用的所有安全公告,以及
      &os; 内核和用户程序所作的重要修改。
      对于升级时需要注意的一些问题,也进行了简略的介绍。</para>
  </abstract>
</articleinfo>

<sect1 id="intro">
  <title>简介</title>

  <para>这篇文档包括了在 &arch.print; 硬件平台上 &os;
    &release.current; 的发行说明。 它描述了最近刚刚加入、修改或删除了的
    &os; 特性的说明。 同时,它也将给出如何从先前的 &os; 版本完成升级的说明。</para>

<![ %release.type.snapshot [

  <para>这份 &release.type; 版本是正在进行开发的 &release.branch;
    分支在 &release.prev; 和未来的 &release.next; 之间的一个快照。
    预先编译好的 &release.type; 安装包可以在
    <ulink url="&release.url;"></ulink> 找到。</para>

]]>

<![ %release.type.release [

  <para>这是一份 &os; &release.current; 的
    &release.type; 发布包。 您可以从 <ulink
    url="&release.url;"></ulink> 或其他镜像那里得到它的副本。
    关于这个 (或其他) &release.type; 发布包的更多信息,可以在
    <ulink url="&url.books.handbook;/">&os; 手册</ulink>
    中的 <ulink url="&url.books.handbook;/mirrors.html"><quote>Obtaining
    &os;</quote>附录</ulink> 中找到。</para>

]]>

  <para>我们鼓励所有的用户在开始安装 &os; 之前首先参考这一版本所对应的勘误信息。
    勘误文档将随时更新,以便为用户提供在发布工程后期或该版本发布之后
    <quote>新发现的</quote> 问题和相关信息。
    通常,这包括已知的 bug,安全公告,以及对于文档的修订内容。
    最新的 &os; &release.current; 勘误信息可以从 &os; 网站获得。</para>

</sect1>

<sect1 id="new">
  <title>最新变动</title>

  <para>这一节描述了
    &os; 自 &release.prev; 以来最明显的新功能和变化。
    一般说来, 没有注明 &merged; 的那些新特性是 &release.branch; 所独有的。
  </para>

  <para>发行说明中的绝大多数条目是在说明自从
    &release.prev.historic;
    以来的安全公告、新的驱动程序或硬件支持、新的命令或是选项、
    重要的错误修补,以及基本系统中来自第三方的软件升级。
    重要的 ports 和 packages 变动,或关于交付工程的变动也会在这份文档中体现。
    显而易见地,发行说明不可能涵盖 &os; 版本之间的每一个微小变动;
    这篇文档主要关注的,仍然是安全公告,用户可以察觉的修改,
    以及重要的架构改良。</para>

  <sect2 id="security">
    <title>安全公告</title>

    <para>在 &man.mksnap.ffs.8; 中的一处缺陷被改正;
      这一缺陷会导致创建快照时将文件系统的权限标记值 (flags) 恢复到默认状态。
      上述问题可能引发的后果与如何利用这一缺陷有关,但它至少可以被用来绕过基于扩展访问控制表的安全机制,
      以及在不应受信任的文件系统上启用 setuid 支持。
      这一问题也会影响 &man.dump.8; 的
      <option>-L</option> 选项,因为它也会使用 &man.mksnap.ffs.8;。
      需要说明的是, &man.mksnap.ffs.8; 在通常情况下只有超级用户和
      <groupname>operator</groupname> 组的成员才能够使用。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:01.mksnap_ffs.asc">FreeBSD-SA-04:01</ulink>。</para>

    <para>修正了一个 System V 共享内存接口
      (特指 &man.shmat.2; 系统调用) 的问题。
      这一问题会导致共享内存段引用到未分配的内核内存。
      于是,这将导致本地的攻击者在没有得到授权的情况下访问一部分内核内存,
      其结果是可能会泄露一些敏感信息,绕过访问控制机制,或导致特权提升。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:02.shmat.asc">FreeBSD-SA-04:02</ulink>。
      &merged;</para>

    <para>修正了 &man.jail.attach.2; 系统调用中的一处编码失误。
      这个失误有可能允许在 &man.jail.8; 环境中以超级用户身份运行的进程修改其根目录到另一个
      jail 中,进而获得在那个 jail 中的完全读写权限。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:03.jail.asc">FreeBSD-SA-04:03</ulink>。</para>

    <para>通过限制同一时间段内允许的错位分片数目,一种潜在的针对 &os;
      TCP 协议栈的非对称带宽拒绝服务攻击得以避免。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:04.tcp.asc">FreeBSD-SA-04:04</ulink>。
      &merged;</para>

    <para>在 <application>OpenSSL</application> 的 SSL/TLS
      ChangeCipherSpec 消息处理过程中的一个问题可能导致对零指针的操作,
      现在已经得到纠正。 这一问题可能引致远程攻击者发动攻击并导致采用
      <application>OpenSSL</application> 的应用程序崩溃,从而完成拒绝服务攻击。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:05.openssl.asc">FreeBSD-SA-04:05</ulink>。
      &merged;</para>

    <para>修正了一处 &man.setsockopt.2; 系统调用在处理某些 IPv6 socket
      选项时的编程疏忽。 这一问题使得本地的攻击者能够引发系统 panic,
      并且,还有可能在未经授权的情况下访问内核内存的某些部分,
      这可能造成敏感信息的泄漏、绕过访问控制机制,或导致特权提升。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:06.ipv6.asc">FreeBSD-SA-04:06</ulink>。</para>

    <para>修正了 <application>CVS</application> 中的两处程序设计缺陷。
      这些缺陷能够导致服务器覆盖客户机上的任意文件,以及允许客户机在访问远程代码库的过程中读取服务器上的任意文件。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:07.cvs.asc">FreeBSD-SA-04:07</ulink>。 &merged;</para>

    <para>修正了 <application>Heimdal</application> 中对于默认的跨域验证没有实施有效的检查的问题。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:08.heimdal.asc">FreeBSD-SA-04:08</ulink>。 &merged;</para>

    <para>修正了 <application>CVS</application> 允许恶意的客户覆盖服务器任意部分的问题。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:10.cvs.asc">FreeBSD-SA-04:10</ulink>。 &merged;</para>

    <para>修正了 &man.msync.2; 系统调用中的一个潜在的与
      <literal>MS_INVALIDATE</literal> 操作有关的缓存一致性破坏问题。
      不过,修复这一安全问题的负面影响是, <literal>MS_INVALIDATE</literal>
      不再保证该范围内所有页都失效。
      对于不担心这一安全问题, 且希望保持原先的 <literal>MS_INVALIDATE</literal>
      语义的用户可以考虑将 <varname>vm.old_msync</varname> sysctl 设置为 1
      来还原先前的 (同时也是不安全的) 行为。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:11.msync.asc">FreeBSD-SA-04:11</ulink>。 &merged;</para>

    <para>修正了 &man.jail.2; 系统调用中的一处程序设计失误。
      这一问题可能导致 jail 外面的进程修改 jail 中的路由表。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:12.jail.asc">FreeBSD-SA-04:12</ulink>。 &merged;</para>

    <para>修正了在处理某些 Linux 系统调用时没有进行有效的验证而导致的访问任意内存范围的问题。
      关于这一问题的详情,请参考安全公告 <ulink
      url="ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:13.linux.asc">FreeBSD-SA-04:13</ulink>。 &merged;</para>

    <para>通过将 <application>CVS</application> 升级到 1.11.17,
      修正了 <application>CVS</application> 中可能导致信息泄露、
      拒绝服务, 或执行任意代码的一系列程序设计问题。
      要了解更详细的信息, 请参见安全公告 <ulink
      url="ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:14.cvs.asc">FreeBSD-SA-04:14</ulink>。</para>

    <para>修正了 <literal>CONS_SCRSHOT</literal> &man.ioctl.2;
      中的一处问题; 这个问题可能导致未授权的对内核内存的访问,
      而这种访问可能会导致泄露敏感信息、 绕过访问控制机制,
      或导致特权提升。
      要了解更详细的信息, 请参见安全公告 <ulink
      url="ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:15.syscons.asc">FreeBSD-SA-04:15</ulink>。</para>
  </sect2>

  <sect2 id="kernel">
    <title>对于内核的改动</title>

    <para>加入并默认启用了 <literal>ADAPTIVE_MUTEXES</literal>。
      当另一个 CPU 上运行的线程拥有某个 mutex 时,
      这将让受阻的 mutex 自旋。
      如果要关闭这个特性, 则需要设置内核选项
      <varname>NO_ADAPTIVE_MUTEXES</varname>。</para>

    <para>新增了 <varname>ADAPTIVE_GIANT</varname>,
      它使得启用了自适应 mutex 时,内核全局锁 (Giant)
      也以自适应 mutex 的方式处理。 这可以改善 SMP 机器的性能,
      并在 i386 上默认启用。</para>

    <para>&man.bus.dma.9; 接口新增了加载缓冲时对于 DMA tag
      中的对齐和边界限制的透明识别支持,
      而 <function>bus_dmamap_load()</function>
      将在需要时自动使用弹回缓冲。
      此外, 还增加了一组用于 &man.bus.dma.9; 统计的
      sysctl <varname>hw.busdma.*</varname>。</para>

    <para>重新实现了 &man.contigmalloc.9;
      并采用了一种在执行程序时无论压力大小都能更好地工作的算法。
      原先的算法可以通过设置 sysctl <varname>vm.old_contigmalloc</varname>
      来启用, 具体情况在 &man.contigmalloc.9; 联机手册中有所介绍。</para>

    <para>&man.devfs.5; 路径规则现在可以在目录中正常工作了。</para>

    <para>删去了 &man.getvfsent.3; API。</para>

    <para>去掉了 loader 变量 <varname>hw.pci.allow_unsupported_io_range</varname>。</para>

    <para>&man.jail.2; 目前可以支持从 jail 中使用 raw sockets 了。
      默认情况下,这一功能处于关闭的状态,可以通过
      <varname>security.jail.allow_raw_sockets</varname> sysctl 来控制。</para>

    <para>&man.kqueue.2; 新增了一种叫做
      <literal>EVFILT_FS</literal> 的过滤器支持,
      它可以用信号将一般的文件系统事件传达给用户进程空间。
      目前, mount, unmount, 以及 NFS 的 up/down
      可以使用信号传递。</para>

    <para>KDB, 一个新的调试器框架, 被加入进来。
      这包括一个被重写以支持线程、 RLE 压缩等功能的全新 GDB 后端, 
      而前端则提供了可以配置多个不同调试器后端的框架,
      并为这些后端提供基本服务。 此外修改了下述选项:</para>

    <itemizedlist>
      <listitem>
	<para>KDB 可以通过内核选项 <literal>options KDB</literal>、
	  <literal>options GDB</literal> 以及 <literal>options DDB</literal>
	  来默认地启用。
	  <literal>DDB</literal> 和
	  <literal>GDB</literal> 用于指定使用哪一个 KDB 后端。</para>
      </listitem>

      <listitem>
	<para><literal>WITNESS_DDB</literal> 改名为
	  <literal>WITNESS_KDB</literal>。</para>
      </listitem>

      <listitem>
	<para><literal>DDB_TRACE</literal> 改名为
	  <literal>KDB_TRACE</literal>。</para>
      </listitem>

      <listitem>
	<para><literal>DDB_UNATTENDED</literal> 改名为
	  <literal>KDB_UNATTENDED</literal>。</para>
      </listitem>

      <listitem>
	<para><literal>SC_HISTORY_DDBKEY</literal> 改名为
	  <literal>SC_HISTORY_KDBKEY</literal>。</para>
      </listitem>

      <listitem>
	<para>去掉了 <literal>DDB_NOKLDSYM</literal>。
	  新的 DDB 后端支持连接前符号的查找,
	  并能够查找 KLD 的符号。</para>
      </listitem>

      <listitem>
	<para>去掉了 <literal>GDB_REMOTE_CHAT</literal>。
	  修改了 GDB 协议以适应 &os; 的需要。
	  同时, GDB 也包括了控制台输出。</para>
      </listitem>
    </itemizedlist>

    <para>KDB 同时还作为任何需要使用调试功能代码的统一枢纽,
      例如进入调试器, 或处理后备的 break 序列。
      基于这样的原因, 前端不再是可选的。
      只要可能, 所有的调试器请求都会被转发或交给当前的后端来进行处理。
      可以通过
      <varname>debug.kdb.current</varname> sysctl 来选择当前使用的后端。
      已经配置好的后端列表可以通过
      <varname>debug.kdb.available</varname> sysctl 得到。
      另外, 可以通过写
      <varname>debug.kdb.enter</varname> sysctl 来进入调试器。</para>

    <para>增加了新的 sysctl <varname>debug.kdb.stop_cpus</varname>。
      这可以控制在进入调试器时是否发出 IPI (处理器间中断),
      以便在调试时停止它们的运行。</para>

    <para arch="amd64">amd64 上的动态内核模块已处于可用状态,
      在编译时默认开启。</para>

    <para arch="amd64">增加了初步的用于在 amd64 上运行 32-位
      Linux 程序的支持。 这可以通过
      <literal>COMPAT_LINUX32</literal> 内核选项来启用。</para>

    <para>增加了 <literal>MAC_STATIC</literal>, 这一内核选项用于在动态加载和卸载 MAC
      规则时禁止内部 MAC Framework 同步保护。</para>

    <para>&man.mac.bsdextended.4; 策略现在支持只有在全部规则匹配时才匹配并应用第一个策略。
      这一特性可以通过新的 sysctl
      <varname>mac_bsdextended_firstmatch_enabled</varname> 来启用。</para>

    <para>&man.mac.bsdextended.4; 策略能够在 syslog 的
      <literal>AUTHPRIV</literal> facility 中记录失败尝试了。
      这一特性可以通过新的 sysctl
      <varname>mac_bsdextended_logging</varname> 来启用。</para>

    <para>mbuma 取代了 mballoc, 这是一个基于 UMA 框架之上的扩展 Mbuf 和 Cluster 分配系统。
      这一变动使得不再需要 <literal>NMBCLUSTERS</literal> 。
      clusters 的最大数目依然取决于 <literal>maxusers</literal>,
      但如果在启动时将 <varname>kern.ipc.nmbclusters</varname> 设置为零,
      则可以让其不受限制。</para>

    <para><filename>/dev/kmem</filename>、 <filename>/dev/mem</filename>、
      以及 <filename>/dev/io</filename>
      现在可以作为内核可加载模块来使用了。</para>

    <para>修正了 &man.mmap.2; 在将内存页标记为 <literal>PROT_NONE</literal>
      时仍然可能在特定情况下被读取的问题。 &merged;</para>

    <para arch="i386,pc98">增加了新的内核选项 <literal>MP_WATCHDOG</literal>,
      它可以将系统中的一个逻辑 CPU 作为一个专用的
      watchdog 来使用。 一旦内核停止响应, 它将进入调试器或产生一个
      NMI (不可屏蔽中断)。
      提供了许多 sysctl 用于在处理器的 idle 线程中启用 watchdog;
      而一个 callout 将在 watchdog 中复位计数器。
      如果十秒之内 callout 仍然没有复位计数器,
      则超时进程将启动。
      <varname>debug.watchdog_cpu</varname>
      sysctl 可以用来选择执行 watchdog 的 CPU。</para>

    <para arch="i386,pc98">增加了 <varname>debug.leak_schedlock</varname>
      sysctl。 这将让泄漏了 sched 锁的 sysctl 处理过程在锁上自旋以触发
      <literal>MP_WATCHDOG</literal> 选项所提供的 watchdog。</para>

    <para>增加了加载器选项 <varname>debug.mpsafenet</varname> 并默认开启。
      这将使 &os; 的网络协议栈在不使用
      Giant 的条件下执行,
      从而通过提高并行度和减少网络处理延迟来达到提高性能的目的。
      请注意如果启用了 &man.ng.tty.4;
      Netgraph 节点类型、 KAME IPsec、 以及 IPX/SPX
      子系统中的任何一个都将导致启动时使用采用 Giant 的网络操作,
      如果在运行时加载它们则将会有警告说明这些组件需要 Giant
      锁才能够正常工作。</para>

    <para>增加了新的内核选项 <varname>NET_WITH_GIANT</varname>。
      这将还原 debug.mpsafenet 的默认值
      <literal>0</literal>, 它主要用于编译已知的非线程安全的组件,
      或需要更为保守的配置的情形。</para>

    <para>增加了新的加载器变量 <varname>debug.mpsafevm</varname>。
      目前设置它将使填零缺页在绝大多数时候以无 Giant 的形式运行。</para>

    <para arch="alpha,amd64,i386">增加了新的内核选项
      <literal>PREEMPTION</literal>。
      它使得内核中的线程能够被优先级更高的线程抢占。
      这有助于改善交互性, 并允许中断线程更早地执行而不是等待。</para>

    <para>在 dev sysctl 中加入了一层 devclass 以支持按分层可变的设备变量。
      这样, <varname>dev.foo0.bar</varname> 现在应改作 <varname>dev.foo.0.bar</varname>,
      同时,使用 <varname>dev.foo.bar</varname> 也成为可能。</para>

    <para>新增了 sysctl, <varname>kern.always_console_output</varname>
      可以用来控制内核是否把所有输出放到
      <varname>TIOCCONS</varname>。</para>

    <para>加入了一个用于检测当前使用的调度器名称的 <varname>kern.sched.name</varname>
      sysctl。 考虑到一致性, <varname>kern.quantum</varname> sysctl
      被改名为 <varname>kern.sched.quantum</varname>。</para>

    <para>&man.pci.4; 总线资源和电源管理进行了更新。

      <note>
	<para>虽然 &man.pci.4; 总线电源状态管理默认启用,
	  它可能在一些系统上引发问题。 可以通过将
	  <varname>hw.pci.do_powerstate</varname> 设置为
	  <literal>0</literal> 来禁止它。</para>
      </note>
    </para>

    <para>加入了作为附加调度器的 ULE 调度器。
      请注意被称为 4BSD 的那个传统的调度器仍然是 <filename>GENERIC</filename>
      内核的默认调度器。 对于一般用户来说, 
      已经有很多反馈认为在很多情况下操作系统的交互性得到了改善。
      这意味着系统忙时交互式应用程序中 <quote>跳跃</quote> 和 <quote>颠簸</quote>
      的现象变得更少。 这并不是说在磁盘子系统超载时的问题得以避免,
      但在 CPU 超载时确实有很大的改善。 对于 SMP 的机器,
      ULE 提供了 CPU 独立运行队列来支持 CPU 附着、 CPU 绑定,
      以及高级的超线程支持, 同时也提供了未来进行进一步优化的框架。
      随着内核细粒度上锁的持续进行, 这个调度器将能够更有效地利用可用的并行资源。</para>

    <para>&man.vm.map.findspace.9; 中使用的线性查找算法已经为映射项
      splay 树上的 O(log n) 算法所取代。
      这显著地减少了 &man.vm.map.findspace.9; 在使用了成百或上千个
      &man.mmap.2; 区域的应用程序中所需要的开销。</para>

    <para>加载器变量 <varname>debug.witness_*</varname>
      的名字被改为 <varname>debug.witness.*</varname>。</para>

    <!-- Above this line, sort kernel changes by manpage/keyword-->

    <para>&os; 的动态和静态连接器加入了线程本地存储 (TLS) 的支持,
      这是一个 <application>GCC</application> 特性,
      通过加入 <literal>__thread</literal> 修饰符来声明全局和静态变量。
      这个修饰符表示那个变量的值是线程本地的;
      一个线程改变它的值时, 不会影响到其他任何一个线程。</para>

    <para>内核中的文件描述符分配代码进行了更新,它派生于与 OpenBSD 类似的代码。</para>

    <para arch="sparc64">在 &os;/sparc64 上, <varname>time_t</varname>
      由 32-位 改为 64-位。

      <note>
	<para>由于这一变动不是向前兼容的,因此旧有系统上使用 32-位
	  <varname>time_t</varname> 构建的,或调用了处理
	  <varname>time_t</varname> 值的系统调用的程序,都必须重新编译。
	  关于如何从源代码完成升级的更详细信息在
	  <filename>/usr/src/UPDATING.64BTT</filename> 中有所说明。</para>
      </note>
    </para>

    <para arch="i386">现在可以使用 Intel C/C++ Compiler (可以通过 <filename
      role="package">lang/icc</filename> port 安装) 来编译 &os;/i386
      内核了。</para>

    <sect3 id="boot">
      <title>引导区和 loader 的变化</title>

      <para arch="i386">加入了支持串口控制台的
	<filename>boot0</filename> 版本。 可以通过 &man.boot0cfg.8;
	并使用 <option>-b</option> <filename>/boot/boot0sio</filename>
	将其写入磁盘。</para>

      <para arch="i386"><filename>cdboot</filename> 绕过了由于 BIOS
  问题导致某些系统无法从 USB 光驱启动的问题。</para>

      <!-- Above this line, order boot loader changes by keyword-->

    </sect3>

    <sect3 id="proc">
      <title>硬件支持</title>

      <para arch="i386">增加了用于利用由 ACPI 控制的、类似热键和 LED 等硬件功能的驱动程序
	&man.acpi.asus.4; 以配合 ASUSTek 笔记本。</para>

      <para arch="i386">增加了用于支持 Panasonic 笔记本电脑热键的
	&man.acpi.panasonic.4; 驱动。 目前它支持
	Let's note (在日本以外的地区是 Toughbook) CF-R1N、 CF-R2A、 以及
	CF-R3。</para>

      <para arch="i386">增加了使用 Toshiba 的硬件控制接口以利用其硬件功能的 &man.acpi.toshiba.4;
	驱动程序以配合 Toshiba 笔记本, 例如视频输出切换。</para>

      <para>增加了 &man.acpi.video.4; 驱动程序,以便通过 ACPI 视频扩展来控制视频切换以及背光亮度。</para>

      <para arch="i386">新的 &man.acpi.4; 驱动程序能够支持设备相关的 sysctl
(例如, <varname>dev.root0.nexus0.acpi0.acpi_lid0.wake</varname>)
	以便让用户设置是否允许某一个具体的设备唤醒系统。</para>

      <para arch="i386">更新了 &man.acpi.4; 驱动,在已知有问题的 BIOS 上自动禁止 ACPI。
	可以通过调整 loader 参数
	<varname>hint.acpi.0.disabled</varname> 为 <literal>0</literal>
	来关闭这一变化。</para>

      <para arch="amd64">&man.agp.4; 驱动增加了对 AMD64 图形
      aperture 重定位表 (GART) 的支持。</para>

      <para arch="i386">增加了用于 Cronyx Tau 同步串行适配器的 &man.ctau.4; 驱动。
      &os; 正式接纳它之前, <quote>ct</quote> 已经为人们所熟知。 &merged;

	<note>
	  <para>这一驱动的名字发生了变化,但网络接口仍然沿用了
	    <devicename>ct</devicename> 的名字。</para>
	</note>
      </para>

      <para arch="i386,pc98">加入了用于 Cronyx Tau-PCI 同步串行适配器的 &man.cp.4; 驱动。</para>

      <para arch="i386,pc98">由于无法适应新的系统,这一版本中删去了 <devicename>dgb</devicename>
	(DigiBoard 智能串行卡) 驱动。
	取代它的是 &man.digi.4; 驱动。</para>

      <para>重写了 &man.nmdm.4; 以提高其可靠性。</para>

      <para>删去了 <devicename>raid(4)</devicename> 驱动
	(来自 NetBSD 的 RAIDframe 磁盘驱动)。
	它目前无法正常运行, 而且需要大量的工作使其能够与
	5-STABLE 的 &man.geom.4; API 协调工作。</para>

      <para><filename>GENERIC</filename> 内核删去了
	&man.pcic.4; 驱动, 因为它已经不再维护了。
	这一选项已经被注释掉很久了。</para>

      <para arch="i386">&man.psm.4; 和 &man.moused.8; 驱动现在支持
	Synaptics TouchPad 了。</para>

      <para arch="i386">随机数生成设备 &man.random.4; 现在支持
	VIA C3 Nehemiah (Stepping 3 或更高) CPU 上的硬件随机数发生器 (RNG) 了。</para>

      <para arch="sparc64">&man.sab.4; 可以支持
	<literal>BREAK_TO_DEBUGGER</literal> 内核选项了。</para>

      <para arch="i386,pc98">加入了用于支持 Specialix I/O8+ 和 I/O4+ 智能多口串行控制器的
	<devicename>sx</devicename> 驱动。</para>

      <para arch="alpha">从 GENERIC 中删除了 <devicename>tga</devicename>
	驱动, 因为它需要大量的修改才能在启动时不到止内核崩溃。
	建议使用串口控制台或普通的
	<devicename>vga</devicename> 卡来临时替代它。</para>

      <para arch="alpha">Support for TurboLaser class machines has been
	removed.</para>

      <para arch="alpha,amd64,i386">加入了针对 &man.uart.4; 设备
	<varname>hw.uart.console</varname> 以及
	<varname>hw.uart.dbgport</varname> 的内核环境变量。
	他们可以被用来选择串行控制台和调试所使用的端口及其属性。</para>

      <para>增加了 &man.ubser.4; 设备驱动以支持
	BWCT 控制台管理串行适配器。</para>

      <para>增加了用于 Cypress CY7C637xx 和 CY7C640/1xx 系列 USB 到 RS232
	桥的 &man.ucycom.4; 驱动, 使用它们的硬件包括 DeLorme Earthmate USB GPS
	接收器 (这是这个驱动目前支持的唯一设备)。 这一驱动程序目前并不完整,
	目前它还没有提供流量和输出控制。</para>

      <para arch="i386">删除了很多用于旧的 ISA 卡的驱动程序,
	这其中包括,
	用于支持基于 GI1904 的手持式扫描仪的 <devicename>asc</devicename> 驱动,
	用于支持 CORTEX-I Frame Grabber 的 <devicename>ctx</devicename> 驱动,
	用于支持 National Instruments AT-GPIB 和 AT-GPIB/TNT 板的 <devicename>gp</devicename> 驱动,
	用于支持 Genius GS-4500 手持式扫描仪的 <devicename>gsc</devicename> 驱动,
	用于支持 DEC EtherWORKS II 和 III 以太网控制器的 <devicename>le</devicename> 驱动,
	用于支持基于 RealTek RTL 8002 的便携式以太网适配器的 <devicename>rdp</devicename> 驱动,
	用于支持  Creative Labs Video Spigot 视频采集卡的 <devicename>spigot</devicename> 驱动,
	用于支持 Stallion Technologies 多口串行控制器的 <devicename>stl</devicename> 和 <devicename>stli</devicename> 驱动,
	以及用于支持 Archive/Wangtek 磁带机的 <devicename>wt</devicename> 驱动。
	这些驱动程序目前都无法正常工作,而且需要相当多的改动才能够让它们在
	5-CURRENT 新的 API 中正常工作。
	用于支持它们的 ioctl 以及工具如
	<devicename>sasc</devicename> 和 <devicename>sgsc</devicename>
	也一并删去了。</para>

      <para>设备驱动的基础结构 (以及许多驱动程序) 进行了改进。
	这些改进中最重要的部分包括: 更多的驱动程序现在使用自动分配的 major numbers
	(过去是静态的)。 此外,对于伪-设备克隆的功能也进行了加强。
	另外,还有一些对于驱动程序 API 的修改,这包括在 <varname>struct
	  cdevsw</varname> 中增加 <varname>d_version</varname> 字段。
	需要注意的是,第三方驱动程序需要重新编译才能够使用。</para>

      <sect4 id="mm">
	<title>多媒体支持</title>

	<para><devicename>meteor</devicename> (视频捕捉卡)
	  驱动由于无法使用以及无人维护而被删去。</para>

	<para>直接渲染管理器 (DRM) 代码进行了更新,
	  目前的版本是来自 the DRI Project CVS 2004 年 5 月 26 日的快照版本。
	  这一更新包含了新的 PCI ID, 以及用以支持 Radeon 的套件。</para>

	<para>用于支持各式声卡的驱动程序进行了重新组织;
	  <literal>device sound</literal> 是通用的声卡驱动,
	  而 <literal>device snd_*</literal> 则提供具体设备的声音驱动。
	  删除了用于支持串口和其他声卡的 <devicename>midi</devicename>
	  驱动。 更多细节请参考相应的联机手册:
	  &man.sound.4;, &man.snd.ad1816.4;, &man.snd.als4000.4;, &man.snd.cmi.4;,
	  &man.snd.cs4281.4;, &man.snd.csa.4;, &man.snd.ds1.4;, &man.snd.emu10k1.4;,
	  &man.snd.es137x.4;, &man.snd.gusc.4;, &man.snd.maestro3.4;,
	  &man.snd.sbc.4;, &man.snd.solo.4;, 以及 &man.snd.uaudio.4;。</para>

	<para>修改了 &man.sound.4; (之前的 &man.pcm.4;) 驱动, 在启动时读取
	  <filename>/boot/device.hints</filename>
	  从而允许设置混音器通道的默认值。
	  需要注意的是目前设备驱动在
	  <filename>/boot/device.hints</filename> 中使用的名字仍然是
	  <literal>pcm</literal>。 更多信息和例子可以在 &man.sound.4;
	  联机手册中找到。</para>
      </sect4>

      <sect4 id="net-if">
	<title>网络接口设备支持</title>

	<para arch="i386">增加了用于支持 Aironet Arlan 655 网卡的
	  &man.arl.4; 驱动。 &merged;</para>

	<para arch="sparc64">&man.dc.4; 驱动现在支持将 MAC 地址保存在
	  OpenFirmware 的 sparc64 Davicom 网卡了。</para>

	<para>修正了重新配置 &man.em.4; 时造成网络停顿的驱动程序错误。 &merged;</para>

	<para>增加了用于在 FireWire 上支持 IP 的 &man.fwip.4; 驱动。
	  需要说明的是, 目前广播通道号是硬编码的, 并且多播通道分配的
	  MCAP 目前还不被支持。
	  这一驱动的目标是符合 RFC 2734 和 RFC 3146 标准,并最终取代 &man.fwe.4;
	  驱动。</para>

	<para>&man.fxp.4; 采用类似 
	  <varname>dev.fxp0</varname> 这样的 sysctl 变量名,因此可以为不同的设备设置不同的参数。</para>

	<para>&man.fxp.4; 提供了对其接收扩展以太网帧容量,
	  <literal>VLAN_MTU</literal> 的控制能力。
	  用户可以通过使用 &man.ifconfig.8;
	  <option>vlanmtu</option> 以及 <option>-vlanmtu</option>
	  来改变默认设置。</para>

	<para arch="i386,pc98"><devicename>hea</devicename>
	  (Efficient Networks, Inc. ENI-155p ATM 适配器)
	  驱动由于无法使用而被删除。 其功能目前已经集成到了
	  &man.en.4; 驱动中。</para>

	<para>改进的 &man.hme.4; 驱动现在内建了长帧支持,
	  在和 &man.vlan.4; 联用时可以使用与 Ethernet 同样的 MTU 了。</para>

	<para>&man.hme.4; 驱动现在能够支持
	  TCP/UDP 发送/接收 校验和下载了。
	  由于 &man.hme.4; 不会对 UDP 数据报进行校验和补偿,
	  因此可能会让它取 <literal>0x0</literal>。
	  UDP 发送校验和下载在默认时是禁用的。
	  可以通过使用 &man.ifconfig.8; 来设置特殊的连接选项
	  <option>link0</option> 重新激活它。</para>

	<para>加入了用于支持 Intel PRO/10GBE 万兆以太网卡的 &man.ixgb.4;
	  驱动程序。 &merged;</para>

	<para arch="i386">由于无人维护和无法使用, 删去了 lmc
	  (LAN Media Corp. PCI WAN adapter) 驱动。</para>

	<para arch="i386">由于无法适应新系统而且无人维护,
	  这一版本不再包含 <devicename>loran</devicename>
	  (Loran-C 接收器) 驱动。</para>

	<para arch="i386">&os; 现在提供了能够用来在 &os;/i386 上使用 &microsoft.windows;
	  NDIS 网络设备驱动的二进制仿真层。 它包括了一个 &windows; <filename>.SYS</filename>
	  文件的重定位/连接器, 以便在 &os; 内核和 NDIS API 之间建立接口,
	  使用 &os; 内建的内核和功能来模拟它。
	  这一系统支持 PCI (&man.pci.4;) 和 CardBus(&man.cardbus.4;) 网络设备,
	  原则上也能适应一般的以太网和无线网卡。
	  详情请参考 &man.ndis.4; 和 &man.ndiscvt.8;。</para>

	<para>修正了导致 &man.nge.4; 驱动的 VLAN 支持不能正常工作的问题。  &merged;</para>

	<para>修正了 &man.rl.4; 驱动中许多与 &man.polling.4; 支持有关的问题。  &merged;</para>

	<para>修正了 &man.sk.4; 驱动中许多与多播和混杂模式处理有关的问题。</para>

	<para>改进的 &man.ste.4; 提供了 &man.polling.4; 支持。 &merged;</para>

	<para>增加了 &man.udav.4; 驱动。 它提供了 Davicom DM9601
	  芯片组上的 USB 以太网适配器支持。</para>

	<para>增加了用以支持 VIA Networking Technologies VT6122 千兆以太网芯片和
	  集成 10/100/1000 copper PHY 的 &man.vge.4; 驱动。</para>

	<para>改进的 &man.vr.4; 提供了 &man.polling.4; 支持。 &merged;</para>

	<para>禁用了 &man.xl.4; 驱动中的 TX 校验和支持,
	  因为它无法正确地工作, 并降低了传输速率。 &merged;</para>

	<para>接口的 &man.polling.4; 支持现在能够以接口为单位启用和禁用了。
	  以下这些驱动能够支持 &man.polling.4;: &man.dc.4;, &man.fxp.4;,
	  &man.em.4;, &man.ixgb.4;,
          &man.nge.4;, &man.re.4;, &man.rl.4;, &man.sis.4;, &man.ste.4;, &man.vge.4;,
          以及 &man.vr.4;。 除了 &man.ixgb.4; 之外, 其他驱动都具有通过
          &man.ifconfig.8; 来控制的能力。 &merged;</para>
      </sect4>
    </sect3>

    <sect3 id="net-proto">
      <title>网络协议</title>

      <para>&man.gre.4; 隧道驱动现在支持了 WCCP 版本
	2。</para>

      <para>&man.ipfw.4; 规则增加了 <literal>versrcreach</literal>
        选项, 该选项用于验证到包源地址的路由确实已经存在。
	这个选项对于在路由表中包含整个 Internet 的路由器
	(BGP) 非常有用, 它能够帮助路由器拒绝伪造的或无法路由的源地址。
	例如,

	<programlisting>deny ip from any to any not versrcreach</programlisting>

	等价于 Cisco IOS 的:

	<programlisting>ip verify unicast source reachable-via any</programlisting>
      </para>

      <para>&man.ipfw.4; 规则增加了 <literal>antispoof</literal>
        选项, 该选项用以验证进入的包是否属于直接联结的网络。
	如果包来自直接联结的网络, 则会比较包是否来自那个网络所在的接口。
	如果包来自的接口不是连接它的接口, 则不匹配这个规则。
	例如:

	<programlisting>deny ip from any to any not antispoof in</programlisting>
      </para>

      <para>&man.ipfw.4; 规则增加了 <literal>jail</literal>
        选项, 用以将规则与特定的 prison ID 匹配。
	例如:

	<programlisting>count ip from any to any jail 2</programlisting>

	需要说明的是, 这一规则目前只能与 TCP 和 UDP 包联用。
      </para>

      <para>&man.ipfw.4; 增加了查找表支持。 这一特性对于处理大的松散地址集很有用。
        &merged;</para>

      <para>&man.ipfw.4; 的 <literal>forward</literal> 规则现在必须通过内核选项
	<literal>IPFIREWALL_FORWARD</literal> 编译到内核中才能启用了。</para>

      <para>加入了新的 sysctl <varname>net.inet.ip.process_options</varname>
	以控制 IP 选项的处理。 当设置为
	<literal>0</literal> 时, 将忽略 IP 选项并不加修改地传递它们,
	设置为 <literal>1</literal> 则所有的 IP 都会被处理 (这是默认值),
	而设置为 <literal>2</literal> 时所有包含 IP 选项都会用对应的
	ICMP 过滤器禁止消息来拒绝。</para>

      <para>修正了一些来自 KAME 的 IPsec 实现中的 bug。
	这些 bug 与内存对象在全部引用被移除之前实施释放有关,
	可能导致在清除安全策略数据库 (SPD) 时产生一些不正确的行为或内核崩溃。</para>

      <para>&man.natd.8; 通过新增的 <option>globalports</option> 选项支持运行多个实例。
	这使得能够把 &man.natd.8; 绑定到不同的网络接口上, 并分享负荷。</para>

      <para>新增了 &man.ng.atmllc.4; Netgraph 节点, 用以处理
        RFC 1483 ATM LLC 封包。</para>

      <para>新增了 &man.ng.hub.4; Netgraph 节点,
	用以支持类似以太网集线器所完成的包分发工作。 &merged;</para>

      <para>改进的 &man.ng.rfc1490.4; Netgraph 节点现在支持通常用于同 RFC 1940
	帧转发链路联用的 Cisco 风格的封装了。</para>

      <para>新增了 &man.ng.sppp.4; Netgraph 节点, 这是一个 &man.netgraph.4
	到原先的 &man.sppp.4 网络模块的接口,可以用于同步线路。</para>

      <para>提供了新的 Netgraph 方法, 从而允许恢复某些消失的
	4.<replaceable>X</replaceable> 风格的 &man.ng.tee.4; Netgraph 节点的特性。</para>

      <para>增加了 &man.ng.vlan.4; Netgraph 节点, 用以支持
        IEEE 802.1Q VLAN 标记。  &merged;</para>

      <para><literal>PFIL_HOOKS</literal> 总被编入内核,
	因此删去了相关的选项。 目前所有 &os; 支持的包过滤器子系统都使用
	<literal>PFIL_HOOKS</literal> 框架了。</para>

      <para>路由 socket 加入了以太网介质的状态的变更通知支持。</para>

      <para>重新实现了 &man.ppp.8; 的链路质量监视 (LQM) 支持。
	由 RFC 1989 描述的 LQM 允许 PPP
	监视正在运行的连接的品质。 &merged;</para>

      <para>更新了虚拟网络接口的克隆功能以及相关的函数,以支持创建 &man.stf.4;
	的叫做 <devicename>stf0</devicename> ,
	<devicename>stf</devicename>,或者 <devicename>6to4</devicename>
	这样的接口。 这一改动将破坏向前兼容性; 例如,
	<command>ifconfig stf</command> 现在会创建名为 <devicename>stf</devicename>
	而不是 <devicename>stf0</devicename> 的接口,也不会在 stdout 输出
	<devicename>stf0</devicename>。</para>

      <para>下列 TCP 特性被默认开启: RFC
	3042 (受限重传), RFC 3390 (增大的初始拥塞窗口尺寸),
	TCP 带宽-延迟积限制。 同时加入的还有一组 sysctl
	<varname>net.inet.tcp.rfc3042</varname>、
	<varname>net.inet.tcp.rfc3390</varname>、 以及
	<varname>net.inet.tcp.inflight.enable</varname>
	用于控制这些特性。 &man.tcp.4; 提供了更多的细节。</para>

      <para>&os; 的 TCP 现在加入了最小 MSS 支持
	(可以通过
	<varname>net.inet.tcp.minmss</varname> sysctl 来设置)
	并可以限制单个连接发送大量小 TCP 分片的速率
	(通过设置
	<varname>net.inet.tcp.minmssoverload</varname> sysctl)。
	超过这一限制的连接将被复位并丢弃。
	这一特性能够帮助保护系统免受一种耗竭资源的攻击。</para>

      <para>TCP 实现增加了部分的 (仅限于输出)
	RFC 2385 (TCP-MD5) 摘要支持。 可以通过
	<literal>TCP_SIGNATURE</literal> 和
	<literal>FAST_IPSEC</literal> 这两个内核选项来启用这一特性,
	它是一个用于验证 TCP 会话的选项。
	&man.setkey.8; 现在包含了用于 TCP-MD5 安全关联类的支持。
	&merged;</para>

      <para>对 TCP 连接复位的处理进行了改进,
        在保持与最广泛范围的 TCP 协议栈兼容性的前提下尽可能地提高了复位攻击的难度。</para>

      <para>改进了 RFC 1948 的实现。
	初始序号 (ISN) 的时间偏移部分现在包含了随机的正增量,
	因此 ISN 将总是增加, 无论端口的回收有多快。</para>

      <para>增加了来自 OpenBSD
	的随机的临时端口分配实现。 这一选项默认打开, 并可以使用
	<varname>net.inet.ip.portrange.randomized</varname>
	sysctl 来关闭。 &merged;</para>

      <para>增加了 RFC 2018 所描述的 TCP 选择性确认 (SACK)。
        它能够改进在大量丢包的连接上的 TCP 性能。
        SACK 可以通过 sysctl <varname>net.inet.tcp.sack.enable</varname>
        来启用。</para>
    </sect3>

    <sect3 id="disks">
      <title>磁盘及存储</title>

      <para>&man.ata.4; 驱动现在支持 &man.cardbus.4; ATA/SATA
        控制器。</para>

      <para>修正了 &man.ata.4; 驱动的许多 bug。
	其中最显著的是主/从设备的检测, 以及一些与超时有关的问题上的改进。</para>

      <para>&man.ata.4; 驱动增加了对于 Promise 命令序列的支持,
	用于所有新的 Promise 控制器 (PDC203** PDC206**)。

	<note>
	  <para>同时这也加入了对于将
	    Promise SX4/SX4000 作为 <quote>普通的</quote> Promise ATA
	    控制器的支持; 能够支持 ATA RAID, 尽管只限于
	    RAID0、RAID1 和 RAID0+1。</para>
	</note>
      </para>

      <para>用于 CAM SCSI 磁盘驱动器 (&man.cam.4;) 的
	<literal>DA_OLD_QUIRKS</literal>
	内核选项已经被移除了。 &merged;</para>

      <para arch="pc98">修正了 &man.fd.4; 驱动中的一处自动密度检测 bug。</para>

      <para>修正了 &man.geom.4; 中的一个可能导致 I/O 在某些罕见条件下挂起的问题。</para>

      <para>新增了 <literal>GEOM_CONCAT</literal>
	&man.geom.4; 类以支持将多个磁盘作为一个单独的大磁盘来使用。</para>

      <para>新增了 <literal>GEOM_NOP</literal> &man.geom.4;
	类, 可以用于多种测试目的。</para>

      <para>新增了 <literal>GEOM_RAID3</literal> &man.geom.4; 类来完成
	RAID3 变形, 以及配套的 &man.graid3.8; 工具。</para>

      <para>新增了 <literal>GEOM_STRIPE</literal>
	&man.geom.4; 类, 它实现了 RAID0 变形。
	这个类提供了两个模式: <quote>fast</quote>(高速) 和
	<quote>economic</quote>(经济)。 在高速模式下,
	当使用很小的分条尺寸时, 只会向同一分条的磁盘发送一次
	I/O 请求; 这样做在同样情形下比经济模式,
	以及其他 RAID0 实现要快十倍;
	尽管默认情况下会使用高速模式,
	它会消耗比经济模式更多的内存,
	因为后者每次都会发送请求。
	可以通过将加载器变量
	<varname>kern.geom.stripe.fast</varname> 设置为 0
	来启用经济模式。 此外, 也可以用
	<varname>kern.geom.stripe.maxmem</varname>
	来指定高速模式允许使用的最大内存。</para>

      <para>新增了 GEOM Gate, 包扩新的 <literal>GEOM_GATE</literal>
	&man.geom.4; 类, 以及一些 GEOM Gate 用户级实用工具
	(&man.ggatel.8;、&man.ggatec.8;,
	以及 &man.ggated.8;)。 它支持通过网络导出设备,
	包括那些非 &man.geom.4; 的设备。</para>

      <para>新增了 <literal>GEOM_LABEL</literal>
	&man.geom.4; 类, 用来检测各种文件系统的卷标,
	例如 UFS, MSDOSFS (FAT12, FAT16, FAT32), 以及 ISO9660。</para>

      <para>新增了 <literal>GEOM_GPT</literal> &man.geom.4; 类,
	它用于支持 GUID 分区表 (GPT) 分区, 并能够在单个磁盘上支持大量的分区。
	它已经加入到了 <filename>GENERIC</filename> 的默认选项中。</para>

      <para>新增了 <literal>GEOM_MIRROR</literal> &man.geom.4; 类以支持
	RAID1 功能。 &man.gmirror.8; 可以用来控制这个类。</para>

      <para>新增了 <literal>GEOM_UZIP</literal> &man.geom.4; 类以实现只读的压缩磁盘。
	目前, 它已经能够支持 cloop V2.0 磁盘压缩格式了。</para>

      <para>新增了 <literal>GEOM_VINUM</literal> &man.geom.4; 类以支持
	&man.vinum.4; 和 &man.geom.4;
	之间的互操作。</para>

      <para>&man.ips.4; 能够支持最新的
	Adaptec ServeRAID 系列 SCSI 控制卡了。</para>

      <para arch="sparc64">修正了 &man.isp.4; 驱动的一处 bug,
        这个问题会导致在 SBus 上的卡无法正常工作。</para>

      <para arch="i386">增加了用于支持 3ware 的 9000 系列 PATA/SATA RAID
	控制器的 &man.twa.4; 驱动。 &merged;</para>

      <para>&man.umass.4; 驱动现在支持缺少
	ATAPI MMC 命令的设备, 并能够正确处理超时了。 &merged;</para>

      <para>对 &man.vinum.4; 卷管理器进行了更新, 以利用
        &man.geom.4;, 5.x 的磁盘 I/O 请求变换框架。
	同时增加了一个 <command>gvinum</command> 工具。</para>

      <para arch="sparc64">从 NetBSD 移植了 &man.esp.4; 设备驱动以支持
        Sun Ultra 1e 和 2 上的 SBus SCSI 卡。</para>

      <para>加入了 LSI-类型的软件 RAID 支持。</para>

    </sect3>

    <sect3 id="fs">
      <title>File Systems</title>

      <para>EXT2FS 文件系统的代码现在包括了部分的大文件
	(&gt; 4GB) 支持。 这个支持目前尚不完整,
	例如它会拒绝在没有升级到 <literal>EXT2_DYN_REV</literal>
	或者没有设置
	<literal>EXT2_FEATURE_RO_COMPAT_LARGE_FILE</literal>
	超级块标记的文件系统上创建这样的文件。</para>

      <para>修正了在 NFSv4 客户端中的一处 panic;
	在对只支持 NFSv3/NFSv2 的服务进行操作时可能发生这样的情况。</para>

      <para>增加了 <literal>MSDOSFS_LARGE</literal> 内核选项用以支持超过
	128GB 的 FAT32 文件系统。 此选项在默认时并不开启。
	磁盘上的每个文件将使用至少 32 字节的内核内存;
	此外, 只有在可控的几种特定情况下,
	例如挂接少于一百万文件的只读文件时,等等,
	它才是安全的。 使用 NFS 导出这样的大文件系统目前尚未支持。</para>

      <para>SMBFS 客户端现在增加了 SMB 请求签名的支持,
	这可以防止 <quote>中间人</quote> 攻击, 并且是默认配置下连接
	Windows 2003 服务所需要的。
	由于对每个消息进行签名会带来显著的性能下降,
	这一特性只有在服务器需要它时才会启用;
	它可能会最终成为 &man.mount.smbfs.8; 的一个选项。</para>
    </sect3>

    <sect3>
      <title>基本系统附带的第三方软件</title>

      <para>从 KAME 2004 年 6 月 7 日的快照导入了 <application>ALTQ 框架</application>。
	这次导入破坏了 <varname>struct ifnet</varname>
	的 ABI 兼容性, 并需要重新编译所有的网络驱动。
	另外修改了一些网络设备驱动以支持 ALTQ 框架。
	更新的驱动包括 &man.bfe.4;、&man.em.4;、&man.fxp.4;、
	&man.em.4;、&man.lnc.4;、&man.tun.4;、&man.de.4;、
	&man.rl.4;、&man.sis.4;,以及 &man.xl.4;。</para>

      <para><application>IPFilter</application> 从
	3.4.31 升级到了 3.4.35 版 &merged;。</para>

      <para arch="ia64">来自 Hewlett-Packard 用于 ia64 的 stack unwinder,
	<application>Unwind Express (libuwx)</application>
	引入了内核。</para>
    </sect3>
  </sect2>

  <sect2 id="userland">
    <title>应用程序变动</title>

    <para>&man.acpidump.8; 现在支持 SSDT 表了。 转存或反汇编
      DSDT 会包括存在的任何 SSDT 表。</para>

    <para>&man.bsdlabel.8; 可以支持 <option>-f</option> 参数, 指定在文件而不是磁盘分区上进行操作。</para>

    <para>&man.bsdtar.1; 成为了 &os; 基本系统中默认的 &man.tar.1; 工具。
      <filename>/usr/bin/tar</filename>
      默认时是一个指向
      <filename>/usr/bin/bsdtar</filename> 的符号连接。
      如果要恢复默认使用 <filename>/usr/bin/gtar</filename>,
      则可以用 <varname>WITH_GTAR</varname>
      make 变量来指定。</para>

    <para>加入了用于支持蓝牙 HID (Human Interface Device) 的 <command>bthidcontrol</command>
      和 <command>bthidd</command> 两个命令。</para>

    <para>&man.col.1;, &man.colcrt.1;, &man.colrm.1;,
      &man.column.1;, &man.fmt.1;, &man.join.1;, &man.rev.1;,
      &man.tr.1;, 以及 &man.ul.1; 能够支持多字节字符了。</para>

    <para>&man.conscontrol.8; 现在支持
      <literal>set</literal> 和 <literal>unset</literal>
      来设定和取消虚拟控制台。
      <literal>unset</literal> 将使来自系统的输出, 例如内核的
      &man.printf.9; 总是输出到真正的主控制台。
      另外还提供了一个 tty ioctl 接口
      <literal>TIOCCONS</literal>。</para>

    <para>&man.cron.8 服务程序提供了两个新的选项,
      <option>-j</option> 和 <option>-J</option>,
      用以为普通用户和超级用户的任务启用时钟抖动。
      时钟抖动表示 &man.cron.8 将休眠所指定范围内的一个随机的时间,
      然后再执行任务。 这一特性主要是用于使计划执行得大量任务能够不增加过多的负载而设计的。
      &merged;</para>

    <para>&man.cut.1; <option>-c</option>,
      <option>-d</option>, 以及 <option>-f</option>
      能够正确工作于多字节字符的 locale 了。</para>

    <para>&man.cvs.1; 增加了 <option>iso8601</option>
      选项关键字, 用以显示 ISO 8601 格式的日期。</para>

    <para>&man.daemon.8; 增加了 <option>-p</option>
      选项用于创建 PID 文件。</para>

    <para>&man.dd.1; 增加了 <option>fillchar</option> 选项用在转化模式或
      <option>noerror</option> 配合
      <option>sync</option> 且发生错误时指定占位符。</para>

    <para>&man.df.1; 增加了 <option>-c</option> 选项,
      用以显示文件系统统计数据的总和。</para>

    <para>修正了 &man.df.1; 的一个当指定 <option>-t</option>
      选项而且调用它的用户无权访问某个挂接点时可能显示出无效信息的
      bug。</para>

    <para>从 &os; 基本系统中删除了 <command>doscmd</command> 工具。
      可以通过 &os; Ports Collection 中的
      <filename role="package">emulators/doscmd</filename>
      来安装它。</para>

    <para>&man.dump.8; 和 &man.restore.8; 增加了
      <option>-P</option> 选项用以指定文件和磁带以外的备份方式。
      这一选项通过一个普通的 &man.sh.1; 管道经由
      <varname>$DUMP_VOLUME</varname> 或 <varname>$RESTORE_VOLUME</varname>
      传递给应用程序。
      更多信息请参考 &man.dump.8; 和 &man.restore.8;。</para>

    <para>增加了用以修改系统保存在 EEPROM 或 NVRAM 中配置信息的
      &man.eeprom.8; 工具。 目前的实现能够支持装备了
      Open Firmware 的设备。</para>

    <para arch="pc98">&man.fdcontrol.8;, &man.fdformat.1;, 以及
      &man.fdread.1; 这些工具现在能够在 &os;/pc98 上使用了。</para>

    <para>加入了 &man.fgetln.3; 函数的宽字符版本 &man.fgetwln.3;。</para>

    <para>&man.find.1; 工具增加了 <option>-acl</option>
      选项用以查找包含 &man.acl.3; 的文件。</para>

    <para>&man.find.1; 工具增加了新的
      <option>-depth <replaceable>n</replaceable></option>,
      用以测试当前文件从起点算起的遍历层数是否是 <replaceable>n</replaceable>。
      &merged;</para>

    <para>&man.ftpd.8; 使用当前用户的身份, 而不是
      <username>root</username> 开启数据 socket。
      使用一条 &man.ipfw.8; 的 <literal>uid</literal>
      规则可以用来匹配 FTP 通讯数据了。</para>

    <para>实现了 &man.ftw.3; 和 &man.nftw.3; 两个函数。
      他们用来遍历目录结构。</para>

    <para>增加了用于操作 &man.geom.4; 的 &man.geom.8; 工具。</para>

    <para>GUID 分区表维护工具 &man.gpt.8;
      增加了 <option>remove</option> 命令。 它的
      <option>add</option> 命令增加了 <option>-i</option> 选项,
      允许用户指定新分区的分区号。</para>

    <para>&man.id.1; 增加了 <option>-M</option> 选项以显示当前进程的
      MAC 标签。</para>

    <para>&man.ifconfig.8; 增加了通过 <option>name</option>
      参数在运行时重命名接口名称的支持。</para>

    <para>&man.ifconfig.8; 会显示网络接口的 &man.polling.4; 状态了。 &merged;</para>

    <para>&man.ifconfig.8; 提供了
      <option>vlanmtu</option> 和 <option>-vlanmtu</option> 选项,
      用于控制某些以太网卡接受扩展帧的能力
      (例如包含了超过 1500 字节数据的帧)。</para>

    <para>&man.ifconfig.8; 新增了
      <option>vlanhwtag</option> 和 <option>-vlanhwtag</option>
      选项, 用以控制某些以太网卡在硬件上处理 VLAN 标记的能力。</para>

    <para>&man.indent.1; 新增了 <option>-ldi</option>
      选项用于控制局部变量的缩进。 此外还进行了许多其他的调整。</para>

    <para>&man.indent.1; 新增了 <option>-fbs</option> 和
      <option>-ut</option> 选项用于在同一行上的参数使用空格而不是制表符进行缩进,
      以修正使用的制表符不是 8 个空格的情形。</para>

    <para>&man.ip6fw.8; 新增了 <option>-n</option> 选项,
      以阻止它修改内核中的规则。</para>

    <para>&man.ipcs.1; 新增了 <option>-u</option> 选项以显示关于 IPC
      机制与指定用户有关的信息。</para>

    <para>&man.ipfw.8; 新增了 <option>-b</option> 标志,
      指定后将只显示动作和说明, 而忽略规则实体。</para>

    <para>&man.jail.8; 新增了 <option>-U</option> 选项,
      用于以只在 &man.jail.2; 环境中存在的用户身份执行命令。</para>

    <para>&man.jail.8; 新增了 <option>-l</option> 选项以清除环境。
      除了 <varname>HOME</varname>、<varname>SHELL</varname>、
      <varname>PATH</varname>、<varname>TERM</varname>,以及
      <varname>USER</varname> 之外的环境变量在以指定用户的身份执行时,
      都会像 &man.su.1; 的 <option>-l</option> 选项一样清除掉。</para>

    <para>新增了一个 &man.kgdb.1; 内核调试工具, 它使用
      <application>libgdb</application> 并了解内核线程、
      内核模块和 &man.kvm.3;。</para>

    <para>&man.killall.1; 新增了 <option>-e</option> 标志以便使
      <option>-u</option> 以现行的 (effective) 而非真实的用户
      ID 操作。 &merged;</para>

    <para>&man.libalias.3; 增加了 (通过增加新的 API)
      对在一个进程中的多个变形实例的支持。
      现有的 API 被以新的 API 重新实现, 以保持兼容性。</para>

    <para>增加了用于处理压缩和未压缩的归档文件的
      <application>libarchive</application> 库。
      更多细节请参考 &man.libarchive.3;。</para>

    <para arch="pc98"><application>libdisk</application> 现在使用了
      &os; 中 PC98 的正确磁盘分区数值。 这使得
      &man.sysinstall.8; 的磁盘分区编辑器能够正确地创建覆盖整个磁盘的
      &os; 分区。 &merged;</para>

    <para><application>libdisk</application> 使用
      <varname>d_addr_t</varname> 来表达磁盘地址。
      这使得 &man.sysinstall.8; 能够正确处理超过 1TB 的磁盘和文件系统。</para>

    <para arch="i386,pc98,amd64,ia64">为人们熟知的
      <application>libkse</application> 被命名为
      <application>libpthread</application>, 并成为了
      i386, amd64, 以及 ia64 平台上的默认线程库。
      <application>GCC</application> 的 <option>-pthread</option>
      选项被修改以利用 <application>libpthread</application>
      而不是原先的 <application>libc_r</application>。

      <note>
	<para>使用较早的编译好的程序 (例如, 在这个修改之前编译的
	  ports) 应该使用 &man.libmap.conf.5;
	  将 <application>libc_r</application> 和/或
	  <application>libkse</application> 映射到
	  <application>libpthread</application>。</para>
      </note>

      <note>
	<para>使用由 NVIDIA 提供的驱动和程序库的用户需要使用
	  &man.libmap.conf.5; 来把对
	  <application>libpthread</application> 的引用映射到
	  <application>libc_r</application>, 因为这些工具无法同
	  <application>libpthread</application> 一起正确地运行。</para>
      </note>
    </para>

    <para><application>libpthread</application> 现在支持
      <varname>LIBPTHREAD_SYSTEM_SCOPE</varname> 环境变量以强制
      1:1 模式 (使用系统可见的线程)。 需要说明的是在编译
      <application>libpthread</application> 时使用
      <option>-DSYSTEM_SCOPE_ONLY</option> 参数也可以强制 1:1 模式,
      这也是在目前尚不支持 M:N 模式的架构上的默认设置。
      另外, 也可以用 <varname>LIBPTHREAD_PROCESS_SCOPE</varname>
      环境变量来强制 M:N 模式 (使用进程可见的线程)。
      例如:</para>

    <screen>&prompt.user; <userinput>LIBPTHREAD_SYSTEM_SCOPE=yes <replaceable>threaded_app</replaceable></userinput></screen>

    <para>将强制应用程序 <replaceable>threaded_app</replaceable> 使用系统可见的线程, 而</para>

    <screen>&prompt.user; <userinput>LIBPTHREAD_PROCESS_SCOPE=yes <replaceable>threaded_app</replaceable></userinput></screen>

    <para>则相应地强制它使用进程可见的线程。</para>

    <para>修正了 &man.look.1; 的 <option>-d</option> 选项的一处问题。
      同时, &man.look.1; 也能够正确地工作在多字节字符上了。</para>

    <para>更新的 &man.ls.1; 会根据当前的 <varname>LC_CTYPE</varname>
      处理多字节字符, 以判断它们是否是可显示的。</para>

    <para>&man.make.1; 新增了 <literal>.warning</literal>
      命令。</para>

    <para>&man.make.1; 新增了 <filename>Makefile</filename>
      命令行中符合 POSIX 的 <literal>+</literal> 标志,
      它使得即时在指定了 <option>-n</option> 时也执行那一行。
      举例来说, 在子 make 中这就非常有用。</para>

    <para>&man.make.1; 按照 POSIX 的要求将命令行中的变量赋值
      放到 <varname>MAKEFLAGS</varname> 变量中。
      这使得这样的变量被放入 &man.make.1; 所调用的所有子 make
      (除非在子 make 环境中显式地修改 <varname>MAKEFLAGS</varname>
      变量)。 这也使得子 make 除了使用自身的命令行之外几乎不能覆盖这些变量。</para>

    <para>实现了 &man.nearbyint.3; 和
      &man.nearbyintf.3; 两个 C99 函数。</para>

    <para>实现了 <filename>tgmath.h</filename> C99 头。
      这为 <filename>math.h</filename>
      和 <filename>complex.h</filename>
      中包含浮点数、双精度数和长双精度数的函数实现提供了范型的宏。</para>

    <para>实现了 GNU 扩展中的 &man.mbsnrtowcs.3;
      和 &man.wcsnrtombs.3;。</para>

    <para>&man.newsyslog.8; 新增了一个功能,
      允许用户通过 <filename>newsyslog.conf</filename>
      文件来指定调试选项。</para>

    <para>&man.newsyslog.8; 在处理文件轮转时采用了新的顺序。
      它首先轮转所有需要轮转的文件, 随后向每一个需要通知的进程发送一次信号,
      最后压缩轮转过的文件。</para>

    <para>加入了 &man.nextwctype.3; 函数用于在给定的字符类上执行遍历式迭代。</para>

    <para>增加了目前系统所支持的字符集初步的 UTF-8 支持版本。
      这个初步的支持受益于
      <filename role="package">misc/utf8locale</filename>
      port。</para>

    <para>增加了用于以色列希伯莱文的 <literal>he_IL.UTF-8</literal>
      支持。</para>

    <para>增加了 &man.logins.1; 工具, 用以显示关于用户和系统帐户的附加信息。</para>

    <para>&man.mountd.8; 增加了 <option>-p</option> 选项,
       允许用户指定一个端口用于防火墙规则集。</para>

    <para>&man.netstat.1; 增加了显示当前系统中多播组成员的功能。</para>

    <para>&man.newfs.8; 和 &man.mdmfs.8; 增加了
      <option>-l</option> 标志来在新文件系统上直接启用 MAC
      multilabel 标志, 而无需使用
      &man.tunefs.8;。</para>

    <para>&man.nologin.8; 通过
       &man.syslogd.8; 报告不良登录企图。</para>

    <para>&man.nologin.8; 从 <filename>/sbin/nologin</filename>
       挪到了 <filename>/usr/sbin/nologin</filename>。
       保留了一个 <filename>/sbin/nologin</filename> 符号连接,
       以保持向前兼容性。</para>

    <para>对 NSS 支持实施了一处修正。 者解决了当使用第三方
      NSS 模块 (例如 <filename
      role="package">net/nss_ldap</filename>) 并对大的成员表实施分组时的问题。</para>

    <para>&man.od.1; 新增了 POSIX 风格的多字节字符支持。</para>

    <para>&man.patch.1; 替换成了来自 OpenBSD 的 BSD 授权的版本。
      它包含了 <option>--posix</option> 选项以严格地支持
      POSIX。</para>

    <para>增加了 &man.pgrep.1; 和 &man.pkill.1; 命令, 它们来自 NetBSD。
      它支持 <option>-M</option> 选项,
      用以从指定的 core 文件而不是默认的 <filename>/dev/kmem</filename>
      中进行搜索, 而
      <option>-N</option> 选项则可以从指定的系统而不是默认内核中提取列表。</para>

    <para>&man.ppp.8; 增加了 <quote>set rad_alive
	<replaceable>N</replaceable></quote> 命令用以支持周期性地将
      RADIUS 记账信息发送给 RADIUS 服务器。 &merged;</para>

    <para>&man.ppp.8; 增加了
      <quote>set pppoe [standard|3Com]</quote> 命令用以配置下层的
      &man.ng.pppoe.4; Netgraph 节点。</para>

    <para>&man.ps.1; 的 POSIX/SUSv3 兼容性得到了改善。
      改变包括列出进程 ID 的 <option>-p</option>、
      列出终端名的 <option>-t</option>、
      相当于 <option>-ax</option> 的 <option>-A</option>、
      列出组 ID 的 <option>-G</option>、
      与 <option>-x</option> 功能相反的 <option>-X</option>,
      以及一些小改进。 要获得进一步的详情, 请参考 &man.ps.1;。
      &merged;</para>

    <para>&man.ps.1; 增加了 <option>-O emul</option>
      格式选项, 它将显示进程所在的系统调用模拟环境。</para>

    <para>&man.pw.8; 增加了 <option>-H</option> 选项,
      用以从文件描述符收取加密的口令。 &merged;</para>

    <para>在 &man.rarpd.8; 中的一个导致单个网络接口上绑定了多个
      IP 地址情形下无法正常工作的问题被修正。
      &merged;</para>

    <para>&man.regex.3; 增加了支持多字节字符的正则表达式匹配功能。</para>

    <para>&man.resolver.3; 使用的配置文件增加了
      <literal>timeout:</literal> 和
      <literal>attempts:</literal> 两个关键字。</para>

    <para>改进了 &man.resolver.3; 以及相关的接口的可重入和线程安全性。
      能够同时执行多个 DNS 查找,
      从而大幅度地提高了一些多线程应用程序的运行速度。
      一些多线程的程序需要重新编译; 来自
      Ports Collection 的例子包括 <filename
      role="package">www/mozilla</filename> 及其变体、<filename
      role="package">mail/evolution</filename>、 <filename
      role="package">devel/gnomevfs</filename>, 以及<filename
      role="package">devel/gnomevfs2</filename>。</para>

    <para>&man.rmdir.1; 增加了 <option>-v</option> 标志,
      提供更详细的输出。</para>

    <para>&man.savecore.8; 能够在大于 2GB 的转储文件上正常工作了。</para>

    <para>修正了 &man.script.1; 中的一处问题, 使其在标准输入关闭时能够正常工作。
      这个修正避免了在 <filename
      role="package">sysutils/portupgrade</filename>
      软件包在非交互的模式下执行时的一种危险的交互,
      这种情况下它可能会卸载所有的旧 port 而不重新安装它们。</para>

    <para>加入了 &man.sdpd.8; 蓝牙服务发现协议服务。</para>

    <para>&man.sed.1; <literal>y</literal> (翻译) 命令增加了多字节字符支持。</para>

    <para>增加了 &man.sha1.1; 和 &man.rmd160.1; 两个工具。
      类似 &man.md5.1;, 它们用于计算输入的消息摘要。
      &merged;</para>

    <para>增加了 &man.smbmsg.8;, 一个用于收发 SMBus 消息的小工具。</para>

    <para arch="sparc64">&man.sunlabel.8; 新增了两个标志:
      <option>-c</option> 用于以柱面而非扇区计算分区大小, 而
      <option>-h</option> 用于显示以便于阅读的格式显示尺寸/偏移量。</para>

    <para>&man.talk.1; 改为使用 <hostid>localhost</hostid>
      作为 &man.talkd.8; 中请求包发往的默认机器名,
      当目的和源都是本地时。
      这使得 &man.talk.1; 需要在 <filename>/etc/hosts</filename>
      或 DNS 中有有效的 <hostid>localhost</hostid> 主机项。</para>

    <para>&man.tftpd.8; 新增了两个选项:
      用以允许创建新文件的 <option>-w</option>,
      以及用于设置 umask 的 <option>-U</option>。</para>

    <para>&man.top.1; 支持显示当前的 I/O 数量了。
      这一特性可以通过在显示列表时按 <quote>m</quote>
      或使用命令行选项 <option>-m io</option> 来使用。</para>

    <para arch="amd64">&man.truss.1; 包括了对
      &os;/amd64 的初步支持。</para>

    <para>基本系统中的一些工具 (主要是 GNU
      的工具) 现在使用系统版本的
      &man.getopt.long.3; 而不再是 GNU 的版本。</para>

    <sect3 id="rc-scripts">
      <title><filename>/etc/rc.d</filename> 脚本</title>

      <para><filename>diskless</filename> 脚本被分割为
	<filename>hostname</filename>、
        <filename>resolve</filename>、<filename>tmp</filename>,以及
        <filename>var</filename> 四个脚本。</para>

      <para>加入了用以支持启用了 gdbe 的交换设备的 <filename>gbde_swap</filename> 脚本。
	当在 &man.rc.conf.5; 中指定
	<varname>gbde_swap_enable</varname> 变量时, 在 &man.fstab.5;
	中的一个名为
	<filename>/dev/<replaceable>foo.bde</replaceable></filename>
	将在启动时自动挂接到
	<filename>/dev/<replaceable>foo</replaceable></filename>
	并使用一个以 <filename>/dev/random</filename> 中读到的前
	512 字节的 MD5 散列作为随机密钥。
	注意这样做将无法恢复内核的转储文件。</para>

      <para>增加了 <varname>ip6addrctl_enable</varname> 和
	<varname>ip6addrctl_verbose</varname> 两个变量。
	当 <varname>ip6addrctl_enable</varname> 默认设置为
	<literal>YES</literal>, 将自动安装地址选择策略。
	如果 <filename>/etc/ip6addrctl.conf</filename> 存在则将使用其中的设置,
	否则使用默认设置。 <varname>ipv6_enable</varname> 设置为
	<literal>YES</literal> 则默认策略将是 RFC 3484。
	否则, IPv4 地址的优先策略将成为默认策略。</para>

      <para>加入了 <filename>mixer</filename> 脚本。
	它能在系统关闭时保存当前系统中所有混音器的配置,
	并在下次启动时恢复它。</para>

      <para>对 <filename>named</filename> 脚本进行了更新, 以支持基本系统中的
	<application>BIND 9</application>。 这些变化包括:</para>

      <itemizedlist>
	<listitem>
	  <para>&man.named.8; 默认在 &man.chroot.2; 目录
	    <filename>/var/named</filename> 中运行了。 这一行为可以通过
	    <varname>named_chrootdir</varname> 变量来控制, 相应地,
	    &man.chroot.2; 目录则可以通过 <filename>rc.conf</filename> 中的
	    <varname>named_chrootdir</varname> 变量来改变。</para>
	</listitem>

	<listitem>
	  <para>当 <varname>named_chroot_autoupdate</varname>
	    变量设置为 <literal>YES</literal> (这是默认的) 时,
	    chroot 目录会在启动时自动地配置。 指向
	    <filename>/var/named/etc/namedb</filename> 的符号连接将作为
	    <filename>/etc/namedb</filename> 自动建立, 另外还有一个指向
	    <filename>/var/named/var/run/named/pid</filename> 的符号连接
	    <filename>/var/run/named/pid</filename>。 后者可以通过
	    <filename>rc.conf</filename> 中的
	    <varname>named_symlink_enable</varname> 变量来禁止。</para>
	</listitem>

	<listitem>
	  <para>如果不存在 <filename>rndc.key</filename> 文件,
	    则会自动地创建它。</para>
	</listitem>
      </itemizedlist>

      <para>增加了 <filename>pf</filename> 和 <filename>pflog</filename>
        两个 &man.pf.4; 的脚本。</para>
    </sect3>
  </sect2>

  <sect2 id="contrib">
    <title>基本系统包含的第三方软件</title>

    <para><application>ACPI-CA</application> 代码从
      20030619 快照升级到了 20040527 快照。</para>

    <para><application>AMD (am-utils)</application>
      从 6.0.9 升级到了 6.0.10p1。</para>

    <para>来自贝尔实验室的 <application>awk</application>
      从 2003年7月29日的发行版升级到了2004年2月的发行版。</para>

    <para><application>BIND</application> 从
      8.3.1-REL 版升级到了 9.3.0 版。</para>

    <para><application>Binutils</application> 升级到了
      FSF 2.15 版本分支 2004 年 5 月 23 日 的快照。</para>

    <para><application>CVS</application> 从
      1.11.15 升级到了 1.11.17.  &merged;</para>

    <para><application>FILE</application> 从
      3.41 升级到了 4.10.</para>

    <para><application>gdtoa</application> (一个用于进行二进制和十进制形式的数进行相互转换的函数库)
      从 20030324 升级到了 20040118.</para>

    <para><application>GDB</application> 升级到了
      6.1.1.</para>

    <para><application>GNU GCC</application> 从
      2003 年 11 月 6 日的 3.3.3-prerelease 升级到了
      2004 年 6 月 28 日的 3.4.2-prerelease.</para>

    <para><application>GNU grep</application> 从
      version 2.4d 升级到了 2.5.1.</para>

    <para><application>less</application> 从
      version 371 升级到了 381.</para>

    <para><application>GNU readline</application> 4.3 加入了官方补丁
      001 到 005。</para>

    <para><application>GNU regex</application> 库更新到了
      <application>GNU grep</application> 2.5.1 中附带的版本。</para>

    <para><application>GNU sort</application> 从
      textutils 2.1 升级到了 2004 年 8 月 12 日的快照。</para>

    <para>基本系统中的 <application>GNU tar</application>
      实现现在叫做 <filename>gtar</filename>。</para>

    <para><application>Heimdal Kerberos</application>
       从 0.6 升级到了 0.6.1。</para>

    <para>The <application>ISC DHCP</application> 客户端程序从
       3.0.1 RC10 升级到了 3.0.1。</para>

    <para><application>libpcap</application> 从
      0.7.1 升级到了 0.8.3。</para>

    <para><application>lukemftpd</application>
      从 2003 年 11 月 3 日的快照升级到了 2004 年 8 月 9 日的。</para>

    <para><application>NTP</application>
      从 4.1.1a 升级到了 4.2.0。</para>

    <para><application>OpenPAM</application> 从
      Dogwood 版本升级到了 Eelgrass 版本。</para>

    <para><application>OpenSSH</application> 从
      3.6.1p1 升级到了 3.8.1p1。

      <note>
	<para>&man.sshd.8; 的默认配置发生了变化。
	  第1版的 SSH 协议默认不再启用。
	  另外, 如果启用了 PAM,
	  则通过 SSH 进行口令认证将默认禁用。</para>
      </note>
      </para>

    <para><application>OpenSSL</application> 从
      0.9.7c 升级到了 0.9.7d。 &merged;</para>

    <para>从 <application>OpenSSL</application>
      的一个预发布版本中导入了用于加速 Advanced Encryption
      Standard (AES) 加密的
      <application>OpenSSL</application> VIA C3 Nehemiah
      PadLock ACE (先进密码学引擎) 加密支持。</para>

    <para>来自 OpenBSD 3.5-stable 的 <application>pf</application>
      OpenBSD 的包过滤器导入了 &os; 基本系统的源代码, 并默认安装。
      为此新增了两个用户 (<username>proxy</username> 和
      <username>_pflogd</username>) 以及三个组
      (<username>authpf</username>, <username>proxy</username>,
      以及 <username>_pflogd</username>)。 这些是
      <application>pf</application> 所需要的。</para>

      <note>
	<para>从源代码升级时, 必须首先建立这些用户。
	  <literal>mergemaster -p</literal> 可以帮助用户来完成需要在
	  &man.passwd.5; 和 &man.group.5; 文件上需要完成的操作。
	  可以通过在 <filename>make.conf</filename> 中设置
	  <varname>NO_PF</varname> 来阻止编译
	  <application>pf</application>。</para>
      </note>

    <para>来自 OpenBSD
      <application>pf</application> 的许多命令行工具被导入。
      &man.ftp-proxy.8; 是一个用于和 &man.pf.4; 配合的 FTP 代理,
      &man.pfctl.8; 等价于 &man.ipf.8;,
      &man.pflogd.8; 是一个通过 <literal>if_pflog</literal>
      以 &man.pcap.3; 格式的日志服务程序, 而
      &man.authpf.8; 则是一个用于修改
      &man.pf.4; 规则集的工具。</para>

    <para><application>routed</application> 从
      2.22 升级到了来自 rhyolite.com 的 2.27。
      对于依赖 RIP 的 MD5 验证功能的用户来说,
      &man.routed.8; routed 现在和先前版本的
      &os; 不再兼容; 然而, 它现在与
      Sun, Cisco 以及一些其他制造商的实现兼容了。</para>

    <para><application>sendmail</application> 从
      8.12.10 升级到了 8.13.1。 &merged;</para>

    <para><application>tcpdump</application> 从
      3.7.1 升级到了 3.8.3。</para>

    <para><application>tcsh</application> 从
      6.11 升级到了 6.13.00。</para>

    <para>时区数据库从
      <filename>tzdata2003a</filename> 升级到了
      <filename>tzdata2004a</filename>。</para>

    <para><application>zlib</application> 从
      1.1.4 升级到了 1.2.1。</para>
  </sect2>

  <sect2 id="ports">
    <title>Ports/Packages Collection 基础结构</title>

    <para>绝大多数由 ports 安装的启动和关机脚本采用了新的 &man.rc.8;
      框架, 这一框架从 &os; 5.<replaceable>X</replaceable>
      开始引入, 而一些 ports 仍然在使用旧式的脚本。
      启动时, 新的 &man.rc.8; 风格的脚本将首先执行,
      然后是旧式脚本。 关机时顺序正好相反。</para>

    <para>增加了 distfiles 的 <literal>SIZE</literal> 属性, 并默认启用。
      这一属性可以在下载前观察文件大小。
      <varname>DISABLE_SIZE</varname> 是一个用户可控的开关,
      用以禁制 distfiles 大小检查。 这对 &man.fetch.1; 不支持这一特性的旧版
      &os; 系统,
      以及某些无法正确汇报文件大小的 FTP 代理来说非常实用。</para>

    <para>增加了两个新文件到 ports tree 中, 以向用户说明比较有价值的修改:
      <filename>ports/CHANGES</filename> 列出了
      Ports Collection 及其基础结构的重要修改, 而
      <filename>ports/UPDATING</filename> 则描述了一些在升级时可能遇到的问题,
      类似基本系统中的 <filename>src/UPDATING</filename>。</para>

    <para><filename>pkg_*</filename> 中用于分析版本号的代码进行了重写,
      从而恢复了与 4.x 的兼容性, 以及
      <filename role="package">sysutils/portupgrade</filename>
      的支持。</para>

    <para>包工具现在可以通过关系运算符以及
      csh 风格的 <literal>{...}</literal>
      来进行匹配了。 例如:</para>

    <screen>&prompt.root; <userinput>pkg_info -I 'docbook>=3.0'</userinput></screen>

    <para>将列出 (所有的) 版本号至少是 3.0 的 docbook DTD。
      还加入了一些其他的命令行选项以支持模式匹配。</para>

    <para>对包支持工具处理损坏的包数据库方面进行了改进。</para>

    <para>&man.pkg.create.1; 新增了 <option>-S</option>
      选项, 使所有的 <literal>@cwd</literal> 在创建包时附上前缀。</para>

    <para>&man.pkg.info.1; 新增了 <option>-j</option>
      选项以显示每个包所需要的脚本。</para>
  </sect2>

  <sect2 id="releng">
    <title>发行版建造工程和功能集成</title>

    <para arch="i386,pc98">对启动软盘镜像的制作过程进行了全面的调整。
      最显著的改变是加载器现在能够从分割到多张软盘 (目前的发行版中是两张)
      的 <filename>GENERIC</filename> 内核启动了。
      这极大地改善了从软盘启动的安装过程, 因为现在可以使用与
      CDROM 完全一样的内核 (因此也支持同样多的硬件) 了。
      不再需要切开的 <filename>MFSROOT</filename> 内核,
      而 <filename>mfsroot</filename>
      也不再需要内核模块。
      <filename>boot.flp</filename> 以及
      <filename>driver.flp</filename> 两个软盘镜像已经过时,
      并不再被构建。</para>

    <para>&os; 的密码学支持在这个版本中不再是可选的组件,
      而 <literal>crypto</literal> 也成为了
      <literal>base</literal> 的一部分。
      需要注意的是 <option>-DNOCRYPT</option> 编译选项仍然存在,
      那些确实不需要密码学执行文件的用户仍然可以使用它。</para>

    <para>受支持的 <application>GNOME</application>
      版本从 2.4 升级到了 2.6.2。

      <note>
	<para>如果您过去使用了较早版本的 <application>GNOME</application>
	  桌面系统 (<filename role="package">x11/gnome2</filename>),
	  则简单地使用
	  &man.portupgrade.1;
	  (<filename role="package">sysutils/portupgrade</filename>)
	  在 &os; Ports Collection 中升级将导致非常严重的问题。
	  如果您是 <application>GNOME</application> 桌面的用户,
	  请仔细阅读
	  <ulink url="&url.base;/gnome/docs/faq26.html"></ulink>
	  这里的说明,
	  并使用 <filename>gnome_upgrade.sh</filename> 脚本来升级到
	  <application>GNOME</application> 2.6。</para>

	<para>请注意如果您只是
	  <application>GNOME</application> 函数库的普通用户, 则
	  &man.portupgrade.1; 应该足以升级您的 ports。</para>
      </note>
    </para>

    <para>受支持的 <application>KDE</application> 版本从
      3.1.4 更新到了 3.3.0。</para>

    <para>新增了 <filename role="package">security/portaudit</filename> 工具到
      &os; 的 Ports Collection。 这个工具能够读取包含已知的 ports 漏洞的数据库,
      并向管理员报告。</para>

    <para>&os; 采用 <application>Xorg</application> 代替了
      <application>XFree86</application> 作为默认的 X Window 系统。
      官方支持的版本是 <application>Xorg</application> X11R6.7.0。
      需要说明的是, <application>XFree86</application> 也依然在 &os;
      的 Ports Collection 中 (<filename role="package">x11/XFree86-4</filename>)。</para>
  </sect2>

  <sect2 id="doc">
    <title>文档</title>

    <para></para>

  </sect2>
</sect1>

<sect1 id="upgrade">
  <title>从先前版本的 &os; 升级</title>

  <para><emphasis>强烈建议</emphasis>现有的 &os; 系统用户阅读
    <quote>Early Adopter's Guide to &os; &release.current;</quote>。
    这份文档的名字通常是 <filename>EARLY.TXT</filename>,
    一般也可以随发行说明找到。
    它提供了一些关于升级的说明,但更重要的是,
    它同时讨论了 &os;
    5.<replaceable>X</replaceable> 和运行 &os;
    4.<replaceable>X</replaceable> 时的不同点。</para>

  <important>
    <para>很显然,升级 &os; 时,应该首先备份
      <emphasis>所有</emphasis> 数据和配置文件。</para>
  </important>
</sect1>
OpenPOWER on IntegriCloud