InterixとCygwinの実際の違いは何ですか?


14

InterixCygwinはどちらも、WindowsでUnixのようなユーザー環境を提供するようです。たとえば、次の点で、両者の実際の違いは何ですか?

  • Unixライクな「感触」
  • 性能
  • インターネットからダウンロードしたランダムなソフトウェアをコンパイルする際のパッケージの可用性/容易さ
  • Windowsアプリケーションおよびツールとの統合
  • 仮想マシンとの統合/互換性(たとえば、InterixとUbuntu仮想マシンが同じ「ホームディレクトリ」を共有することは可能ですか)
  • ユーザーベースのサイズ/コミュニティサポートのレベル

私が知っている1つの違いは、InterixにはWindows 7 EnterpriseまたはUltimateエディションが必要であることです。Cygwinは何でも動作します。

回答:


7

以前Windows 2008でWindows SFUを使用したことがありますが、これはInterixに基づいていると思います。時々cygwinで遊んだことがありますが、大した量ではないので、ここで明らかに間違ったことを言ったら誰かが私を修正してください。

  • Unix風の感触: Interixがこれに勝ちます。環境ははるかに「完全」に感じられます。どうすればいいのかわかりません。Interixはwin32サブシステムと一緒に実行され、cygwinはその上で実行されます。そのため、interixはWindowsカーネルランドの「ファーストクラスの市民」です。のようなものpsdfうまく動作します。
  • パフォーマンス:主要なパフォーマンステストを行っていないので、Interixもこれに勝っていると思います。繰り返しますが、低レベルで実行されています。POSIX互換DLLがリンクされたWin32アプリを実行しているだけではありません。
  • パッケージ/ランダムソフトウェア: Cygwinは、2つの理由でこれに勝ちます。第一に、cygwinははるかによく知られています。多くのUnixyソフトウェアがその癖をサポートします。GUIインストーラーから非常に簡単にインストールすることもできます。Interixには、このようなものは組み込まれていません(信じています)。確かに、何かをダウンロードし、gccを使用してコンパイルし(事前にビルドできると思います)、それが機能することを祈りますが、それはソフトウェアを他のUnixのランダムなバリアント(Solaris、AIXなど)に移植するようなものです物事は機能し、他の物事はあなたの足を噛み殺し、あなたの子供を殺そうとします。
  • Windowsアプリおよびツールとの統合:正直に言うと、どちらもこの点を嫌っています。たとえば、cygwinまたはInterix内で実行されているApacheサーバーがある場合は、TCPを介してWin32プログラムと通信できるようになりますが、それはそれだけです。interixの内部から、Win32プログラムを強制終了してpsを使用して一覧表示できると考えていますが、cygwinでこれを実行できるかどうかはわかりません。両方とも、Windowsタスクマネージャーを使用して物事を殺すことができます。
  • VMとの統合:ホームディレクトリを共有する例に対処してから、はい。これにはsambaを使用することもできますが、NFSはInterix上でもよりユニシーなもので動作すると信じています。ただし、作業を行うための素敵なGUIや何かは見つかりません。cygwinとInterixの両方で、通常のファイルシステムにアクセスできます。
  • ユーザーベースのサイズ:ここでCygwinが勝ちます。Interixで動作するようにテストおよび開発されたものを見つけることは非常に困難でした。ほとんどのオープンソースのものは、コンパイルプラットフォームとしてcygwinをサポートしているようでした。

InterixをサポートするWindows OSのコピー(エンタープライズエディション、Ultimateエディション、またはサーバーエディション)をお持ちの場合、問題はありません。それは非常に完全な感じの環境です。あなたが言ったように、Cygwinはすべてで動作し、よりよく知られており、よりよくサポートされていますが、私にとってはちょっと汚いハックのように感じます。ただし、定期的に使用する人もいます。


パッケージに関しては、InterixのGentooプレフィックスは一見の価値があるかもしれません
トビアスキーンズラー

1
早送り2015年に、答えは今、「Cygwinはまだ利用可能と中止される(UNIXベースアプリケーション用サブシステム別名Unix用サービス別名)のInterixのに対し、サポートされています」単になり
adib

3

/ *メタノート-コメントが非常に短いことは嫌い* /

