2018/10/02 修正
Haiku R1/beta1 リリースノートの私訳です。訳のおかしいところは、原文を参照ください。
Haiku での日本語表示/入力については、こちらを参考ください。


R1/beta1 – リリースノート

2012年11月の Haiku の最後のリリースから約 5 年と 11 ヶ月経ちました — あまりにも長かった。そのリリース間の長いギャップの結果、このリリースは前のものより多くの変更があります。そのため、このドキュメントも以前のものより重いものとなっています。ノートはほぼ重要度と関連度の順にまとめられており、時系列ではありません。かつ、非常に多くの変更があるため、たくさんの小さな変更はここでは評価されていません。

Haiku は、ベータ品質のソフトウェアであることを心に留めておいてください。つまり、機能は完成しているが、既知や未知のバグがまだ含まれていることを意味します。安定性にはほぼ自信がありますが、データロスに対して保証はできません。

Haiku のダウンロードは、“Get Haiku!” を参照ください。プレスの問い合わせは、“プレス窓口” を参照ください。

システム要件

このリリースには、既存の x86 32-bit イメージと同時に、公式 x86_64 イメージが追加されています。x86_64 イメージは、BeOS (GCC2) アプリケーションを実行できないことに注意してください。しかし、それらは32-bitのものと同じくらい (場合によってはそれ以上に) 安定しています。

最小構成 (32-bit)

  • プロセッサー: Intel Pentium II; AMD Athlon
  • メモリー: 256MB
  • モニター: 800x600
  • ストレージ: 3GB

推奨構成 (64-bit)

  • プロセッサー: Intel Core i3; AMD Phenom II
  • メモリー: 2GB
  • モニター: 1366x768
  • ストレージ: 16GB

新機能

パッケージ管理

HaikuDepot, GUI パッケージマネージャー
HaikuDepot, グラフィカルなパッケージマネージャー

このリリースでの最大の変更は、完全なパッケージ管理システムの追加です。Haiku のパッケージ管理システムは、寄付により資金提供された一連の開発契約 (contracts) によって 2013 年内に完成し、マージされましたが、様々な点でユニークです。インストール済ファイルのデーターベースを管理ツールとともに保持するのではなく、Haiku のパッケージシステムは特殊なタイプの圧縮ファイルシステムイメージであり、カーネルコンポーネントの packagefs によって、インストール環境 (および、その後の起動ごと) に ‘マウント’ されます。

このことは、/system/ 階層が、現在インストールされたパッケージがシステムレベルで単に融合した (ユーザーレベルでインストールされたパッケージを含んでいる ~/config/ 階層についても同じことが言えます) ものであるため、読み取り専用になったことを意味します。それにより、システムファイル自体は壊れにくくなっています。

パッケージは単に “アクティベート” 化されているだけで、インストールされていないため、このことは、ブートローダーが、パッケージに作用することができることを意味します。ユーザーは、以前のパッケージの状態で起動できます (アップデートが良くなかった場合)。また、個々のファイルをブラックリストに入れることさえもできます (ブラックリストは設定ファイルによって恒久的なものにできます)。

ブートローダーでのパッケージのブラックリスト化

もちろん、パッケージ管理のディスクトランザクションは、それらのディレクトリ間の移動と “activated packages” リスティングファイルへの出し入れに限られるので、インストールとアンインストールは実質的に瞬間で終わります。従って、動かなくなった Haiku システム上のインストール済パッケージのセットも、そのブートディスクをマウントして、/system/packages ディレクトリと関連した設定ファイルを操作することで管理できます。

その結果、システムをソフトウェアの更新 (SoftwareUpdater) を実行して更新し、再起動できます。(すでにパッケージ管理が有効な nightlies を実行しているユーザーは、システムリポジトリを master から r1beta1 に変更して、直接 beta リリースに変更できます)。近い将来、我々は、r1beta1 リポジトリを Haiku 自体のバグフィックス、および HaikuPorts での追加パッケージとセキュリティ更新とともに維持する予定です。

———

