Interix และ Cygwin แตกต่างกันอย่างไร


14

ทั้งInterixและCygwinปรากฏขึ้นเพื่อจัดเตรียมสภาพแวดล้อมผู้ใช้ที่เหมือน Unix ใน Windows อะไรคือความแตกต่างระหว่างทั้งสองในแง่ของตัวอย่าง:

  • Unix เหมือน "รู้สึก"
  • ประสิทธิภาพ
  • ความพร้อมใช้งานของแพคเกจ / ความสะดวกในการรวบรวมซอฟต์แวร์แบบสุ่มที่ดาวน์โหลดจากอินเทอร์เน็ต
  • การทำงานร่วมกับแอพพลิเคชั่นและเครื่องมือ Windows
  • บูรณาการ / เข้ากันได้กับเครื่องเสมือน (เช่นเป็นไปได้สำหรับ Interix และเครื่องเสมือน Ubuntu เพื่อแบ่งปัน "โฮมไดเรกทอรี" เดียวกัน
  • ขนาดของฐานผู้ใช้ / ระดับการสนับสนุนชุมชน

ข้อแตกต่างประการหนึ่งที่ฉันทราบคือ Interix ต้องการ Windows 7 Enterprise หรือ Ultimate edition Cygwin จะทำทุกอย่าง

คำตอบ:


7

ฉันเคยใช้ Windows SFU ใน Windows 2008 มาก่อน แต่ฉันเชื่อว่าเป็นไปตาม Interix ฉันเคยเล่นกับ cygwin เป็นครั้งคราว แต่ไม่ได้มีจำนวนมากดังนั้นใครบางคนโปรดแก้ไขฉันถ้าฉันพูดอะไรบางอย่างผิดปกติที่นี่

  • ความรู้สึกเหมือน Unix: Interix ชนะอันนี้ สภาพแวดล้อมรู้สึก "สมบูรณ์" มากยิ่งขึ้น ฉันไม่แน่ใจว่าจะใส่ยังไง Interix ทำงานร่วมกับระบบย่อย win32 โดยที่ cygwin ทำงานอยู่ด้านบน ดังนั้น interix เป็น "พลเมืองชั้นหนึ่ง" ใน Windows kernel land สิ่งที่ชอบpsและdfทำงานได้ดี
  • ประสิทธิภาพ:หากไม่ได้ทำการทดสอบประสิทธิภาพที่สำคัญฉันคาดเดาว่า Interix จะเป็นผู้ชนะเช่นกัน อีกครั้งมันทำงานในระดับที่ต่ำกว่า คุณไม่ได้ใช้แอพ Win32 ที่มี POSIX เข้ากันได้กับ DLL เท่านั้น
  • แพ็คเกจ / ซอฟต์แวร์แบบสุ่ม: Cygwin ชนะสิ่งนี้ด้วยเหตุผลสองประการ ประการแรก cygwin เป็นที่รู้จักกันดีกว่า ซอฟต์แวร์ Unixy จำนวนมากจะรองรับคุณสมบัติที่มีอยู่ คุณยังสามารถติดตั้งสิ่งต่าง ๆ ได้อย่างง่ายดายจากตัวติดตั้ง GUI Interix ไม่ได้ (ฉันเชื่อ) มีอะไรแบบนี้อยู่ภายใน แน่นอนว่าคุณสามารถดาวน์โหลดบางสิ่งรวบรวมโดยใช้ gcc (ซึ่งฉันคิดว่าคุณสามารถสร้างไว้ล่วงหน้าได้) และอธิษฐานว่ามันใช้งานได้ดี สิ่งต่าง ๆ จะได้ผลสิ่งอื่น ๆ จะพยายามกัดขาของคุณและฆ่าลูกของคุณ
  • บูรณาการกับแอพและเครื่องมือ Windows:พูดตามตรงแล้วดูดทั้งสองอย่างนี้ หากคุณมีกล่าวว่าเซิร์ฟเวอร์ Apache ทำงานภายใน cygwin หรือ Interix แน่นอนว่ามันจะสามารถสื่อสารผ่าน TCP กับโปรแกรม Win32 แต่มันเกี่ยวกับเท่าที่จะไป จากข้างใน interix ฉันเชื่อว่าคุณสามารถฆ่าโปรแกรม Win32 และแสดงรายการพวกเขาโดยใช้ ps ไม่แน่ใจว่าคุณสามารถทำได้ด้วย cygwin ด้วยทั้งสองอย่างคุณสามารถใช้ตัวจัดการงานของ Windows เพื่อฆ่าสิ่งต่างๆ
  • การรวมกับ VMs:การระบุตัวอย่างของการแชร์โฮมไดเรกทอรีจากนั้นใช่ คุณสามารถใช้ samba กับสิ่งนี้ได้และฉันเชื่อว่า NFS ทำงานบน Interix ด้วยเช่นกัน คุณจะไม่พบ GUIs ที่ดีหรือสิ่งใดที่จะทำงานให้คุณ ทั้ง cygwin และ Interix อนุญาตให้คุณเข้าถึงระบบไฟล์ปกติของคุณ
  • ขนาดฐานผู้ใช้: Cygwin ชนะที่นี่ฉันจะบอกว่า มันยากมากที่จะค้นหาสิ่งต่าง ๆ ที่ได้รับการทดสอบและพัฒนาเพื่อให้ทำงานบน Interix ซึ่งเป็นสิ่งที่โอเพนซอร์สส่วนใหญ่ดูเหมือนจะสนับสนุน cygwin เป็นแพลตฟอร์มคอมไพล์

หากคุณมีสำเนาของ Windows OS ที่จะรองรับ Interix (อย่างที่คุณพูดรุ่น Enterprise รุ่น Ultimate หรือรุ่น Server) จะไม่มีอันตรายใด ๆ มันเป็นสภาพแวดล้อมที่มีความรู้สึกที่สมบูรณ์มาก อย่างที่คุณพูด Cygwin ทำงานทุกอย่างและเป็นที่รู้จักดีขึ้นและได้รับการสนับสนุนที่ดีขึ้น แต่รู้สึกเหมือนแฮ็คสกปรกสำหรับฉัน บางคนใช้เป็นประจำแม้ว่า


แพคเกจที่เกี่ยวข้องกับคำนำ
หน้าตาของ

1
กรอไปข้างหน้าสู่ปี 2558 คำตอบในตอนนี้กลายเป็นเพียงแค่ "cygwin ยังคงมีอยู่และสนับสนุนในขณะที่ Interix (หรือที่เรียกว่าบริการสำหรับ Unix หรือระบบย่อยสำหรับการใช้งานที่ใช้ Unix)"
adib

3

/ * meta note- ฉันเกลียดความคิดเห็นที่สั้นมาก * /

ฉันส่วนใหญ่เห็นด้วยกับแอนดรูตอบด้วยความเห็นสองสาม ฉันได้แทนที่ระบบยูนิกซ์จำนวนมากด้วย SUA / SFU (ไม่เหมือนกัน แต่ใกล้เคียง) ภายใต้หน้าต่าง

  • ประสิทธิภาพ - SUA นั้นเร็วกว่าบริการสำหรับยูนิกซ์ แต่ SFU ก็ไม่ทำให้ง่วงทั้งคู่มักจะเร็วกว่า cygwin (แต่ไม่เสมอไป)
  • การรวมเข้าด้วยกัน - การรวมเป็นจุดรวมของ SFU / SUA และมีเอกสารจำนวนมากเกี่ยวกับสิ่งที่คุณสามารถทำได้และไม่สามารถทำได้บนไซต์เทคนิค Cygwin ถูกออกแบบมาเพื่อรันคำสั่ง * nix บน windows- เพื่อไม่ให้ 2 ร่วมมือ ดูส่วนประกอบการทำงานร่วมกันของ Unix / Linux ใน Windows (SUA, IdMU, NFS, ฯลฯ )
  • ฐานผู้ใช้ - ฉันคิดว่ามีวิธีการทำงานที่ได้รับการสนับสนุนในด้าน interix มากกว่าด้าน cygwin และปัญหาความเข้ากันได้น้อยกว่าด้าน cygwin ดูที่http://www.suacommunity.com/ (คลังเครื่องมือ) Cygwin อาจมีการติดตั้งโดยรวมมากกว่าเนื่องจากมันดีสำหรับโซลูชัน "ฉันต้องการยูนิกซ์เชลล์" Cygwin รันคำสั่ง SUA เป็นสภาพแวดล้อมแบบ unix ที่เป็นเพียร์ไปยัง windows

1

ไม่สามารถแสดงความคิดเห็นกับคำตอบของ JimB ได้ดังนั้นจึงต้องจัดการกับมันที่นี่โดยเฉพาะอย่างยิ่งประเด็นที่เกี่ยวกับการรวมเข้ากับ Windows Cygwin นั้นใช้ Win32 แทนการทำงานในระบบย่อยของตัวเองในขณะที่ช้าลงก็ให้การรวม Windows ที่ดีกว่ามาก มันยังอนุญาตให้ใช้ Windows และ UNIX API ในโปรแกรมเดียวกันซึ่งเปิดใช้งานสิ่งต่าง ๆ เช่นเซิร์ฟเวอร์ Cygwin X หรือเทอร์มินัลมินต์

'ps' ของ Cygwin จะแสดงรายการกระบวนการของ Windows หากคุณให้ตัวเลือก -W และ 'kill -f' จะฆ่าพวกเขา โปรแกรม Windows สามารถเรียกใช้จากภายใน Cygwin และเสียบเข้ากับโปรแกรม Cygwin โดยใช้กลไกปกติเช่นท่อ (ฉันไม่รู้ว่าเป็นไปได้หรือไม่ใน Interix)

สนับสนุนพา ธ สไตล์ Windows ทั้งที่มีเครื่องหมายสแลชไปข้างหน้าและย้อนกลับ Cygwin 1.7 ทำให้ UTF-8 เป็นชุดอักขระเริ่มต้นและชื่อไฟล์ UTF-16 ของ Windows ได้รับการแปลโดยอัตโนมัติดังนั้นชื่อไฟล์ในภาษาใดก็ได้ที่แสดงอย่างถูกต้องใน Cygwin ฉันไม่รู้ว่า Interix ทำอะไรที่นี่ แต่ไม่พบหลักฐานที่สนับสนุน Unicode

คุณสมบัติการรวมอื่น ๆ รวมถึงยูทิลิตี้ 'cygstart' สำหรับเปิดไฟล์ราวกับว่าคุณดับเบิลคลิกใน Explorer และอุปกรณ์ / dev / คลิปบอร์ดสำหรับการเข้าถึงคลิปบอร์ด Windows


3
มันให้ "บูรณาการที่มากขึ้นของ Windows" ได้อย่างไร? "มันยังอนุญาตให้ใช้ Windows และ UNIX API ในโปรแกรมเดียวกัน" - นี่เป็นจริงเช่นกันสำหรับ Interix ดูสิ่งนี้สำหรับแหล่งที่มาของบุคคลที่หนึ่ง สไลด์ 37, "กระบวนการแบบผสม" ซึ่งมีสัญลักษณ์แสดงหัวข้อย่อย "ผลลัพธ์ของกระบวนการผสมโหมดสามารถทำการโทรทั้ง SUA และ Windows API ในกระบวนการเดียวกัน"
user314104

1

ให้ฉันแบ่งปันประสบการณ์การติดตั้ง Interix สำหรับ Windows 7

การเดินทางของเราเริ่มต้นที่ หน้าคลุมเครือ สำหรับ Windows Server 2008

ที่นี่คุณจะพบว่ามันก็ไม่ได้เรียกว่า Interix อีกต่อไป แต่ระบบย่อยสำหรับการประยุกต์ใช้งานยูนิกซ์หรือ SUA ถัดไปคุณจะสังเกตเห็นได้จากความคิดเห็นของผู้ใช้ว่า SUA พร้อมใช้งานสำหรับ Windows 7 Ultimate หรือ Enterprise เท่านั้น สิ่งนี้ไม่ได้กล่าวถึงในบทความทุกที่ หลังจากติดตั้ง "ระบบย่อย" คุณจะรู้ว่ามันไม่เกิน 2 ทางลัดในเมนูเริ่มของคุณ

เสือ

ตอนนี้คุณจะได้รับความชั่วร้ายที่แท้จริง คลิกทางลัดเพื่อดาวน์โหลดและคุณจะเข้าสู่ หน้าดาวน์โหลด

เก่า

ที่นี่เรามี 3 ไฟล์ให้ดาวน์โหลด ไฟล์เหล่านี้เป็นทั่ว 400MB และเป็นที่เขียนนี้กว่า 4 ปี นอกจากนี้เราไม่มีตัวเลือกใด ๆ ในการดาวน์โหลดแพ็คเกจที่กำหนดเอง, บางส่วน, ไม่ว่า แล้วคุณจะรู้ว่าการเชื่อมโยงนี้เป็นจริงสำหรับ Vista และ Windows 7 ไม่ได้และจะต้องไปค้นหาทางอินเทอร์เน็ตเพื่อหา Windows 7 หน้า เมื่อมาถึงจุดนี้ฉันยอมแพ้

Cygwin

ไปที่cygwin.com ดาวน์โหลด cygwin.com/setup-x86.exe ไฟล์นี้เป็น 714 KB เรียกใช้การติดตั้งพื้นฐานและคุณจะเห็นว่ามันจะใช้เวลาประมาณ 2 นาที

เวลา

หลังจากนั้นคุณสามารถใช้โปรแกรมติดตั้งซ้ำสำหรับแพ็คเกจอื่น ๆ ตามต้องการ คุณธรรมของเรื่องก็คือว่าใส่ใจ Cygwin เกี่ยวกับผู้ใช้


ให้ฉันเข้าใจคุณอย่างถูกต้อง - เพราะไม่จำเป็นต้องเปลี่ยนตัวติดตั้งเพื่อรันเวอร์ชันของยูนิกซ์ที่มาพร้อมกับ win 7 อย่างใดนั่นหมายความว่าไม่สนใจ - และความจริงที่ Cygwin ช่วยให้คุณสามารถดาวน์โหลดชิ้นส่วนได้ ต้องย้อนกลับไปและได้รับมากขึ้น) เป็นข้อดีหรือไม่? แน่นอนการตัดสินใจเมื่อเร็ว ๆ นี้เพื่อลบส่วนประกอบ unix จาก windows เป็นสัญญาณว่าผู้ใช้ไม่ได้ใช้ unix ใน windows (น่าจะเป็น IMHO มากที่สุด) หรืออย่างใดที่พวกเขาไม่สนใจ แต่ฉันไม่เห็นจริง ๆ
Jim B

