NetBSD 10.0 を発表 (2024年 3月 28日)


# 「はじめに」
以下は https://www.netbsd.org/releases/formal-10/NetBSD-10.0.html の翻訳です。

また、恒例のお断りですが、この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。

では、以下、翻訳です。

# NetBSD 10.0 を発表(2024年3月28日)

:::note info
せっかちな人向けのクイックリンク

私たちの CDN から 10.0 をダウンロードしてください: amd 64 USB、amd 64 CD、さまざまな ARM デバイス、その他すべての完全なリリースディレクトリ。

NetBSD セキュリティオフィサーの PGP 鍵で署名された、ディストリビューション中のすべてのファイルのハッシュ。
:::

## はじめに

NetBSD プロジェクトは、NetBSD オペレーティングシステムの 18 回目のメジャーリリースである NetBSD 10.0 を発表できることを嬉しく思います。

これは、NetBSD 9.xが2019年にブランチ化されて以来、オペレーティングシステムに対する累積的な改良を表しています。

## アップグレード手順

既存のインストールは、インストールイメージを起動してアップグレードオプションを選択することでアップグレードできます。

他の更新方法を使用している場合は、最初にカーネルとモジュールを更新し、その後再起動してユーザー空間を更新します。パッケージリポジトリの URL を調整し、すべてのサードパーティパッケージを更新する必要があります。sysinst(8) で個別にインストールする必要があるかも知れません。

以前のリリースからアップグレードする場合は、 システムの挙動や互換性に対する変更に特に注意してください。

## NetBSD 9.3 からの変更点
### 性能とスケーラビリティ

NetBSD 10 のベンチマークは、NetBSD 9.x と比較して、特にマルチプロセッサやマルチコアシステム上で、 計算機やファイルシステムに依存するアプリケーションの性能とスケーラビリティが大幅に向上していることを示しています。改善された点は以下の通りです：

- カーネルのファイルパスルックアップキャッシュを、より高速なディレクトリ単位の赤黒木を使用するように変更。
- 低速コアと高速コアの混在（例：big.LITTLE Arm CPU）に負荷をより適切に分散させる機能など、スケジューラのパフォーマンスを改善。
- マシンに依存しない仮想メモリシステムのさまざまな最適化：
  - メモリページのルックアップをより高速な基数木アルゴリズムに変更。
  - クリーン/ダーティページの追跡を改善し、大きなファイルの fsync(2) を桁違いに高速化。
  - 並列化の改善: CPU のトポロジを意識したページアロケータに書き換え、グローバルなカウンタを CPU ごとのカウンタに置き換え、ロックの競合を低減。
- select(2) および poll(2) システムコールの性能を向上。
- tmpfs の性能を向上。atime/mtime の遅延更新を実装。
- アーキテクチャ依存の x86 および AArch64 コードの様々な最適化。
- 様々なブート速度の改善。

### セキュリティと品質保証

- WireGuard® との互換性：
  - 新しいインターフェイス wg(4) は WireGuard® 仕様と互換性のある VPN トンネルを提供します。このドライバは実験的なものであり、さらなるテストが必要です。
  - rump[^rump] カーネルサーバを使用したユーザ空間の実装も含まれており、wg-userspace(8) を参照してください。
  - NetBSD の実装は、商用 VPN プロバイダや Android、Linux などで使用されている WireGuard® の実装と動作します。
[^rump]: ごめんなさい、分かりません。これ何なのでしょうか。
- より強力で高速な暗号化：
  - AES アクセラレーションのないシステムで、cgd(4) を使用した効率的なディスク暗号化のための Adiantum 暗号の実装を追加。
  - cgdconfig(8) に、複数の派生サブキーを複数のドライブで使用できるようにするための共有鍵のサポートを追加。
  - デフォルトのパスワードハッシングアルゴリズムを、パスワードハッシングコンペティションの勝者である Argon2id に変更。このアルゴリズムの硬度は、システムの性能に応じて自動的にスケールする。パスワードベースのディスク暗号化で使用するため、cgdconfig(8) に Argon2id のサポートを追加。
  - カーネルは、AES や ChaCha を含む、x86 や Arm 上の一般的な暗号アルゴリズムの CPU アクセラレーションとベクトル化を利用するようになりました。AES のすべてのカーネル内実装が、すべてのアーキテクチャで一定時間[^constant_time]になりました。
  - vm.swap_encrypt=1 sysctl(8) 変数を使用したスワップ暗号化が自動化されました。
[^constant_time]: 原文は"constant time"。この訳で合っているかどうかは知りませんが、サイドチャネル攻撃への対策だと思います。
- 新しい Armv8-A セキュリティ機能をサポート：
  - Privileged Access Never - カーネルによる不用意なユーザ空間メモリアクセスを防止するのに役立ちます。
  - ポインタ認証 - バッファオーバーランに対するリターン指向プログラミング攻撃の防御に役立ちます。
  - 分岐ターゲット識別 - 分岐命令がジャンプできる場所を制限します。
- その他のサニタイザ、テスト機能、品質保証：
  - カーネル同時実行サニタイザ - 実行時にカーネルの競合状態を検出します。
  - カーネルメモリサニタイザ - 実行時にカーネル内の未初期化メモリを検出します。
  - 新しい仮想USBホストドライバ（vHCI）により、開発者がハードウェアを利用できない場合でも、ユーザ空間からUSBドライバのファジングとバグの検出が可能になりました。
  - 2000以上の新しいテストケースが追加されました。
  - 内部 API の使用法のさまざまなカーネル全体の監査を完了。
  - secmodel_extensions(9) にハードリンクの生成に関する制限を追加。