HaikuDepot に加えて、パッケージ管理システムへのコマンドラインインターフェースである pkgman もあります。パッケージが名前だけでインストールされるほかのほとんどのパッケージマネージャーと異なり (例. pkgman install rsyncpkgman install sdl2_devel)、Haiku パッケージはprovides によっても検索やインストールができます (例. pkgman install cmd:rsync または pkgman install devel:libsdl2)。つまり、それを供給するもっとも関連性のあるパッケージを決めて、インストールします。

付属のパッケージマネージャーは、大きく改良されたHaikuPorts です。それはビルドスクリプトの組織された配列から、ネイティブとHaiku に移植されたソフトウェアを幅広く含む順調で成熟した ports ツリーに移動しました。

Haiku 上で動作するさまざまな移植されたソフトウェア

WebPositive のアップグレード

惜しみない寄贈者のサポートのおかげで、Haiku, Inc は WebKit port と関連するシステム領域の強化 (それは結局ほぼすべてにわたりました) を行うフルタイムデベロッパーを 1 以上雇うことができました。その結果、システムウェブブラウザーは、以前よりさらに安定したものとなりました。それは、さまざまな内部変更やユーザーに見える多数の注目すべき変更 (例えば、YouTube が正しく動く) を伴っています。

WebPositive で Rick Astley を再生中

WebKit は非常に重いソフトウェアです。その速度向上への取り組みは、結果として Haiku 自体に露呈したたくさんのバグを修正することも意味していました。たとえば、壊れたスタック境界、ネットワークスタック内のさまざまなカーネルパニック、app_server レンダリングコア内のまずいエッジケースハンドリング、拡張変形とグラデーションサポートの欠落、壊れているピクチャークリッピングサポート、POSIX 機能の欠落、メディアコードの問題、GCC のアップグレード … リストは続きます。

良かれ悪かれ、HaikuWebKit は Haiku 独自のネットワークレイヤーも使用しています。つまり、現在 Gopher をサポートすることを意味します。

完全に書き直されたネットワークプレフレット

特に、数年前の WiFi ドライバー追加後、以前のネットワークプレフレットは古さを感じさせました。今は、使いやすさと、長く使えることを目的に 0 からデザインされた完璧に新しいプレフレットに置き換えられています。

新しいネットワークプレフレット

(スリム化された) インターフェース設定画面に加えて、プレフレットは、OpenSSH や ftpd のようなマシーン上のネットワークサービスも管理できるようになりました。プラグインベースの API を使用しているので、サードパーティのネットワークサービス (VPNs、ウェブサービス、…) を容易に統合できます。

ユーザーインターフェースのクリーンアップとカラーのライブ更新

最後のリリースから、多方面にわたるたくさんの変更がユーザーインターフェースのさまざまな部分に行われました。


メールと Tracker でいくつかのサンプルデーターを表示

メールと Tracker は共に UI コードの重要な内部クリーンアップを行いました。結果として、ほかのアプリケーションと共通の、Haiku スタイルのツールバー、フォントサイズに追随したレイアウトを表示します。これにより、今後の活動で正確な DPI スケーリング (または、さらに将来、right-to-left レイアウトも) 追加するでしょう。

加えて、ほとんどのアプリケーションが、システムのカラー設定とやり取りする方法が大きく変更されました。具体的なシステムカラーをリクエストして操作する代わりに、ほとんどのアプリケーションは、自身の UI コントロールにシステムカラーセットに基づく特定の色を直接選択するように指示します。このことは、外観 (Appearance) プレフレットでの色の変更が、システムのいたるところでライブに変更されることを意味します。

メディアサブシステムの改良

最後のリリースから、Haiku のメディアサブシステムに対してかなりの数の改良がなされてきました。これらには、Media Kit の耐障害性、レイテンシ訂正、およびパフォーマンス問題の改善のための多数のクリーンアップを含みます。つまり、Media Kit は以前のものより回復力を持つことを意味します。

新機能やその他の改良点

ストリーミングサポート

以前 Media Kit は、すべてのメディアファイルはシークできると仮定していましたが、もちろん、ストリームはできませんでした。今はその仮定は取り除かれ、HTTP および RTSP ストリーミングサポートが、Media Kit の I/O レイヤーに統合されました。ライブストリームは WebPositive (HTML5 オーディオ/ビデオサポートを通じて)、またはネイティブのメディアプレーヤーで再生できるようになりました。

FFmpeg デコーダープラグインの改良

