web-dev-qa-db-ja.com

Windows 7のUNIXベースアプリケーション用サブシステム

Windows 7のWindowsの機能をオン/オフにするダイアログでNIXベースのアプリケーションのサブシステムと呼ばれていることに気づきました。正確には何ですか?それは何のためにあり、私はそれを何のために使うことができますか?

13
Svish

以前は[〜#〜] sfu [〜#〜]または Services for UNIX と呼ばれていました。これはWindowsの環境サブシステムであり、POSIXに完全に準拠し、通常UNIXシステムに付属している大量のツールを提供します。

環境サブシステム として、これは、カーネル上で直接、WindowsAPIを実行することを意味します一緒に。したがって、ネイティブのWindows API自体よりもエミュレートされていないため、たとえばcygwinよりもはるかに優れたパフォーマンスを発揮します。1

これは主に、Windows上で直接UNIXアプリケーションを構築および実行することを目的としているため、お気に入りのUNIXプログラムにWindowsポートが付属していない場合は、SUAで構築してみてください。

Unix用のWindowsサービスおよびUnixベースのアプリケーション用のサブシステムは、Windowsで使用するためのUnixアプリケーションの再コンパイルまたは移植を容易にするヘッダーファイルとライブラリを提供します。 UnixバイナリをWindowsバイナリと互換性のあるものにしません。これは、Unixライクなプラットフォームとして最もよく考えられています。

SFUの現在のバージョンには以下が含まれます。

  • Vi、ksh、csh、ls、cat、awk、grep、killなどの350を超えるUnixユーティリティ。
  • GCC 3.3コンパイラ、インクルードおよびライブラリ(MS libcを介して)
  • Microsoft Visual StudioコマンドラインC/C++コンパイラ用のccのようなラッパー
  • GDBデバッガー
  • NFSサーバーとクライアント
  • Pcnfsdデーモン
  • X11ツールとライブラリ
  • NFSマウントポイントをWindows共有として表示するためのツール、およびその逆(ゲートウェイサービス)
  • Active Directory(AD)にリンクされたNISサーバー機能
  • 一部のWindows/Unix認証情報同期ツール

SFUには次のものは含まれていません(ただし、バイナリは個別にインストールできます)。

  • bash、OpenSSH、Sudo、CVS、ClamAV、bzip2、gmake、curl、emacs、Apache、XView、Ruby、Tcl、Python

(Wikipedia)

SUAはLinuxやBSDではなく、単なるPOSIXであることを意図しているため、プラットフォーム固有のものに依存する多くのプログラムがビルドまたは実行に失敗する可能性もあります。 shやLinux固有のシステムコールの代わりにbashを想定したシェルスクリプトが思い浮かびます。現在、POSIX準拠のシステムで直接実行できるプログラムはほとんど作成されていません。また、含まれているgccのバージョンはやや古いため、最新のC99 +の機能をサポートしていない可能性があります。


1 プロセスの起動時間が遅いなど、Windows固有の制限がまだ適用されるため、極端なフォークは依然として非常に遅くなります。そのため、何年も待つことになります./configureスクリプトまたは実行するいくつかのmakefile。

18
Joey

ソフトウェアのインストール/アンインストールには、BSDスタイルのパッケージを使用できます。 OpenSSHがインストールされている場合は、SSH経由でSUAにアクセスできます。

1
Budhi Hamdani