### ハードウェアのサポート
- Arm のサポートを改善：
  - Lichee Pi Zero などに搭載されている Allwinner V3s SoC をサポート。
  - Amlogic G12 SoCのサポート（ODROID-N2+など）。
  - Apple M1 SoCのサポート（M1 Mac Miniなど）。
  - NXP i.MX 8M SoCサポート（HummingBoard Pulseなど）。
  - NXP i.MX 6SoloX SoCサポート（UDOO Neo Fullなど）。
  - Raspberry Pi 4のサポート EDK II UEFI ファームウェアを SD カードにインストールした状態で USB から NetBSD を起動するか、EDK II を /boot パーティションにコピーします。
  - Rockchip RK356X のサポート (PINE64 Quartz64 (EDK II UEFI ファームウェアをインストール) などに搭載)。
  - Rockchip RK3588 サポート (Orange Pi 5 (EDK II UEFI ファームウェアをインストール) など)
  - Asus Tinker Board などの Rockchip RK3288 をサポート。
   - Raspberry Pi 0-3 をビッグエンディアンモードで起動できるようにしました。
  - ServerReady ハードウェアの CPU パフォーマンス調整に使用される ACPI Collaborative Processor Performance Control のサポートを追加。
  - compat_linux モジュールが /etc/modules.conf で有効化されている場合に Linux ユーザ空間プログラムを実行できるようにするため、AArch64 で compat_linux(8) のサポートを追加。
  - Rockchip RK3328 の spiflash のサポートを追加。
  - Xilinx Zynq-7000 のサポートを (FDT に基づく) GENERIC evbarm カーネルに移動。
  - PINE64 Rock64 と NanoPi R2S で rkv1crypto ドライバを有効に。
  - UEFI ブートローダの改良: 他のエンディアン FFS ファイルシステムのサポート、raid(4) ボリュームからのブート、ISO9660 (.iso ファイルシステム) のサポート、boot.cfg のサポート、ビデオモードを変更するための gop コマンド、ブートローダからのカーネルモジュールの直接ロード。
- 新しいドライバ：
  - aht20temp(4) - Aosong AHT20 温湿度センサ用ドライバ。
  - eqos(4) - DesignWare Ethernet Quality-of-Service コントローラ用ドライバです。
  - genet - Raspberry Pi 4 に搭載されている Broadcom GENETv5 イーサネットコントローラ用ドライバ。
  - ixl(4) - Intel Ethernet 700 シリーズ 10/25/40 ギガビット Ethernet アダプタ用ドライバ。
  - iavf(4) - Intel Ethernet Adaptive Virtual Functions 用ドライバ。
  - mcommphy(4) - Motorcomm YT8511C / YT8511H ギガビットイーサネットトランシーバ用ドライバ。
  - mos(4) - MosChip MCS7730/7830/7832 USB イーサネットデバイス用ドライバ。
  - nct(4) - PC Engines APU システムにある Nuvoton NCT5104D GPIO コントローラ用ドライバ。
  - pcf8574 - SPARC64 ハードウェアの LED やインジケータに使われる GPIO ドライバ。
  - qat(4) - Intel QuickAssist 暗号アクセラレータ用ドライバ。
  - rge(4) - Realtek 8125 2.5 ギガビットイーサネットアダプタ用ドライバ。
  - scmd(4) - Sparkfun シリアル制御モータ用ドライバ。
  - sgp40mox(4) - Sensirion SGP40 MOx ガスセンサ用ドライバ。
  - sht3xtemp(4) - Sensirion SHT30/SHT31/SHT35 湿度/温度センサ用ドライバ。
  - sht4xtemp(4) - Sensirion SHT40/SHT41/SHT45 湿度/温度センサ用ドライバ。
  - uintuos(4) - Wacom Intuos 描画タブレットペン用ドライバ。
  - wwanc(4) - Intel XMM7360 LTE モデム用ドライバ。
