چرا WSL 2 13 برابر سریعتر از WSL است: برداشت از Insider Preview

مایکروسافت در حال آماده سازی انتشار به روز رسانی می 2020 ویندوز (20H1) است. این به روز رسانی دارای چند بهبود رابط کاربری خوب است، اما آنچه در نسخه جدید ویندوز برای توسعه دهندگان و سایرین مهمتر است این است که WSL 2 (زیر سیستم ویندوز برای لینوکس). این اطلاعات مربوط به کسانی است که می خواستند به سیستم عامل ویندوز سوئیچ کنند، اما جرات نکردند.

دیو روپرت WSL 2 را بر روی لپ تاپ 13 اینچی سرفیس خود نصب کرد و اولین نتایج را به دست آورد
غافلگیر:

چرا WSL 2 13 برابر سریعتر از WSL است: برداشت از Insider Preview

نسخه دوم WSL 13 برابر سریعتر از نسخه اول است! هر روز نیست که به طور رایگان 13 برابر افزایش عملکرد دریافت می کنید. وقتی برای اولین بار این نتایج را دیدم احساس لرز کردم و اشک مردانه ریختم. چرا؟ خوب، بیشتر من عزادار زمان از دست رفته بودم که بیش از 5 سال کار با اولین نسخه WSL جمع شده بود.

و اینها فقط اعداد نیستند. در WSL 2، نصب npm، ساختن، بسته‌بندی، مشاهده فایل‌ها، بارگیری مجدد ماژول‌های داغ، راه‌اندازی سرورها - تقریباً همه چیزهایی که من روزانه به‌عنوان یک توسعه‌دهنده وب استفاده می‌کنم بسیار سریع‌تر شده‌اند. احساس می‌کنید دوباره روی مک هستید (یا شاید بهتر باشد، زیرا اپل در چند سال گذشته به شدت پردازنده‌های خود را به نفع عمر باتری بهتر محدود کرده است).

چنین چابکی از کجا می آید؟

چگونه آنها به افزایش 13 برابری در بهره وری دست یافتند؟ پیش از این، زمانی که به تغییر به مک فکر می کردم، برخی از گزینه ها را نیز کنار گذاشتم، البته صرفاً در سطح فرضیات. واقعیت این است که نوشتن روی دیسک و تماس های سیستمی لینوکس (از نظر هزینه زمانی) به دلیل معماری نسخه اول WSL بسیار گران بود. و حالا حدس بزنید که توسعه وب مدرن به شدت بر چه چیزی متکی است؟ آره. وقتی هر بار که یک فایل را ذخیره می‌کنید، دسته‌ای از وابستگی‌ها و تکه‌های کد را کنار هم می‌گذارید، در واقع تعداد زیادی از دیسک‌نویسی‌ها و فراخوانی سیستم بر روی ده‌ها هزار فایل را انجام می‌دهید.

وقتی این را به روش سخت یاد بگیرید، فراموش کردن آن سخت است. وقتی تصور می کنید که چقدر آهسته و غم انگیز همه چیز کار می کند، به تدریج افسرده می شوید. و متوجه می شوید که دنیای شما دیگر مثل قبل نخواهد بود و ابزاری که دوست داشتید دیگر مفید یا موثر به نظر نمی رسد.

خوشبختانه تیم WSL ریسک کرد و زیر سیستم را به طور کامل بازنویسی کرد. در WSL 2، این مشکلات حل شد: توسعه دهندگان ماشین مجازی لینوکس خود را در ویندوز ساختند و عملیات فایل را به یک درایو شبکه VHD (دیسک سخت افزار مجازی) واگذار کردند. معاوضه این است که اولین باری که آن را اجرا می کنید، باید زمانی را صرف چرخش ماشین مجازی کنید. این زمان در میلی ثانیه اندازه گیری می شود و شخصاً برای من به سختی قابل توجه است. به عنوان مثال، من با خوشحالی منتظر هستم، زیرا می دانم همه اینها برای چیست.

اکنون فایل ها کجا زندگی می کنند؟

