Interix ve Cygwin arasındaki pratik farklılıklar nelerdir?


14

Hem Interix hem de Cygwin , Windows'ta Unix benzeri bir kullanıcı ortamı sağlıyor gibi görünüyor. İkisi arasındaki pratik farklılıklar nelerdir, örneğin:

  • Unix benzeri "hissetmek"
  • Verim
  • İnternetten indirilen rastgele yazılımları derlemede paket kullanılabilirliği / kolaylığı
  • Windows uygulamaları ve araçları ile entegrasyon
  • Sanal makinelerle entegrasyon / uyumluluk (örn. Interix ve bir Ubuntu sanal makinesinin aynı "ana dizini" paylaşması mümkündür)
  • Kullanıcı tabanının boyutu / topluluk desteği düzeyi

Fark ettiğim bir fark, Interix'in Windows 7 Enterprise veya Ultimate sürümünü gerektirmesidir; Cygwin her şeye koşacak.

Yanıtlar:


7

Daha önce Windows 2008'de yalnızca Windows SFU kullandım, ancak bunun Interix'e dayandığını düşünüyorum. Ara sıra cygwin ile oynadım, ama çok fazla değil, bu yüzden burada açıkça yanlış bir şey söylersem biri lütfen beni düzeltin.

  • Unix benzeri bir his: Interix bunu kazanır. Çevre çok daha "eksiksiz" hissediyor. Nasıl koyacağından emin değilim. Interix, wing alt sisteminin yanında çalışır ve burada cygwin onun üzerinde çalışır. Yani, interix Windows çekirdeğinde bir "birinci sınıf vatandaş" tır. İşleri sever psve iyi dfçalışır.
  • Performans: Büyük bir performans testi yapmamış olsaydım , Interix'in bunu da kazandığını tahmin ediyorum . Yine, daha düşük bir seviyede çalışıyor. Sadece bağlı bir POSIX uyumluluk DLL ile Win32 uygulamaları çalıştırmıyorsunuz.
  • Paketler / rastgele yazılım: Cygwin bunu iki nedenden ötürü kazanır. İlk olarak, cygwin çok daha iyi bilinir. Birçok Unixy yazılımı, gariplikleri için desteğe sahip olacak. GUI yükleyicisinden işleri çok kolay bir şekilde de yükleyebilirsiniz. Interix'in içinde böyle bir şey yok (inanıyorum). Elbette, bir şey indirebilir, gcc'yi kullanarak derleyebilirsiniz (ki bu önceden oluşturulmuş olabileceğinizi düşünüyorum) ve çalıştığında dua edin, ancak yazılımın Unix'in diğer herhangi bir rastgele varyantına (Solaris veya AIX gibi) taşınması gibi - bazı işler işe yarayacak, diğer şeyler bacağınızı ısırmaya ve çocuklarınızı öldürmeye çalışacaktır.
  • Windows uygulamaları ve araçlarıyla entegrasyon: Dürüst olmak gerekirse, her ikisi de bu konuda berbat. Diyelim ki cygwin veya Interix içinde çalışan bir Apache sunucunuz varsa, o zaman, Win32 programları ile TCP üzerinden iletişim kurabilecektir, ancak bu kadarıyla devam eder. İç interix, ben Win32 programları öldürmek ve ps kullanarak bunları listeleyebilirsiniz, cygwin ile bunu yapabilirsiniz emin değilim. Her ikisinde de, şeyleri öldürmek için Windows görev yöneticisini kullanabilirsiniz.
  • VM'lerle entegrasyon: Bir ana dizini paylaşma örneğinizi ele alın, ardından evet. Bunun için samba kullanabilirsiniz ve NFS'nin Interix üzerinde de daha unixy bir şey için çalıştığına inanıyorum. Yine de sizin için işi yapacak güzel GUI'ler veya herhangi bir şey bulamazsınız. Hem cygwin hem de Interix normal dosya sistemlerinize erişmenizi sağlar.
  • Kullanıcı tabanının boyutu: Cygwin burada kazanıyor diyebilirim. Açık kaynakların çoğunun cygwin'i derleme platformu olarak desteklediği göründüğü Interix üzerinde çalışmak için test edilmiş ve geliştirilmiş şeyleri bulmak çok zordu.

