לינוקס עבור Windows. השקת שולחן עבודה מלא של אובונטו בתוך Windows 10

06.07.2021

יותר משישה חודשים חלפו מאז כתב המחבר את שורות אלו של המאמר הקודם על Windows Subsystem עבור לינוקס. במהלך תקופה זו, הצליחה מיקרוסופט לשחרר את העדכון הגדול הראשון ל-Windows 10 - Anniversary Update 1607, בו כל החידושים, כולל WSL, זמינים כעת לכל משתמש שהתקין את העדכון הזה. WSL הפך להיות הרבה יותר מפותח ואולי "מוצק".

בהשוואה ל-Windows 10 build 14316, בה הופיעה לראשונה תת-מערכת לינוקס, ב-Windows 10 Anniversary Update תת-המערכת נראית די פונקציונלית ושמישה בפועל (עד כמה שניתן בשלב זה). יציבות הפעולה אינה משביעת רצון. במבט קדימה, אציין את הדבר החשוב ביותר - ב-WSL אפשר היה להשיק סביבה גרפית ותוכניות GUI אחרות (בין DE עד כה אלו הן Unity ו-Xfce), שלא היה קיים בגירסאות קודמות של Windows 10. אז עד כאן זה נעשה באופן לא רשמי, על ידי חובבי לינוקס בודדים, ולא על ידי מפתחי WSL, אבל יש תקווה שזה רק עניין של זמן עד לתמיכה רשמית בהפעלת ממשק ממשק Linux מלא ב-WSL.

אַזהָרָה

זכור: WSL חייב להיות מותקן תחילה. תת-המערכת לא תעבוד מחוץ לקופסה.

WSL. שישה חודשים לאחר מכן

כפי שכבר אמרתי, במהלך ששת החודשים האחרונים הצליחו מפתחי ה-WSL לשכלל ביסודיות את המשנה הזו, מה שמפשט את ההתקנה והקונפיגורציה שלה. ומיקרוסופט עצמה הצליחה להפוך לחברת "פלטינה" בקרן לינוקס. לפני 15 שנה לא היה אפשר אפילו לחלום על זה. בתפקידה החדש, מיקרוסופט התחייבה לתמוך בכל יוזמות הקוד הפתוח ולינוקס של קרן לינוקס ולתרום 500,000 דולר בשנה לקרן. זה בהחלט הישג גדול. קודם כל, לכל קהילת FOSS (חופשי/חופשי ותוכנות קוד פתוח). 15 שנים אחרי שסטיב באלמר כינה את לינוקס כסרטן, ההנהגה החדשה של מיקרוסופט היא הרבה יותר חושבת קדימה ואינטליגנטית.

אבל בואו נחזור ל-Windows Subsystem עבור לינוקס. התקנת ווינדוס 10 עצמה היא מהירה וקלה (כמעט כמו התקנת אובונטו), ואין צורך לתאר זאת לקורא שלנו. אתה יכול לבחור או לעדכן מגרסה קודמת של ווינדוס 10, מה שייקח הרבה יותר זמן ומאמץ, או להסיר את הגרסה הקודמת ולהתקין את המערכת מאפס (וזה מה שעשיתי, ולא מתוך עצלות, אבל טוהר הניסוי כך שהמערכת הייתה מה שנקרא בתולה-טהורה). מחבר שורות אלה הוא בודק בטא של Windows 10 כבר יותר משנה, וגרסאות חדשות זמינות לו בחינם (מהמילה absolut). אם אתה גם בודק בטא, עליך להיות בעל רישיון עבור מהדורות הבטא החדשות של Windows 10.

בגרסה העדכנית ביותר של Windows, Anniversary Update 1607 - "עדכון יום השנה" (לא ברור מהו יום השנה של MS), WSL מופעל כברירת מחדל. אתה רק צריך להפעיל את "מצב מפתחים" בסעיף "עדכון ואבטחה", המתן עד שהמערכת תוריד את מה שנקרא חבילת מפתחים, והפעל מחדש את המחשב. לאחר מכן הפעל את הכלי "הפעל או כיבוי רכיבי Windows", שם בחר "מערכת משנה של לינוקס עבור Windows...". והפעל מחדש את המחשב.



