نسیم گیلان

آخرين مطالب

مدیر پروژه مایکروسافت از توسعه زیرسیستم ویندوز برای لینوکس می‌گوید علمي

  بزرگنمايي:

نسیم گیلان -
مدیر پروژه مایکروسافت از توسعه زیرسیستم ویندوز برای لینوکس می‌گوید 7
٧
٠
زومیت / انتشار زیرسیستم لینوکس برای ویندوز، گامی بلند و مهم برای مایکروسافت بود تا بتواند به جامعه‌ی متن‌باز نزدیک‌تر شود.
پس از اینکه استیو بالمر سکان هدایت مایکروسافت را به ساتیا نادلا سپرد، شاهد چرخش 180 درجه‌ای در سیاست‌های متن باز غول فناوری جهان بودیم. مایکروسافت که زمانی لینوکس را غده‌ای سرطانی می‌نامید، اکنون یکی از بزرگ‌ترین حامیان لینوکس و پروژه‌های متن باز است.
با ورود ساتیا نادلا به مایکروسافت، سیاست‌های این شرکت بزرگ در قبال بسیاری از مسائل تغییرات بنیادینی را تجربه کرد؛ لینوکس از جمله‌ی مواردی بود که مایکروسافت پس از ورود مدیرعامل جدید، رویکردی دوستانه در قبال آن پیدا کرد؛ تارا راج، یکی از مدیران پروژه‌ی زیرسیستم ویندوز برای لینوکس یا Windows Subsystem for Linux است که تجربیات خود را طی مقاله‌ای در مدیوم به اشتراک گذاشته است. در ادامه می‌توانید تجربیات این مدیر مایکروسافت را در خصوص لینوکس از زبان خودش مطالعه کنید.
تمام مدتی که در مایکروسافت مشغول به کار بوده‌ام، در حال ساخت ابزارهایی برای توسعه‌دهندگان لینوکس بودم. من در اوت 2016 بعد از فارغ‌التحصیلی در رشته علوم کامپیوتر و کارآفرینی از دانشگاه ویرجینیا به مایکروسافت ملحق شدم. بیشتر تجربه‌ی من در برنامه‌نویسی در طول مدت دانشگاه به زبان ++C و سیستم‌عاملی که بیشتر از همه استفاده می‌کردم، لینوکس بود.
تجربیات من به‌ظاهر مناسب جایی مانند مایکروسافت نبود، ولی در آن زمان مایکروسافت در حال تغییر مسیری بنیادی در مهندسی و فرهنگ سازمانی خود بود که باعث شد تمام سیستم‌های عامل‌ مهم جایگاهی در مایکروسافت داشته باشند، از جمله لینوکس.
اولین شغل من در مایکروسافت در تیم SQL سرور روی لینوکس بود. از من درخواست شد به تیم آن‌ها بپیوندم تا تجربیاتم را در لینوکس به آن‌ها منتقل کنم. برایم جای تعجب و شگفتی داشت که می‌توانستم در همان ابتدا و براساس تجربه‌هایم کار مفیدی برای تیم انجام دهم.
ایده‌ی ساخت نسخه‌ای از SQL سرور توسط مایکروسافت در سال‌های گذشته، ابتدا در حد دروغ روز آوریل بود؛ اما سال 2016 این ایده واقعی شد. من مدت کوتاهی بعد از عرضه‌ی اولین نسخه‌ی برنامه، به تیم توسعه ملحق شدم و روی ارتقاء استفاده از ابزارها برای SQL سرور متمرکز شدم؛ به‌خصوص ابزارهایی برای مدیران سیستم تا بتوانند برنامه‌ها و سرور لینوکس خود را مدیریت کنند. اجرای SQL سرور روی لینوکس نیاز به ساخت ابزارهای خط‌ فرمان داشت و باید طراحی آن مانند سایر برنامه‌های خط فرمان سیستم‌عامل لینوکس می‌بود.
من همچنین فرصت طراحی اولین نسخه‌ی گرافیکی ابزارهای SQL سرور برای لینوکس را داشتم؛ ابزارهایی مانند یک شاخه از ویژوال استودیو کد که امروز به آن «آژور دیتا استودیو» می‌گویند. این برنامه برپایه‌ی الکترون ساخته شده است و بدون در نظرگرفتن سیستم‌عامل، در تمام نسخه‌های SQL سرور کاربرد دارد.
در سال اول حضورم در مایکروسافت و کارکردن روی SQL سرور در لینوکس، موفق به یادگیری چیزهای زیادی شدم؛ از جمله یادگیری مدیریت برنامه که توسط آن می‌توان فناوری را با تفکر تجاری ترکیب کرد.