Interix'i destekleyecek bir Windows işletim sisteminin bir kopyasına sahipseniz (dediğiniz gibi, bir Enterprise sürümü, bir Ultimate sürümü veya bir Server sürümü), bunu denemenin bir zararı yoktur. Çok eksiksiz bir duygu ortamı. Söylediğiniz gibi Cygwin her şeye dayanıyor ve daha iyi biliniyor ve daha iyi destekleniyor, ancak bana biraz kirli bir saldırı gibi geliyor. Bazı insanlar düzenli olarak kullanıyor.


Paketlerle ilgili olarak, Interix için Gentoo-prefix
denemeye

1
Hızlı bir şekilde 2015'e kadar, cevap artık basitçe "cygwin hala kullanılabilir ve desteklenirken, Interix (Unix Hizmetleri için aka Unix Tabanlı Uygulamalar için Alt Sistem olarak da bilinir) durduruldu"
adib

3

/ * meta note- Yorumların çok kısa olmasından nefret ediyorum * /

Çoğunlukla andrews birkaç yorum ile cevap kabul ediyorum. Birçok unix sistemini SUA / SFU ile değiştirdim (hayır aynı değil ama yakın) pencereler altında.

  • performans - SUA unix hizmetlerinden çok daha hızlıdır, ancak SFU da eğimli değildi, her ikisi de genellikle cygwin'den daha hızlıdır (ancak her zaman değil)
  • entegrasyon- entegrasyon, SFU / SUA'nın bütün noktasıdır ve technet sitesinde neler yapabileceğiniz ve yapamayacağınız konusunda birçok belge vardır. Cygwin, pencerelerin üzerinde * nix komutunu çalıştıracak şekilde tasarlanmıştır. Bkz . Windows'ta Unix / Linux birlikte çalışabilirlik bileşenleri (SUA, IdMU, NFS, vb.)
  • kullanıcı tabanı-Bence interix tarafında cygwin tarafında olduğundan daha fazla çalışan, desteklenen çözümler ve cygwin tarafında olduğundan çok daha az uyumluluk problemleri var bence http://www.suacommunity.com/ (alet deposu). Cygwin, "Unix kabuğuna ihtiyacım var" çözümü için iyi olduğu için muhtemelen daha fazla genel yüklemeye sahiptir Cygwin komutları çalıştırır, SUA, Windows için bir eş olan unix ortamıdır.

1

JimB'nin cevabı hakkında yorum yapamıyorum, bu yüzden burada, özellikle Windows entegrasyonu ile ilgili konu ile mücadele etmek. Cygwin, kendi alt sisteminde çalışmak yerine Win32 tabanlı olmakla birlikte, daha yavaş olsa da çok daha fazla Windows entegrasyonu sağlar. Hatta Windows ve UNIX API'lerinin aynı programda kullanılmasına izin verir, bu da Cygwin X sunucusu veya nane terminali gibi şeyleri mümkün kılar.