私は、いくつかのコメントを付けてアンドリューの回答にほぼ同意します。私は多くのUNIXシステムをWindowsの下でSUA / SFU(それらは同じではないが近い)に置き換えました。

  • パフォーマンス-SUAはUNIXのサービスよりもはるかに高速ですが、SFUもスラウチではありませんでした。通常は両方ともcygwinよりも高速です(常にではない)
  • 統合-統合はSFU / SUAの要点であり、technetサイトでできることとできないことに関するドキュメントがたくさんあります。Cygwinは、Windowsで* nixコマンドを実行するように設計されており、2を連携させません。WindowsのUnix / Linux相互運用性コンポーネント(SUA、IdMU、NFSなど)を参照してください
  • ユーザーベース-cygwin側よりもinterix側の方がより多くのサポートされたソリューションがあり、cygwin側よりも互換性の問題ははるかに少ないと思います。http: //www.suacommunity.com/ (ツールウェアハウス)を参照してください。Cygwinはコマンドを実行する「UNIXシェルが必要」なソリューションに適しているため、おそらく全体的なインストールが多くなります。SUAはWindowsのピアであるUNIX環境です。

1

JimBの答えにコメントすることはできませんので、ここでそれに取り組んでください。特に、Windowsの統合に関するポイントです。Cygwinは、独自のサブシステムで実行されるのではなく、Win32に基づいているため、低速ですが、Windowsとの統合が大幅に向上します。同じプログラムでWindows APIとUNIX APIを使用することもできます。これにより、Cygwin Xサーバーやmintty端末などが使用可能になります。

Cygwinの「ps」は、-Wオプションを指定するとWindowsプロセスをリストし、「kill -f」はそれらを強制終了します。WindowsプログラムはCygwin内から呼び出すことができ、パイプなどの通常のメカニズムをすべて使用してCygwinプログラムとプラグインできます。(Interixでそれが可能かどうかはわかりません。)

フォワードスラッシュとバックスラッシュの両方を含むWindowsスタイルのパスがサポートされています。Cygwin 1.7はUTF-8をデフォルトの文字セットにし、WindowsのUTF-16ファイル名は自動的に翻訳されるため、どの言語のファイル名もCygwinで正しく表示されます。ここでInterixが何をするのかわかりませんが、Unicodeをサポートしている証拠は見つかりませんでした。

他の統合機能には、エクスプローラーでファイルをダブルクリックしたかのようにファイルを開くための「cygstart」ユーティリティや、Windowsクリップボードにアクセスするための/ dev / clipboardデバイスが含まれます。


3
「はるかに優れたWindows統合」をどのように提供しますか?「WindowsとUNIX APIを同じプログラムで使用することもできます」-これはInterixにも当てはまります。ファーストパーティのソースについては、これを参照してください。弾丸を持っているスライド37、「混合モードプロセス」、「混合モードプロセスを結果として生じるが、同じプロセスでSUAとWindowsの両方のAPIの呼び出しを行うことができます」
user314104

1

Interix for Windows 7のインストール経験を共有しましょう。

私たちの旅は、 Windows Server 2008のあいまいなページから始まり ます。

ここでは、Interixとは呼ばれなくなりましたが、Unixベースのアプリケーションまたは SUAのサブシステムであることがわかります。次に、ユーザーのコメントから、SUAはWindows 7 UltimateまたはEnterpriseでのみ利用可能であることに気付くでしょう。これはどこの記事でも言及されていません。「サブシステム」をインストールすると、スタートメニューにあるショートカットは2つ以下であることがわかります。

スア

今、あなたは本当の悪に着きます。[ダウンロード]のショートカットをクリックすると 、ダウンロードページに移動します。

古い

ここには、ダウンロード可能な3つのファイルがあります。これらのファイルはすべて400MBを超えており、この記事の執筆時点では4年以上経過しています。さらに、カスタムパッケージ、特定のパーツなどをダウンロードするオプションはありません。次に、このリンクは実際にはWindows 7ではなくVista用であり、Windows 7ページを見つけるにインターネットを検索する必要があることに気付くでしょう 。この時点で私はあきらめました。

シグウィン

移動しますcygwin.comcygwin.com/setup-x86.exeをダウンロードし ます。このファイルは 714 KBです。基本インストールを実行すると、約 2分かかります。

時間