- ドライバの改善：
  - Intel (i915 経由)、Nvidia (nouveau 経由)、AMD (amdgpu と radeon 経由) グラフィックプロセッサのアクセラレーショングラフィックスのための多くの新しいハードウェアサポートをもたらす、カーネルの GPU ドライバを Linux 5.6 と同期させました。
  - acpi(4) - ACPI テーブルにアクセスするためのキャラクタデバイス /dev/acpi を追加。 acpidump(8) は、もはや INSECURE オプションを要求しないように。
  - amdsmn、amdzentemp - AMD ファミリ 17h/Axh、17h/6xh、19h/6xh、19h/7xh のサポートを追加。
  - aq(4) - Aquantia 2.5/5/10 ギガビット Ethernet インターフェイス用のハードウェア TCP/UDP RX チェックサムオフロード、および Marvell AQC113 10G アダプタのサポートを追加。
  - bge(4) - 大きなカーネルロックの要件を除去 (Broadcom 10/100/Gigabit Ethernet インターフェイス用の NET_MPSAFE カーネルオプションのサポート)。
  - ciss(4) - サポートされる HP Smart Array RAID コントローラの PERFORMANT モードおよび MSI/MSI-X のサポートを追加。
  - ichsmb(4) - Intel 700 シリーズ、Alder Lake-N、および Snow Ridge デバイスのサポートを追加。
  - itesio(4) - IT8625E センサのサポートを追加。
  - ixv(4) - vmware ESXi で使用されるメールボックス API バージョン 1.5 のサポートを追加。
  - mcx(4) - Mellanox ConnectX マルチギガビット Ethernet インターフェイス用のハードウェアチェックサムオフロード、ハードウェア VLAN タギング、および複数の受信キューのサポートを追加。
  - onewire(4)、owtemp(4) - CPU のオーバーヘッドを削減し、信頼性を向上。
  - pci(4) - Cavium ThunderX ベースのボードに見られるような拡張割り当てのサポートを追加。
  - pci(4) - PCIe 5.x のデコードのサポートを追加。
  - pms(4) - Synaptics のトラックパッドのサポートに多くの改良。
  - tty(4) - コンソール tty から "big kernel lock" の使用を除去し、マルチコアシステムでの応答を改善。
  - u3g(4) - ZTE MF112 および D-Link DWM222 3G USB モデムのサポートを追加。
  - udl(4) - ほとんど静的な USB ディスプレイのリフレッシュ時のパフォーマンスを改善。
  - urndis(4) - OnePlus 5T 用のデバイスの癖を追加。
  - urtwn(4) - TRENDnet TEW-648UBM マイクロワイヤレス USB アダプタのサポートを追加。
  - wm(4) - Intel Tiger Lake および新しいデバイス (I219V 15-V9 および LM 16-19) のサポートを追加。
  - xhci(4) - アイソクロナスパイプの初期サポートを追加 (USB 3.x ウェブカメラなどで動作)。
- MIPS のサポートを改善：
  - ブート可能なイメージ octeon.img.gz が Ubiquiti ERLite-3 のような Cavium OCTEON MIPS64 ボード用に提供されるようになりました。ERLITE カーネルコンフィギュレーションの名称を OCTEON に変更。
  - Cavium Octeon コアで有効化された ofctl(8) および /dev/openfirm のサポートを追加。
  - Cavium Octeon で、フラット化されたデバイスツリー、USB 3、CPU コアのサポートを追加。
  - カーネルモジュールのサポートを追加。
  - dtrace(1) および crash(8) カーネルデバッガを移植。
  - O32 用のバイナリの最大テキストサイズを 64MB から 128MB に増加。
- ビンテージハードウェアのサポートを改善：
  - alpha をサポート： 多くの性能および MP の安定性の改善。GENERIC カーネルでマルチプロセッササポートをデフォルトで有効にしました。
  - amiga: キックスタート 3.2 (2020 年からのリリース) をサポート。
  - amiga: loadbsd ブートローダはカーネルを最大セグメントではなく、最優先のメモリセグメントにロードするようになりました。
  - atari: ite(4) フレームバッファドライバにボックス描画文字のサポートを追加。
  - evbppc: DHT Walnut 405GP ボードのサポートを追加。
  - evbppc: 任天堂Wiiのサポートを追加。
  - hp300: HP9000/425eのEVRXフレームバッファのビットマップ操作のサポートを実装。
  - hp300: HPDisk の全punitsに複数の rd(4) ディスクのサポートを追加。
  - hppa: GENERIC のカーネルモジュールのサポートを有効化。
  - luna68k： wskbd(4) 経由のキーボード LED およびブザー制御のサポートを追加。
  - luna68k： YM2149 PSG/SSG サウンドチップ用の psgpam(4) ドライバを追加。
  - luna68k： フレームバッファのグラフィックおよびテキストコンソールのパフォーマンスを改善。
  - macppc： iMac G5 との互換性の向上: GeForce フレームバッファのサポート、および CPU 温度センサーとファンセンサーを追加。
  - mac68k： Quadra/Centris AV モデルの esp(4) SCSI ドライバに同期転送のサポートを追加。
  - next68k： ポートを再び動作させるための多数の修正。
  - sparc: wsdisplay(4) の性能向上。
  - sparc64: Sun Enterprise 250 用の環境モニタリングを追加。
  - x68k: モノリシック X サーバに Emulate3Buttons のサポートを追加。
  - x68k: ite(4) フレームバッファドライバにボックス描画文字のサポートを追加。
  - vax： VAXstation 3100 用の gpx(4) および smg(4) フレームバッファドライバを古いバージョンの OpenBSD から移植。
  - vax： 最小 8MB から最大 512MB の RAM を持つマシンでの起動をサポート。

### 仮想化の改良

- Xen サポートに多くの改良が加えられました：
  - Xen PVH のサポートを追加。
  - HVMゲストでのXen PVドライバのサポートを追加。
  - 準仮想化ネットワークインターフェイスにジャンボフレームと feature-sg のサポートを追加。
  - Dom0 カーネルのマルチプロセッササポートが有効になりました。
  - Xen カーネルがネイティブカーネルと同じカーネルモジュールを使用するようになりました。
  - 準仮想化ネットワークデバイス (xennet(4))、ブロックデバイス (xbd(4)) が MPSAFE に対応し、カーネルの並列化を利用可能に。
- HyperV のサポートに多くの改良：
  - vmbus および hvn(4) にマルチチャネルのサポートを追加。
  - hvn(4) で、MTU および TX アグリゲーションの変更のサポートを追加。
  - VLAN および IP のチェックサムオフロードのサポートを改善。