Cygwin 'ps', -W seçeneğini verirseniz Windows işlemlerini listeler ve 'kill -f' onları öldürür. Windows programları Cygwin içinden çağrılabilir ve pipolar gibi olağan mekanizmalar kullanılarak Cygwin programları ile birleştirilebilir. (Bunun Interix'te mümkün olup olmadığını bilmiyorum.)

Hem ileri hem de geri eğik çizgiler içeren Windows tarzı yollar desteklenir. Cygwin 1.7, UTF-8'i varsayılan karakter seti yaptı ve Windows'un UTF-16 dosya adları otomatik olarak çevrildi, böylece herhangi bir dildeki dosya adları Cygwin'de doğru bir şekilde görünüyor. Interix'in burada ne yaptığını bilmiyorum, ancak Unicode'u destekleyen herhangi bir kanıt bulamadım.

Diğer tümleştirme özellikleri, bir dosyayı Explorer'da çift tıklamış gibi açmak için 'cygstart' yardımcı programını ve Windows panosuna erişmek için / dev / clipboard aygıtını içerir.


3
"Çok daha iyi Windows entegrasyonu" nasıl sağlar? "Windows ve UNIX API'lerinin aynı programda kullanılmasına bile izin verir" - bu Interix için de geçerlidir; bkz bu ilk parti kaynağı için; slayt 37, "Karışık mod işlemleri", madde işareti olan "Karışık mod işlemiyle sonuçlanan, hem SUA hem de Windows API çağrılarını aynı işlemde yapabilir"
user314104

1

Windows 7 için Interix kurulum deneyimimi paylaşayım.

Yolculuğumuz , Windows Server 2008 için belirsiz bir sayfada başlıyor .

Burada artık Interix olarak adlandırılmadığını, ancak Unix Tabanlı Uygulamalar için Alt Sistem veya SUA olduğunu keşfedeceksiniz . Daha sonra yalnızca bir kullanıcı yorumundan SUA'nın yalnızca Windows 7 Ultimate veya Enterprise tarafından kullanılabildiğini göreceksiniz. Bu makalede hiçbir yerde belirtilmemiştir. "Alt sistemi" kurduktan sonra, başlat menünüzde 2'den fazla kısayol olmadığını anlayacaksınız.

sua

Şimdi gerçek kötülüğe ulaşıyorsunuz. İndirme kısayoluna tıkladığınızda indirme sayfasına yönlendirilirsiniz.

eski

Burada indirebileceğiniz 3 dosya var. Bu dosyalar 400MB'ın üzerindedir ve bu yazı 4 yıldan eskiyken . Ayrıca, özel paketleri, belirli parçaları, ne olursa olsun indirme seçeneğimiz yok. Daha sonra bu bağlantının aslında Windows 7 için değil Vista için olduğunu fark edeceksiniz ve Windows 7 sayfasını bulmak için internette arama yapmak zorunda kalacaksınız . Bu noktada vazgeçtim.

Cygwin

Cygwin.com adresine gidin . Cygwin.com/setup-x86.exe dosyasını indirin . Bu dosya 714 KB . Temel bir kurulum çalıştırın ve yaklaşık 2 dakika sürdüğünü göreceksiniz .

zaman

Bundan sonra yükleyiciyi diğer birçok paket için tercihinize göre yeniden kullanabilirsiniz. Hikayenin ahlakı , Cygwin'in kullanıcıyı önemsemesi .


Sizi doğru anlayayım - çünkü yükleyici, bir şekilde 7 kazanmakla birlikte gelen unix sürümünü çalıştırmak için değiştirmeye gerek yok, bu da bakımsız anlamına geliyor- ve Cygwin'in parçaları indirmenize gerçekten izin verdiği gerçeği (daha sonra geri dönmek ve daha fazla almak zorunda) bir şekilde bir artı mı? Kesinlikle son zamanlarda Windows unix bileşenlerini kaldırma kararı kullanıcıların ya pencereler altında unix çalışmıyor (IMHO büyük olasılıkla) ya da bir şekilde onlar sadece umurumda değil ama gerçekten görmüyorum bir işaret.
Jim B

@JimB Windows 7 ile "gelmez". Yazımın bu kadar net olduğunu düşünürdüm. Sadece Win7 ultimate için kullanılabilir ve indirmeniz gerekir. Artı indirme 4 yaşında. Bir yaşam boyu olan ve Microsoft'tan net bir yön / inisiyatif eksikliği gösteren yazılım topluluğunda.
Steven Penny

3
Windows ile birlikte gelir, indirdiğiniz şey alt sistemi kullanan unix komutudur. Linux'taki bazı komutlar 40 yaşın üzerinde olduğu için yeniden yazılmaları gerekmediğine şaşırmadım (ve standardınıza göre artık on yıllardır beri hiç kimse linux veya unix kullanmıyor). Suacommunity.com/tool_warehouse.htm
Jim B

2
Garip bir şekilde kodun bir kısmından gitmek zorunda kaldım ve yup - 40 yıl önce aynı kod - GNU'daki bu insanlar korkunç bir şekilde yanlış bir şey yapıyorlar - ya da belki de sadece - olmayan bir şeyi değiştirmeye gerek yok ' t kırık
Jim B

0

UNIX benzeri "hissetmek" oldukça özneldir. Gerekli tüm özelliklere sahip CygWin / X Xwindows sunucusu olduğu için oyum CygWin ile devam ediyor. SFU temel X11 araçlarını aldı ama çok az ve çok geç oldu. Birçoğu (ben dahil), X11 sunucusuna ihtiyaç duyulması nedeniyle CygWin'e tanıtıldı. Bütünlük açısından CygWin, açık kaynak olduğu ve GNU veya GPL lisanslı birçok yazılımın taşındığı için daha iyi konumlandırılmıştır. CygWin için birkaç ticari ürün gördüm, ancak Windows NT için UNIX Hizmetleri gerektiren tek bir ürün gördüm ve o zamandan beri yok. YMMV.

Paket kullanılabilirliğiCygWin için çeşitli faktörlerden etkilenen açık bir kazançtır: - daha düşük giriş maliyeti: CygWin ile "herhangi bir Windows", SFU / SUA için sunucu sınıfı lisansına karşı. Windows'un masaüstü lezzetleri için ancak daha pahalı çeşitlerde ve sunucu bileşenleri olmadan bazı işlevler kullanılabilir; - açık kaynak ile kapalı kaynak karşılaştırması ve daha da önemlisi açık olarak mevcut belgeler Geçmişte, sağlanan komutlar ve API'ler bile yalnızca MSDN aboneleri tarafından kullanılabiliyordu ve Microsoft sitesinde çok az bilgi vardı ya da hiç yoktu. Buna karşılık GNU araç seti iyi belgelenmiş ve hem çevrimiçi hem de man sayfaları olarak mevcuttu; - adlandırma ve uygulama değişiklikleri kafa karıştırıcıdır. İlk sürümler daha sonra terk edilmiş olan MKS araç setini kullanıyordu.

Performans açısından, Interix'in çekirdeğe daha yakın olduğu ve bu nedenle daha kısa kod çalıştırma yoluna sahip olduğu iddia edilebilir. Asıl soru ne kadar ve önemli mi? Programların çoğu için fark yüzde birkaçdır ve ihmal edilebilir düzeydedir. Elbette ağır I / O içeren yapay bir örnek ortaya çıkarılabilir. Bu yükleri yerel Windows ve UNIX eklentilerinden daha hızlı olacağı için yerel UNIX'e koymayı tercih ederim. CygWin'den Interix'e (veya tam tersi) dönüşümün bir örneğini bilmezken, çoğu Windows'tan UNIX'e yükün artmasıyla geçti. UNIX performansı değil, aranan UNIX uyumluluğu, bu yüzden bunu listenin sonuna koyuyorum.


2
Performans açısından Interix aslında burada kazanıyor; geleneksel olarak * nix syscalls (fork ()) olarak uygulanan birçok şey Cygwin'deki Win32'nin üstüne uygulanan kludges'lerdir. Win32 hiçbir fork () kavramına sahip değildir, ancak Interix (ve NT) yoktur. Cygwin bununla ilgili sorun yaşıyor - adres alanının çatal için tam olarak doğru olması () - ve bu da bazı ciddi performans sorunlarına yol açıyor. Birisi bu yorumdan daha fazlasını içeren bağlantıdan rahatsız olacağından emin olabilirsiniz, ancak işte, doğrudan musluktan .
user314104
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.