最初は、以下に示す DVB チューナーの書き換えの一環として、後には、ストリーミング対応などの一環として、FFmpeg デコーダープラグインに対して重要な改良が行われました。GCC2 でコンパイルできる最後のバージョンである古い FFmpeg 0.10 よりも、FFmpeg 4.0 が全体に (GCC2 ビルド上でさえも、いくつかの賢い ABI トリックのおかげで) 使用されます。これは、オーディオ/ビデオフォーマットのより幅広いサポートと、同様にかなりのパフォーマンス向上 (すくなくとも新しい CPU 上において) も意味します。


MediaPlayer で、Big Buck Bunny の短いテストクリップを再生中

HDA ドライバーの改良

最近の x86 ベースハードウェアのほとんどのオーディオチップセットを構成する HDA (High-Definition Audio) チップセット用ドライバーは、かなりの数のクリーンアップをされ、以前のリリースからより幅広いオーディオサポートを行います (いくつかのごく最近のデバイスでは、それはまだハードウェアの初期化時に問題を起こします。しかし、HDA チップセットでオーディオ出力されないユーザーは、いまのところほかの OS からの再起動が役に立つかもしれません)。

その他

DVB チューナーサブシステムはかなり書き直されました (しかし、それはまだごく少数のチューナーカードのサポートしかありません)。APE reader (FFmpeg があまりサポートしていない古いオーディオフォーマット) もクリーンアップされ、デフォルトのビルドに追加されました。

リモートデスクトップ

Haiku のネイティブなリモートデスクトップアプリケーションは改良され、ビルドに追加されました。VNC その他のビットマップベースのプロトコルと異なり、Haiku のリモートデスクトップはホストシステムからクライアントシステムへ描画命令を送信します。つまり、ほとんどのアプリケーションのバンド幅の消費は著しく低くなります。これは、X11 がプリコンポジションを行う方法や、Microsoft の RDP の実行方法と似ています。

リモートデスクトップに特別なサーバーは必要ありません。SSH アクセスができる任意の Haiku システム上で接続とアプリケーションの実行ができます。もちろん、デフォルトで Haiku にはネイティブクライアントも付属しますが、任意のウェブブラウザー内で実行できる HTML5 ベースのクライアントもあります。

EFI ブートローダーと GPT サポート

これは、実装が最大級に複雑な機能でした。しかし、実際の記述はかなりシンプルです。GPT パーティションからと、EFI デバイス上のブートがサポートされています。EFI ブートローダーは、デフォルトの “anyboot” イメージ (64 ビットのみ) に含まれており、規格に準拠したすべての EFI マシーンで動作するはずです。それには、5 年以内に発売された一般消費者向けのハードウェアと、それ以前からの Apple 製品を含みます。

SerialConnect

これは BeOS に付属していた最新のアプリケーションの一つですが、alpha4 では書き換えていませんでした。それは、シリアルポートへの比較的シンプルでわかりやすいグラフィカルインターフェースです。任意のバンド幅のサポートと、いくらかの拡張機能 (例. XMODEM ファイル転送) を備えています。

それの開発と使用のプロセスで、USB および PCI/ISA シリアルポートデバイスドライバーにたくさんのバグが見つかり、修正されました。

ビルトインデバッガーがデフォルトに

Haiku のビルトインデバッガーは、前のリリースでは実験的なものでしたが、非常に改良され、デフォルトのデバッガーとして GDB を置き換えました。

GUI に加えて、コマンドラインインターフェースもそれを好む人のためにあります (また、app_server のような重大なユーザーランドサービスのクラッシュを扱うためにも)。システム全体にわたるクラッシュダイアログもデバッガーのサービスを受けます。ダイアログでは、有益なクラッシュレポート () やコアファイルの保存、または直接デバッガーの起動ができます。この振る舞いは、必要であれば設定ファイルによってどれかひとつのアクションを自動的に取るように設定できます。

新しいスレッドスケジューラー

