取っ掛かりは掴めた
次は、Windows向けソフトのARM版を開発する事にしているのだが、その前に、Ubuntu向けソフトのWayland対応について調査してみている。何にしても、大昔のOSに対する考え方とは真逆な時代になったかもしれない。
何がどう真逆なのか、というと、昔のOSというのは、アプリケーションソフトを動作させる為のAPIを提供する事で、アプリケーションソフトの開発を楽にしてくれる存在だった。
しかし、今時のOSというのは、自らが変わる事で、アプリケーションソフトの開発者を啓蒙している! みたいな事を言っていたりする。
具体的には、Linux関連のディストリビューターなんかは、Waylandを標準化するだけでは飽き足らず、X.orgの利用をできなくする事で、アプリケーション開発者に、Wayland対応を迫る! みたいな事を言っている訳だ。
Windowsについても、2030年には、電力効率が良いARM版が主流になるのだから、お前らは、さっさと、ARMネイティブ版を開発しろ! みたいな圧力をかけてきている。
このため、作者的には、体力的にシンドイし、実際の所、作者的にも、ユーザー的にも、殆どメリットなんてない筈なのだが、Windows向けには、自前ソフトのARMネイティブ化をしなければならず、Ubuntu向けにも、Wayland対応が必要になっている今日この頃だ。
と、言う事で、アプリケーションソフトの開発者は、いつから、プラットフォーム開発者の奴隷になってしまったのかなあ、と、思ったりもしているのだが、巷では、Wayland対応なんて面倒な事をする気はないし、Windows向けソフトの更新なんてのもする筈がない! みたいなアプリーションソフト開発者が多数を占めているかもしれない。
なので、X.orgを廃止してWaylandのみとなったプラットフォームでは、マトモに使えるアプリが皆無になる結果、ユーザーは離れて行き、ARM版Windowsは、殆どのアプリがIntelCPUのエミュレーションで動作する結果、Intel版Windowsよりも、消費電力は高くなり、性能は低くなる未来が、見え隠れする今日この頃だ。
ちなみに、WaylandセッションのUbuntuで、動作する画面録画ツールとスクリーンキーボードとリモートデスクトップソフトについては、何となく、どういうAPIを使えば実現できるのか、というのは、判った感じだ。
このため、真面目に作業すれば、何とかなりそうなのだが、今のところ、実現方法として2つがある感じだ。
一つ目は、Wayland関連のAPIは使わず、その他のAPIを使って実現する格好になるので、X.org環境でも、似た様な方式が使える。
もっとも、作者製ソフトについては、既に、X.org環境用のコードは実装されているので、X.org環境で利用できる、という事には大した意味はない。
にも関わらず、こちらの方式も検討対象としているのは、Wayland関連のAPIを使う方式は、実装が面倒そうだからだ。
また、昨日書いた様に、その方式は業界標準という訳ではなく、今現在のUbuntuのWaylandセッションに対応可能、というだけなので、より汎用性が高いのは、前述の方式になりそうな訳だ。
もっとも、細かい事を書くのは疲れるので書かないのだが、前述の方式は、画面キャプャーについては、Gnomeの拡張機能を使い、マウス・キーボードエミュレーションについてはLinuxカーネルの機能を使う。
なので、Ubuntuのリモートログインの様な、別ユーザー用のセッションをローカルセッションと同時に動作させる、みたいな形では使えない方式になるので、そういった事まで可能にしようとすると、後者の様な方式を使う必要がある。
ただ、そこまでやろうとすると、Waylandのセッション絡みのコードを色々と書かないといけなくなるので大変になるし、そこまでの機能も必要ないかなあ、と、思ったりもしている訳だ。
まあ、そこまでの機能を実装してしまえば、現行版のMirror-DTCサーバーよりも、格好良くはなるかもしれないのだが、実際の所としては、そんな使い方がカッコ良いと思うのは、職場のUNIXワークステーションをマルチユーザーで同時利用していた、作者の様な古い時代を生きたエンジニアの幻想でしかないかもしれない。
つまり、マルチユーザーでの同時利用なんて機能を、頑張って実現してみたところで、今時、そんな機能を必要とするユーザーは皆無な筈なので、労多くして益少なし! という事になりそうな訳だ。
なので、現在ログイン中のユーザーのセッションをリモート操作する事だけをターゲットにするのなら、もっと、単純明快な、前者の様な方式の方が、実装は簡単な筈な訳だ。
もっとも、それで必要な性能が出せるかどうかは今のところ判らないので、明日は、少しテスト実装してみて、性能を確認してみるつもりだ。

