Hệ thống con cho các ứng dụng dựa trên UNIX trong Windows 7


12

Nhận thấy một thứ gọi là Hệ thống con cho các ứng dụng dựa trên UNIX trong hộp thoại Bật và tắt các tính năng của Windows trong Windows 7. Chưa bao giờ nhìn thấy nó trước đây và nó có vẻ thú vị. Chính xác thì nó là gì? Nó dùng để làm gì và tôi có thể sử dụng nó để làm gì?


1
Có hack nào để sử dụng cái này trong Windows 7 Professional không?
iceman

@iceman: Cài đặt Enterprise hoặc Ultimate, sau đó.
Joey

Đọc tốt về những gì có thể có: 'Lịch sử buồn của Hệ thống con Microsoft POSIX' brianreiter.org/2010/08/24/iêu
Daniel Sokolowski

Câu trả lời:


17

Trước đây được gọi là SFU hoặc Dịch vụ cho UNIX . Đây là một hệ thống con môi trường trong Windows, cung cấp tuân thủ POSIX đầy đủ và rất nhiều công cụ thường đi kèm với các hệ thống UNIX.

Là một hệ thống con môi trường, điều này có nghĩa là nó chạy cùng với API Windows, trực tiếp trên hạt nhân. Vì vậy, nó không được mô phỏng nhiều hơn chính API Windows gốc và do đó hoạt động tốt hơn nhiều so với cygwin chẳng hạn. 1

Nó chủ yếu dành cho việc xây dựng và chạy các ứng dụng UNIX trực tiếp trên Windows, vì vậy nếu chương trình UNIX yêu thích của bạn không đi kèm với cổng Windows, bạn có thể thử xây dựng nó trong SUA:

Các dịch vụ Windows cho Unix và Hệ thống con cho các ứng dụng dựa trên Unix cung cấp các tệp và thư viện tiêu đề giúp dễ dàng biên dịch lại hoặc chuyển các ứng dụng Unix để sử dụng trên Windows; họ không làm cho các nhị phân Unix tương thích với các nhị phân của Windows. Nó được coi là một nền tảng giống như Unix khác biệt.

Phiên bản hiện tại của SFU chứa:

  • Hơn 350 tiện ích Unix như vi, ksh, csh, ls, cat, awk, grep, kill, v.v.
  • Trình biên dịch GCC 3.3, bao gồm và các thư viện (thông qua MS libc)
  • Trình bao bọc giống cc cho trình biên dịch C / C ++ của Microsoft Visual Studio
  • Trình gỡ lỗi GDB
  • Máy chủ và máy khách NFS
  • Một daemon pcnfsd
  • Công cụ và thư viện X11
  • Các công cụ để tạo các điểm gắn kết NFS xuất hiện dưới dạng cổ phiếu Windows và ngược lại (dịch vụ cổng)
  • Khả năng máy chủ NIS được liên kết với Active Directory (AD)
  • Một số công cụ đồng bộ hóa thông tin xác thực Windows / Unix

SFU không chứa các mục sau (nhưng nhị phân có sẵn cho một cài đặt riêng):

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

(Wikipedia)

Vì SUA không cố gắng trở thành Linux hoặc BSD mà chỉ đơn giản là POSIX, điều này cũng có nghĩa là nhiều chương trình dựa trên những thứ dành riêng cho nền tảng có thể không xây dựng hoặc chạy. Các kịch bản Shell giả định bash thay vì các lệnh gọi hệ thống dành riêng cho sh hoặc Linux xuất hiện trong tâm trí. Ngày nay, rất ít chương trình được viết có thể chạy trực tiếp trên bất kỳ hệ thống nào tuân thủ POSIX. Ngoài ra phiên bản gcc được bao gồm hơi cũ, điều đó có nghĩa là nó có thể không hỗ trợ tính tốt nhất của C99 + gần đây nhất của bạn.


1 Nó vẫn phải tuân theo các giới hạn cụ thể của Windows, chẳng hạn như thời gian khởi động quá trình chậm, do đó, quá trình giả mạo cực độ sẽ vẫn rất chậm, đó là lý do tại sao bạn sẽ đợi nhiều tuổi ./configuređể thực hiện nhiều tập lệnh hoặc một số tệp thực hiện.


Mát mẻ. Vì vậy, điều đó có nghĩa là bạn có thể lấy một unix như shell và sử dụng ssh chẳng hạn?
Svish

Không có máy chủ hoặc máy khách SSH, nhưng csh và ksh được bao gồm (nhiều hơn nữa không được ủy quyền bởi POSIX). Bạn có thể xây dựng từ nguồn những gì bạn cần, hy vọng nó sẽ hoạt động (đối với phần mềm phức tạp hơn thường không phải do makefiles và phần mềm không được viết bằng POSIX, hoặc với gcc và Microsoft libc. Các công cụ Linux cũng nổi tiếng với Mặc dù vậy, rõ ràng bạn có thể thiết lập pkgsrc. Tôi đã không quản lý để làm điều đó cho đến nay, nhưng trải nghiệm của tôi bắt đầu từ SFU 3.5 trên Windows 2000. Có thể bây giờ mọi thứ đã thay đổi.
Joey

Mặc dù đúng là hệ thống con POSIX ban đầu trong NT chạy trực tiếp trên kernel cùng với các hệ thống con Win32 và OS / 2, SUA chạy trên API Windows.
ス ー パ

2
matthews: Các tệp thực thi cho SUA vẫn là các ứng dụng Hệ thống con POSIX (vâng, tôi thực sự đã lấy một trình soạn thảo hex và nhìn vào bên trong). Vì vậy, kernel thậm chí sẽ không có ý tưởng chạy một cái gì đó từ API Windows.
Joey

4
@Svish: Bạn có thể tải OpenSSH SUA mã nhị phân (và nhiều hơn nữa) từ suacommunity.com
bk1e

1

Bạn có thể sử dụng các gói kiểu BSD để cài đặt / gỡ cài đặt phần mềm. Bạn có thể truy cập SUA qua SSH nếu bạn đã cài đặt OpenSSH.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.