ระบบย่อยสำหรับแอพพลิเคชั่นที่ใช้ระบบปฏิบัติการ UNIX ใน Windows 7


13

สังเกตเห็นสิ่งที่เรียกว่าระบบย่อยสำหรับแอพพลิเคชั่นที่ใช้ระบบปฏิบัติการ UNIXในการเปิดและปิดคุณสมบัติการสนทนาภายใต้ Windows 7 ไม่เคยเห็นมาก่อนและดูเหมือนว่าน่าสนใจ มันคืออะไรกันแน่? มีไว้เพื่ออะไรและฉันจะใช้เพื่ออะไร


1
มีแฮ็คที่จะใช้ใน Windows 7 Professional หรือไม่?
iceman

@iceman: ติดตั้ง Enterprise หรือ Ultimate แล้ว
Joey

อ่านเรื่องราวที่น่าจะเป็นได้: 'ประวัติอันน่าเศร้าของระบบย่อย POSIX ของ Microsoft' brianreiter.org/2010/08/24/…
Daniel Sokolowski

คำตอบ:


18

ที่รู้จักกันก่อนหน้านี้เป็นไอ้เวรหรือบริการสำหรับ UNIX มันเป็นระบบย่อยของสภาพแวดล้อมใน Windows ซึ่งให้การปฏิบัติตาม POSIX เต็มรูปแบบและมีเครื่องมือมากมายที่มักจะมาพร้อมกับระบบ UNIX

ในฐานะที่เป็นระบบย่อยของสภาพแวดล้อมสิ่งนี้หมายความว่ามันทำงานควบคู่ไปกับ Windows API โดยตรงที่ด้านบนของเคอร์เนล ดังนั้นจึงไม่มีการเลียนแบบมากกว่า Windows API ดั้งเดิมดังนั้นจึงทำงานได้ดีกว่า cygwin เป็นอย่างมาก 1

ส่วนใหญ่มีไว้สำหรับการสร้างและเรียกใช้แอปพลิเคชั่น UNIX บน Windows โดยตรงดังนั้นหากโปรแกรม UNIX ที่คุณโปรดปรานไม่มีพอร์ต Windows คุณสามารถลองสร้างมันใน SUA:

บริการ Windows สำหรับ Unix และระบบย่อยสำหรับแอพพลิเคชั่นที่ใช้ Unix จัดเตรียมไฟล์ส่วนหัวและไลบรารีที่ทำให้ง่ายต่อการคอมไพล์ใหม่หรือพอร์ตแอปพลิเคชั่น Unix สำหรับการใช้งานบน Windows พวกเขาไม่ได้ทำให้ Unix ไบนารีเข้ากันได้กับไบนารี Windows มันเป็นความคิดที่ดีที่สุดในฐานะแพลตฟอร์ม Unix ที่แตกต่าง

SFU เวอร์ชั่นปัจจุบันประกอบด้วย:

  • ยูทิลิตี้ Unix กว่า 350 รายการเช่น vi, ksh, csh, ls, cat, awk, grep, kill, เป็นต้น
  • GCC 3.3 คอมไพเลอร์รวมและไลบรารี (ผ่าน MS libc)
  • wrapper เหมือนสำเนาสำหรับคอมไพเลอร์บรรทัดคำสั่งของ Microsoft Visual Studio C / C ++
  • ดีบักเกอร์ GDB
  • เซิร์ฟเวอร์และไคลเอ็นต์ NFS
  • pcnfsd daemon
  • เครื่องมือและไลบรารี X11
  • เครื่องมือสำหรับการทำให้จุดเมาท์ NFS ปรากฏเป็น Windows share และในทางกลับกัน (บริการเกตเวย์)
  • ความสามารถของเซิร์ฟเวอร์ NIS ที่เชื่อมโยงกับ Active Directory (AD)
  • เครื่องมือซิงโครไนซ์ข้อมูลการตรวจสอบสิทธิ์ Windows / Unix บางตัว

