「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



http://www.nicovideo.jp/watch/sm32801136

14日目、もう来てた。早いねぇ。ずっとこのペースって
わけにもいかないだろうな。






昨日のVcXsrv、気になったので使ってみることに。


まずそのまえに、X Server周りの基礎知識を整理して
おきます。

UbuntuとかLinux Mintみたいな、GUIが使えるUnix系
のOSでは、アプリとOSの間にX Windowっていうのが
挟まってて、このX Windowは、XサーバとXクライアント
の2つからできています。

プログラムは、ユーザからの操作をXクライアントから
受け取ったり、Xクライアントに渡したりすることで、
入出力や操作を送受信できます。

ユーザのマウスやキーボードの操作は、OSの入出力機能
がやり取りして、それをXサーバを経由して、Xクライアント
に渡したり、Xクライアントから受け取ったりっていう
通信を行っています。

つまり、マウスやキーボードの操作や画面表示と、アプリ
の入出力機能の間に、XサーバとXクライアントが挟まって
いるわけです。



図にすると、この、一番右側の「アプリC」に関するあたり。

(サーバとクライアントが、いわゆる普通の用語とは
逆っぽい印象なので、よく勘違いの元になるみたい
だけど、このように、ユーザ操作に関する側がサーバ、
プログラムが動いている側がクライアント)


で、このXサーバとXクライアントは、同じマシン上に
無くても全然構わなくて、ネット越しに通信することも
できます。つまり、離れたところから、マウスやキーボード
で、GUIアプリを操作することも出来るというわけ。

この図で、もし左半分がWindows機じゃなく、Linux機の
場合、sshコマンドを使えば、CLIでリモートログイン
して、まるで自端末のようにあれこれ操作できるってことは、
Raspberry Piを使ったことがある人なら、だいたい解ると
思うんだけど、それだとあくまでCLIでの操作しか出来ない。

でも、sshコマンドで、「-X」(大文字のX)スイッチを
使って、

 ssh -X (user)@(IP address)

ってしておくとと、「X11のポートフォワーディングが有効」
になって、つまり、sshコマンド経由で、X Windowに関する
通信が中継されるわけ。

この状態で、sshで繋いだ先のコンソールで、たとえば
caja(Linux Mint用のファイルマネージャ)を打って
実行すると、アプリは繋いだ先のOS上で実行されながら、
手元のGUI画面上にその結果(cajaのファイルマネージャ
画面)が表示されるという具合。
さらに、そのファイルマネージャ上でtxtファイルを
ダブルクリックすると、紐付けてあったテキストエディタ
が先方で実行されて、GUI画面は手元の端末に表示される、
という具合でいい感じ。

まぁ、UNIX系OSなら、BSDでもOS-Xでも似たようなものなん
だけど、問題はWindows。

Windowsは、この「sshコマンド」に相当する部分もないし、
「Xサーバー」に相当する部分もない。

sshコマンドにあたる部分は、実はteratermとかRlogin
みたいな、端末エミュレータを使えば、そういう機能を
ちゃんと持っているのでいいんだけど、Xサーバーは
簡単にはいかない。もともとそういうUNIX系のGUI環境
なんて持ってないから。

で、有料の結構高いソフトとか、無償でもライセンスが
ちょっと微妙なソフトとかはあったんだけど、昨日見つけた
VcXsrvは、無償で使えて、ライセンスも心配無さそう。
というのが、昨日までのおはなし。





さて、薀蓄的なことは置いておいて、使ってみる。
んで、今回は、接続先(Xクライアント環境)として、
VMware上のLinux Mintを使ってみる。

Windows側で、VcXsrvをダウンロードしてインストール。
デスクトップにアイコンが出来るので、これを実行。
常駐してタスクバーの「通知アイコン」欄に「X」マーク
のアイコンが増えているのを確認しておく。これで、
Windowsにもともと無かったXサーバの機能が増えたわけ。


次に、一度teratermを起動して、「設定」→「SSH転送」
と開くと、「SSHポート転送」サブウィンドウが開くので、



「リモートの(X)アプリケーションをローカルのXサーバに
 表示する」にチェックを入れて「OK」。
この設定を保存して有効にするために、「設定」→
「設定の保存」で、設定を「TERATERM.INI」ファイルに
上書き保存して、teratermを一旦終了。

あらためてteratermを起動すると、SSH転送機能が有効に
なっている(sshコマンドの-Xスイッチと同じ効果)ので、
あらためてLinux MintにSSHログイン。

いつものように、teratermの黒い画面上に表示されている
Linux Mintの端末画面で、おもむろに
「caja」と打ってみる。



すると、Windowsのデスクトップ上に、



こんな具合に、cajaの画面がGUIで表示される。

ちなみに、このままだと、cajaを終了するまでのあいだ、
teraterm上のcajaのコマンドが動いたまま返ってこない
ので、「caja &」って起動しておくといいかもしれない。