- VirtIO ドライバの拡張：
  - 以前はバージョン 0.9 をサポートしていた virtio(4) ドライバに VirtIO 1.0 のサポートを追加。
  - 新しい vio9p(4) ドライバにより、VM ホストによってエクスポートされた VirtIO 9P ファイルシステムをマウント可能に。
  - 新しい viocon(4) シリアルドライバ。
- NetBSD 仮想マシンモニタ (nvmm(4)) の改良：
  - 仮想マシンの実行中にホストがサスペンドおよびレジュームできるように。
  - REP CMPS x86 命令のサポートを追加。
- virtio(4) 用の拡張を含む、NetBSD/evbmips への QEMU の仮想マシン "mipssim" のサポートを追加。
- QEMU で NetBSD/alpha を実行するためのサポートを追加。
- VMware ESXi-Arm および Oracle Cloud のサポートを NetBSD/aarch64 に追加。

### 機能と全般的な改良

- ネットワークスタックの改良：
  - カーネルのネットワークスタックに RFC 7048 を実装し、IPv6 Neighbor Discovery の再送のルールを緩和。IPv6 Neighbor Detection はアドレスに依存せず、ARP によって使用されるようになりました。
  - ipsec(4) - いくつかの VPN アプライアンスとの相互接続性を改善するため、net.key.allow_different_idtype sysctl(7) オプションを追加。
  - lagg(4) - agr(4) を置き換える、新しいスケーラブルなリンクアグリゲーションおよびリンクフェイルオーバーインターフェース。
  - vether(4) - bridge(4) エンドポイントとして使用するための設定可能なアドレスを持つ新しい仮想イーサネットインタフェース。
- ファイルシステムとストレージの改良：
  - (FreeBSD 由来の) 拡張属性による FFS への POSIX.1e アクセス制御リストのサポートを追加。この目的のために、新しいファイルシステムタイプ FFSv2ea が導入されました。ユーザは fsck_ffs(8) を使用して、拡張属性をサポートするようにファイルシステムをアップグレードできます。以前のリリースとの互換性のため、FFSv2ea はまだデフォルトではありません。
  - Windows 10 の UDF ファイルシステムとのバグ互換を可能にするための様々な UDF の変更。
  - fstat(1) - 基本的な ZFS のサポートを追加。
  - refuse(3) - FUSE 1.1 から FUSE 3.10 までのすべての FUSE API をサポート。
  - raid(4) - スワップエンディアン構成のサポートを追加。
  - blkdiscard(8) - ディスクの手動 TRIM を行うための fdiscard(2) の新しいフロントエンド。
  - raidctl(8) - 設定ファイルの有効性をテストするための -t オプションを追加。
  - newfs_udf(8) - メタデータパーティションを持つ UDF 2.50 のフォーマットのサポートを追加。
  - scan_ffs(8) - SIGINFO のサポートを追加し、Ctrl+T が押されたときにスキャンの状態を表示するようにしました。
- 新しいユーザ空間プログラム：
  - aiomixer(1) - curses(3) ベースのコンソールオーディオミキサー。
  - realpath(1) - シンボリックリンクの解決を含む、相対パスから絶対パスを表示します。
  - tradcpp(1) - K&R スタイルの C マクロプロセッサ。設定ファイルで C プリプロセッサマクロを使用しているが、 C コンパイラがインストールされていなくても動作する基本プログラム用。
  - ioctlprint(1) - 説明的な ioctl の値を表示します。
  - testpat(6) - カラーテストパターンを表示します。
  - warp(6) - 古典的な BSD スペースウォーゲーム (Larry Wall が NetBSD Foundation に寄贈した著作権)。
  - fsck_udf(8) - ユニバーサルディスクフォーマットファイルシステムの損傷を修復するための新しいコマンド。
