2015-12-31

Wayland と X Window System

Wayland は、X Window System の代替を目指している Linux 向けに開発されたディスプレイサーバーのプロトコルで、OpenGL ES ベースのグラフィックシステムです。なぜ、Linux 向けなのかというと、Wayland は Linux カーネル組み込みの DRM (Direct Rendering Manager) 1. や、高速な GPU メモリ管理機構の GEM (Graphics Execution Manager) 2. を利用しているためです。Wayland は Red Hat の Kristian Høgsberg 氏を中心に開発が進められており、MIT のライセンスに基づいて配布されています。

Wayland は X Window System よりもシンプルで柔軟性があり、今やどこにでもあるグラフィックス・アクセラレータ用ハードウェアをサポートしています。そのため、現在の X を上回る高速な描画性能が期待できます。

すでにいくつかの GUI ライブラリやウィンドウマネージャが Wayland をサポートしています。GNOME はバージョン 3.14、KDE はバージョン 4.11 からサポートされています。

参考サイト [3] によると、次の Fedora 24 では、GNOME on Wayland がデフォルトのウィンドウマネージャになる可能性に触れています。もっとも、オプションとしては、GNOME on Wayland は Fedora 21 から利用可能になっています 4.。当然、Fedora 23 でも利用可能です。

ノート PC にインストールしてある Fedora 23 で、デフォルトの GNOME から GNOME on Wayland に切り替えて少し使ってみたところ、画面の描画速度が目覚ましく速くなったという実感はありませんでしたが、デフォルトの GNOME とほぼ差異なく使用できます。

ただ以下の二点が気になりました。

マウス中ボタンによるペースト
昔は UNIX/X 用に 3 ボタンマウスが販売されていましたが、今ではほとんど見つけることができません。その代わりマウスホイールをクリックすることで、従来の中ボタンの代替ができていますが、この機能が Wayland 上では効いていません。もしかするとこのようなマウスイベントは Wayland がサポートする範囲外なのかもしれません。
外付けディスプレイとの切り替え
ノート PC を使っているときは、使っている最中に外付けディスプレイを接続したり外したりして画面を切り替えることがあるのですが、デフォルトの GNOME に較べて、制御ができなくなる不具合が生じる頻度が多いと感じました。残念ながら詳しくデータとして残せるような検証まではしていません。

なお、Raspberry Pi などでは、画面描画速度が Wayland によって明らかに改善されているという報告がされています 5.

Ubuntu を支援している Canonical も 2010 年に Wayland の採用を発表していましたが、その後、独自に Ubuntu 向けに Mir というディスプレイサーバを開発して、それを次世代の Unity で採用することに計画が変更されました 6.。Mir は GPLv3 に基づいて配布されます。

いろいろ似たようなプロジェクトが出てきて競争をもたらすことは結構なことですが、多様性を制限なしに許すと、開発者にとってコストの増加につながりますので、頭の痛いところです。

Linux ユーザーとしては、X から軽量のディスプレイサーバに置き換わって、グラフィックボードが持つ性能を十分享受できるようになれば、いずれが主流になっても構いません。しかし、そこまで期待するのであれば、オープンソースの成果を利用している一人として、何か貢献できることがないか考えなければ…。

X が現在のバージョン 11 (X11) になったのは 1987 年。それ以来、マイナーな改良を続けながら実に四半世紀以上も、Unix系オペレーティングシステム (OS) などでのグラフィカルユーザインタフェース (GUI) を構築するためのプロトコルとして利用され続けています。

参考サイト

  1. カーネル2.4の特徴は
  2. Graphics Execution Manager - Wikipedia
  3. Fedora 23 lands with GNOME 3.18, Wayland progress, and a new upgrade system | PCWorld
  4. GNOME on Wayland in Fedora 21 - Fedora Magazine
  5. Raspberry Pi Gains Graphics Speed as Wayland Replaces X | Linux.com
  6. Canonical、独自のディスプレイサーバーを開発することを発表 | スラド Linux
  7. Wayland

2015-12-30

【備忘録】「公開」ディレクトリの使い方

Fedora をノート PC にインストール後、Gnome をデスクトップ環境に使うようになりました。今までデスクトップ用 PC では LXDEMate を使ってきており、Gnome のデスクトップ環境にあまり慣れ親しんでいませんでした。

Gnome では、ホームディレクトリにデフォルトで作成されるディレクトリに「公開」があるのですが、このディレクトリの使い方が判らなかったので、今更ながら調べたことを備忘録とします。

まず、「設定」画面から「共有」を選択します。

「共有」のダイアログで「パーソナルファイル共有」を選択して、オンにします。必要に応じてパスワードを設定します。

「共有」のダイアログの「パーソナルファイル共有」がアクティブに変わります。

設定は以上です。

ネットワーク上にある別の Linux PC で Nautilus を起動、左側の「他の場所」を選択すると、先ほどアクティブにした共有ファイル(ディレクトリ)が表示されるので、これをクリックします。この例では、bitwalk's public files on notepc と表示されているアイコンです。