再び、惜しみない寄贈者のサポートのおかけで、Haiku, Inc. はシステムスレッドスケジューラーを書き換えるためのフルタイムデベロッパーを、 4 ヶ月間雇うことができました。この活動の結果、Haiku のカーネルスレッドスケジューラーは、スレッドに関して O(1) (一定時間)、プロセッサーコアに対して O(log N) (対数時間) となり、BeOS から引き継いだ 8 コア制限は無くなりました。新しい制限は 64 コアです。しかし、これは任意の定数でいつでも増やすことができます。一般に、スレッドスケジューラーは重要ですが、特に Haiku では重要です。それは、Haiku システムの実行が、ほかのデスクトップ環境よりも常に一桁以上のスレッドをしばしば持つことがあるからです。それは、Be API のユーザーインターフェースウィンドウごとに 1 つの (加えていくらかの) スレッドを使う規約のためです。

同じ開発契約の一部で、memcpymemset の x86 用プリミティブの新しい実装があります。それもパフォーマンスの著しい増加を意味します。

ASLR、DEP、および SMAP の実装とデフォルトでの有効化

ASLR (Address-Space Layout Randomization (アドレス空間配置のランダム化)) および DEP (Data-Execution Prevention (データ実行防止), “NX bit”とも呼ばれる) が、スレッドスケジューラー書き換えの開発契約の一環として、カーネルとユーザーランドアプリケーション用に実装されました。BeOS R5 上でコンパイルされたアプリケーションは、これらの機能の影響を受けず、無効化されます。それ以外については、Haiku 上でエクスプロイトを作成することを大幅に難しくします。

SMAP/SMEP (Supervisor Mode Access Prevention (スーパーバイザーモードアクセス制限) / Supervisor Mode Execution Prevention (スーパーバイザーモード実行制限)) は、カーネルが正しいチェックなしにユーザーランドメモリーにアクセスすると、それらが、システムパニックを起こすので、64 ビットカーネル上で 32 ビットアプリケーションの実行サポートを追加する活動の一部として、2017 年の終わりに実装が開始されました。これらの実装により、カーネル内に 3 ダース以上のこのようなチェックの抜けが補足されました。それらは、まずく (または悪意を持って) 書かれたコードによって、"assert failure” スタイルのカーネルパニックより極悪なことを潜在的に引き起こす可能性があります。

関連した作業により、カーネルメモリーエリアの保護に関するいくつかのロジックも、クリーンアップされ、強化されました。それは、ほとんどの BeOS ドライバーは、最初にかなりの変更をしないと Haiku ではまったく動かないことを意味します。

launch_daemon

ユーザーランドの起動プロセスは、以前は地味なシェルスクリプトでしたが、launch_daemon の形式に完全に書き換えられました。それは、Apple の launchd や、その他の関連するサービスシステムに発想を得たものでした。

それは、サービスの依存性追跡のサポート、daemon の遅延起動、および daemon クラッシュ時の自動再起動を含んでいます。それは、Haiku がほとんどのドライバーやその他のシステムコンポーネントで使用するのと同じ標準設定テキスト形式で設定されているので、カスタムサービス用の新しい構成の追加などは比較的容易です。実行中にサービスを制御するのは、新しい launch_roster コマンドラインツールを通じて行います。

virtio バスマネージャーとドライバー

“実機 (bare metal)” でのサポート向上に加えて、Haiku R1/beta1 は、仮想環境での実行のサポート向上も追加されました。virtio バスと付属のドライバーは、QEMU/KVM およびほかのハイパーバイザーでおもにサポートされていますが、現在、Haiku にドライバーがあります。これらは、virtio_scsi/virtio_blockvirtio_net、および virtio_rng を含みます。virtio バスを使用する新しいデバイスドライバーの追加は比較的容易なはずです。

この活動のおかげで、Haiku は virtio を使用するほとんどのパブリッククラウド上で動作できるようになりました (動作します)。

アップデートされた Ethernet および WiFi ドライバー

私たちの ethernet および WiFi ドライバーは、KPI 互換レイヤーのおかけで、ほとんど FreeBSD から取られています。それらが、FreeBSD 11.1 からのものにアップグレードされました。これにより、Atheros 9300-9500 ファミリー、Intel の新しい “Dual Band” ファミリー、いくつかの Realtek 製 PCI チップセット、および既存のすべてのドライバーで、新しいモデルのチップセットのサポートをもたらしました。