تیم‌های WSL و Chocolatey و Boxstarter در کنفرانس بیلد 2018 مایکروسافت
در اوت 2017، من به‌عنوان مدیر پروژه به تیم توسعه زیرسیستم ویندوز برای لینوکس پیوستم. اولین‌بار در یک بیانیه به‌نام «Bash on Ubuntu on Windows» در رویدادهای بیلد مایکروسافت در سال 2016 بود که راجع به WSL شنیدم. ویدئو بیانیه ابتدا توسط کانال 9 (Channel9 یک سایت اختصاصی مایکروسافت) به‌صورت عمومی در دسترس قرار گرفت و با اعلام این خبر باعث شد تمام اخبار دیگر در رویداد بیلد مایکروسافت کم‌اهمیت جلوه کنند. در رویداد بیلد، کوین گالو (Kevin Gallo) اشاره‌ی کوتاهی در حدود شاید 2 دقیقه در کل صحبت‌های خود به WSL داشت، ولی حاضران با شنیدن این خبر به‌شدت هیجان‌زده شدند و برای اطلاعات بیشتر پافشاری کردند. این هیجان در مقطعی باعث شد، تیم کانال 9 تصور کنند که حجم زیاد درخواست برای WSL، حمله DDoS است. پروژه ساخت WSL یک موفقیت ناگهانی برای مایکروسافت بود.
گروه توسعه‌دهنده کنسول ویندوز اولین اشخاصی بودند که فهمیدند کاربران نیاز به WSL دارند. هنگام توسعه‌ی برنامه کنسول ویندوز برای مشتریان، این تیم متوجه شد که کاربران بارها و بارها درخواست چیزی شبیه‌به خط فرمان Bash در لینوکس را دارند. در نهایت تیم برنامه‌نویسی متوجه شد که چرا باید چیزی شبیه‌به Bash روی ویندوز بسازیم درحالی که می‌توان خود Bash را به ویندوز آورد؟
البته انجام این کار ساده نبود. ساختن زیرسیستم ویندوز برای لینوکس نیاز به ترکیب دانش عمیقی از معماری هسته ویندوز که به کمک تیم کرنل ویندوز ارائه می‌شد، به‌همراه یک فناوری تحقیقاتی مایکروسافت به‌نام Pico Process داشت. شاید جالب باشد بدانید که Pico Processes همان فناوری بود که باعث شد SQL سرور روی لینوکس اجرا شود. Pico Process یک نسخه ویرایش‌نشده‌ی حالت-کاربر را میزبانی می‌کند و سپس تیم کرنل ویندوز راه را برای اتصال فراخوان‌های سیستمی یا همان سیستم کال (syscalls) از طریق ویندوز فراهم می‌کنند. به بیان ساده‌تر، WSL باعث می‌شود فایل‌های باینری کامپایل‌شده لینوکس روی هسته ویندوز NT بدون کامپایل دوباره برنامه‌ها یا ماشین مجازی اجرا شود.
چیزی که ما در تیم توسعه WSL ننوشتیم، یک توزیع لینوکس بود که تعداد زیادی از آن‌ها در دسترس قرار داشت. اوبونتو اولین انتخاب ما بود که در WSL عرضه شد. ما با دوستانمان در شرکت کنونیکال (Canonical) تماس گرفتیم و از آن‌ها پرسیدم آیا حاضر به کمک به ما برای واقعیت‌بخشیدن به WSL هستند. آن‌ها مشتاقانه درخواست و ایده را پذیرفتند و در نتیجه اوبونتو امروز در ویندوز استور در دسترس باشد. خود این موضوع هم بسیار جالب است که بدانید، حدود 6 توزیع لینوکس در ویندوز استور قرار دارد؛ تابه‌حال کدام فروشگاه اپلیکیشن را دیده‌اید که سیستم‌عامل عرضه کند؟ حدود 6 توزیع مختلف لینوکس در فروشگاه اپلیکیشن ویندوز وجود دارد.
کدی که ما در مایکروسافت نوشتیم، یک سیستم‌کال کرنل مناسب لینوکس بوده که رابطی برای فرایندهای لینوکس روی هسته ویندوز بود. در حدود 340 فراخوان سیستمی مختلف در لینوکس وجود دارد. سؤال اینجا بود که باید کدام فراخوان‌ها را در WSL قرار می‌دادیم. در تمام سیستم‌های عامل، فراخوان‌های سیستمی جدید به‌همراه نسخه جدید سیستم‌عامل عرضه می‌شود، ولی فراخوان‌های قدیمی هیچ‌گاه حذف نمی‌شوند تا سیستم‌عامل توانایی سازگاری با برنامه‌های قدیمی‌تر را نیز داشته باشد. ابتدا یک موج اولیه از پیاده‌سازی فراخوان‌های سیستمی انجام شد و بعد از آن هر چیز باقی‌مانده‌ی دیگر را به‌صورت «هنوز پیاده‌سازی‌نشده» قرار دادیم تا تیم WSL بتواند متوجه شود که مردم به چه فراخوان‌های سیستمی نیاز دارند و سپس آن‌ها را پیاده‌سازی کند.
پاسخ به این سؤال که باید چه فراخوان‌های سیستمی را پیاده‌سازی کرد، به این معنا بود که باید با کاربران در ارتباط بود و دید آیا مردم از آن استفاده خواهند کرد یا خیر؛ هدف از بیانیه و ویدئوهای رویداد بیلد از ابتدا همین بود؛ یعنی درخواست از مردم برای استفاده از WSL و فراهم‌کردن بازخورد. جایی که شما می‌توانستید به WSL دسترسی داشته باشید، خود ویندوز است و به کمک برنامه اینسایدر ویندوز که البته هرکسی می‌تواند به ویندوز اینسایدر ملحق شود و نسخه‌ای از WSL جدید را دریافت کند. ممکن است ابتدا فکر کنید که فقط افراد مشتاق به ویندوز در برنامه اینسایدر شرکت می‌کنند، ولی این برنامه این روزها بیشتر از 10 میلیون دنبال‌کننده دارد و آن‌ها به مسائل مختلفی علاقه‌مند هستند؛ مانند بازی، ارتباط بلوتوث و WSL.
یکی از گروه‌های علاقمند به اجرای Bash روی ویندوز توسعه‌دهندگان وب هستند که قصد ساخت برنامه وب را دارند که روی سرورهای لینوکس میزبانی شود. کل روند ساخت این‌گونه اپلیکیشن‌ها توسط مجموعه‌ای از دستورهای Bash ایجاد شده است. در کنار این موضوعات، اگر به‌دنبال کمک برای ساخت یک اپلیکیشن وب باشید، مثلا روی سایت استک اورفلو (Stack Overflow) بیشتر نمونه کدهایی که در آنجا پیدا خواهید کرد، فقط مناسب اجرا روی لینوکس است و اگر قرار باشد از ویندوز برای کار خود استفاده کنید، این موضوع می‌تواند به‌شدت خسته‌کننده باشد. معمولا ساده‌ترین راه‌حل برای توسعه‌دهندگان وب که با این مشکل رو‌به‌رو بودند، استفاده از Mac و MacOS بود که در آنجا کدها به‌راحتی اجرا می‌شدند.
در همان چند هفته‌ی ابتدایی عرضه WSL در ویندوز، یکی از کاربران سازمانی WSL توانست برنامه XEyes را به‌صورت یک برنامه با رابط گرافیکی کاربر روی WSL و X11 اجرا کند. کاری که برنامه XEyes انجام می‌دهد، تنها کشیدن دو چشم کارتونی روی صفحه مانیتور است که به اشاره‌گر موس خیره شده و آن را دنبال می‌کنند، که مناسب استفاده در کامپیوترها با چندین مانیتور است. با این حال بعد از اعلام چنین خبری، تمام رسانه‌های اجتماعی به‌صورت گسترده درباره این برنامه صحبت می‌کردند.