すると、同名 (bitwalk's public files on notepc) のネットワークディレクトリのアイコンが表示されますので、それをクリックすると、ディレクトリの内容が表示されます。

出来てしまえばなんていうことはありません。ネットワーク内で複数の PC を使っている時には重宝しそうな機能です。

なお、これは Gnome においてファイルアクセス抽象化機能を提供している GVFSWebDAV クライアント機能を利用しているようですので、Windows からも適当なツールを使えばアクセスできそうです。Windows からのアクセスについては、また別の機会に紹介します。その前に、WebDAV について知識が足りないので、勉強する必要があります。


2015-12-29

XMind 7 for Fedora 23

XMindは、マインドマップを作成できるソフトウェアです。下記サイトから Linux 版がダウンロードできますが、パッケージは deb パッケージのみで、残念ながら rpm パッケージは提供されていません。

昨年も年末に同じような記事を書きましたが、XMind のパッケージがバージョンアップされているので、今年も deb パッケージから rpm パッケージに変換しました。

使用した環境は次の通りです。

  • OS: Fedora 23 (x86_64)
  • JDK: jdk1.8.0_66-1.8.0_66-fcs.x86_64 (Oracle)
  • alien: alien-8.90-5.fc23.noarch
  • rpm-build: rpm-build-4.13.0-0.rc1.7.fc23.x86_64

alien を用いて、dep から rpm への変換は問題なく出来ますが、相変わらずインストール時にエラーが出てインストールできません。そこで、昨年の記事(下記 [1])と同じ方法で rpm を作成しました。

今回は、下記 [2] へ作成した rpm パッケージをアップロードしておきました。xmind-3.6.0-2.x86_64.rpm をダウンロードしてお使いください。

  1. bitWalk's: 【備忘録】XMind と Fedora 21
  2. XMind RPM Wiki - OSDN

rpm パッケージについては、alien が生成した spec ファイルに最低限の修正を加えただけでビルドしています。個人的には、いろいろと手を加えたいところですが、キリがないので止めました。

$ rpm -qi xmind
Name        : xmind
Version     : 3.6.0
Release     : 2
Architecture: x86_64
Install Date: 2015年12月28日 21時07分16秒
Group       : Converted/non-free/editors
Size        : 134188775
License     : see /usr/share/doc/xmind/copyright
Signature   : (none)
Source RPM  : xmind-3.6.0-2.src.rpm
Build Date  : 2015年12月28日 21時03分48秒
Build Host  : notepc
Relocations : (not relocatable)
Summary     : Professional & Powerful Mind Mapping Software
Description :
XMind, is an open source brainstorming and mind mapping software tool
developed by XMind Ltd. It helps people to capture ideas, organize to
various charts, and share them for collaboration. Supporting mind maps,
fishbone diagrams, tree diagrams, org-charts, logic charts, and even
matrix. Often used for knowledge management, meeting minutes, task
management, and GTD. XMind is compatible with Freemind/Mindmanager.
XMind is dual licensed under 2 open source licenses: the Eclipse Public
License v1.0 (EPL) and the GNU Lesser General Public License v3 (LGPL).
XMind Plus/Pro is released under the terms of the XMIND PROPRIETARY LICENSE
AGREEMENT, which is available at http://www.xmind.net/license/xpla/ .


(Converted from a deb package by alien version 8.90.)
$ 

実行例を以下に示しました。

2015-12-27

MD5 & SHA Checksum Utility

1970 年代後半に、月刊マイコン(電波新聞社)、月刊アスキー(アスキー)、I/O(工学社)、月刊 RAM(廣済堂)、Oh!PC(日本ソフトバンク)などのマイコン誌が次々と創刊され、ゲームを中心としたプログラムが毎月掲載されるようになりました。BASIC の実行速度の遅さを克服するため、機械語あるいはマシン語と当時呼ばれていた、CPU の命令セット(バイナリ)を16進数で表現した数字の列も多く掲載されていました。私はそれを修行僧の苦行であるかのように、ただひたすら手入力していたマイコン少年の一人です。その際にチェックサムには大変お世話になりました。

そのチェックサムは、一行のバイト列の個々のバイトの総計 (sum) の下位1バイトを、そのまま符号値とします。この方法は単純な加算であるため、各バイトを保持したまま順序のみ変化させた場合にも同じ値を示しますし、それ以外の誤りに対しても、符号値が同じになる確率は決して低くなく、誤り検出の方式としての信頼性は高くありませんでした。それでも、入力誤りの簡易的な確認のためには一定の成果をもたらしてくれたのでした。

今では、通常の PC を使用する限り、CPU の命令セットをプログラムを実行させるためにバイナリで手入力するという機会はなくなり、チェックサムを利用する場面は無くなりましたが、それでも、サイズの大きいファイルをダウンロードした際に、正しくダウンロードできたかどうかを検証する必要性は、依然として残っています。

単純なチェックサムは、誤り検出の信頼性が高くないので、現在ではもっぱら暗号学的ハッシュ関数が用いられます。符号化されたデータをメッセージ (message) と呼ぶことが多いので、メッセージのハッシュ値をメッセージダイジェスト (message digest) とも呼びます。広く使われている暗号学的ハッシュ関数には MD5SHA があります。

Linux であれば、大抵はデフォルトでインストールされている GNU Core Utilities (coreutils) パッケージで一般的な暗号学的ハッシュ関数を利用することが出来ます。例えば sha256sum は、SHA256 メッセージダイジェストの計算と照合をおこないます。SHA256 は、2001 年に米国家安全保障局 (NSA) が開発し、米国立標準技術研究所 (NIST) がハッシュ関数の国家標準の一つとして採用された、通称 SHA-2 と呼ばれる暗号学的ハッシュ関数のひとつです。

$ ls /usr/bin/sha256sum
/usr/bin/sha256sum
$ rpm -qf /usr/bin/sha256sum
coreutils-8.24-4.fc23.x86_64
$ 

前述の、サイズの大きいファイルのダウンロード例として、Linux などの OS のイメージが挙げられます。下記は Fedora 23 Workstation の ISO イメージをダウンロードして、検証ファイルと照合した例です。

$ sha256sum -c Fedora-Workstation-23-x86_64-CHECKSUM.txt
sha256sum: Fedora-Workstation-netinst-x86_64-23.iso: そのようなファイルやディレクトリはありません
Fedora-Workstation-netinst-x86_64-23.iso: オープンまたは読み込みに失敗しました
Fedora-Live-Workstation-x86_64-23-10.iso: 完了
sha256sum: 警告: 書式が不適切な行が 20 行あります
sha256sum: 警告: 一覧にある 1 個のファイルが読み込めませんでした
$ 

前置きが大変長くなりましたが、Windows 上で同じことをしようとすると、機能として備わっていないので、なにか良いフリーソフトがないか探しだすことになります。実は前の記事でその必要に迫られました。GUI が日本語対応していませんが、使いやすいツールを見つけましたので紹介します。ハッシュ値を入力しておけば照合してくれます。

使用例を下記に示しました。

2015-12-26

ASUS X200MA に Fedora 23 をインストール

ASUS X200MA は、今年の 2 月に廉価に惹かれて購入したノート PC ですが、Fedora 22 のリリース時にインストールをトライしたもののうまく行かず、代わりに Ubuntu 15.04 をインストールし、11 月には 16.04(開発版)にアップグレードして使っていました。

年末年始の休みに入り、時間の余裕ができたので Fedora 23 Workstation 版を試したところ、問題なくインストーラが起動してインストールが出来てしまいました。

業務で RHEL 用のインストールイメージを USB メモリで用意する必要があったので、Windows 7 上で Rufus を使って作成しましたが、ついでに Fedora 23 のイメージも焼いておき、それを利用しました。今後は、Fedora 上ですべて準備ができるようにしたいものです。

関連サイト

  1. bitWalk's: ASUS ノートブック (2015-02-11)
  2. bitWalk's: ASUS X200MA に Ubuntu 15.04 をインストール (2015-05-31)
  3. bitWalk's: Ubuntuのアップグレードのやり方 - Ubuntu入門 (2015-11-10)

2015-12-15

モノリス

Java 9 関連の記事を調べているとき、下記の文で気が付いてしまいました、「モノリシック」という表記が誤植でないことに。

Java 9では2つのことを解決しようとしている。1つはClaspath、もう1つは巨大なモノリシックとなったJDKだ。

そもそもモノシリックってどういう意味だったんだっけ、と思って調べてみたら、自分の間違いに気が付いたのでした。恥ずかしい話ですが、ずっと「モノシリック」と覚えていました。

monolith(一枚岩、石柱)の形容詞が monolithic、しっかり覚えておこう。

誤植は Claspath の方なんですけどね。

2015-12-06

Linux / UNIX: DNS Lookup Command

Linux をサーバに採用することは大いに賛成なのですが、職場では Windows を使いたがる人が多いので、そういうことを言うのは極めて少数派になってしまいます。しかし、事情によって Linux サーバを扱わなければならない時、そういう自分に出番が回ってきたりして、ちょっと嬉しい気分になります。

とは言え、社内テストができる都合の良い人間としてうまく使われているだけ、という気もしないではありませんが、まあ、あまり気にしないことにしています。

そんな折、新しいテストサーバが入ってきて、目も眩むような豪勢な仕様にクラクラしながらも嬉々として設定を始めました。社内の IT 部門に固定 IP アドレスを割り振ってもらったのですが、一緒に通知された DNS のひとつに見慣れないアドレスが含まれていました。DNS サーバは幾つもあるはずなので、まさか間違いではないとは思うが、自力で確認できたはず…。不覚にも思い出せなかったので調べてみたら、いいサイトがあったので、備忘録とします。

そうだ host コマンドで確認できたるんだったと、ちょっと唖然としました。

下記の例は、Ubuntu をインストールしてあるノート PC で google.com を調べた例です。

dig コマンドだと次のようになります。

そう言えば、思い出せなかったのは nslookup でした。