- ユーザ空間プログラムの改良：
  - audioplay(1) - 64 ビットおよび 32 ビット IEEE 浮動小数点 RIFF WAVE ファイルのデコード機能を追加。
  - date(1) - 時刻を設定する -f オプションを追加。
  - date(1) - GNU date に似た RFC 5322 フォーマットで時刻を表示する -R オプションを追加。
  - df(1) - -b (出力単位: ブロック; 512)、-H (SI 単位で -h)、-N (ヘッダ行を表示しない)、-f (空き領域のみを表示) オプションを追加。
  - env(1) - 環境変数を削除する -u フラグと、NUL 文字で区切られた変数入力を許容する -0 を追加。
  - ftp(1) - SSL/TLS 証明書の検証を追加。
  - ftp(1) - 相対 HTTP URL へのリダイレクトをフォロー。
  - ftp(1) - -q QUITTIME を使用して、SSL 接続のセットアップにタイムアウトを追加。
  - grep(1) -r とファイル引数なしで、カレントディレクトリを検索。
  - indent(1) - より新しい標準 C の構文をサポート。
  - ldd(1) - -v オプションを追加し、冗長性を高め、すべての実行ファイルの処理エラーを表示。
  - make(1) - デバッグを補助する randomize-targets オプションを追加。
  - make(1) - .for ループを早期に終了させるための .break キーワードを追加。
  - mv(1) - ディレクトリへのシンボリックリンクをアトミックに置換する '-h' オプションを追加。
  - netstat(1) - さまざまな新しいパケットカウンタを追加。
  - nbperf(1) - さまざまな最適化。メモリフットプリントを 30% 減少。
  - patch(1) - 長すぎる行を含むファイルへのパッチのサポートを追加。
  - pgrep(1) - grep(1) のように出力を無音にする -q フラグを追加。
  - pmap(1) - 基礎となる RB ツリーとして pmap を表示する -t フラグを追加。
  - ps(1) - POSIX.2 で要求されているように、単一のグループ引数を取るための -G フラグを追加。
  - rcp(1) - SIGINFO (ctrl+t ステータス) のサポートを追加。
  - sh(1)、ksh(1)、csh(1) - zsh のようにプロセスタイトルを設定するためのジョブ -Z を追加。
  - sh(1) - コマンドの自動補完を追加。
  - sh(1) - ログインシェルを強制的に作成する -l オプションを追加。
  - sh(1) - 今後の POSIX リリースとの互換性のため、find -print0 および xargs -0 に付随する read コマンドに -d '' オプションを追加。
  - script(1) - curses(3) セッションの適切な再生を追加。
  - vacation(1) - 'Precedence:' (RFC 2076) に加えて 'Auto-Submitted:' (RFC 3834) メールヘッダをチェックし、'Auto-Submitted:' に加えて 'Precedence:' を設定。
  - vmstat(1) - sysctl(7) ベースの高速なカーネルハッシュ統計生成を追加。
  - worms(6) - より多くの種類のワーム、色を使用するための -C、乱数生成器の種を設定するための -S オプションを追加、
  - cgdconfig(8) - 生成されたすべての鍵を表示する -T オプションを追加。
  - crash(8) - PowerPC および MIPS のサポートを追加。
  - httpd(8) - blocklistd(8) のサポートを追加。
  - httpd(8) - ログメッセージを無効にする -q フラグを追加。
  - inetd(8) - フォアグラウンドで実行するための -f フラグを追加。
  - iostat(8) - アクティブでないデバイスの出力を抑制する -z フラグを追加。
  - sysinst(8) - Wi-Fi デバイスの設定のサポートを追加。
  - sysinst(8) - マルチキャスト DNS が有効化されている場合に、nsswitch.conf(5) で .local ドメインの検索を自動的に設定。
  - tprof(8) - ハードウェアのプロファイリングの結果をリアルタイムで表示するための top サブコマンドを追加。
  - tprof(8) - 生のパフォーマンスイベントカウンタを出力するための count サブコマンドを追加。
  - tprof(8) - AMD ファミリ 19h (Zen 3 および Zen 4)、Intel Comet Lake のプロファイリングのサポートを追加。
  - wsfontload(8) - ロードされたすべてのフォントおよびビルトインフォントをリストする -l フラグを追加。
  - wsfontload(8) - メタデータを埋め込んだ新しいフォントフォーマットに対応。
  - wsmoused(8) - タッチスクリーンなどの絶対マウス位置イベントのサポートを追加。
- 新規および拡張 API：
  - eventfd(2), timerfd(2) - Linux と互換性のある新しいネイティブシステムコールで、 compat_linux(8) でも使用されています。
  - fexecve(2) - The Open Group Extended API Set 2 に準拠した、ファイルディスクリプタからファイルを実行するための新しいシステムコールです。
  - kqueue(2) - ユーザが確立したイベントのための EVFILT_USER を追加。
  - ppoll(2) - 他のオペレーティングシステムとの互換性のため、ネイティブシステムコール pollts のエイリアス。
  - curses(3) - ncurses との互換性のために、スタブマウス関数と curses_version() を追加。
  - curses(3) - Unicode サポートを改善。
  - fetch(3) - TLS 接続のサーバ名表示を有効化。
  - getentropy(3) - KERN_ARND と同様に、カーネルからランダムなデータを取得するための新しい libc 関数。
  - math(3) - より長い double 関数の定義を追加。
  - ossaudio(3) - OSSv4 ミキサ API の実装を追加。
  - hosts_access(3) - blocklistd(8) のサポートを追加。libwrap を使用するすべてのプログラムで、拒否されたホストからのアクセスをブロックできるように。
  - regex(3) - ネイティブ言語のサポートと GNU 拡張のサポートを追加 (デフォルトではオフ。FreeBSD から)。
- その他の改良：
  - 低 DPI および高 DPI ディスプレイ用の BSD ライセンスの Spleen ビットマップフォントを X11 セットおよび /usr/share/wscons/fonts に追加。ctwm(1)のデフォルトに。
  - Terminus のコンソールフォントを /usr/share/wscons/fonts に追加。
  - wskbd(4) - フランス語の BÉPO およびドイツ語の Neo 2 レイアウトの定義を追加。
  - wsmouse(4) - OpenBSD と互換性のある "precision scrolling" イベントタイプを追加し、タッチパッドドライバや Xorg(1) で使用。
  - compat_linux(8) - eventfd を追加。POSIX タイマ、preadv.および pwritev を追加。

### システムの挙動および互換性の変更