اجرای برنامه XEyes در WSL
صحبت‌ها و ایده‌های گوناگونی راجع به اینکه ما چگونه بازخوردهای کاربران را دریافت کنیم، وجود داشت. روش مرسوم برای انجام این کار، استفاده از خدمات سایت یوزرویس (UserVoice) بود، که با ساخت یک بخش در یوزرویس برای WSL ما صدها ایده مختلف از کاربران دریافت کردیم و هزاران رای برای هر ایده ثبت شده است. سؤال واقعی این بود که آیا باید از گیت‌هاب استفاده کنیم؟ از آنجا که یکی از اولین کاربران WSL توسعه‌دهندگان وب بودند، قراردادن WSL روی گیت‌هاب به نظر منطقی می‌رسد. ولی WSL یک پروژه متن‌باز نیست و گذاشتن یک پروژه غیر متن‌باز در گیت‌هاب به‌نظر عجیب خواهد بود. با این حال ما تصمیم گرفتیم به‌سراغ توسعه‌دهندگان برویم و یک فروم برای مشکلات، بازخوردها و مباحث روی گیت‌هاب بسازیم. بعد از ساخت این فروم ما هزاران مسئله مختلف در طیف وسیعی از موضوعات را راجع به لینوکس روی ویندوز دریافت کردیم.
تابه‌حال هزاران نفر برای مسائل WSL در مخزن آن روی گیت‌هاب همکاری کرده‌اند و تیم WSL تک تک مسائل را بررسی و با بحث و تبادل‌نظر در سیستم نظردهی مشکلات گیت‌هاب، راه‌حل‌هایی برای هرکدام پیدا کرده است. اگر قرار باشد کد جدیدی نوشته شود تا ویژگی جدید پیاده‌سازی به WSL اضافه شده یا یک مسئله را حل کند، این کد نوشته و به پروژه WSL اضافه خواهد شد، که سپس به بیلد سراسری ویندوز اضافه می‌شود و توسط برنامه ویندوز اینسایدر توزیع خواهد شد. دوره زمانی انجام این کارها می‌تواند بسیار سریع باشد و تقریبا در عرض چند هفته انجام شود.
در نهایت، با استفاده‌ی افراد بیشتری از WSL و ارسال نظرشان راجع‌به ویژگی‌ای که به آن علاقمند هستند یا مشکلی که می‌خواهند نقص شود، از طریق گیت‌هاب یا یوزرویس برای تیم WSL این چرخه‌های زمانی سریع‌تر خواهد شد و سریع‌تر در بیلد اینسایدر ویندوز قرار ظاهر خواهد شد. جامعه بخشی از فرایند خلاقیت برای WSL است.
هنگامی که من به‌عنوان مدیر برنامه به تیم WSL پیوستم، تمرکزم روی این بود که برنامه را فراتر از یک نسخه آزمایشی ببرم. بیشتر شکایاتی که به‌ دست ما می‌رسید، از سمت کاربران در مورد سازگاری و کارایی برنامه بود. ولی از دیدگاه من، اگر کاربران راجع به چنین مسائلی نگران هستند، پس از محصول شما استفاده‌هایی جدی دارند؛ شما فقط وقتی به کارایی یک برنامه اهمیت می‌دهید که چیز عظیمی را بخواهید به کمک آن اجرا کنید. پس با اینکه هنوز کارهای زیادی برای انجام‌دادن داریم، کاربران ما درخواست انجام کارهای بیشتر و سریع‌تر با WSL را دارند.
هم‌زمان که قابلیت‌های WSL در حال گسترش است، ما WSL را با خود برای توسعه‌دهندگان دیگر نیز آوردیم، البته جدای توسعه‌دهندگانی که به‌صورت معمول در اکوسیستم مایکروسافت حضور دارند. رفتن به رویدادهایی مانند PyCon و OSCON تجربیات فوق‌العاده‌ای بود، توسعه‌دهندگانی که در این رویدادها حضور داشتند، از حضور کارمندان مایکروسافت در این رویداد تعجب کرده بودند. هنگامی که به آن‌ها گفتیم، قادر به اجرای لینوکس روی ابزارهای توسعه‌دهنده مایکروسافت هستند، ابتدا کمی شک داشتند. سپس من یک نسخه آزمایشی SQL سرور، WSL و ویژوال استودیو کد را در این رویداد اجرا کردم.