@JimB มันไม่ได้ "มา" พร้อมกับ Windows 7 ฉันจะคิดว่าโพสต์ของฉันทำให้ชัดเจน มีให้สำหรับ Win7 ultimate เท่านั้นและคุณต้องดาวน์โหลด พร้อมดาวน์โหลดคือ 4 ปี ในชุมชนซอฟต์แวร์ที่มีอายุการใช้งานและแสดงให้เห็นถึงการขาดทิศทาง / ความคิดริเริ่มที่ชัดเจนจาก Microsoft
Steven Penny

3
มันมาพร้อมกับ windows สิ่งที่คุณกำลังดาวน์โหลดคือคำสั่ง unix ที่ใช้ระบบย่อย เนื่องจากบางคำสั่งใน Linux อายุมากกว่า 40 ปีฉันไม่แปลกใจเลยที่พวกเขาไม่จำเป็นต้องเขียนใหม่ (และตามมาตรฐานของคุณฉันคิดว่าไม่มีใครใช้ linux หรือ unix อีกต่อไปตั้งแต่ทศวรรษที่แล้ว) มีการเพิ่มเครื่องมือและคำสั่งใหม่ไปยังชุมชน SU ที่suacommunity.com/tool_warehouse.htm
Jim B

2
ผิดปกติพอฉันต้องผ่านบางส่วนของรหัสและ yup - มันเป็นรหัสเดียวกันจาก 40 ปีที่แล้ว - เดาว่าคนเหล่านั้นที่ GNU กำลังทำอะไรผิดอย่างน่ากลัว - หรือบางที - อาจ - ไม่จำเป็นต้องเปลี่ยนสิ่งที่ไม่ใช่ หัก
Jim B