その後、インストーラを好みに応じて他の多くのパッケージに再利用できます。物語の教訓は、Cygwinはユーザーを気にするということです。


インストーラーを変更してwin 7に付属しているunixのバージョンを実行する必要はないので、どうにかして気にしないことを意味するので、Cygwinが実際に作品をダウンロードすることを許可しているという事実(戻る必要があります)どういうわけかプラスですか?確かに、WindowsからUNIXコンポーネントを削除するという最近の決定は、ユーザーがWindowsでunixを実行していないというサイン(IMHOの可能性が高い)、またはどういうわけか彼らは気にしないが、実際にはそれを見ていません。
ジムB

@JimB Windows 7では「来ない」。私の投稿がそれを明確にしたと思っていただろう。Win7 Ultimateでのみ使用でき、ダウンロードする必要があります。さらに、ダウンロードは4年前です。ソフトウェアコミュニティでは、これは一生のものであり、Microsoftからの指示/イニシアチブの明確な欠如を示しています。
スティーブンペニー

3
Windowsに付属しています。ダウンロードしているのは、サブシステムを使用しているUNIXコマンドです。Linuxのコマンドの一部は40年以上前のものであるため、それらを書き換える必要がないことは驚くことではありません(そして、標準では、Linuxやunixを何十年も使用していないと思います)。SUコミュニティのsuacommunity.com/tool_warehouse.htmに
Jim B

2
奇妙なことに、私はコードとyupの一部を調べなければなりませんでした-40年前と同じコードです-GNUの人々は恐ろしく間違ったことをしていると思います-あるいは多分-何かを変更する必要はないでしょうtが壊れています
ジムB

0

UNIXのような「感触」はかなり主観的です。CygWin / X Xwindowsサーバーにはすべての必要な機能があるため、私の投票はCygWinで行います。SFUは基本的なX11ツールを入手しましたが、少なすぎて遅すぎました。X11サーバーが必要なため、CygWinの多く(私を含む)が紹介されました。完全性に関しては、CygWinはオープンソースであり、GNUまたはGPLライセンスのソフトウェアが多く移植されているため、CygWinの方が優れています。CygWin用の商用製品はほとんど見ていませんが、Windows NT用のUNIXサービスを必要とする製品は1つしかありませんでした。YMMV。

パッケージの入手可能性CygWinにとっては明らかな勝利です。いくつかの要因が影響します。一部の機能は、Windowsのデスクトップフレーバーで使用できますが、より高価な種類で、サーバーコンポーネントがありません。-オープンソースとクローズドソース、さらに重要なことにオープンに利用可能なドキュメント。過去には、提供されたコマンドとAPIのリストでさえMSDNサブスクライバーのみが利用可能であり、Microsoftサイトではほとんど情報が利用できませんでした。対照的に、GNUツールセットは十分に文書化されており、オンラインとマニュアルページの両方で利用できます。-命名と実装の変更はわかりにくいです。初期のバージョンではMKSツールキットを使用していましたが、後に廃止されました。

パフォーマンスに関しては、Interixはカーネルにより近いため、コードの実行パスが短いと言えます。本当の質問は、どれくらいであり、それは重要ですか?ほとんどのプログラムでは、差は数パーセントであり、無視できます。もちろん、大量のI / Oを使用した人工的な例を取り上げることができます。Windows上のネイティブWindowsとUNIXアドオンの両方よりも高速であるため、ネイティブUNIXにこのような負荷をかけることを好みます。CygWinからInterix(またはその逆)への変換の例を知らないうちに、負荷の増加に伴って多くがWindowsからUNIXに移行しました。求められているのはUNIXの互換性であり、UNIXのパフォーマンスではないため、これをリストの最後に記載します。


2
パフォーマンスに関しては、Interixが実際にここで勝ちます。* nix syscalls(fork()など)として伝統的に実装されているものの多くは、CygwinのWin32の上に実装されたクラッジです。Win32にはfork()の概念はありませんが、Interix(およびNT)にはあります。Cygwinには問題があります-fork()のためにアドレス空間を正確に取得します-そしてそれはいくつかの深刻なパフォーマンス問題につながります。誰かがこのコメントよりも多くのリンクを含んでいることに怒りを覚えるはずですが、ここではタップしてすぐにそうなります。
user314104
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.