دموی WSL کنفرانس
من تلاش کردم با امتحان‌کردن برنامه‌های مورد نظر، شک آن‌ها را برطرف کنم. هنگامی که توسعه‌دهندگان شروع به اجرای دستورها، اسکریپت‌های کوچک و قطعه کدهای خود کردند، تمام مدت واکنش‌های عالی به‌دست می‌آوردم؛ مانند: «صبر کن، این واقعا لینوکس است؛ چطور این‌کار را کردید؟ چطور من راجع‌به این موضوع نمی‌دانستم؟» درنهایت تمام این‌ها بدین نتیجه ختم می‌شد که ما چیزی مرتبط با آن‌ها ساختیم که برایشان بسیار جالب است.
بعد از دریافت شکایت‌ها راجع‌به کارایی و سازگاری WSL، ما با رسیدگی به این موضوع، معماری جدیدی را همراه‌با WSL 2 ارائه کردیم. نسخه‌ی جدید WSL سازگاری کامل و 20 برابرشدن کارایی برنامه را از طریق قراردادن هسته‌ی لینوکس در قلب ویندوز به ارمغان آورد. ایجاد زیرساخت برای WSL 2 و تماشای اجرای آن در رویداد بیلد ماه مه 2019 (خرداد 1398) گذشته، تجربه فوق‌العاده‌ای بود. امروز، WSL نسخه 2 به‌صورت بتا در دسترس قرار دارد.
من با تیم‌های دیگر در مایکروسافت همکاری کردم تا بتوانند از WSL در محصولشان استفاده کنند. یکی از این تیم‌های بزرگ، تیم ویژوال استودیو کد است که محبوب‌ترین ویرایشگر متن برای جاوا اسکریپت (JavaScript) و NodeJS است. همکاری من با ویژوال استودیو هنگامی صورت گرفت که فهمیدیم توسعه‌دهندگان با استفاده از WSL می‌توانند مزایای زیادی به‌دست آورند. در ابتدا کد زیادی نوشته نشده بود ولی هدف اصلی این بود، اشکال‌زدایی کدهایی که توسط NodeJS در WSL اجرا می‌شوند را آسان‌تر کنیم. توسعه‌دهندگان می‌توانند در ویندوز که WSL را اجرا می‌کند، کد خود را نوشته و نسخه لینوکس NodeJS را هدف قرار دهند و کد را به‌صورت بومی در لینوکس اشکال‌زدایی و توسعه دهند.

