FreeBSD Daily Topics

2009年7月21日日本語が表示できる新しいコンソールドライバ開発中(Ed Schouten氏)、tcsh 6.17.00登場、Firefox 3.5国際版登場

heads-up

new console driver

current - Ed Schouten氏がcurrent mlにおいて、開発を進めている新しいコンソールドライバについて説明しています。コンソールの状態で日本語が表示できるようになる興味深い取り組みです。

FreeBSDのデフォルトのシステムコンソールは、VGAのテキストモードを利用しており、8ビットキャラクタしか扱えません。FreeBSD 8-CURRENTには限定的ではありますがUnicodeを扱うための機能が追加されており、カーネルを「options TEKEN_UTF8」「options TEKEN_XTERM」のオプション付きでビルドさせ、/etc/ttysのcons25をxtermに書き換えることで一部のUnicodeが表示できるようになります。これはカーネルがUnicodeキャラクタをシステムコンソールに出力する段階でCP437に変換するという仕組みになっています。このためCP437で定義されている記号や点付き文字は表示できるものの、日本語は表示できません。

Ed Schouten氏が開発している新しいコンソールドライバは、VGAテキストモードではなくVGAグラフィックモードを使うことでUnicodeの表示を実現するものです。テーブル/フォントをスイッチする必要がないなどの特徴があると記述があります。

Ed Schouten氏の説明によれば、VGAドライバには2005年にMarcel Moolenaar氏がvtc(4)向けに開発したものを最適化したものを使っているとされています。実施された最適化は次の2つのようです。

  • sysconsに適用したのと同じように、スクリーンフレッシュに25Hzタイマーを利用するように変更。ただし起動時、カーネルデバッグ時、パニック時はこの手法は使わない。書き込みと描画が非同期に実施される
  • VGAハードウェアに対する不必要な読み書きが発生しないように最適化

Ed Schouten氏は、開発中のコンソールドライバはまだまだ改善の余地があり、完成するまでにはまだ時間がかかるだろうと説明しています。完成時にはさらに実行速度は高速になるようです。

氏はTTYまわりをすべて再実装した若手の開発者です。TTYまわりからGiantロックが消えたのは彼の開発の成果です。それ以外にもLLVMによるビルドへの積極的な関与など、FreeBSDカーネル開発で現在アクティブに取り組んでいます。

 Ed Schouten氏の新しいコンソールドライバでUnicodeを表示しているところ
図 Ed Schouten氏の新しいコンソールドライバでUnicodeを表示しているところ

src

tcsh 6.17.00

current - FreeBSD 8-CURRENTのtcshがtcsh 6.17.00へアップグレードされました。

ports

www/firefox35-i18n
www/firefox-devel

国際版Firefox 3.5に対応したport(www/firefox35-i18n)が新しくPorts Collectionに追加されました。また、Firefox開発版のport(www/firefox-devel)がPorts Collectionから削除されました。代わりwww/firefox3やwww/firefox35を使うようにとされています。

おすすめ記事

記事・ニュース一覧