התקנת bash ב-WSL עוברת ללא בעיות (אם כי לא מהר כמו שהיינו רוצים). לא הצלחתי להתקין את Unity בפעם הראשונה: המתקין התלונן כל הזמן על חבילות שבורות. כפי שהתברר, ראשית היה צורך לעדכן את המערכת דרך מנהל החבילות הרגיל של אובונטו - APT. לאחר קבלת העדכונים, ההתקנה עברה כמו שעון ו... נמשכה כתשע וחצי שעות במבחן שלי Dell Inspiron (לא המחשב הנייד הישן ביותר, אם כי לא מהשורה הראשונה). למה - התעלומה הזו לא ידועה לי. עם זאת, שמתי לב שכל חבילת אובונטו לקחה פי שלושה עד ארבעה זמן להתקין מאשר באובונטו ה"טהורה".

מידע

לפני התקנה והפעלת WSL, הקפד להתקין את כל העדכונים של Windows 10. אחרת, עלולות להתעורר בעיות!

X Window, Unity והכל, הכל, הכל

Canonical ו-Microsoft הוסיפו תחילה את היכולת להריץ את אובונטו על גבי Windows 10 כדי לתת למנהלי מערכת ולמפתחים את היכולת להשתמש ב-bash ובכלים וכלי עזר אחרים של לינוקס כמו make, gawk ו-grep ישירות ב-Windows. משתמשי לינוקס, כמו האקרים אמיתיים (במובן הטוב של המילה), לא חיכו זמן רב ומיד החלו לעבוד על הפעלת סביבות שולחן עבודה גרפיות ב-WSL. ונחש מה? הם עשו זאת. מתכנת גואטמלה הרשום ב-GitHub תחת שם המשתמש Guerra24 הצליח (ציטוט) "להריץ את Unity (סביבת שולחן העבודה המוגדרת כברירת מחדל באובונטו) בתוך WSL. זה מצביע על כך שהשכבה של מיקרוסופט, באופן עקרוני, די מסוגלת להריץ כל סביבת שולחן עבודה."

משימה זו אינה טריוויאלית, ולמה שאתה מסיים בקושי יכול להיקרא שולחן עבודה מלא של לינוקס, אבל זו רק ההתחלה. אם אתה רוצה להשתמש בשולחן העבודה של אובונטו ב-Windows 10 למטרות מעשיות, אז עדיף להשתמש בכל אחת מהמכונות הווירטואליות הזמינות כעת, כגון VirtualBox מ-Oracle. אבל אם אתה רק רוצה ליהנות ולשפר את כישורי התכנות שלך בשולחן העבודה, אתה יכול לנסות להריץ לינוקס "מקורית" ישירות ב-Windows 10. כדי להפעיל את Unity ב-WSL, תחילה עליך להתקין (בכל שיטה זמינה, רצוי חוקית!) גרסה של Windows 10 Anniversary Update מספר 1607. ולא הגרסה "ביתית", אלא הגרסה הכי "מקצועית", או אפילו "תאגידית". לאחר ההתקנה, הקפד לעדכן את המערכת ולהמשיך הלאה.

לאחר שניים (לפעמים שלושה) אתחולים מחדש במהלך תהליך העדכון, על מנת להתקין bash, עליך להפעיל את שורת הפקודה של Windows (Win + R, הזינו cmd - ותשמחו בצורה של "קונסולה" של Windows) ו להיכנס... כן, זה נכון: bash. תתבקשו להסכים לתנאי השירות (הקפידו לקבל אותם, אין לכם ברירה!) ולהוריד את אובונטו. בשלב זה, אתה רק צריך ללחוץ על מקש Y. גודל הקבצים שהורדת לא יהיה הרבה יותר מגיגה-בייט אחד. אז, אם יש לך אינטרנט איטי (כן, זה יכול לקרות), היה מוכן לחכות. לאחר מכן תתחיל ההתקנה, אשר, בתורה, גם תיקח זמן מה, בהתאם לביצועי המחשב. ובסוף הכל, תגיעו למרחב המשתמש (סביבת המשתמש) של אובונטו 14.04 הפועל על גבי WSL.