0

"ความรู้สึก" ที่คล้ายกับ UNIXนั้นค่อนข้างเป็นอัตวิสัย คะแนนของฉันไปกับ CygWin เนื่องจากมีเซิร์ฟเวอร์ CygWin / X Xwindows ที่มีคุณสมบัติที่จำเป็นทั้งหมด SFU มีเครื่องมือพื้นฐาน X11 แต่มันก็น้อยเกินไปและสายเกินไป หลายคน (รวมถึงฉัน) ได้รับการแนะนำให้รู้จักกับ CygWin โดยจำเป็นต้องมีเซิร์ฟเวอร์ X11 ในแง่ของความสมบูรณ์ CygWin ก็อยู่ในตำแหน่งที่ดีกว่าเพราะเป็นโอเพ่นซอร์สและซอฟต์แวร์ลิขสิทธิ์ GNU หรือ GPL จำนวนมากก็ถูกส่งไปยังมัน ฉันได้เห็นผลิตภัณฑ์เชิงพาณิชย์สำหรับ CygWin ไม่กี่ตัวในขณะที่ได้เห็นผลิตภัณฑ์เพียงผลิตภัณฑ์เดียวที่ต้องการบริการ UNIX สำหรับ Windows NT และไม่มีตั้งแต่นั้นมา YMMV

