Dalam posting ini dengan gaya "berpikir keras", penulis ingin membandingkan WSL versi pertama dan kedua, karena ada pengalaman komunikasi.
WSL 1 vs WSL 2, yang membuatku senang
Sumber MSDN
1. Menggunakan kernel Linux asli
Dimasukkannya kernel Linux asli telah meningkatkan IO sistem file dan panggilan sistem.
Kernel Linux yang dioptimalkan secara khusus membuat WSL 2 tampak lebih cepat daripada WSL 1.
Dalam beberapa tugas, menurut pengukuran Microsoft , seperti membongkar arsip, WSL 2 20 kali lebih cepat daripada WSL 1, dan sekitar 5 kali lebih cepat saat menggunakan Git clone dan npm install.
Anda dapat menghabiskan waktu melihat tolok ukur di sini dan di sini .
2. Dukungan buruh pelabuhan asli.
Prinsipnya, peluang seperti itu hanya muncul di WSL 2.
Kegembiraan berakhir di situ.
WSL 1 vs WSL 2, yang tidak menyenangkan
Mari kita mulai dengan kruk terbaru dari Microsoft dan jenis inovasi yang secara pribadi membuat saya kesal.
Versi pertama WSL tidak menggunakan kernel Linux yang sebenarnya, begitu pula virtualisasi. WSL agak mirip Wine, tapi tidak sepenuhnya.
Beberapa lapisan khusus digunakan di sana untuk menerjemahkan panggilan dari program Linux ke dalam shell ini.
Ini, tentu saja, memperlambat segalanya, tetapi juga memiliki keuntungan.
Misalnya, semua program yang berjalan di WSL 1 terlihat di pengelola tugas, tugas ini dapat diprioritaskan dan diberi kernel khusus untuk dieksekusi.
Selain itu, semua proses versi pertama WSL dapat dilihat oleh antivirus, mereka dapat diizinkan atau ditolak akses ke folder, seperti program biasa untuk Windows.
Dengan munculnya WSL 2, proses tertentu di mesin virtual ini tidak lagi terlihat, dan kemampuan untuk menulis perlindungan ke folder juga menghilang. WSL 2 memiliki akses sistem file yang melewati Windows Defender. Kerentanan khusus apa yang akan ditimbulkannya di masa depan - kita akan lihat. Tetapi WSL 2 mungkin menjadi vektor serangan untuk mengenkripsi seluruh disk.
Jaringan juga sedikit berubah di WSL 2. Versi pertama WSL memiliki implementasi yang sangat aneh dari tumpukan jaringan, itu tergantung pada jaringan yang digunakan Windows itu sendiri, selain itu, port mendengarkan WSL dapat diperiksa di Netstat dan ditutup dengan Windows Firewall biasa.
Sekarang, di WSL 2 ada saklar terpisah khusus untuk WSL, karena sekarang ini mesin virtual yang terpisah, kebosanan belaka.
Tolak ukur
WSL memungkinkan untuk menggunakan perintah dari WSL secara langsung di Windows. Termasuk di PowerShell.
Dengan menggunakan Divine Powershell, penulis membuat pengukuran program WSL favoritnya, yang paling sering dia gunakan sendiri.
Semua benchmark menggunakan Ubuntu 18.04 LTS untuk WSL1 dan WSL2.
Jekyll
Pembuatan situs. Satu lulus:
WSL1
WSL2
Seperti yang Anda lihat, WSL2 jauh lebih rendah daripada WSL1 saat membangun situs menggunakan Jekyll. 1,5 detik versus 9,6. Hasilnya mendukung WSL1. Menariknya, WSL1 selalu membutuhkan Sudo untuk akses tulis dan tidak ingin menghasilkan tanpa root.
Kecepatan panggilan
Di sini kami menguji kecepatan memanggil shell dan menjalankan satu perintah sederhana.
Measure-Command {
[int]$i
do {
$i++
wsl.exe -e 'uname'
} until ($i -eq 20)
}
WSL1
WSL2
WSl2 memuat sedikit lebih lambat. Ini sama sekali tidak terlihat, karena hasil dari 20 peluncuran diambil.
Git init dan Mkdir
Sekarang mari kita kalahkan Git init dan Mkdir. Buat folder dengan Mkdir dan lakukan Git init di dalam folder itu menggunakan WSL.
Kode:
Measure-Command {
[int]$i
do {
Set-Location "C:\Users\user\Desktop\TestFolder"
$i++
$Foldername = Get-Random
wsl.exe ''mkdir $Foldername''
Set-Location $Foldername
wsl.exe ''git init''
} until ($i -eq 20)
}
WSL1
WSL2
Hasilnya identik.
WSL vs. kruk lainnya
Jadi mengapa memilih WSL?
WSL 2 masih mempertahankan kemampuan untuk menggunakan perintah Linux langsung dari Windows. Lebih mudah untuk memanggil Bash langsung dari string penjelajah.
Dan tentu saja WSL menggunakan lingkungan OS default yang Anda berikan, Anda tidak harus menggunakan Vim Mingw yang menjijikkan jika Anda terbiasa bekerja dengan editor manusia.
Mengapa lebih baik melewati WSL.
Libnotify, di WSL1, serta / proc / sys / fs, sama sekali tidak ada di WSL1, seperti yang disebutkan di atas, versi pertama tidak menggunakan kernel Linux yang sama dan WSL 2 harus memperbaiki kusen ini.
Semua pustaka ini muncul di WSL 2, sekarang semuanya berfungsi di hypervisor, tetapi masalahnya belum berkurang. Pembuatan otomatis ketika file baru dibuat dan kadang-kadang bahkan ketika yang lama diubah tidak berfungsi.
Penggemar NPM dan hal-hal lain, ini semua untuk saat ini, dapat melewati sisi WSL, menggunakan solusi yang dikembangkan untuk Windows.
Cool Lay Hack untuk WSL (อก ยฐ อส อก ยฐ)
Sekarang mari kita bicara tentang satu-satunya alasan untuk menginstal WSL - Vlmcsd .
Apakah Anda ingin mengaktifkan salinan berlisensi Windows Anda dengan cara yang sedikit berbeda semata-mata demi percobaan ilmiah, tetapi tidak ingin menggunakan aktivator KMS aneh yang diunduh dari Internet?
Terima kasih Microsoft, Anda dapat menggunakan WSL, berikut panduan singkatnya.
Tautan ke proyek Github , tautan ke rilis .
Jepret di Ubuntu
Instal Snap:
sudo apt update
sudo apt install snapd
Instal vlmcsd:
sudo snap install vlmcsd
Menggunakan ip addr, kami memeriksa alamat IP tempat WSL hang dan menggunakannya sebagai server KMS. Berikut ini tautan ke halaman proyek di snapstore .
vlmcsd dan Docket di WSL
Hal yang sama dapat dilakukan melalui Docker itu sendiri, atau WSL dan Docker. Ini adalah tautan ke proyek , saya tidak bisa menjelaskannya dengan lebih baik.
Sisi Windows:
Seperti inilah tampilan aktivasi Windows 10 PRO melalui KMS.
slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
slmgr.vbs -skms 192.168.88.166
slmgr.vbs -ato
Metode penginstalan ini hanya untuk bercanda, karena instans WSL akan selalu dimatikan segera setelah Anda menutup jendelanya, seperti pada ngomong-ngomong, untuk saat ini, semua WSL hanya bagus untuk lelucon dan Git.
Penulis berharap agar anda tidak terlalu bosan.