اولین اجرای WSL در ویژوال استودیو کد بهمراه NodeJS
هنگامی که این ویژگی‌ها را برای کار با NodeJS ایجاد کردیم، میزان زیادی درخواست مشابه برای پشتیبانی از سی‌پلاس‌پلاس، پایتون و دیگر زبان‌ها به سمت ما سرازیر شد. من شیفته‌ی این ادغام شدم و به آن علاقه‌مند بودم، که باعث شد نقش جدیدی در خلق ابزار برای توسعه‌دهندگان لینوکس ایفا کنم. در حال حاضر روی ویژوال استودیو کد برای توسعه‌دهندگان سی‌پلاس‌پلاس روی لینوکس تمرکز دارم. تماشای توسعه از راه دور ویژوال استودیو کد به‌صورت زنده در PyCon، امسال تجربه‌ای عالی برای من بود.
با اینکه مدت کوتاهی در مایکروسافت حضور داشتم، بسیار خوشحالم که توانستم در ساخت ابزارهای زیادی برای توسعه‌دهندگان لینوکس کمک کنم، از پایگاه‌ داده‌ها گرفته تا سیستم‌عامل و محیط توسعه مجتمع‌ (IDE). من به مسیر خود در خلق ابزار برای توسعه‌دهندگان لینوکس ادامه خواهم داد.

لینک کوتاه:
https://www.nasimegilan.ir/Fa/News/120167/

نظرات شما

ارسال دیدگاه

Protected by FormShield
مخاطبان عزیز به اطلاع می رساند: از این پس با های لایت کردن هر واژه ای در متن خبر می توانید از امکان جستجوی آن عبارت یا واژه در ویکی پدیا و نیز آرشیو این پایگاه بهره مند شوید. این امکان برای اولین بار در پایگاه های خبری - تحلیلی گروه رسانه ای آریا برای مخاطبان عزیز ارائه می شود. امیدواریم این تحول نو در جهت دانش افزایی خوانندگان مفید باشد.

ساير مطالب