ความพร้อมใช้งานของแพคเกจเป็นชัยชนะที่ชัดเจนสำหรับ CygWin ที่ได้รับอิทธิพลจากปัจจัยหลายประการ: - ต้นทุนการเข้าใช้งานที่ต่ำกว่า: "Windows ใด ๆ " ที่มี CygWin เทียบกับสิทธิ์ใช้งานระดับเซิร์ฟเวอร์สำหรับ SFU / SUA มีฟังก์ชั่นบางอย่างสำหรับ Windows รสชาติของเดสก์ท็อป แต่มีราคาแพงกว่าและไม่มีส่วนประกอบเซิร์ฟเวอร์ - โอเพ่นซอร์สกับโอเพนซอร์ซและที่สำคัญกว่าคือเอกสารที่เปิดเผยอย่างเปิดเผย ในอดีตแม้แต่รายการคำสั่งและ API ที่ให้ไว้มีให้เฉพาะสมาชิก MSDN และมีข้อมูลเพียงเล็กน้อยเท่านั้นที่ไม่มีในเว็บไซต์ Microsoft ในทางตรงกันข้ามชุดเครื่องมือของ GNU นั้นมีเอกสารที่ดีและมีให้ทั้งแบบออนไลน์และแบบคน - การตั้งชื่อและการเปลี่ยนแปลงการใช้งานมีความสับสน รุ่นแรก ๆ กำลังใช้ชุดเครื่องมือ MKS ซึ่งถูกทิ้งไว้ในภายหลัง