מבחינה טכנית, לא תפעיל לינוקס. זה אולי נראה כמו לינוקס, אבל זה לא לינוקס. העובדה היא שסביבת המשתמש (אותו bash ואחרות) לא עובדת על גבי ליבת לינוקס, אלא בתוך שכבת WSL. WSL משתמש בממשק API מיוחד ובסט הוראות כדי לגרום להכל להיראות כמו לינוקס, אבל זה עדיין לא אותו הדבר. בליבה של כל זה עדיין ליבת Windows NT. חשוב להבין זאת על מנת להבין כיצד Unity מתחילה ופועלת ב-WSL.

לאחר התקנת אובונטו, הקפד לעדכן אותו על ידי הזנת הפקודות הסטנדרטיות עבור זה:

# apt-get update # apt-get upgrade

לאחר מכן, עליך לחזור שוב ל-Windows 10 ולהתקין שרת X תואם לו. VcXsrv הוא אידיאלי עבור הניסוי שלנו. עדיף לא להשתמש באחיו Xming, כי מסיבה שאינה ידועה לי, נוצרת איתו בעיה: כשאתה מנסה להפעיל כל אפליקציה גרפית עבור לינוקס, הכל פשוט קורס, כולל קונסולת Windows. אבל זה לא הכל. אתה צריך להגיד לאובונטו שאתה צריך להשתמש בשרת VcXsrv X. לשם כך, הזן את הפקודה ב-bash

# תצוגה =: 0.0

כעת כל אפליקציה גרפית של לינוקס תפעל על Windows 10. אבל רק עד ש-bash ייסגר. כדי לגרום ל-WSL לעבוד עם גרפיקה של לינוקס כל הזמן, בחירה אוטומטית בשרת X הדרוש לעבודה, פשוט הוסף את השורה הבאה לסוף קובץ התצורה של bash (~/.bashrc):

# echo "ייצוא DISPLAY=:0.0" >> ~/.bashrc


לאחר מכן, תוכל להפעיל כל יישומי לינוקס גרפיים, כגון Firefox או כל DE. עם זאת, הם לא יעבדו כמו בלינוקס, קורסים כל דקה, וחלקם, כמו Unity, לא יתחילו בכלל. הבעיה כאן היא ש-WSL אינו מכיל קוד לתמיכה בשקעים (המושג האוניברסלי של חילופי נתונים בין תהליכים במערכות דמויות UNIX, פרטים).

כדי ליישם את קונספט השקע, סביבות גרפיות של לינוקס משתמשות במערכת העברת ההודעות D-bus כברירת מחדל. רוב היישומים הגרפיים של לינוקס אפילו לא יתחילו, שלא לדבר על לפעול, ללא D-bus. אבל WSL, למרבה המזל, תומך בפרוטוקול רשת TCP, מה שגרם למשתמש Reddit.com תחת הכינוי ShaRose למצוא דרך לאלץ את D-bus להשתמש בפרוטוקול TCP במקום בשקעים. הפתרון לא מושלם, אבל הוא עובד. כדי "לצרף" D-bus ל-TCP, הזן ב-bash:

# sed -i "s/ .*/tcp:host=localhost,port=0/" /etc/dbus-1/session.conf

בפקודה זו תשנו את קובץ התצורה של D-bus כך שמעכשיו הוא ישתמש ב-TCP במקום בשקעים. עורך הזרם הישן והטוב יעזור לך בזה. מה התוצאה? יישומים הדורשים D-bus לפעול יכולים כעת לפעול ב-WSL.
השלב הבא הוא התקנת יישומים גרפיים של לינוקס. ראשית, עשה זאת במסוף WSL:

# apt-get install ubuntu-desktop # apt-get install unity # apt-get install compiz-core # apt-get install compizconfig-settings-manager
התקנה ארוכה של Unity...

