工作室」サイトの日記的なブログです。サイトに挙げなかった他愛ないことを日記的に書き残してます。工作室」topに戻ります。arduino別館」topに戻ります。http://www.nicovideo.jp/watch/sm3280113614日目、もう来てた。このペースってわけにもいかないだろうな。昨日のVcXsrv、気になったので使ってみることに。Server周りの基礎知識を整理しておきます。Windowは、XサーバとXクライアントの2つからできています。入出力や操作を送受信できます。ユーザのマウスやキーボードの操作は、OSの入出力機能がやり取りして、それをXサーバを経由して、Xクライアントに渡したり、Xクライアントから受け取ったりっていう通信を行っています。マウスやキーボードの操作や画面表示と、アプリの入出力機能の間に、XサーバとXクライアントが挟まっているわけです。図にすると、この、一番右側の「アプリC」に関するあたり。(サーバとクライアントが、いわゆる普通の用語とは逆っぽい印象なので、よく勘違いの元になるみたいだけど、このように、ユーザ操作に関する側がサーバ、プログラムが動いている側がクライアント)で、このXサーバとXクライアントは、同じマシン上に無くても全然構わなくて、ネット越しに通信することもできます。離れたところから、マウスやキーボードで、GUIアプリを操作することも出来るというわけ。Piを使ったことがある人なら、だいたい解ると思うんだけど、それだとあくまでCLIでの操作しか出来ない。Windowに関する通信が中継されるわけ。手元のGUI画面上にその結果(cajaのファイルマネージャ画面)が表示されるという具合。そのファイルマネージャ上でtxtファイルをダブルクリックすると、紐付けてあったテキストエディタが先方で実行されて、GUI画面は手元の端末に表示される、という具合でいい感じ。UNIX系OSなら、BSDでもOS-Xでも似たようなものなんだけど、問題はWindows。「Xサーバー」に相当する部分もない。sshコマンドにあたる部分は、実はteratermとかRloginみたいな、端末エミュレータを使えば、そういう機能をちゃんと持っているのでいいんだけど、Xサーバーは簡単にはいかない。いうUNIX系のGUI環境なんて持ってないから。有料の結構高いソフトとか、無償でもライセンスがちょっと微妙なソフトとかはあったんだけど、昨日見つけたVcXsrvは、無償で使えて、ライセンスも心配無さそう。いうのが、昨日までのおはなし。薀蓄的なことは置いておいて、使ってみる。Mintを使ってみる。Windows側で、VcXsrvをダウンロードしてインストール。デスクトップにアイコンが出来るので、これを実行。常駐してタスクバーの「通知アイコン」欄に「X」マークのアイコンが増えているのを確認しておく。これで、Windowsにもともと無かったXサーバの機能が増えたわけ。「リモートの(X)アプリケーションをローカルのXサーバに表示する」にチェックを入れて「OK」。保存」で、設定を「TERATERM.INI」ファイルに上書き保存して、teratermを一旦終了。MintにSSHログイン。Mintの端末画面で、おもむろに「caja」と打ってみる。すると、Windowsのデスクトップ上に、こんな具合に、cajaの画面がGUIで表示される。&」って起動しておくといいかもしれない。いうわけで、Linux機同士でssh使って繋いで、別のマシンでGUIプログラムを動かす仕組みと同じように、Windows機からも、GUIプログラムを動かすことができたわけ。このcaja画面上から、txtファイルとか、rubyの.rbファイルとかを開いて、テキストエディタで編集したり、ファイルによっては実行フラグ立てておけば、ダブルクリックで実行したりすることもできちゃう。.rbとか.pyファイルみたいに、編集するのか、それとも実行するのかわからないような場合は、いつものようにこういう感じで聞いてくる。編集するのであれば、Mint上の「geany」とかが開いて編集できる、って具合。これら全部、WindowsのGUI画面上に表示された、Linux上で動いているプログラム。(ただ、CLI用のプログラムだと、実行しても画面が出てこないので注意。PiのGUIソフトをWindowsのGUI画面でリモート実行することもできちゃう。Mint上のファイル類をsambaで共有してWindows側から編集したり、teratermで端末操作したりっていうオレオレ手順メモと、ほとんど違いもない。LinuxOS側にXクライアントとか各種アプリとかを実行させておく必要があるので、メモリ足りるの?とか心配になってしまうところ。何のメリットがあるの?と。希望は、この一連のゴニョゴニョは、Railsの開発環境をVMwareかVirtualBoxのLinux上に構築しておいて、母艦のWindowsから操作したり編集したりしたいなぁっていうあたりから出てきた要件なので、まずはXサーバ使って、その最低線が出来た次第。加えて、Xサーバ経由だと、cajaとかのファイルマネージャ画面で「右クリック→端末で開く」ってすると、そのディレクトリで端末が開けるということに尽きる。