というわけで、Linux機同士でssh使って繋いで、別の
マシンでGUIプログラムを動かす仕組みと同じように、
Windows機からも、GUIプログラムを動かすことが
できたわけ。

もちろん、このcaja画面上から、txtファイルとか、
rubyの.rbファイルとかを開いて、テキストエディタで
編集したり、ファイルによっては実行フラグ立てて
おけば、ダブルクリックで実行したりすることも
できちゃう。
特に、.rbとか.pyファイルみたいに、編集するのか、
それとも実行するのかわからないような場合は、
いつものようにこういう感じで聞いてくる。



編集するのであれば、



Mint上の「geany」とかが開いて編集できる、って具合。
もちろんこれら全部、WindowsのGUI画面上に表示された、
Linux上で動いているプログラム。

(ただ、CLI用のプログラムだと、実行しても画面が
 出てこないので注意。あと、日本語入力環境とか、
 日本語表示のロケールとか、その辺もちゃんと
 設定しておく必要もあるので注意)

Raspberry Piなんかも同類なので、Linuxからsshコマンド
に-Xスイッチつけたのと同じように、Windows上のteraterm
からSSHログインして、Raspberry PiのGUIソフトをWindows
のGUI画面でリモート実行することもできちゃう。





さて、これだけなら、こないだまで一生懸命作っていた、
Linux Mint上のファイル類をsambaで共有してWindows側
から編集したり、teratermで端末操作したりっていう
オレオレ手順メモと、ほとんど違いもない。
むしろ、LinuxOS側にXクライアントとか各種アプリとか
を実行させておく必要があるので、メモリ足りるの?
とか心配になってしまうところ。何のメリットが
あるの?と。

もともとの希望は、この一連のゴニョゴニョは、Rails
の開発環境をVMwareかVirtualBoxのLinux上に構築して
おいて、母艦のWindowsから操作したり編集したりしたい
なぁっていうあたりから出てきた要件なので、まずは
Xサーバ使って、その最低線が出来た次第。
加えて、Xサーバ経由だと、cajaとかのファイルマネージャ
画面で「右クリック→端末で開く」ってすると、その
ディレクトリで端末が開けるということに尽きる。
これ便利便利。ここ大事。(sambaだと出来ない)


これがやりたかった。これが出来るだけで、ディレクトリ
の移動がマウス操作だけで済ませられるし、見やすいし、
解りやすい。そもそも、Windows7のエクスプローラと
違って、操作しやすい。

まるで、Linux OS上でLinux OSの操作しているみたいな
感じで、シームレスにWindows環境上から操作できる。


しかもVcXsrvは、使ってみた感じ、遅さは感じない。
ビデオの再生とか、重たい3Dのゲームとかは知らない
けど、普通のプログラムを普通に操作する分には
申し分なし。


…かなりいい感じに使えることは判ったんだけど、
さて、どのくらいメモリ食っちゃうのかねぇ?

Railsアプリ開発するとなると、Railsの実行環境+
Xクライアントの分の両方のメモリを食うわけで、
今使ってるVirtualBoxの768MBメモリ環境で、足りる
のやら、足りないのやら…

X Windowインストール・実行しておくだけで、
結構メモリ食うような気がするんだよな。
まぁ、VMwareで動かしてるLinux Mintは1GBしか
メモリ割り振ってないんだけど。でも1GBだと
カツカツで、ちょっとメモリ足りなくなってくると、
すぐにスワップしまくるんだよな。





https://twitter.com/marikomikuni/status/966126677146284033

散歩とエサやり。




https://twitter.com/felis_silv/status/968507139848220672

PICKit4。





LibreOffice起動したら、新しいのあるからアップデート
してちょ!っていわれたので、アップデートしてみる。

https://www.libreoffice.org/download/download/?lang=ja&version=5.4.5

おぉ?LibreOffice6.0.1だって!?

なにか新しい機能とかついたの?なになに??

って思って、早速、LibreOffice5.4.5をダウンロード。

フフフ。メジャーアップデートなんて、そんな簡単に
インストールしないのだ。人柱にはならないぞ。





https://twitter.com/Konimiru/status/968729488757534720

こういうの、どこのハードオフに行けば売ってるの?
FM-X、すんごいきれいなんだけど!!




http://natgeo.nikkeibp.co.jp/atcl/photo/16/b/022700021/

この中に、ギリアン=シードが含まれているわけだな?





キーボードのスペースキーが駄目になってきたみたい。
日本語変換したいときとかに、スペースが反応しない
場合があって、使いにくい。

調べてみると、

http://brown.ap.teacup.com/nekosan0/2587.html

大体3年弱くらいか、今のキーボード。意外ともたない
かんじだなぁ。
このサイズ、この打鍵の静かさ、このレイアウト…って
考えると、ほかに代替のキーボードがないんだよな。
2個くらい買いだめしておいてもいいんだけどな。




コメント ( 0 )