ประสิทธิภาพหนึ่งในแนวนอนสามารถยืนยันได้ว่า Interix นั้นอยู่ใกล้กับเคอร์เนลมากขึ้นดังนั้นจึงสนุกกับการรันโค้ดที่สั้นกว่า คำถามจริงคือเท่าไหร่และมันมีความสำคัญ? สำหรับโปรแกรมส่วนใหญ่ความแตกต่างคือไม่กี่เปอร์เซ็นต์และเล็กน้อย ตัวอย่างเทียมที่มี I / O หนักสามารถนำขึ้นมาได้แน่นอน ฉันต้องการโหลด UNIX ในตัวเองเพราะจะเร็วกว่า Add-on ทั้ง Windows ดั้งเดิมและ UNIX ที่ด้านบนของ Windows หลายคนโยกย้ายจาก Windows ไปยัง UNIX ด้วยการเพิ่มขึ้นของโหลดในขณะที่ฉันไม่รู้ตัวอย่างของการแปลงจาก CygWin เป็น Interix (หรือกลับกัน) มันเป็นความเข้ากันได้ของ UNIX ที่ค้นหาและไม่ใช่ประสิทธิภาพของ UNIX ดังนั้นฉันจึงใส่มันไว้ท้ายรายการ


2
ประสิทธิภาพที่ชาญฉลาด Interix ได้ชัยชนะที่นี่จริง ๆ หลายสิ่งที่มีการใช้แบบดั้งเดิมเป็น * nix syscalls (like fork ()) เป็น kludges ที่ใช้งานบน Win32 ใน Cygwin Win32 ไม่มีความคิดใด ๆ ของ fork () แต่ Interix (และ NT) ไม่มี Cygwin มีปัญหากับเรื่องนี้ - การกำหนดพื้นที่ที่อยู่ให้ถูกต้องสำหรับ fork () - และนั่นนำไปสู่ปัญหาด้านประสิทธิภาพที่ร้ายแรง ของแน่ใจว่าคนที่จะได้รับอารมณ์เสียเกี่ยวกับการเชื่อมโยงที่มีมากกว่าความคิดเห็นนี้ แต่นี่มันเป็นตรงจากก๊อก
user314104
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.