- tap(4) のリンク状態がアプリケーションによってオープンされたかどうかに基づくようになったので、tap(4) を bridge(4) のエンドポイントとして使用するネットワーキングのセットアップは、代わりに vether(4) を使用するよう更新しなければなりません。
- セキュリティ上の理由により、compat_linux(8) はデフォルトでは無効化。ブート時にこれをロードするには、/etc/modules.conf に compat_linux を追加してください。
- 新規インストール時のデフォルトのパッケージデータベースは、他の pkgsrc プラットフォームとの一貫性を保つため、/var/db/pkg に代わって /usr/pkg/pkgdb に変更されました。
- 以前は問題なかったシステムの多くが、**エントロピーが足りない** という警告をカーネルメッセージバッファに出力するようになりました。これは、吟味されたハードウェアソースのみがカーネルのエントロピーの推定にカウントされるようになったためです。entropy(7) を参照。
- IEEE 802.11 (Wi-Fi) デバイスは、オープンなアクセスポイントに関連付けるために SSID の設定を要求するように。
- DoS の不正使用を回避するため、オンデマンドでポートのブロックと解放を行うデーモン blacklistd(8) の名前を blocklistd(8) に変更。
- トラブルに備えて、静的にリンクされたシェルを持つユーザがデフォルトのインストール上に確実に存在するよう、toor ユーザのデフォルトのシェルを /rescue/sh に変更。
- Xorg が /etc/xorg.conf ではなく wscons の設定に基づいてデフォルトのキーボードレイアウトを決定するようになりました。デフォルトを上書きするには、setxkbmap(1) を使用してください。
- カーネルモジュールの自動アンロードを無効化 - カーネルモジュールは自動アンロードをオプトインする必要があります。
- midi とシーケンサのカーネルモジュールを単一の midi_seq モジュールに統合。
- arm： sdio デバイスの追加のため、ROCKPro64 ld(4) のディスクデバイスの順序を変更。
- arm： AArch64 のセットを XZ 圧縮に変更 (それに応じてスクリプトを更新してください)。
- x86: GENERIC カーネル設定で HDMI と DisplayPort オーディオが有効になりました。HDMI/DP ではないオーディオを使い続けたい場合、ユーザは audiocfg(1) でデフォルトのオーディオデバイスを変更しなければならないかも知れません。
- crunchgen(1) - さまざまな特殊変数のハンドリングフラグが削除され、-V で置き換え。
- pam(8) - /etc/pam.d で、pam_krb5(8) および pam_ksu(8) をデフォルトで無効化。
- kqueue(2) - 他の BSD との互換性のため、udata の型を intptr_t から void * に変更。
- curses(3) - 他の curses の実装に合わせて、デフォルトのカラーペアを 0 に変更。
- proplib(3) - さまざまな API の変更と追加。置き換えられた古い API は、非推奨の警告を出すように。
- iconv(3) - 他の標準 (たとえば SUSv2) との互換性のため、以前は const だった入力引数を、現在の POSIX に合わせて nononst に変更。
- resolver(3) - デフォルトが check-names (resolv.conf(5) を参照) に変更され、無効な文字を含むホスト名は解決されないように。

### 時代遅れのコンポーネントの削除

ネットワークスタックとカーネルをより保守しやすくし、将来のシステム全体の改良 (たとえば SMP の改良) を容易にする目的で、多くの時代遅れのコンポーネントが削除されました。削除されたドライバの中には、利用可能なハードウェアや関心の不足のためにテストできなかったり、深刻な長期的バグを含んでいたりするものもありました。

- ネットワーク技術のドライバとサポートは、大部分がイーサネットに取って代わられました： HIPPI、FDDI、TokenRing。
- すべてのevbarmデバイスを1つのGENERICカーネルでサポートする動きの一環として、いくつかの古いevbarmボード（カスタムカーネルを必要とするもの）のドライバとサポートを削除しました。ドロップされたハードウェアには、GumstixやHawkboardなど、OMAP3530やAM335x以外のTI OMAPデバイスが含まれます。
- カーネル内 SMBFS - nsmb(4) および mount_smbfs(8)。これは SMB プロトコルの最新バージョンをサポートしておらず、ユーザ空間の実装の方がより機能的です。
- カーネル内 IPv6 ルータ広告のハンドリング - 現在はユーザ空間の dhcpcd(8) でハンドリング。
- azalia(4) - 過去のリリースでは hdaudio(4) に置き換えられていたドライバ。
- de(4) - 過去のリリースで tlp(4) に置き換えられていたドライバ。
- strip(4) - Metricom Ricochet パケットラジオ用ドライバ。
- urio(4) - Diamond Multimedia Rio500 MP3 プレーヤ用ドライバ。
- uscanner(4) - 非常に古い USB スキャナ用ドライバ、代わりに ugen(4) と SANE を使ってください。
- uyap(4) - USB YAP 電話ファームウェアローダ用ドライバ。
- uyurex(4) - アートグループ明和電機が 2008 年に作ったノベルティデバイス用ドライバ。
- sup(1) - CMU Software Upgrade Protocol 用クライアント。pkgsrc で利用可能です。
- 初期の Archos MP3 プレーヤのストレージへのアクセスに使用された、umass(4) の ISD の非標準 ATA プロトコルのサポート。
- queue(3) の CIRCLEQ は、ポインタのエイリアス違反のため、NetBSD 7 から非推奨。
- X11 ディストリビューションのいくつかのライブラリ: libXTrap、 libXevie、libglut (GLUT は最近の X サーバではまだ有用ですが、libglut ユーザは pkgsrc で入手可能な FreeGLUT に乗り換えることを推奨します)。必要であれば、pkgsrcからcompat90をインストールすることで、削除されたライブラリを引き続き使用できます。

## サードパーティコンポーネント

NetBSD の基本システムに含まれるさまざまなサードパーティコンポーネントが更新されました：