کسب مقام قهرمانی و سومی تیم گیلان در رقابت‌های آب‌های آرام کشور

منتخب شهرستان لنگرود در مجلس شورای اسلامی گفت: راه اندازی شبکه‌های تلویزیونی انتخابات کار

دعوت 60 کاراته‌کا به مرحله دوم انتخابی تیم امید و جوانان

نفرات دعوت شده به مرحله دوم انتخابی تیم ملی کاراته مشخص شدند

از زر و سیم جهان پاس نظر باید داشت

استاندار ایلام: از عملکرد اداره کل بنیاد شهید و امور ایثارگران استان رضایت داریم

نخستین نشای مکانیزه برنج در شفت انجام شد

نیشکر هفت تپه؛ از سرخط اعتصابات کارگری به پیشتازی سنگر تولید

امنیت شغلی در گرو تداوم چرخ تولید کارخانجات است

بررسی پرونده‌ها و کالاهای موجود در انبار مرکزی اموال تملیکی گیلان

جمع‌آوری و دستگیری 528 معتاد و سوداگر مرگ طی 2 روز در گیلان

لزوم تقویت دانشگاه فرهنگیان

شعر زیبای میلاد عرفان پور درباره عملیات وعده صادق

عاقبت تلخ ازدواج برای فرار از خانه پدری

مرگ جوان صومعه‌سرایی هنگام حرکات نمایشی با موتور

نوسان قیمت طلا و سکه در بازار رشت، امروز

دنیای مد به روایت «حسنا و ملکه‌های رنگی»

زنان مو بِلوند و چشم آبی‌ای که در خدمت نسل طلایی آلمان بودند!

رقابت بیش از 11 هزار داوطلب گیلانی در 2 گروه آزمایشی

سروده علیرضا قزوه در استقبال از غزل رهبر معظم انقلاب

برگزاری 740 برنامه ویژه هفته عقیدتی سیاسی در گیلان

افزایش غیر منطقی تعرفه برق با شعار سال هم‌ خوانی ندارد

14 همت پروژه اقتصادی و عمرانی گیلان در سفر رئیس جمهور به بهره‌برداری می‌رسد

اردیبهشت گیلان بهاری و آفتابی

نمادی از فرهنگ پهلوانی در «پهلوان و فیل»

تشکیل یک استان جدید تصویب شد

توضیحات قوه قضاییه درباره حکم توماج صالحی

غفلت از سرکشی به خانواده های شهدا پذیرفتنی نیست

نوسان قیمت طلا و سکه در بازار رشت تا ساعت 10:30

قدردانی بانوان آستارایی از عوامل پلیس در اجرای طرح نور

رمان جدید اکبر والایی چاپ شد/«بر فراز کشتزار» در بازار نشر

آغاز ماراتن کنکور سراسری در گیلان

ائمه جمعه در حفظ اتحاد و همدلی بین مردم نقش مهمی دارند

افزایش تولیدات علمی و فرهنگی دانشگاه در راستای تحقق شعار سال

مرگ جوان صومعه سرایی هنگام حرکات نمایشی با موتور

کشف 2 تن شکر قاچاق در رودسر

ویدئو مهسا جاور به مناسبت صعود تیم دو نفره روئینگ زنان ایران

ساخت بیش از 50 واحد مسکونی در صومعه سرا

برنامه ریزی برای توزیع 15 هزار جعبه تخم نوغان در گیلان

دانش‌آموزان گیلانی همیار و سفیر نجات غریق می‌شوند

50 میلیارد تومان دیگر به حل مشکلات پسماند گیلان اختصاص یافت

دکلمه خوانی زیبا با صدای خسرو شکیبایی

صحبت های دادستان کل کشور درباره اجرای طرح نور

تکریم و سپاسگزاری استاندار و مدیرکل بنیاد مازندران از والدین معزز شهیدان والامقام سروی

حضور مدیرکل بنیاد شهید و امور ایثارگران استان گلستان در برنامه زنده صبح عالی

بنیاد باید به نهاد راهبردی و مطالبه‌گر تبدیل شود

همت عشایر گیلان در جهش تولید با تولید انواع محصولات

تو که با عاشقان درد آشنایی

ربودن کودک 4 ساله از مقابل چشمان مادرش

خدایا زندگی رو زیر و رو کن