さらに、FreeBSD 互換レイヤー自体が、Haiku の MSI-X 割り込みサポートと正しくインターフェースを取ります。つまり、WiFi および ethernet ドライバーは可能であればそれをうまく利用でき、それによってレイテンシとスループットが大きく改善します。Haiku 上のほとんどのネットワークドライバーは、FreeBSD 上にあるものと十分比較してほぼ同じパフォーマンスがあります。

USB WiFi チップセットは、互換レイヤーがまだ USB デバイスとのインターフェースをサポートしていないため、まだサポートされないことに注意してください。これらのサポートの作業が開始していますが、このリリース時にはまだ完了していません。

アップデートされたファイルシステムドライバー

GSoC プロジェクトの NFSv4 クライアントが、Haiku についにマージされました。それは標準で含まれています。btrfs ドライバーは、新しい BTRFS パーティションの読み込みサポートを得ました。書込みサポートが開始されていますが、まだ利用できません (GSoC プロジェクトにも感謝)。

さらに、ユーザーランドでファイルシステムドライバーの実行をサポートする Haiku のuserlandfs が、現在 Haiku に同梱されて出荷されました。それは、BeOS ファイルシステムドライバー (それはもはやカーネルモードではサポートされていません)、Haiku ファイルシステムドライバー (主にデバッグ用途に有用です) の実行、および FUSE 互換性を提供します。その結果、とりわけ、FuseSMB を含むさまざまな FUSE ベースのファイルシステムドライバーが ports ツリー上で利用できます。

全般的なシステムの安定性

ひとつには、より多くのテスターが Haiku をフルタイムまたはパートタイムで実行してくれたおかげで、および、Haiku を自動化された HaikuPorts パッケージビルダーで動かしたことで、前のリリースからのかなりの数のカーネルパニック、未知のクラッシュ、または特に長い稼働時間や重い負荷に関係したその他のシステムの不安定性が見つかり修正されました。

加えて、たくさんの新しいネイティブドライバーが追加されました。とりわけ、(半分実験的な) USB3 (XHCI) デバイスのサポート。これはまだ少し不安定で、ユーザーのハードウェアによって、USB3 デバイスからブートできたりできなかったりするかもしれません。一般的なコントローラー (Intel 製など) が現在一番良く動作します。

64-bit time_t (32-bit x86 以外)

現在、32-bit x86 以外のすべてのプラットフォームで、time_t は 64 ビット値となりました (32-bit x86 が例外なのは、BeOS とのバイナリ互換性を維持するためです)。

実験的な Bluetooth スタック

これが最後です … なぜならこれがもっとも小さく、リリースイメージに含まれていないからです。最近の nightly イメージにのみ含まれます。それは様々な Bluetooth コントローラー上で デバイスの表示とペアリングができるという点で “動作” しますが、それ以上はできません (また、それはよくクラッシュします)。しかし、少なくともそれは起動します!

新しい貢献者

最後のリリースから、コミット権を持つ新しい Haiku デベロッパーが 6 名増えました。すでに彼らは皆 Haiku に重要な貢献をしています。

彼らに加えて、はじめて Haiku コードベースにパッチをコミットしてくれたたくさんの方がいます。どうもありがとう!

ソースコード

Haiku 自体のソースコード、必要なビルドツールおよび optional packages (クローズドソース以外のもの) のソースコードはリリースイメージに _source パッケージとして含まれます (容量制限のため、“CD” イメージからは外されています)。

問題の報告

Haiku のバグトラッカーには、3200 以上のオープンチケット、11000 以上のクローズドチケットがあります。問題と思うものを見つけたなら、私たちの Trac を検索して、すでに報告されているか見てください。もし報告されてなければ、https://dev.haiku-os.org/ に新しいチケットを登録してください。

リリース後に修正された主要な問題の情報は、https://dev.haiku-os.org/wiki/R1/Beta1/ReleaseAddendumを見てください。

より多くのヘルプについては、Haiku デスクトップの ‘Welcome’ リンクか、Haiku プロジェクトのウェブサイト、https://www.haiku-os.org を見てください。

プレス窓口

プレスの問い合わせは、直接以下へ:

上記 3 人には、以下を通じて連絡できます <nickname>@gmail.


© 2001-2018 Haiku, Inc. — Haiku® および HAIKU logo® は、 Haiku, Inc. の登録商標です。