מה זה WSL - לינוקס בתוך ווינדוס¶
הרבה מפתחים, בעיקר בעולם הצד שרת, זקוקים לכלים ולפקודות שקיימים באופן טבעי בלינוקס, אבל עובדים על מחשב ווינדוס. בעבר הפתרון היה או מכונה וירטואלית מלאה, כבדה ואיטית, או dual boot מסובך. היום יש פתרון הרבה יותר נוח, שנקרא WSL.
מה זה בעצם WSL¶
WSL, ראשי תיבות של Windows Subsystem for Linux, הוא רכיב מובנה בווינדוס שמאפשר להריץ סביבת לינוקס מלאה, כולל טרמינל בש, כלי שורת פקודה, וכמעט כל תוכנה שרצה על לינוקס, ישירות בתוך ווינדוס, בלי מכונה וירטואלית נפרדת שצריך לנהל ידנית ובלי dual boot שמצריך אתחול מחדש בין המערכות.
התוצאה בפועל היא שאפשר לפתוח חלון טרמינל, לעבוד בלינוקס אמיתי, ובאותו זמן להשתמש בכלים גרפיים של ווינדוס, ואפילו לגשת לקבצים משני הצדדים בצורה חלקה יחסית.
WSL 1 מול WSL 2 - שינוי מהותי¶
הגרסה הראשונה, WSL 1, לא הריצה קרנל לינוקס אמיתי בכלל. במקום זה, היא תרגמה קריאות מערכת (system calls) של לינוקס לקריאות מקבילות בווינדוס, בזמן אמת. זה עבד באופן מפתיע טוב לרוב המקרים, אבל היו לו מגבלות משמעותיות - חלק מהפונקציונליות של לינוקס פשוט לא הייתה זמינה, וביצועי דיסק היו לעיתים איטיים משמעותית.
WSL 2, שהיא הגרסה שרוב המשתמשים מריצים היום, שינתה גישה לגמרי - היא מריצה קרנל לינוקס אמיתי, בתוך מכונה וירטואלית קלת משקל שמבוססת על Hyper-V. זה נותן תאימות כמעט מלאה לכל מה שרץ על לינוקס אמיתי, כי זה פשוט קרנל לינוקס אמיתי, ולא שכבת תרגום. המחיר הוא שWSL 2 דורש את הבסיס של Hyper-V כדי לעבוד, ולפעמים גישה לקבצים בין המערכות איטית יותר מWSL 1 בתרחישים מסוימים.
איך מתקינים ובודקים גרסה¶
התקנה מודרנית של WSL פשוטה יחסית - פקודה אחת בשורת הפקודה של ווינדוס:
הפקודה הזו מתקינה את הרכיב הבסיסי, ובברירת מחדל גם הפצת לינוקס נפוצה. אפשר לבדוק אילו הפצות מותקנות, ובאיזו גרסה של WSL כל אחת רצה, עם:
ואם רוצים לשדרג הפצה מWSL 1 לWSL 2, אפשר לעשות זאת עם פקודה ייעודית בלי להתקין מחדש הכל.
למה WSL הפך כל כך פופולרי בקרב מפתחים¶
הרבה כלי פיתוח, במיוחד בעולם הצד שרת - Docker, סקריפטים בבש, וכלי שורת פקודה שנועדו מלכתחילה ללינוקס - עובדים בצורה הרבה יותר טבעית וללא הפתעות בסביבת לינוקס אמיתית. WSL נותן למפתחי ווינדוס גישה לאותה חוויה, בלי לוותר על שאר הסביבה שהם מכירים - עורך הקוד, כלים גרפיים, ומשחקים, אם רלוונטי, ממשיכים לרוץ ישירות על ווינדוס.
מגבלות שכדאי להכיר¶
WSL לא מיועד להריץ סביבת שולחן עבודה גרפית מלאה של לינוקס, למרות שיש תמיכה חלקית בהרצת אפליקציות גרפיות בודדות. הוא גם לא תחליף מושלם לשרת לינוקס אמיתי בסביבת ייצור - זהו כלי פיתוח ולמידה מצוין, אבל לא נועד להריץ שירותים קריטיים לאורך זמן.
לסיכום¶
WSL הוא פתרון אלגנטי לבעיה אמיתית - איך מקבלים את היתרונות של סביבת לינוקס בלי לוותר על ווינדוס כמערכת ההפעלה הראשית. המעבר מWSL 1 לWSL 2, שמריץ קרנל לינוקס אמיתי, הפך אותו מפתרון חלקי לכלי שכמעט אין הבדל מולו לעומת לינוקס אמיתי בשימוש יומיומי.
רוצים להעמיק גם בלינוקס וגם בווינדוס, ולהבין איך שתי המערכות עובדות? יש לנו קורס ווינדוס בסיסי מלא בחינם שבונה את הידע הזה שלב אחרי שלב.
יש לכם שאלה על WSL או פיתוח על ווינדוס? בואו לדבר בדיסקורד.