في هذا المنشور بأسلوب "التفكير بصوت عالٍ" ، يود المؤلف مقارنة WSL للإصدارين الأول والثاني ، نظرًا لوجود خبرة في الاتصال.
WSL 1 vs WSL 2 ، مما جعلني سعيدًا
مصدر MSDN
1. استخدام نواة لينكس حقيقية
أدى تضمين نواة Linux الحقيقية إلى زيادة نظام الملفات IO واستدعاءات النظام.
تجعل نواة Linux المحسّنة WSL 2 تبدو أسرع من WSL 1.
في بعض المهام ، وفقًا لقياسات Microsoft ، مثل تفريغ ملفات الأرشيف ، كان WSL 2 أسرع 20 مرة من WSL 1 ، وحوالي 5 مرات أسرع عند الاستخدام تثبيت Git clone و npm.
يمكنك قضاء وقتك النظر في المعايير هنا و هنا .
2. دعم عامل ميناء محلي.
من حيث المبدأ ، ظهرت مثل هذه الفرصة فقط مع WSL 2.
انتهى الفرح هناك.
WSL 1 vs WSL 2 ، والتي لم ترضي
لنبدأ بأحدث العكازات من Microsoft ونوع الابتكار الذي أزعجني شخصيًا.
لم يستخدم الإصدار الأول من WSL نواة لينكس حقيقية ، ولا المحاكاة الافتراضية. كانت WSL مثل Wine ، لكن ليس تمامًا.
تم استخدام طبقة خاصة هناك لترجمة المكالمات من برامج Linux إلى هذه القشرة.
هذا ، بالطبع ، أبطأ كل شيء ، لكن كان له أيضًا مزايا.
على سبيل المثال ، كانت جميع البرامج التي يتم تشغيلها على WSL 1 مرئية في مدير المهام ، ويمكن ترتيب أولويات هذه المهام وإعطائها نواة محددة للتنفيذ.
أيضًا ، كانت جميع عمليات الإصدار الأول من WSL مرئية لمضادات الفيروسات ، ويمكن السماح لها بالوصول إلى المجلدات أو رفضها ، تمامًا مثل البرامج العادية لنظام التشغيل Windows.
مع ظهور WSL 2 ، لم تعد العمليات المحددة في هذا الجهاز الظاهري مرئية ، واختفت أيضًا القدرة على كتابة الحماية للمجلدات. WSL 2 لديه وصول إلى نظام الملفات يتجاوز Windows Defender. ما هي نقاط الضعف المحددة التي سيجلبها هذا في المستقبل - سنرى. ولكن قد يصبح WSL 2 موجهًا للهجوم لتشفير القرص بأكمله.
تغيرت الشبكات أيضًا بشكل طفيف في WSL 2. كان للإصدار الأول من WSL تنفيذ غريب جدًا لمكدس الشبكة ، فقد تم تعليقه على شبكة يستخدمها Windows نفسه ، علاوة على ذلك ، يمكن التحقق من منافذ الاستماع WSL في Netstat وإغلاقها بجدار حماية Windows عادي.
الآن ، في WSL 2 يوجد مفتاح منفصل خاص بـ WSL ، لأنه الآن جهاز افتراضي منفصل ، الملل المطلق.
المعايير
جعلت WSL من الممكن استخدام الأوامر من WSL مباشرة في Windows. بما في ذلك بوويرشيل.
باستخدام Divine Powershell ، أجرى المؤلف قياسات لبرامج WSL المفضلة لديه ، والتي يستخدمها هو نفسه في أغلب الأحيان.
استخدمت جميع المعايير Ubuntu 18.04 LTS لـ WSL1 و WSL2.
جيكل
إنشاء الموقع. تمريرة واحدة:
WSL1
WSL2
كما ترى ، فإن WSL2 أدنى بكثير من WSL1 عند إنشاء موقع باستخدام Jekyll. 1.5 ثانية مقابل 9.6. كانت النتيجة لصالح WSL1. ومن المثير للاهتمام ، أن WSL1 كان يتطلب دائمًا سودو للوصول للكتابة ولم يرغب في الإنشاء بدون جذر.
سرعة الاتصال
هنا نختبر سرعة استدعاء الصدفة وتنفيذ أمر واحد بسيط.
Measure-Command {
[int]$i
do {
$i++
wsl.exe -e 'uname'
} until ($i -eq 20)
}
WSL1
WSL2
يتم تحميل WSl2 بشكل أبطأ قليلاً. هذا غير محسوس تمامًا ، حيث يتم إجراء نتيجة 20 عملية إطلاق.
Git init و Mkdir
الآن دعونا نتغلب على Git init و Mkdir. قم بإنشاء مجلد باستخدام Mkdir وقم بعمل Git init داخل هذا المجلد باستخدام WSL.
الرمز:
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
النتائج متطابقة.
WSL مقابل. عكازات أخرى
فلماذا تختار WSL؟
لا يزال WSL 2 يحتفظ بالقدرة على استخدام أوامر Linux مباشرة من Windows. من الملائم استدعاء Bash مباشرة من سلسلة مستكشف.
وبالطبع ، تستخدم WSL بيئة نظام التشغيل الافتراضية التي قدمتها ، ولا يتعين عليك استخدام Mingw's vim البغيض إذا كنت معتادًا على العمل مع المحررين البشريين.
لماذا من الأفضل تجاوز WSL.
Libnotify ، في WSL1 ، وكذلك / proc / sys / fs ، غائبان تمامًا في WSL1 ، كما هو مذكور أعلاه ، الإصدار الأول لا يستخدم نفس Linux kernel وكان على WSL 2 إصلاح هذا الدعامة.
ظهرت كل هذه المكتبات في WSL 2 ، والآن تعمل جميعها على برنامج Hypervisor ، لكن المشكلات لم تتضاءل. الإنشاء التلقائي عند إنشاء ملف جديد وأحيانًا لا يعمل حتى عند تغيير الملف القديم.
يمكن لعشاق NPM وأشياء أخرى ، هذا كل شيء في الوقت الحالي ، تجاوز جانب WSL ، واستخدام الحلول المطورة لنظام Windows.
Cool Lay Hack لـ WSL (͡ ° ͜ʖ ͡ °)
الآن دعنا نتحدث عن السبب الوحيد لتثبيت WSL - Vlmcsd .
هل تريد تنشيط نسختك المرخصة من Windows بطريقة مختلفة قليلاً فقط من أجل تجربة علمية ، ولكن لا تريد استخدام منشطات KMS غريبة تم تنزيلها من الإنترنت؟
بفضل Microsoft ، يمكنك استخدام WSL ، وإليك دليل سريع.
رابط لمشروع جيثب ، رابط للإصدارات .
التقط على Ubuntu
قم بتثبيت Snap:
sudo apt update
sudo apt install snapd
قم بتثبيت vlmcsd:
sudo snap install vlmcsd
باستخدام عنوان IP ، نتحقق من عنوان IP الذي توقف WSL عليه ونستخدمه كخادم KMS. هنا رابط لصفحة المشروع في snapstore .
vlmcsd و Docket على WSL
يمكن فعل الشيء نفسه من خلال Docker نفسه ، أو WSL و Docker. هنا رابط للمشروع ، لا يمكنني شرحه بشكل أفضل.
جانب النوافذ:
هكذا يبدو تنشيط Windows 10 PRO من خلال KMS.
slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
slmgr.vbs -skms 192.168.88.166
slmgr.vbs -ato
أسلوب التثبيت هذا فقط للنكات، لأنه لن يكون دائما اغلاق المثال وسل أسفل بمجرد إغلاق الإطار الخاص، كما هو الحال في بالمناسبة ، في الوقت الحالي ، كل WSL جيد فقط للنكات و Git.
يأمل المؤلف ألا تشعر بالملل كثيرًا.