- ctwm(1) - 4.0.3 に更新。
- file(1) - 5.43 に更新。
- gcc(1) - 10.5 に更新。
- lua(1) - 5.4.6 に更新。
- openssl(1) - OpenSSL-3.0.12 に更新。
- postfix(1) - 3.8.4 に更新。
- tmux(1) - 3.2a に更新。
- ssh(1), sshd(8) - OpenSSH 9.6 に更新。- RSA/SHA-1 署名の非推奨に注意。古いサーバに接続する場合には、ssh-rsa のサポートを再度有効化する必要があるかも知れません。
- yacc(1) - byacc 20210109 に更新。
- Xorg(1) - 21.1.7 に更新。
- dhcpcd(8) - 9.4.1 に更新。特権分離が有効になりました。手動でアップグレードする場合は、必ず _dhcpcd ユーザとグループを作成してください。
- dhcpd(8) - 4.4.3-P1 に更新。
- named(8) - 9.18.24 に更新。
- nsd(8) - 4.8.0 に更新。
- ntpd(8) - 4.2.8p15 に更新。
- pppd(8) - 2.4.9 に更新。
- resolvconf(8) - 3.12.0 に更新。
- tcpdump(8) - 4.9.3 に更新。
- kerberos(8) - Heimdal 7.8.0 に更新。
- unbound(8) - 1.19.1 に更新。
- wpa_supplicant(8) - 2.9 に更新。
- ldap(3) - 2.5.6 に更新。
- pcap(3) - 1.9.1 に更新。
- openpam(3) - 20190224 に更新。
- acpi(4) - ACPICA を 20210604 に更新。
- services(5) - IANA からバージョン 2019-10-04 に更新。
- binutils - 2.34 に更新。
- libfido2 - 1.13.0 に更新。
- pam-u2f - 1.2.0 に更新。
- tzdata を tzdata2023cgtz に、tzcode を 2022g に更新。
- zlib - 1.2.13 に更新。

変更点の完全なリストは、NetBSD 10.0 のリリースツリーのトップレベルディレクトリの CHANGES および CHANGES-10.0 ファイルにあります。

# NetBSD 10.0 の入手

NetBSD 10.0 の完全なソースとバイナリは、世界中の多くのサイトから ダウンロード可能です。NetBSD 10.0 は、私たちのメイン CDN からダウンロードすることもできますし、 お近くのミラーサイトを利用することもできます。NetBSD セキュリティオフィサーの PGP 鍵で署名されたハッシュの一覧は、このファイルの NetBSD 10.0 のディストリビューションから入手可能です。

NetBSD はフリーです。すべてのコードは非制限的なライセンスの下にあり、誰にもロイヤリティを支払うことなく使用することができます。無償のサポートサービスは、メーリングリストやウェブサイトから利用できます。商用サポートはさまざまなところから提供されています。NetBSD に関するより広範な情報は、私たちのウェブサイトから入手できます：

www.NetBSD.org

# NetBSD 10.0 がサポートするシステムファミリー

NetBSD 10.0 リリースでは、以下のシステム用のバイナリディストリビューションを サポートしています：

