Subsistem untuk Aplikasi berbasis UNIX di Windows 7

12

Memperhatikan hal yang disebut Subsistem untuk Aplikasi berbasis UNIX dalam dialog Aktifkan dan nonaktifkan fitur Windows di bawah 7. Windows. Tidak pernah melihatnya sebelumnya, dan tampaknya menarik. Sebenarnya apa itu sebenarnya? Untuk apa dan untuk apa saya bisa menggunakannya?

Svish
sumber
1
apakah ada peretasan untuk menggunakan ini di Windows 7 Professional?
iceman
@iceman: Instal Enterprise atau Ultimate, lalu.
Joey
Bacaan yang bagus tentang apa yang bisa menjadi: 'Sejarah Sedih dari Subsistem Microsoft POSIX' brianreiter.org/2010/08/24/…
Daniel Sokolowski

Jawaban:

17

Sebelumnya dikenal sebagai SFU atau Layanan untuk UNIX . Ini adalah subsistem lingkungan di Windows, menyediakan kepatuhan POSIX penuh dan banyak alat yang biasanya datang dengan sistem UNIX.

Sebagai subsistem lingkungan, ini berarti ia berjalan di samping API Windows, langsung di atas kernel. Jadi itu tidak lebih ditiru dari Windows API asli itu sendiri dan karena itu kinerjanya jauh lebih baik daripada cygwin, misalnya. 1

Ini terutama ditujukan untuk membangun dan menjalankan aplikasi UNIX langsung di Windows sehingga jika program UNIX favorit Anda tidak datang dengan port Windows Anda dapat mencoba membangunnya di SUA:

Layanan Windows untuk Unix dan Subsistem untuk Aplikasi berbasis Unix menyediakan file header dan pustaka yang membuatnya lebih mudah untuk mengkompilasi ulang atau port aplikasi Unix untuk digunakan pada Windows; mereka tidak membuat binari Unix kompatibel dengan binari Windows. Itu paling baik dianggap sebagai platform yang mirip Unix.

Versi SFU saat ini berisi:

  • Lebih dari 350 utilitas Unix seperti vi, ksh, csh, ls, cat, awk, grep, kill, dll.
  • GCC 3.3 compiler, termasuk dan perpustakaan (melalui MS libc)
  • Pembungkus mirip cc untuk kompiler baris perintah Microsoft Visual Studio C / C ++
  • Debugger GDB
  • Server dan klien NFS
  • Daemon pcnfsd
  • Alat dan perpustakaan X11
  • Alat untuk membuat titik pemasangan NFS muncul sebagai Windows membagikan, dan sebaliknya (layanan gateway)
  • Kemampuan server NIS yang ditautkan dengan Active Directory (AD)
  • Beberapa alat sinkronisasi informasi otentikasi Windows / Unix

SFU tidak mengandung yang berikut (tetapi binari tersedia untuk instalasi terpisah):

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

(Wikipedia)

Karena SUA tidak mencoba menjadi Linux atau BSD tetapi hanya POSIX, ini juga dapat berarti bahwa banyak program yang bergantung pada hal-hal khusus platform mungkin gagal dibangun atau dijalankan. Skrip Shell yang menganggap bash alih-alih panggilan sistem atau spesifik Linux ke pikiran. Sangat sedikit program saat ini yang ditulis yang dapat berjalan secara langsung pada sistem yang mendukung POSIX. Juga versi gcc yang disertakan agak lama yang artinya mungkin tidak mendukung kebaikan C99 + terbaru Anda.


1 Ini masih tunduk pada batasan khusus Windows, seperti waktu mulai proses yang lambat, jadi forking yang ekstrim masih akan sangat lambat, itulah sebabnya Anda akan menunggu lama untuk banyak ./configureskrip atau beberapa makefile untuk dieksekusi.

Joey
sumber
Keren. Jadi, apakah itu berarti Anda bisa mendapatkan shell unix seperti dan menggunakan ssh misalnya?
Svish
Tidak ada server atau klien SSH, tetapi csh dan ksh disertakan (masih banyak yang tidak diamanatkan oleh POSIX). Anda dapat membangun dari sumber apa yang Anda butuhkan, berharap itu akan berfungsi (untuk perangkat lunak yang lebih kompleks biasanya tidak karena makefile dan perangkat lunak tidak ditulis dengan POSIX dalam pikiran, atau dengan gcc dan Microsoft libc. Alat Linux juga terkenal karena membutuhkan bash tanpa alasan tertentu. Namun, Anda dapat mengatur pkgsrc. Namun, saya tidak berhasil melakukannya sejauh ini, tetapi pengalaman saya kembali ke SFU 3.5 pada Windows 2000. Mungkin hal-hal telah berubah sekarang.
Joey
Meskipun benar, subsistem POSIX asli di NT berjalan langsung pada kernel bersama dengan subsistem Win32 dan OS / 2, SUA berjalan di atas Windows API.
ー パ ー フ ァ ミ コ ン
2
matthews: Executables untuk SUA masih aplikasi POSIX Subsystem (ya, saya benar-benar mengambil hex editor dan melihat ke dalam). Jadi kernel bahkan tidak akan mendapatkan ide menjalankan sesuatu dari API Windows.
Joey
4
@ Svish: Anda dapat men-download OpenSSH SUA binari (dan banyak lagi) dari suacommunity.com
bk1e
1

Anda dapat menggunakan paket gaya BSD untuk menginstal / menghapus instalan perangkat lunak. Anda dapat mengakses SUA melalui SSH jika Anda telah menginstal OpenSSH.

Budhi Hamdani
sumber