Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unix と windows 世界の融合

Unix と windows 世界の融合

2011/9/3 開催 プログラミング生放送勉強会 第10回@品川
http://bit.ly/pronama10

Unix と Windows 世界の融合

SUA (Subsystem for Unix Application) や、GnuWin32 を組み込んで、Windows の世界にも Unix の世界の風をながします。

Movie : http://www.nicovideo.jp/watch/sm15540689

Satoshi MIMURA

September 12, 2011
Tweet

More Decks by Satoshi MIMURA

Other Decks in Technology

Transcript

  1. • みむら / 三村 聡志 (@mimura1133) • Website : http://mimumimu.net/

    • Windows と Linux を使う。 • Windows Phone 7 もいじる。 • C と C++ と C# と時々 HSP • Python だれか教えて下さい。 • 最近は IDA Pro と OllyDbg でのバイナリ眺めも趣味。 Title : Windows + SUA / @mimura1133 2
  2. • 自己紹介 • Subsystems for UNIX Application の紹介 • インストール方法

    • 利用方法 • GnuWin32 でさくっと Linux のコマンドを入れるには。 • SUAによる、ちょっと変態的なこと。 Title : Windows + SUA / @mimura1133 3
  3. • Windows 使いやすいよね。 • UNIX も使いやすいよね。 • メインが Windows でも、

    UNIX のコマンドを使いたい。 • UNIXのプログラムをそのままビルドできると良いよね。 Title : Windows + SUA / @mimura1133 5
  4. • UNIX のコマンドを Windows で使う。 • ビルドすれば、UNIX 向けプログラムが走る。 • 基本的なコマンドについては、

    Windows のコマンドプロンプトからも使えるようになる。 • 各種 Prefix を入れる事により、 apt-get や emerge が使える。 Title : Windows + SUA / @mimura1133 7
  5. • よりネイティブに動く Title : Windows + SUA / @mimura1133 9

    Hardware Abstraction Layer (HAL) 参照 : http://9xsjxg.blu.livefilestore.com/y1puBLfHJPlgyPPUxxJOMQSoWHKXkocmKAz-SgkvmFbzrF-5gAqsQ0lPndBhCAy0x5IU8Ad5oOZylnlfNm9c-EjsA/sua.png Windows Kernel SUA Subsystem for UNIX-based Applications Windows Subsystem Cygwin UNIX Application UNIX Application
  6. • 良い点: • Win32API に頼っていないため、 Windows で未サポートの機能を実現することが出来る。 • 高速に動作する。 •

    コマンドプロンプトからもUNIX コマンドを叩ける。 • パッケージ管理ソフトが付いてくる。 • インストール時に変なファイルが作られない。 • 悪い点: • Cygwin のように、多くのライブラリやプログラムが最初から あるわけではない。 • ライブラリが結構古い。 • Windows 起動時に cron や inetd が走り出す。 • Windows Vista, 7 の Ultimate, Enterprise 版のみ (XP は SFU) Title : Windows + SUA / @mimura1133 10
  7. • Windows Vista, 7 / Ultimate, Enterprise • その他、Windows Server

    にもある。 • 無い場合: • DreamSpark の Windows Server • MSDN AA の Windows Server / Windows 7 Enterprise • MSDN Subscription などで準備。 • インストール先は C ドライブ固定なので、 容量をあけておく。 Title : Windows + SUA / @mimura1133 11
  8. • Bash Shell から Windows コマンドを叩ける。 • メモ帳などのプログラムも起動できる。 • /dev/fs/[ドライブレター]/

    で Windows のファイルへアクセスできる。 • 「~」は、 %userprofile% に なってる。 Title : Windows + SUA / @mimura1133 19
  9. • grep, cat, ls, vi などのコマンドが コマンドプロンプトから使える。 • C:¥Windows¥SUA 以下に

    SUA のファイルがある。 • UNIX のプログラムを 直接実行できる。 • ex.) .¥find . | grep f Title : Windows + SUA / @mimura1133 20
  10. • [ pkg_update –L (コマンド名) ] で追加。 • [ pkg_update

    –La ] で、全部更新。 • [ pkg_info ] で パッケージ情報および一覧が出せる。 • [ pkg_delete ] でパッケージの削除ができる。 • 詳細な使い方は、 BSD 系ディストリビューションの 説明を見ると良いかもしれません。 http://www.openbsd.org/faq/faq15.html Title : Windows + SUA / @mimura1133 21
  11. • su / sudo にて Administrator 権限になれるので、 管理者権限でプロセスを動かしたい時に楽にできる。 ※追記:Windows だと

    runas コマンドが存在する。 • 処理は UNIX 編集は notepad, Visual Studio を使うというのが可能 Title : Windows + SUA / @mimura1133 22
  12. • 特定の文字列が入ったファイルを探す。 • Ex.) find . –name “*.c” | xargs

    grep “WM_SETFONT” • Subversion や git によるソースコード管理。 Title : Windows + SUA / @mimura1133 23
  13. • /etc/init.d/sshd start • SSH デーモンを立ち上げて、 SFTP とかしてみる。 • Windows

    をリモート制御してみる。 • Xのアプリケーションで何かあそぶ。 Title : Windows + SUA / @mimura1133 25
  14. • Python とかのウェブサービス開発してみる。 • SUA なので、Windows 向けの開発でなく、 普通の UNIX 上で動くのと同じ感覚。

    • ssh [username]@[server-address] で SSH クライアントとして使う。 Title : Windows + SUA / @mimura1133 26
  15. • http://sourceforge.net/projects/getgnuwin32/ 上記URL からダウンロード。 • download.bat の 158行目を • if

    .%GNUWIN32_MIRROR%==. set GNUWIN32_MIRROR=iweb voxel から if .%GNUWIN32_MIRROR%==. set GNUWIN32_MIRROR=jaist へ変更する。(ミラーを JAIST へ変更する。 Title : Windows + SUA / @mimura1133 30
  16. • #gentooinstallbattle とかあるし。 • gentoo ユーザ に片足入れられるし。 • SUA もやっぱり

    ソースからビルドした方が楽。 • emerge もソースからビルド。やったね! • ftp://ftp.iij.ad.jp/pub/linux/gentoo/experimental/prefix/x86- interix/20110622/ gentoo Prefix を入れて、Windows + SUA + Gentoo を! Title : Windows + SUA / @mimura1133 36
  17. • コマンド一つでソフトウェアを入れられる。 • 依存関係も自動的に解決してくれる。 • ・・マスク・・? • 意外とうまく動かない・・? • ・・・流石

    Experimental なだけあるなぁ • Gentoo-er な人か、挑戦的な人じゃないと・・? • でも試してみる価値は十分にありそう。 Title : Windows + SUA / @mimura1133 43
  18. • PTVS ( http://pytools.codeplex.com/ ) • Visual Studio • この2つを使って、快適

    Python アプリケーション開発。 • 実行は SUA 上のPython Title : Windows + SUA / @mimura1133 45
  19. • こんなコードを書く。 • Windows の Python インタプリタとして、追加する。 Title : Windows

    + SUA / @mimura1133 46 Download : https://github.com/mimura1133/mm_posix_python_call
  20. • IntelliSense が効く • デバッグ可能 • 実行は UNIX • 出力結果は

    Visual Studio に返ってくる。 Title : Windows + SUA / @mimura1133 48
  21. • Windows を主に使うけど、UNIX をたまに使う人向け。 • UNIX 環境が欲しい人 : SUA, Cygwin

    • コマンドだけ欲しい人 : GnuWin32 • SUAは、Cygwin よりネイティブに動いて、早い。 • でも、ライブラリが古かったり、揃ってなかったりで、 どちらが良いとは一概に言えない。 • Windows と UNIX の協調ということで、 変態的なことがいっぱい出来る。 • 仲根かなはるさんの構築したサーバに、 SUA から SSH で接続して、遊ぶのもいいかも! Title : Windows + SUA / @mimura1133 50
  22. • 今回紹介した内容は、 http://mimumimu.net/ にて公開しています。 • Twitter や Facebook にもアカウント登録済みなので、 SUA

    や Windows API を使った開発、 C# や Windows Phone 7 に興味がある人は 是非交流しましょう! Title : Windows + SUA / @mimura1133 51