הפקודה הראשונה תתקין את הרכיבים הגרפיים הבסיסיים של אובונטו, כולל תוכניות משתמשי קצה כגון LibreOffice. הפקודה הבאה מתקינה את שולחן העבודה של Unity. שני הצוותים האחרים יספקו את מנהל החלונות המרוכב Compiz, המשתמש ב-OpenGL, ואת החזית הגרפית עבורו. זה יהיה צורך להגדיר נכון בשלב הבא.

לפני שתוכל להתחיל להשתמש בסביבת שולחן העבודה של Unity ב-Windows 10, עליך להגדיר כראוי את מנהל ההגדרות של CompizConfig (CCSM). לאחר התקנת כל היישומים הללו, הפעל את CCSM מממשק bash והפעל בו את התוספים הבאים (הכל צריך להיות בדיוק כמו בצילום המסך!):


  1. בסעיף כללי:

    • פקודות
    • מרוכבים
    • העתק למרקם
    • OpenGL
  2. בקטע שולחן העבודה:

    • תוסף Unity של אובונטו
  3. בסעיף השירות:

    • ארגז הכלים של ספריית Compiz
  4. בקטע ניהול חלונות:

    • מקם חלונות
    • שנה את גודל החלון
    • סוּלָם
    • מצלמת Windows

$compiz

בעוד כדקה תראה את פגז ה-Unity פועל.


הרשו לי לציין כמה נקודות מפתח:

  1. אם אתה באמת רוצה להריץ יישומי X ב-WSL, התקן את VcXsrv כשרת X, לא Xming. הוכח אמפירית ש-Xming לא רוצה לעבוד כמו שצריך עם WSL.
  2. לאחר התקנת CCSM, עליך להגדיר אותו בדיוק כפי שמוצג בתמונה (כלומר, להפעיל את מה שמסומן ולכבות את כל השאר). רק אז יוניטי תתחיל לחרוק, לא בניסיון הראשון.
  3. עדיף לא להתקין מנהלי התקנים ATI קנייניים עבור אובונטו בתוך WSL. הדבר מוביל להקפאה מוחלטת של המערכת כולה (כולל Windows 10) וגורר התקנה מחדש של WSL על כל המשתמע מכך.
  4. אני אאכזב אותך: אתה לא צריך לתלות תקוות גדולות בקבי שהתקבל. זה לא יעבוד כרגיל. אבל במכונת הבדיקה שלי, Unity בתוך WSL עבדה די טוב. סובייקטיבית - קצת יותר איטי מאשר בלינוקס מקורי. אולי בעתיד מישהו יביא את כל העניין הזה לידי מימוש. ו-Unity ב-WSL עדיין תהיה שימושית.

מה יקרה בסוף, אחרי כל כך הרבה ייסורים? ובסופו של דבר (תיאורטית, מכיוון שבפועל זו רק דרך נסיונית מעניינת להפעיל את Unity ו-DE אחרים בתוך WSL) נקבל סביבה לבדיקת יישומי לינוקס ישירות בתוך ווינדוס. ו-Unity פועל על גבי Windows. כמובן, המהירות וההיענות אינן זהות לחומרה אמיתית, אך עדיין מהירות יותר מאשר במכונה וירטואלית. יישומים רבים, כגון Google Chrome או Pidgin, פשוט לא יופעלו. אבל פיירפוקס, מנהל הקבצים, חנות היישומים ושאר כלי עזר למערכת של אובונטו עובדים ברעש (קצת יותר איטי מאשר באובונטו ה"אמיתית", אבל הם עובדים!).

המשך זמין רק למנויים

אפשרות 1. הירשם להאקר כדי לקרוא את כל החומרים באתר

מנוי יאפשר לך לקרוא את כל החומרים בתשלום באתר בתוך התקופה שצוינה. אנו מקבלים תשלומים באמצעות כרטיסי בנק, כסף אלקטרוני והעברות מחשבונות מפעיל סלולרי.