برای استفاده کامل از WSL 2، باید فایل های پروژه خود را از آن جابجا کنید /mnt/c/Users/<username>/ به دایرکتوری خانه جدید ~/لینوکس روی یک VHD جدید با رفتن به این آدرس می توانید محتویات این درایو را به صورت آنلاین مشاهده کنید \\wsl$\<نام توزیع>\<نام کاربری>\home یا با وارد کردن دستور explorer.exe از پوسته Bash شما.

این یک فایل سیستم واقعی لینوکس است و همانطور که انتظار دارید عمل می کند و رفتار می کند. من یک پوشه ایجاد کردم ~/پروژه ها، جایی است که تمام مخازن پروژه من زندگی می کنند و سپس با استفاده از دستور کد پروژه ها را در Visual Studio Code باز می کنم.

VS Code چطور؟

نصب WSLانبساط برای توسعه از راه دور در VS Code (VS Code Remote - WSL) آخرین مرحله ای است که کار راحت را برای توسعه دهنده تضمین می کند. برنامه افزودنی به VS Code اجازه می دهد تا با تعامل مستقیم با ماشین مجازی لینوکس، تمام عملیات خود (دستورات git، کنسول ها، نصب برنامه های افزودنی و غیره) را انجام دهد. این باعث می شود که کل فرآیند بسیار مستقل باشد.

در ابتدا از نصب این افزونه کمی ناراحت بودم زیرا باید آنچه را که قبلاً نصب و پیکربندی کرده بودم مجدداً نصب کنم. اما اکنون از آن قدردانی می کنم زیرا یک لایه تجسم ویژه وجود دارد که نشان می دهد در چه محیطی کار می کنم و فایل های من در کجا زندگی می کنند. این امر فرآیند توسعه وب ویندوز را شفاف‌تر کرد و استفاده از رابط کاربری کنترل نسخه در VS Code را بسیار آسان‌تر کرد.

اشک شادی و امید به آینده ای روشن

نمی‌توانم از انتشار بعدی به‌روزرسانی می 2020 ویندوز و زیرسیستم بهینه‌شده لینوکس که فقط در رایانه‌ی بازی قدرتمند من در حال پرواز است، هیجان‌زده نباشم. ممکن است مشکلات دیگری وجود داشته باشد که من هنوز از آنها اطلاعی ندارم، اما بعد از آن پیش نمایش خودی به این نتیجه رسیدم که تیم WSL بیشتر مشکلات را حل کرده است.

علاوه بر این، این را فراموش نکنید ترمینال ویندوز هم خوب! گویی آنها شکایات من را در مورد کمبود برگه ها، تنظیمات JSON و نیاز به "احساس خنک" در ویندوز شنیدند. هنوز هم عجیب به نظر می رسد، اما ترمینال ویندوز شاید بهترین ترمینال برای ویندوز باشد.

من که 5 سال روی ویندوز کار کرده ام، مشکلات زیادی را پشت سر گذاشته ام: ناتوانی در نصب Rails، مبارزه با پوسته های مصنوعی Cygwin. زمانی که مایکروسافت اولین نسخه WSL را معرفی کرد، در همان کنفرانس بیلد 2016 در ردیف جلو نشستم. و سپس من شروع به امیدواری کردم که توسعه وب در ویندوز بالاخره به سطح جدیدی برسد. بدون شک، WSL 2 بزرگترین پیشرفتی است که از آن زمان تاکنون دیده ام و به نظر می رسد که ما در آستانه یک دوره جدید هستیم.

در حقوق تبلیغات

اگر کار نیاز دارد سرورهای ویندوز، پس شما قطعا به ما — نصب خودکار ویندوز سرور 2012، 2016 یا 2019 روی پلن هایی با رم 2 گیگابایتی یا بالاتر، لایسنس از قبل در قیمت گنجانده شده است. جمع از 21 روبل در روز! سرورهای ابدی هم داریم😉

چرا WSL 2 13 برابر سریعتر از WSL است: برداشت از Insider Preview

منبع: www.habr.com

اضافه کردن نظر