SFU ไม่มีสิ่งต่อไปนี้ (แต่มีไบนารีสำหรับการติดตั้งแยกต่างหาก):

  • bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, Ruby, Tcl, Python

(วิกิพีเดีย)

เนื่องจาก SUA ไม่ได้พยายามเป็น Linux หรือ BSD แต่เป็นเพียง POSIX ธรรมดานี่อาจหมายความว่าหลาย ๆ โปรแกรมที่พึ่งพาสิ่งเฉพาะแพลตฟอร์มอาจไม่สามารถสร้างหรือรันได้ เชลล์สคริปต์ที่ถือว่าทุบตีแทนการเรียกใช้ระบบ sh หรือ Linux โดยเฉพาะ ปัจจุบันมีโปรแกรมเพียงไม่กี่โปรแกรมที่สามารถเขียนได้โดยตรงบนระบบที่รองรับ POSIX รุ่น gcc ที่รวมอยู่ด้วยค่อนข้างเก่าซึ่งหมายความว่าอาจไม่รองรับ C99 + คุณล่าสุด


1มันยังอยู่ภายใต้ข้อ จำกัด เฉพาะของ Windows เช่นเวลาเริ่มต้นกระบวนการช้าดังนั้นการฟอร์กกิ้งขั้นสุดจึงจะช้ามากซึ่งเป็นสาเหตุที่คุณจะต้องรอนานหลายปีสำหรับ./configureสคริปต์จำนวนมาก


เย็น. ดังนั้นหมายความว่าคุณจะได้รับ unix เช่น shell และใช้ ssh หรือไม่
Svish

ไม่มีเซิร์ฟเวอร์หรือไคลเอ็นต์ SSH แต่รวม csh และ ksh (POSIX ไม่ได้บังคับมากขึ้นแล้ว) คุณสามารถสร้างจากแหล่งที่มาสิ่งที่คุณต้องการหวังว่ามันจะทำงาน (สำหรับซอฟต์แวร์ที่ซับซ้อนมากขึ้นซึ่งมักจะไม่ได้ตั้งแต่ makefiles และซอฟต์แวร์ไม่ได้เขียนด้วย POSIX ในใจหรือกับ gcc และ Microsoft libc เครื่องมือ Linux ยังมีชื่อเสียงสำหรับ ต้องทุบตีโดยไม่มีเหตุผลโดยเฉพาะเห็นได้ชัดว่าคุณสามารถตั้งค่า pkgsrc แม้ว่าฉันไม่ได้จัดการที่จะทำเช่นนั้น แต่ประสบการณ์ของฉันวันที่ SFU 3.5 ใน Windows 2000 อาจเป็นไปได้ว่าสิ่งที่มีการเปลี่ยนแปลงในขณะนี้
Joey

ในขณะที่มันเป็นความจริงระบบย่อย POSIX ดั้งเดิมใน NT จะทำงานโดยตรงบนเคอร์เนลพร้อมกับระบบย่อย Win32 และ OS / 2 แต่ SUA จะทำงานบน Windows API
スーパーファミコン

2
matthews: ปฏิบัติการสำหรับ SUA ยังคงเป็นแอปพลิเคชันระบบย่อย POSIX (ใช่แล้วฉันใช้โปรแกรมแก้ไข hex และมองเข้าไปข้างใน) ดังนั้นเคอร์เนลจะไม่ได้รับแนวคิดในการใช้งานบางอย่างจาก Windows API
Joey

4
@Svish: คุณสามารถดาวน์โหลดไบนารี OpenSSH SUA (และอื่น ๆ อีกมากมาย) ได้จากsuacommunity.com
bk1e

1

คุณสามารถใช้แพ็คเกจสไตล์ BSD สำหรับการติดตั้ง / ถอนการติดตั้งซอฟต์แวร์ คุณสามารถเข้าถึง SUA ผ่าน SSH หากคุณติดตั้ง OpenSSH

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.