| | |
|:--- |:--- |
|NetBSD/aarch64 |Arm 64 ビット|
|NetBSD/acorn32 |Acorn RiscPC/A7000, VLSI RC7500|
|NetBSD/algor |Algorithmics, Ltd. MIPS 評価ボード
NetBSD/alpha |Digital/Compaq Alpha (64 ビット)
NetBSD/amd64|Opteron、Athlon64 といった AMD ファミリのプロセッサ、 EM64T 拡張を持つ Intel CPU
NetBSD/amiga|Commodore Amiga および MacroSystem DraCo
NetBSD/amigappc |PowerPC ベースの Amiga ボード
NetBSD/arc |Advanced RISC Computing 仕様に準拠した MIPS ベースのマシン
NetBSD/atari |Atari TT030、Falcon、Hades
NetBSD/bebox |Be 社の BeBox
NetBSD/cats |Chalice Technology 社の CATS および Intel 社の EBSA-285 評価ボード
NetBSD/cesfic |CES FIC8234 VME プロセッサボード
NetBSD/cobalt |Cobalt Networks の MIPS ベースのマイクロサーバ。
NetBSD/dreamcast |セガのゲーム機 Dreamcast
NetBSD/emips |マイクロソフトリサーチによる拡張可能な MIPS アーキテクチャ
NetBSD/epoc32 |Psion EPOC PDAs
NetBSD/evbarm |さまざまな Arm ベースの評価ボードおよびアプライアンス
NetBSD/evbmips |さまざまな MIPS ベースの評価ボードおよびアプライアンス
NetBSD/evbppc |さまざまな PowerPC ベースの評価ボードおよびアプライアンス
NetBSD/evbsh3 |各種日立 Super-H SH3 および SH4 ベースの評価ボードおよびアプライアンス
NetBSD/ews4800mips |NEC の MIPS ベースの EWS4800 ワークステーション
NetBSD/hp300 |Hewlett-Packard 9000/300 および 400 シリーズ
NetBSD/hpcarm |StrongArm ベースの Windows CE PDA マシン
NetBSD/hpcmips |MIPS ベースの Windows CE PDA マシン
NetBSD/hpcsh |日立 Super-H ベースの Windows CE PDA マシン
NetBSD/hppa |Hewlett-Packard 9000 シリーズ 700 ワークステーション
NetBSD/i386 |IBM PC および i486 系以上のプロセッサを搭載した PC クローン
NetBSD/ibmnws |IBM ネットワークステーション 1000
NetBSD/iyonix |Castle Technology の Iyonix Arm ベースの PC
NetBSD/landisk |SH4 プロセッサベースの NAS アプライアンス
NetBSD/luna68k |オムロン立石電気の LUNA シリーズ
NetBSD/mac68k |Motorola 68k CPU を搭載した Apple Macintosh
NetBSD/macppc |Apple PowerPC ベースの Macintosh およびそのクローン
NetBSD/mipsco |MIPS Computer Systems Inc. ワークステーションおよびサーバのファミリ
NetBSD/mmeye B|rains mmEye マルチメディアサーバ
NetBSD/mvme68k |モトローラ MVME 68k シングルボードコンピュータ
NetBSD/mvmeppc |モトローラ製 PowerPC VME シングルボードコンピュータ
NetBSD/netwinder |StrongArm ベースの NetWinder マシン
NetBSD/news68k |ソニーの 68k ベースの "NET WORK STATION" シリーズ
NetBSD/newsmips |ソニーの MIPS ベースの "NET WORK STATION" シリーズ
NetBSD/next68k |NeXT 68k "black" ハードウェア
NetBSD/ofppc |OpenFirmware PowerPC マシン
NetBSD/pmax |Digital MIPS ベースの DECstations および DECsystems
NetBSD/prep |PReP (PowerPC リファレンスプラットフォーム) および CHRP マシン
NetBSD/rs6000 |IBM RS/6000 MCA ベースの PowerPC マシン
NetBSD/sandpoint |モトローラ Sandpoint リファレンスプラットフォーム (多くの PPC ベースの NAS ボックスを含む)
NetBSD/sgimips |シリコングラフィックスの MIPS ベースのワークステーション
NetBSD/shark |Digital DNARD ("shark")
NetBSD/sparc |Sun SPARC (32 ビット) および UltraSPARC (32 ビットモード)
NetBSD/sparc64 |Sun UltraSPARC (ネイティブ 64 ビットモード)
NetBSD/sun2 |Sun Microsystems Sun 2 マシン (Motorola 68010 CPU 搭載)
NetBSD/sun3 |Motorola 68020 および 030 ベースの Sun 3 および 3x マシン
NetBSD/vax |デジタル VAX
NetBSD/x68k |シャープ X680x0 シリーズ
NetBSD/xen |Xen 仮想マシンモニタ
NetBSD/zaurus |シャープ製 Arm PDA

リリースに含まれるが、完全にはサポートまたは機能しないポート：

|||
|:--|:--|
NetBSD/ia64 |Itanium プロセッサファミリ

# 献辞

NetBSD 10.0 は、リリースされる前にこの世を去った清水了氏の思い出に捧げられます。

ryo@ さんの NetBSD に対する貢献、私たちのコミュニティに対する貢献、 ARM に対する貢献、そしてネットワークに対する貢献 (そしてこのリリースに対する貢献) は、計り知れないものがありました。優れた技術的貢献者であり、よき友であった彼の死を、私たちは深く悲しんでいます。

# 謝辞

NetBSD Foundation は、コード、ハードウェア、ドキュメント、資金、私たちの サーバのコロケーション、Web ページやその他のドキュメント、 リリースエンジニアリング、そしてその他のリソースを長年にわたって提供してくださったすべての方々に感謝したいと思います。NetBSD を実現する人々に関するより詳しい情報は、以下をご覧ください：

www.NetBSD.org/people/

また、現在のコロケーションサービスを提供してくれた Tasty Lime と コロンビア大学コンピュータサイエンス学部の Network Security Lab にも感謝します。CDN サービスを提供してくれた Fastly にも感謝します。

# NetBSD について

NetBSD は、フリーで高速、安全で移植性の高い Unix 系のオープンソースオペレーティングシステムです。NetBSD は、大規模サーバやパワフルなデスクトップシステムから ハンドヘルドデバイスや組み込みデバイスまで、幅広いプラットフォームで 利用可能です。そのクリーンな設計と高度な機能により、 生産環境でも研究環境でも優れた性能を発揮し、ソースコードは ビジネスに適したライセンスの下で自由に入手可能です。NetBSD は、大きく活気のある国際的なコミュニティによって開発され、 サポートされています。多くのアプリケーションは、NetBSD Packages Collection である pkgsrc から容易に入手可能です。

# NetBSD Foundation について

NetBSD Foundation は 1995 年に設立され、NetBSD プロジェクトの中核となるサービスを監督し、 産業界やオープンソースコミュニティの中でプロジェクトを推進し、 NetBSD のコードベースの多くに関する知的財産権を保持することを任務としています。プロジェクトの日々の運営はボランティアによって行われています。

NetBSD Foundation は、商業的な裏付けを持たない非営利団体であるため、 ユーザからの寄付金によって成り立っています。NetBSD Foundation の運営費だけでなく、継続的なアップグレードやメンテナンスのために、 皆様の寛大なご寄付を特に歓迎いたします。

寄付は PayPal 経由で <paypal@NetBSD.org> まで、あるいは Google Checkout 経由で行うことができ、米国では全額税控除の対象となります。詳細については www.NetBSD.org/donations/ をご覧いただくか、<finance-exec@NetBSD.org> に直接ご連絡ください。