הבכיינות של FSF

ישנו ארגון שנקרא Free Software Foundation שמנסה לקדם את התוכנות החופשיות תחת כל עץ רענן, ולארגון יש גם דף שמסביר מדוע הוא אינו תומך בהפצות לינוקס רבות.

לאחרונה נוספה לרשימה הפצת Debian, דבר שיגרום למשתמשים ותיקים בקהילת הלינוקס להרים גבה. אחרי הכל, Debian תמיד היתה בברירת המחדל כוללת אך ורק חלקים חופשיים בקוד פתוח, אולם הסיבה של ה-FSF לביטול התמיכה בדביאן היא מוזרה לגמרי: ההפצה הנ"ל כוללת מאגר (REPO) בשם Contrib (וחשוב לשים לב: הוא אינו נכלל בהגדרות ה-REPO בברירת המחדל של ההפצה!) שכולל, השם ישמור, סקריפטים וכלים להתקין דרייברים וקבצים בינאריים אחרים שאינם בקוד פתוח.

כאן, לדעתי, מגיע השלב, בו הארגון הנכבד הנ"ל נראה כמנותק מהמציאות…

בין אם תיקחו ותקימו שרת, או דסקטופ או Laptop או כל מערכת לינוקס משובצת – תצטרכו את ה-blobs, שהם אותם חלקים שה-FSF מתנגד להם, אבל אין שום אפשרות להסתדר בלעדיהם. רוצה להשתמש ב-GPU שלך מעבר לשימוש סופר בסיסי ולא מואץ? אתה חייב את הקושחות הרלוונטיות, כנ"ל לגבי תאורת המקלדת, רוב מוחלט של ציוד ה-USB, כרטיסי רשת, כרטיסי קול, ועוד ועוד. מה שקורה הוא שבמהלך השנים הושגה מעין "הסכמה" עם יצרני חומרה, שהם יתמכו בלינוקס (בין אם ישירות ובין אם השכרת שרותי פיתוח דרייברים של SuSE או רד-האט, ולפעמים קנוניקל), אך את ה-Crown Jewls, החלקים הסופר חשובים וסודיים בדרייבר, הם ישחררו כקושחה בינארית בלבד, כך שהדרייבר יטען ויפעיל את הקושחה, ומשם בד"כ יהיו כלים ברמת User Space שיעזרו לנהל את הציוד.

אבל FSF, כמו כל מיני אנשים שמנותקים מהמציאות וחיים באיזו שהיא בועה (RMS…) – מסרבים להכיר במציאות הזו ומבחינת עדיף שאנשים יסבלו מציוד לא פעיל, ובלבד שהכל הכל יהיה בקוד פתוח וחופשי, דבר שאף חברת חומרה לא מוכנה לכך כיום (וכן, זה כולל את AMD, אינטל, ברודקום ומאות חברות נוספות).

הדרך היחידה כיום לגרום ליותר ויותר משתמשים לאמץ הפצות לינוקס (ולא חשוב איזו הפצה) היא ידידותיות ותמיכה כמה שיותר רחבה בחומרה. כיום, רוב המשתמשים לא יסכימו לקבל את התירוץ של "יצרן XYZ רצה לתרום דרייבר, אבל זרקנו אותו ואת הדרייבר שלו כי זה כולל קושחה/Blob בינארית בלבד", וחבל ש-FSF, ארגון שסייע רבות בתחילת הדרך בהתפתחות לינוקס (אוקיי, GNU/Linux), כיום גורם לרבים להתרחק ממנו.

האם לעבור מהפצת לינוקס X להפצת לינוקס Y?

כל מי שנכנס לעולם הלינוקס וחושב להתקין, רואה במקרים רבים עובדה די פשוטה: יש המון הפצות לינוקס, חלק מהאנשים ממליצים על הפצה X, חלק אחר רומז שהפצה X היא זבל וכדאי ללכת על הפצה Y, וחלק אחר יצרחו במלוא הגרון כי אם אתה חדש, לך בכלל על הפצה Z שהיא "מעולה".

אז איזו הפצת לינוקס כדאי לבחור, והאם כדאי לעבור מהפצת לינוקס נוכחית (X) להפצת לינוקס Y?

התשובה לנושא קצת מורכבת.

מבחינה טכנית, הפצות לינוקס שונות מתחלקות לקהלים שונים:

  • אובונטו, Manjero, Mint ותתי גרסאות של ההפצות (kubuntu, xubuntu, lubuntu) מיועדות בדרך כלל לקהל שמגיע מעולם ה-Windows ושלא ממש מחפש לחטט בקרביים של הפצת התוכנה רק כדי לחבר ציוד Bluetooth או להתקין codecs רק בשביל לצפות באיזה קובץ MP4.
  • הפצות כמו Debian, Arch, Gentoo, Slackware – הן הפצות שמיועדות לאנשים שנכנסים לעולם הלינוקס עם הכרות מסויימת מעולמות היוניקס, למפתחים, ולאנשים שמושגים כמו Terminal, GCC, פייתון, BASH ומושגים אחרים – לא מפחידים אותם והם מוכנים להשקיע קצת זמן להכיר אותם ולהשתמש בהם. הפצות כמו Arch ו-Gentoo לדוגמא – לא מגיעים עם GUI והכל מבוצע דרך פקודות.
  • הפצות כמו SLES, RHEL, CentOS – הן הפצות לינוקס "שמרניות". הן הפצות שיותר מקובל להשתמש בהן בחברות ובמקרים בהם לקוחות רוכשים תוכנות מסחריות (במקרים כאלו הדרישה מיצרן התוכנה תהיה להשתמש בהפצות כמו RHEL ובחלק מהמקרים SLES של סוזה). הפצת ה-CentOS היא חריגה, הואיל והיא מיועדת לשמש כגירסה חינמית וחופשית הזמינה גם לניסוי/dev/testing וגם פתוחה לשימוש הציבור.
    נקודה חשובה: ההפצות הנ"ל מאוד בררניות בתוכנות שהן מאחסנות במאגריהן הרשמיים, ולכן לא תמצאו בהן תוכנות שמנגנות קבצי מדיה מסוגים שונים ותוכנות רבות אחרות שקיימות בהפצות לינוקס אחרות. את התוכנות הללו תוכל למצוא במאגרים חופשיים צד ג'.
  • הפצות לצרכי ניסוי כגון Fedora, OpenSuSE – אלו הפצות לינוקס שיצרניהן מוציאות אותן לציבור לצרכי ניסוי ושימוש ללא תמיכה רשמית. היצרניות משתמשות בפידבק מהפצות לינוקס הללו כדי לשפר את ההפצות המסחריות שהן מוכרות.
  • ישנן עוד הפצות כמו Yocto, OpenEmbed ואחרות שלא רלוונטיות לפוסט זה והן מיועדות למערכות משובצות קטנות ולצרכים מסחריים.

מבחינה טכנית, עם כל הפצת לינוקס ניתן להגיע לתוצאות כמו הפצת הלינוקס המתחרה. אם לדוגמא סביבת הדסקטופ שלכם מבוססת GNOME, אפשר במספר קטן של פקודות לעבור לסביבת דסקטופ כמו KDE, LXDE ואחרות, וכל זאת מבלי לפרמט את המחשב, ואפשר כמובן גם לשנות מראה שיראה כמו ההפצה המתחרה.

ישנן מספר נקודות חשובות שכדאי לזכור בקשר לכל הפצת לינוקס שבוחרים ומשתמשים קדימה:

  • לבחור הפצת לינוקס עדכנית אם אתם משתמשים בלינוקס על המחשב האישי שלכם או המחשב הנייד שלכם. מערכת מעודכנת תתן לכם תמיכה לציוד חדש, תיקוני באגים ועוד, ולכן הפצות מסחריות והפצות כמו CentOS פחות מתאימות לשימוש במחשב האישי/נייד. מומלץ, אגב, מדי פעם, גם לעדכן ולשדרג את המחשב מגירסה אחת לגירסה היותר עדכנית.
  • כשיש תקלה – לא לחשוב על זריקת/החלפת הפצה. הפצות לינוקס הן שונות, אבל הן לא עד כדי כך שונות. תקלה שציינתי לדוגמא בפוסט קודם שפרסמתי – מצאתי לה פתרון דווקא בתיעוד של Arch ואילו התקלה עם ה-Scale שציינתי אתמול נפתרה בכך שעברתי לסביבת דסקטופ KDE, שם כבר טיפלו בבעיה שעדיין לא טופלה ב-GNOME. התיקונים עצמם ב-98% מהמקרים יהיו זהים בין הפצת לינוקס אחת לשניה, כאשר ישנם פה ושם הבדלים במיקומי קבצים (באובונטו נהנים כנראה לשנות סטנדרטים) ושמות חבילות תוכנה.
  • לחפש יותר לעומק: אחת ההמלצות שלי לכל משתמש לינוקס, היא לא לחפש פתרון מהיר לתקלה, אלא גם להבין ולהכיר מהי התקלה. נסה להשקיע עוד כמה דקות כדי להכיר מה הם הקונפיגורציות השונות באותה תוכנה בעייתית, ומי יודע, יכול להיות שלא רק תפתור את התקלה, תוכל אולי גם לשפר ביצועים במחשבך.
  • גיבוי גיבוי גיבוי. יש לך בעיה, מצאת לה פתרון באינטרנט שכרוך בשינוי קובץ או קבצי קונפיגורציה. רגע לפני שאתה משנה את הקבצים, השתמש בפקודת cp כדי לגבות את הקובץ לפני שאתה מבצע שינוי. זה פשוט: cp file file.backup יצור לקובץ file גיבוי בשם file.backup ואם השינוי שביצעת רק דפק את הדברים, תמיד תוכל לחזור אחורה.
  • שמור את הדיסק-און-קי של ההפצה בצד. במקרים מסויימים, שינוי של הפצת הלינוקס יכול לגרום לכך שהמערכת תקרוס או לא תרצה אפילו לעלות. תמיד תוכל בעזרת הדיסק און קי לעלות במצב "LIVE" ולתקן את המערכת ולאחר מכן לבצע reboot ולהשתמש בה כרגיל.
  • אף אחד לא קורא מחשבות: לא מעט אנשים שנכנסים לעולם הלינוקס ונתקלים בבעיה, מעלים מיד שאלה באחד הפורומים ומצפים לעזרה. הבעיה בדרך כלל היא שברוב המקרים, אין מספיק מידע מכותב השאלה, ולכן תמיד מומלץ לפרט מה אתה מנסה לעשות, מה התוצאה שקיבלת, איזו הפצת לינוקס (וגירסה) אתה משתמש, ואת מפרט הציוד שלך. בלי זה, תקבל המון תשובות שרובן לא יהיה רלוונטי.
  • להפריד בין עבודה לפרטי: הפצות כמו אובונטו (לא LTS) על שרתים הן אסון הואיל וברוב המקרים אף אחד לא ישדרג או לא יעדכן אותן. השתמשו בהפצות אחרות המיועדות לשרתים ול-Enterprise לצרכים אלו, ולא הפצות כמו Fedora או אובונטו רגיל או OpenSuSE לדוגמא.

לסיכום: בחירת הפצת לינוקס ושימוש בה משול בלא מעט מקרים ליציאה להרפתקה. לא צריך להרים ידיים על כל תקלה, וסביר להניח שברוב המקרים, היו כבר אנשים שנתקלו באותה תקלה, אולי בהפצת לינוקס אחרת ממה שאתה משתמש, ופתרו אותה. כל עוד הפצת הלינוקס שלך היא עדכנית, אין צורך להחליף לאחרת (כן, כולל לחובבי ה-KALI לינוקס, שחלק מהם עדיין לא מבין שניתן ליצור את אותה סביבה בכל הפצת לינוקס). לא צריך להיות "דתי" לגבי הפצת הלינוקס שלך ואין צורך להקניט אחרים שמשתמשים במשהו אחר ממה שאתה אוהב/משתמש.

בהצלחה.

לינוקס על הדסקטופ אצלי – סוף 2020

בחודשים האחרונים התחלתי לפצל את העבודות שאני עושה במחשב הדסקטופ שלי ל-2 מחשבים נפרדים. בראשון אני מבצע את כל הדברים שקשורים ליצירת מדיה (וידאו, מצגות וכו') ובשני – המחשב העיקרי ליצירת מסמכים, גלישה באינטרנט, כתיבת סקריפטים ב-Shell/Python ועוד. המחשבים עצמם מבוססי Windows אבל עתה אני יכול להשאיר אחד על Windows ואת השני אני יכול לפרמט ולהתקין הפצת לינוקס מודרנית ועדכנית, וזה מה שעשיתי.

בפוסט זה אתאר את ה"חוויות" שהיו לי כאיש לינוקס. אני אציין מראש שהפוסט יהיה טכני ואולי פחות מובן לאנשים שאינם מכירים/משתמשים בלינוקס.

על מנת לתת פרטים מלאים, אתאר את המחשב המדובר שעובר להיות עם לינוקס:

  • מעבד: Ryzen 7 2700 (בלי Overclocking)
  • זכרון: 48 ג'יגהבייט (ערוץ כפול)
  • אחסון: NVME SSD בגודל 2 טרהבייט של WD ועוד דיסק קשיח מכני בגודל 4 טרה של טושיבה.
  • כרטיס גרפי: GTX 1070
  • תצוגה: 2 מסכים בגודל 27" כשכל אחד מהם ברזולוציה של 2560X1440
  • אודיו: Soundbar של LG בחיבור TOSLINK (אופטי) למחשב

כמו שניתן להבין, לא בדיוק מחשב מהקצה הגבוה, אבל בהחלט מספיק לצרכיי

החלטתי בשלב ראשון לנסות את גירסת האובונטו האחרונה – 20.04. הורדתי את ה-ISO והוספתי אותו לדיסק און קי שלי (אני ממליץ מאוד על תוכנת VENTOY – מתקינים אותה חד פעמית על הדיסק און קי, וכל מה שנשאר זה פשוט להוסיף עוד ועוד קבצי ISO שאותם ניתן לבחור במהלך תהליך ה-boot) והוספתי גם את ה-ISO של פדורה 33 האחרונה שיצאה שלשום.

התקנת האובונטו עברה בצורה חלקה, בלי יותר מדי שאלות, הוא התקין את הדרייברים הבינאריים האחרונים של NVIDIA, וכל הציוד עבד מיד לאחר ה-boot אחר ההתקנה… עד שהגעתי לכמה בעיות מהותיות:

  • מכיוון שאני משתמש ב-DPI גבוה במסכים, רציתי להגדיל את ה-Scale ל-125% כדי לראות את הטקסט בצורה גדולה וברורה יותר. לשמחתי הוא איפשר זאת על המסך הראשון, אבל לא על המסך השני, ולא הראה שום שגיאות מהותיות ב-journal או כל מקום אחר שהסתכלתי. ניסיתי את המוצא האחרון (reboot) וראה זה פלא, עכשיו הוא מוכן לתת לבצע Fractal Scaling גם במסך השני! נקודה מעניינת: רד האט עובדים יחד עם קנוניקל על ה-GNOME. אובונטו מאפשרים Scale עם דרייברים של NVIDIA, רד-האט חוסמים זאת ב-GUI או דרך הטרמינל.
  • ניסיתי לצפות ביוטיוב. הכל עובד טוב ויפה עד ש.. לוחצים להציג את הוידאו במסך מלא. כאן המערכת מתחרפנת ומכבה לי את המסכים. לחיצה על ESC מחזירה לי את המסכים לחיים ובדיקה ב-journal מראה שמשום מה, המערכת מנסה לגרום למסכים לעבור לרזולוציה מפלצתית (ב-2 המסכים) מה שגורם לכיבויים. לא מצאתי שום פתרון לכך (כלומר… מצאתי 1001 הצעות לפתרונות שלחלוטין אינם קשורים לתקלה, כולל הצעות כמו "הכרטיס הגרפי שלך תקול, תחליף אותו". הוא לא).
  • מסך ה-Login – המערכת מתעקשת להציג אותו במסך הלא נכון. מכיוון שאובונטו 20 עבר ל-GNOME ומשתמש ב-GDM כמסך לחיבור משתמשים, ניסיתי לשחק עם הגדרות בקובץ בקבצים כמו custom.conf ואחרים (שנמצא ב-/var/lib/gdm אבל באובונטו החליטו להעביר את זה ל-etc/gdm3/ כי למה לשמור על אחידות…) – לא עזר.

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

מכאן עברתי לפדורה. למי שתוהה מדוע פדורה – עניין של הרגל, פרויקטים של וירטואליזציה שאני מריץ על מערכת כזו ועוד. אינני מה"מתלהבים" שירוצו לאמר למעוניינים לזרוק את הכל ולהתקין פדורה. גם לפדורה, לאובונטו ולכל הפצת לינוקס יש יתרונות ויש ערימות באגים ובעיות.

ואם כבר מדברים על בעיות, בפדורה גם לא חסרים כאלו:

  • מכיוון שאני משתמש ב-NVIDIA ומעדיף בכל הזמן את הדרייבר הבינארי, אחרי ההתקנה יהיה צורך להסיר את הדרייבר בקוד פתוח (Nouveau). הבעיה: הדרייבר מוטמע בצורה עמוקה בתוך ה-Image של ה-kernel וכל נסיון blacklist לא עוזר, ולכן יהיה צורך להשתמש ב-dracut כדי ליצור initramfs חדש ללא המודול וגם לוודא שהוא מבוטל בקובץ etc/grub/default/. אם משתמשים ב-repo כמו rpmfusion כדי להתקין דרייברים בצורה כמה שיותר אוטומטית, כדאי ראשית להוסיף את ה-REPO, להריץ dnf update, לבצע reboot ורק אז להריץ את הפקודות מהקישור. בסופו של דבר – זה עובד…
  • ..ואז מגלים שבפדורה החליטו שדרייבר בינארי של NVIDIA ו-GNOME – לא יאפשרו Scale של ה-DPI, לא חשוב מה תעשה (היו טריקים שפעלו בפדורה 31, הם בוטלו בפדורה 32). הפתרון שלי – ביי GNOME, אני עובר ל-KDE Plasme. התקנה פשוטה (פשוט להריץ את הפקודה: sudo dnf groupinstall -y "KDE Plasma Workspaces" ולאחר מכן לבצע logout, לבחור את שם המשתמש שלך ומצד ימין למטה לבחור את Plasma ואז להקיש סיסמא) ויש מערכת דסקטופ חלופית.
  • הבעיה הבאה – פונטים. אלוהים ישמור כמה זה נראה מגעיל (במיוחד אתרים בעברית). הפתרון: להשתמש בפונטים שמיקרוסופט שחררה. ההוראות – כאן, אפשר להתקין את החבילות או שאפשר להעתיק את הפונטים ממכונת/Partition של Windows. לאחר שתתקינו, אל תשכחו להגדיר את הפונטים בדפדפן המועדף עליכם (תסתכלו על ההגדרות ב-Windows)
  • ניגון וידאו. יוטיוב עובד חלק, כל אתר אחר – לא. אפשר להתקין את דפדפן כרום אך אם אתם מעדיפים להמשיך להשתמש בפיירפוקס כדפדפן עיקרי, תצטרכו להתקין כמה חבילות נוספות (ההוראות כאן).
  • נגן סרטים – כרגע הנגן הפופולרי היחיד שעובד (ממה שבדקתי) הוא VLC. נגן כמו KODI – קורס תוך 2 דקות, סביר להניח שבימים הקרובים תצא גירסה מתוקנת.
  • ה-Sound bar לא "מתגלה" למערכת לאחר יקיצה ממצב שינה (זה קורה אם מחברים את מקרן הקול בחיבור אופטי, לא בחיבור HDMI או חיבור אנלוגי). התיקון במצב כזה הוא קצת יותר מורכב ויש צורך ליצור קובץ systemd שירוץ לאחר היקיצה ושיהרוג (תחת המשתמש הרגיל, לא root) את pulseaudio כדי שהמערכת "תגלה" מחדש את מקרן הקול.
  • עוד "הפתעות" – עם מקרן קול: המערכת מפסיקה לשלוח signal למקרן הקול, ולאחר מספר שניות הוא נכבה. הפתרון: לערוך (כ-root) את הקובץ etc/pulse/default.pa/ ולחפש את השורה load-module module-suspend-on-idle ולשים # בהתחלה. לשמור, לצאת, ואז כמשתמש רגיל יש להריץ את הפקודה: pulseaudio -k וזה אמור לפתור זאת.
    פתרון נוסף – להפעיל מיקסר (עם הפקודה: alsamixer), לבחור את "כרטיס הקול" עם מקש F6 (אם אתם מחברים מקרן קול בחיבור אופטי, אז זה יופיע כ-HD AUDIO), ללכת עם החיצים ימינה עד Auto Mute וללחוץ חץ למטה כדי שיהיה Disabled ולאחר מכן ללחוץ ESC ליציאה.

נקודות שעדיין לא פתרתי:

  • בעיות בתצוגת וידאו במסך מלא – tearings (תמונה "נקרעת"). יש הצעות כמו בקישור הזה, שלא עובדות וצריך להשקיע יותר לבדוק זאת לעומק. (עדכון: הבעיה נמצאת ב-Firefox. בכרום אין בעיה אז חזרתי לכרום).
  • הפניית ציוד USB ל-RDP דרך תוכנת Remmina. תיעוד – אפס.

אז מדוע בעצם כתבתי את הפוסט? לייאש אנשים מלהשתמש בלינוקס? התשובה לכך היא: לא. כל התקלות שהיו לי ושציינתי את חלקם כאן – רובם כבר חוו אותם וכתבו תשובות במקומות שונים איך לפתור אותם, כך שבסופו של דבר ניתן בהחלט לבנות מערכות לינוקס יציבות לשימוש במחשב הרגיל, אך יחד עם זאת חשוב לזכור: אם ציפית לעבודה חלקה ב-100% של המקרים ובכל הסיטואציות – אתה טועה, ואם אתה רוצה להשתמש בכל הפצת לינוקס, תתכונן להכיר את הטרמינל

לסיכום: לינוקס על הדסקטופ זה טוב, אפשרי ועובד לא רע (ואם אתם בעניין משחקים, אז כדאי שתכירו את Proton), אך יחד עם זאת, גם לאנשים ש"חיים" לינוקס – הפצות לינוקס עושות צרות. אני בהחלט ממליץ לאנשים להכיר לינוקס, אבל גם להתאזר בסבלנות ולמצוא את הפורומים שיסייעו לכם במסע.

ובהזדמנות זו, אם אתם משתמשים בלינוקס ואתם חובבים של htop, אולי כדאי שתכירו את bpytop שמרשים אנשים רבים שחובבים תמונות "היי טק". זה נראה כך (לחצו להגדלה):

ה-NAS החדש

בשנים האחרונות היו לי מספר מכונות ששימשו כ-NAS ל-LAB שלי, ועל מנת להשאיר תשתית אופטימלית, צמצמתי את כמות המכונות שברשותי, כך שישארו רק מכונות שאני צריך, וכך במהלך החצי שנה האחרונה התפטרתי ממספר שרתים ומספר מכונות NAS שבניתי. מכונה אחת שירתה אותי בנאמנה במשך 8 שנים, וה-NAS האחרון שהיה רץ על שרת 2U של Supermicro – נתרם (ללא הדיסקים כמובן).

החלטתי לבנות מכונה חדשה, שהדברים החשובים לי בה היו:

  1. קיבולת גבוהה של דיסקים (הכנסתי בה 17 דיסקים, עוד 2 בקרוב)
  2. שקטה לגמרי
  3. נגישות מהירה לחלקים שונים כמו החלפת דיסקים/מעבד/זכרונות/כרטיסים וכו'
  4. בלי כל מיני "צעצועים" כמו RGB.

תודות לחברי היקר רפי אינשטיין, מצאתי את המארז האידיאלי – Antec P101 Silent שנמכר בארץ במחיר של 370 שקל. רכשתי את המארז, הוא הגיע והתחלתי להרכיב. להלן המפרט שאני משתמש במכונה:

  • מעבד: AMD Ryzen 2700 (תיכף אסביר מדוע)
  • זכרון: 64 ג'יגהבייט
  • לוח אם: ASUS X470-F
  • כרטיסי רשת: כרטיס רשת של Mellanox (דור שני) עם חיבורי +SFP ל-10 ג'יגה, וכרטיס רשת Broadcom NetXtreme BCM5715 (כרטיס עם 2 חיבורי 1 ג'יגה)
  • כרטיס תצוגה – GT 710 של Zotac (אני מאוד ממליץ על הכרטיס הזה. הוא נותן חיבורי מסך פופולריים – HDMI,DVI,VGA, והחיבור שלו הוא PCIe X1, כך שהוא לא יתפוס כניסות PCIe חשובות)
  • כרטיס Intel Optane 900p – הכרטיס הוא SSD מיוחד בגודל 280 ג'יגה. יקר (תציצו בלינק) – אבל שווה כל שקל אם אתם משתמשים ב-ZFS ובחיבור של 10 ג'יגהביט ומעלה.

מבחינת דיסקים, אלו הדיסקים שבפנים:

  • 8 דיסקים בגודל 6 טרהבייט של טושיבה מסידרת ה-Performance (כ-7200 RPM) – בהחלט סוסי עבודה
  • 6 דיסקים SSD SATA – סמסונג 860 EVO בגודל 512 ג'יגהבייט
  • 2 דיסקים SSD NVME מסוג סמסונג 960 EVO בגודל 512 ג'יגהבייט

(ברצוני להודות לחברת דגן מולטימדיה על הסיוע המהיר בכבלים ומפצלים – בלעדיהם הכל היה נתקע)

אחרי כמה שעות של חישובים וניסויים (אחרי הכל, ברגע שאתה מכניס כרטיס כלשהו, כמות נתיבי ה-PCIe הפנויים משתנה, ולפעמים יש גם "הפתעות". תודה מלאנוקס!), חיבור החלקים השונים – מגיע החלק הקריטי: מה להתקין על המערכת?

פתגם עתיק אומר "לכל 2 יהודים יש 3 דעות" – אז שאלתי לתומי וקיבלתי מגוון המלצות והצעות (רובם בהודעות פרטיות), אז להלן ההצעות ומדוע לא בחרתי בהן:

  • Proxmox, Xen Server, UnRaid – כל הפתרונות הללו מתאימים אם רוצים להריץ פתרון וירטואליזציה בראש ובראשונה על הברזל עם סבירות גבוהה שזה יהיה הברזל היחידי (כלומר "השרת היחידי"). במקרה שלי רציתי NAS שיהיה עצמאי ושיתן שרותי קבצים (ועוד מספר שרותים שירוצו כקונטיינרים עם Podman), כך שפתרונות אלו אינם מתאימים לי.
  • XPEnology – זהו פתרון בקוד פתוח של Synology והוא יכול להתאים ללא מעט אנשים, כל עוד הדרישות הן צנועות. במקרה שלי, אוטומטית הוא לא היה מכיר במחצית מהכרטיסים במחשב, אז הוא ירד מהאופציות עוד בהתחלה.
  • FreeNAS – זהו פתרון מעולה למי שמחפש פתרון "קופסתי פשוט" – כלומר קופסא שזורקים אליה כמות דיסקים, מתקינים FreeNAS, מבצעים כמה הגדרות פשוטות ומתחילים לעבוד. הבעיות עם פתרון כזה הן שמערכת כזו היא מצומצמת וקשה להוציא ממנה ביצועים משמעותיים (תאמינו לי, השתמשתי ב-FreeNAS במערכת הקודמת ובזבזתי ימים שלמים עליה) כשצריך מהירות גבוהה יותר מ-10 ג'יגהביט.
  • אובונטו – תהליך הטמעת ה-ZFS בהפצה זו הוא יותר "work in progress" וה-LTS (כלומר Long term support) זו בדיחה לא מוצלחת, למען האמת. מוותר על התענוג.

בסופו של דבר בחרתי ב-CentOS 8 (ליתר דיוק – CentOS 8.2.2004) מכמה סיבות פשוטות:

  • רקורד מוכח ב-Long Term: ה-NAS שהיה לי לתקופה של 8 שנים הריץ CentOS 6 (ששודרג בהמשך ל-CentOS 7) והוא נתן לי יציבות מעולה.
  • ZFS על CentOS – אחד הדברים הכי מנוסים והכי יציבים. לא מעט אלו שמריצים לינוקס עם ZFS מהמפתחים של ZFS on Linux (וכיום OpenZFS) מריצים ZFS על CentOS.
  • קלות התקנה: 3 פקודות. יבוא מפתח, 2 פקודות DNF – ויש ZFS במערכת.
  • לא חסר תמיכה.

יחד עם זאת: האם אמליץ על ה-OS הזה ל-ZFS לאנשים שאין להם נסיון בלינוקס או ZFS? לא. בוא נהיה מציאותיים: CentOS ו-ZFS מצריכים השקעה בלימוד דברים שונים, ואם מחפשים חיים יותר קלים (ולא מצפים לביצועים בשמיים) – אז FreeNAS ואובונטו הם פתרונות טובים.

מבחינת הגדרות, הגדרתי את הדברים כך:

  • 8 דיסקים מכניים הוכנסו ל-Pool בתצורת RAIDZ-2 (כלומר RAID 6 למי שלא מכיר את ZFS) כך שקיבלתי כ-43.7 טרהבייט מקום פנוי
  • 6 דיסקים SSD SATA הוכנסו ל-Pool שגם הוא בתצורת RAIDZ-2 כך שקיבלתי 2.78 טרהבייט מקום פנוי
  • SSD NVME אחד "הוקרב" לטובת ה-OS עצמו (כך שהוא אינו חלק מ-ZFS. יש היום תמיכת Boot ב-GRUB2 מ-ZFS אבל ליתר בטחון אני מעדיף שדיסק ה-OS יהיה עצמאי ולא כחלק מ-ZFS ואם הוא נדפק, דיסק און קי עם CentOS ו-ZFS יכול לשמש כתחליף חרום).
  • ה-SSD NVME השני חולק ל-2, כך שכל Pool מקבל 240 ג'יגהבייט כ-Cache.
  • ה-Optane חולק ל-2 כך שכל Pool קיבל 40 ג'יגהבייט ZIL. מכיוון ש-Optane 900p (והגירסה היותר מתקדמת שלו 905P או גירסאות ה-Enterprise – ה-P4800X) ניחנים ב-Latency הרבה יותר נמוך מכל SSD שקיים בשוק (הוא לא משתמש ב-Flash) – ביצועי הכתיבה – גבוהים.

אז .. איך הביצועים? להלן צילום מסך (לחצו להגדלה).

מה שרואים בתמונה זו הוא שכל הדיסקים המכניים כותבים במקסימום מהירות אפשרית, וה-ZIL (שמופיע כ-logs) מקבל כמות זהה של נתונים לכתיבה (ה-ZIL בעצם מקבל את הנתונים שאמורים להיכתב – לפני שהם מגיעים לדיסקים הקשיחים לכתיבה מעשית). בפועל זה נראה יותר כך:

כלומר קצב הכתיבה נע בין 300-800 מגהבייט לשניה, תלוי מה הנתונים ותלוי אם ה-ZFS יכול לדחוס אותם (לדוגמא: קבצי VMDK שהם flat – יש לא מעט מקום לדחיסה, כך שבמקרים כאלו אני מקבל קצב כתיבה ממוצע של 770 מגהבייט לשניה). מבחינת קצב קריאה – אני מקבל רצוף בסביבות ה-700 מגהבייט לשניה (זה מה שקורה כשמנסים להכניס כרטיס רשת Mellanox ConnectX-3 לתוך כניסת PCIe 2.0, טופל בעת כתיבת פוסט זה)

וכך זה נראה במכונת Windows וירטואלית שרצה תחת vSphere 6.7 כאשר ה-Datastore מגיע מ-NFS V3 והתוצאות הן ללא טריקים של Cache, Write back וכו'.

עד כה המערכת רצה ללא תקלות, אך יחד עם זאת – יש לי עוד דברים לבדוק, כמו העניין הדי תמוה שכתיבה על הדיסקים SSD שנמצאים ב-pool משלהם – מהירות הכתיבה מגיעה עד 160 מגה במקום 550 מגה (לא קשור לכרטיס HBA כלשהו) ועוד כמה דברים פה ושם שאני רוצה לבדוק, לחבר למערכת ניטור וכו' וכו'.

האם הייתי ממליץ להקים מערכת כזו לאחרים? תלוי למי. למשרד או לארגון? לא, אלא אם מוכנים ורוצים להשקיע שם בלבצע אופטימיזציה. לכל מי שרוצה פתרון קל או מוכן, הייתי ממליץ לרכוש קופסא, להכניס דיסקים, לבצע הגדרות ראשוניות ולהתחיל לעבוד. במקרים אחרים שרוצים ביצועים גבוהים ומוכנים להשקיע – ZFS יכול להיות פתרון טוב מאוד, אך שוב – זהו פתרון שמצריך השקעה וזמן, יש המון הגדרות והמון סיטואציות שמצריכות הגדרות ספציפיות על מנת לקבל תוצאות גבוהות. לאלו שיש להם את הציוד בבית ורוצים להשקיע בלימוד אחסון ו-ZFS – אני בהחלט ממליץ ללמוד.

לאפטופים חדשים, דרייברים, לינוקס – דברים שצריך לדעת

הנה אחד הדברים שניתן למצוא שוב ושוב בפורומים שונים הקשורים ללינוקס: מישהו לוקח מחשב נייד (בדרך כלל מהשנה שנתיים האחרונות), מתקין לינוקס, ואז הוא מתלונן על דברים שונים שלא עובדים: ה-WIFI, הגרפיקה איטית, קורא האצבעות לא עובד, וכמובן – איך אפשר לגשת לקבצים שנמצאים על המחיצה (Partition) של Windows…

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

יצרן מחשבים ניידים נמצא בדרך כלל בשיתוף פעולה עם מאות יצרני חומרה שונים שמעוניינים למכור חלקים ליצרן המחשב בכדי שישלב אותם. היצרן לא מייצר כרטיסון WIFI/Bluetooth, הוא לא מייצר קורא טביעות אצבע, הוא בטח שלא מייצר שבבים גרפיים. הוא מייצר עשרות דגמים של מחשבים ניידים בשנה שכוללים חלקים שונים. חלק מהשיתוף פעולה הוא בכך שיצרני החומרה השונים שולחים או קוד מקור או דרייברים, שיצרן המחשב חותם אותם ומכליל אותם ב-build של ה-image למחשב הנייד. ה-Image גם יכלול תוכנות שונות, קצת (או הרבה) זבל (כן, יצרנים רבים עדיין כוללים את הזבל התעשייתי שנקרא Mcafee Anti Virus) וכמובן גירסת Windows לאותו שוק עם תמיכה בשפה/שפות לאותו סגמנט. בזמן יצור המחשב, ה-Image "ישפך" ל-SSD שנמצא באותו מחשב נייד, ובהמשך הדרך היצרן מדי פעם יעדכן דרייברים בהתאם למה שהוא קיבל מיצרני החומרה השונים. במחשבים זולים מיצרנים סיניים עלומים, אתה לא תקבל שום עדכון לדרייברים ואם יש עדכון דרך Windows Update – זה מה שתקבל וזהו.

אם לעומת זאת, תיקח את המחשב הנייד, תפרמט אותו ותתקין Windows משלך (לא מה שהיצרן משאיר בתוך ה-SSD ב-Recovery), בלא מעט מקרים תצטרך להוריד מספר דרייברים נוספים מאתר התמיכה של יצרן המחשב על מנת להפעיל את כל הציוד בצורה נאותה. Windows עושה עבודה לא רעה בהתקנה אוטומטית של דרייברים לחלק מהציוד, אבל עדיין בשביל ה-GPU, ה-WIFI, קורא טביעות אצבע ועוד כמה דברים – תצטרך להוריד ולהתקין דרייברים מאתר היצרן.

מכאן – נעבור ללינוקס.

בלינוקס, ברוב המקרים, אין לאן ללכת "להוריד דרייברים" (למעט במקרים מסויימים כמו כרטיסי GPU של Nvidia, אם רוצים לקבל את כל פונקציונאליות הכרטיס, בכרטיסי רשת יקרים כמו Solar Flare, ובכרטיסי FPGA ובעוד כמה מקרים). הדרייברים עצמם נכללים בדבר נקרא "ליבה" (kernel) שהיא חלק מהפצת הלינוקס. הדרייברים בלינוקס נקראים מודולים, הם קבצים קטנים וה-kernel יודע להטעין את המודולים יחד עם תתי מערכות אחרות שבודקות מה קיים מבחינת חומרה במחשב ומה להטעין (מערכת הלינוקס בדרך כלל כיום לא ממש "תזכור" מה קיים מבחינת חומרה, ובכל reboot התהליך יבוצע ברובו מחדש, כך שאם תעביר את הפצת הלינוקס שלך ממחשב אחד לשני, ברוב המקרים לא תצטרך לעשות כמעט כלום).

יצרניות הפצות לינוקס כמו SuSE, רד-האט, קנוניקל, בדרך כלל משחררות הפצה חינמית ונסיונית (ללא שום תמיכה רשמית) אחת לחצי שנה או שנה. הפצות לינוקס אלו בדרך כלל את הגרסאות האחרונות של ה-Kernel היציב הזמין, ובדרך כלל אותן הפצות גם יכניסו דרייברים נוספים שלא נכללו רשמית עדיין, תיקוני אבטחה ודברים נוספים, ובמהלך חיי אותה גירסת הפצה, היצרן ישחרר עדכונים לגירסת ה-kernel, אם כי בדרך כלל כלל הם לא יכללו דרייברים נוספים – על מנת לשמור על יציבות המערכת.

לכן, אם מישהו רוצה להתקין הפצת לינוקס, קודם כל כדאי לו לקחת disk on key, תוכנת rufus (ב-windows) וקובץ ISO בגירסת LIVE של אחת ההפצות שהזכרתי בגירסה האחרונה, ולהתקין אותה על הדיסק און קי, ולאחר מכן במחשב שאנחנו רוצים להתקין לינוקס – להיכנס ל-BIOS/UEFI ולבחור לבצע boot מה-Disk On Key ולהפעיל את המחשב כך שיפעיל משם את הלינוקס. גירסת לינוקס זו אינה כותבת מאומה על המחשב והיא מצוינת לצרכי התנסות מבלי לגרום נזק. אם הלינוקס במחשב שלכם עולה, העכבר וה-WIFI ושאר ציוד עובד תקין – אז אפשר להפעיל בלינוקס את ההתקנה. לאחר ההתקנה והפעלה מחדש, מומלץ להפעיל בדיקת עדכונים על מנת להתקין את ה-kernel, הספריות והאפליקציות שעודכנו מאז שוחררה הפצת הלינוקס.

הפצות הלינוקס כיום מנסות לעשות את החיים מעט יותר קלים למשתמשים שאין להם מושג ירוק בלינוקס, אבל הן אינן תחליף מלא. במקרים מסוימים תצטרכו לפתוח Terminal ולהקיש פקודות (ומומלץ באותה הזדמנות גם ללמוד מה אתם מקישים, אחרת למה אתם מתקינים לינוקס?) על מנת להתקין/להפעיל/להגדיר דברים. בכל מקרה, תמיד מומלץ להשתמש בגוגל ולחפש מידע על הפצת לינוקס שאתם רוצים להתקין על המחשב הנייח/נייד שלכם לפני שאתם מתחילים את המסע. יש לא מעט כאלו שמפרסמים פוסטים באנגלית על התקנות כאלו על מחשבים כמו שיש לכם, כולל הבעיות שהם נתקלו ואיך הם פתרו אותם.

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

בשביל להכיר לינוקס טוב, חייבים סבלנות. אנשים רבים מעתיקים שורות כמו תוכי מפורומים ומתפלאים למה דברים לא עובדים, וזאת בשעה שהם לא מודעים לכך שיש הבדלים ענקיים בין דברים כמו ` לבין ' לדוגמא, וזאת רק דוגמא אחת. דוגמא שכיחה נוספת לאלו שמכירים CMD מעולם ה-Windows היא ההבדל בין \ לבין / (בלינוקס, ה \ הוא בעצם "שובר שורה" וה-/ מציין כניסה לתיקיה, כמו \ ב-Windows), ולכן צריך להשקיע זמן בהבנת הדברים, מה שמוביל לעניין בקשות תמיכה: לא מעט בקשות תמיכה בקושי מקבלים סיוע הואיל והפונה חושב שכל מי שקורא את הבקשה מצויד במכשיר קריאת מחשבות, והפניה מנוסחת בלשון של "ניסיתי X וזה לא עובד". איך בדיוק יעזרו החברים? מערכות לינוקס אוהבות ליצור ערימות על ערימות של לוגים, ולכן פלט של 20-30 שורות אחרונות מה-journal (זו המערכת שכותבת בעצם "יומן" מכל הפעולות והפלט של שרותים שונים) כחלק מבקשת הסיוע – יכולה לעזור רבות (כאן ניתן לראות איך ניתן לשלוף את המידע עם פקודת journalctl ועם פרמטרים שונים). באותה הזדמנות כדאי לזכור שחלק מהתשובות שתקבל שוות בערך לתשובות שהחתולים שלי ינפיקו לך. זכור מה כתבתי: סבלנות.

לסיכום: לינוקס עובד לא רע בכלל עם מחשבים ניידים ונייחים, אולם לא הכל יעבוד לך בפעם הראשונה. יש לא מעט מקרים שתצטרך "להפשיל שרוולים" ולהקיש פקודות כדי לגרום לדברים לעבוד ויש מקרים שלא חשוב מה תעשה – זה לא יעבוד כדי להפעיל ציוד מסוים, כי יצרן הציוד היה עצלן לכתוב מודולים ללינוקס (טוב, יצרן המחשבים לא ביקש ממנו את זה כחלק מהתנאים). אם אתה נבהל ובורח מכל בעיה קטנה, תהיה לך בעיה להסתדר עם לינוקס.

בהצלחה.

על לאפטופים,חיישנים של אינטל – ולינוקס

שוק הלאפטופים בעולם נשלט על ידי אינטל ועל ידי מספר יצרנים שמכניסים בשמחה כל פיתוח חדש לתוך הלאפטופים על מנת לתת למשתמש חוויית שימושיות טובה. כך, לדוגמא, בלאפטופים שיצאו בשנה הקרובה תהיה חיבוריות Thunderbolt (המאפשרת חיבור ציוד חיצוני שדורש רוחב פס גבוה – כמו כרטיסי GPU, כרטיסי SSD NVME מהירים ועוד) הואיל ואינטל משלבת במעבדים החדשים שלה למחשבים ניידים (דור 10) את ה-Thunderbolt.

אבל לפעמים, עם כל שילובי הטכנולוגיה, יש בעיה בקשר לתמיכת הציוד במערכות הפעלה אלטרנטיביות כמו הפצות לינוקס שונות. אינטל, כיצרנית מעבד ו-Chipset עושה מאמצים כדי לתמוך בלינוקס ובדרך כלל מחשב נייד חדש ומודרני, כשיתקינו עליו הפצת לינוקס כמו גירסת Fedora או אובונטו אחרונים – רוב הציוד יתמך ישר מהקופסא. בדרך כלל הציוד שלא יתמך – הוא הציוד שיצרן הלאפטופ הוסיף ללוח האם של אותו מחשב נייד. כך לדוגמא יש בעייתיות תמיכה בחלק מקוראי טביעות אצבע או מצלמות אינפרה-אדום (מצלמות ה-Windows Hello). בדרך כלל יהיו כאלו מקהילת מפתחי הלינוקס שיוסיפו תמיכה, אבל לוקח זמן עד שזה נכנס להפצות הלינוקס בגרסאות השונות.

אחת הטכנולוגיות שאינטל הוסיפה בשנתיים פלוס האחרונות היא טכנולוגיות ה-Dynamic Power & Thermal Framework (או DPTF בקיצור). עם טכנולוגיה זו, אינטל משלבת חיישנים בתוך השבבים שלה שידעו לגלות באיזה מצב המחשב הנייד נמצא: האם הוא על השולחן (מצב Desk) או שהוא נמצא על הברכיים שלך (מצב Lap). אם אתה עובד על המחשב הנייד והוא נמצא על ברכיך, המחשב הנייד יוריד את ביצועי המעבד באופן משמעותי כך שבתקרת הביצועים צריכת החשמל של המעבד תהיה 15 וואט. אם הוא על השולחן, המעבד יוכל לרוץ עד מקסימום ביצועים ויצרוך מקסימלית 51 וואט (הכל כמובן בהתאם לקירור ולאיך שהיצרן בנה את הלאפטופ. בחלק מהלאפטופים אם המעבד יעבוד במקסימום מהירות – אתה תשמע רעש חזק מהמאווררים). הנה תמונה שאולי תעזור להבהיר את המצב:

הבעיה עם DPTF פשוטה: אינטל ישמה את הפתרון בלינוקס, אבל רק לכרומבוקים, וגם אז רק לחלק מהמעבדים הישנים (דור 7 וחלק מ-8). כיום בלינוקס – ה-DPTF כלל לא נתמך בלינוקס. בחלק מהמחשבים הניידים ניתן לבטל את פונקציית ה-DPTF, אבל במחשבים של לנובו לדוגמא – אי אפשר לבטל את המצב, כך שהמהירות המקסימלית שהמעבד במחשב ירוץ תהיה בסביבות ה-1.0-2.0 ג'יגהרץ, רחוק מאוד ממהירות ה-4.2-4.3 ג'יגהרץ (תלוי במחשב הנייד ובמעבד) שהמעבד יכול להגיע. לנובו הודיעה ש"בעתיד" היא תוציא קושחה ללינוקס שתאפשר ביטול DPTF, אבל בשלב זה, אם יש לך מחשב נייד מהסדרות כמו Yoga או Thinkpad, יש מצב שתקבל רק חצי או שליש מכח העיבוד אם אתה מריץ לינוקס על הלאפטופ. ב-Windows, אגב, הכל רץ בצורה תקינה.

אחד הדברים שהכי קשה לעשות – זה לשכנע חברות לכתוב דרייברים עבור לינוקס בכל מה שקשור לדסקטופים או לאפטופים, מכיוון שאין ממש מספרים שמראים כמות רכישת מחשבים נייחים/ניידים עם לינוקס. אם ניקח לדוגמא את משפחת ה-Thinkpad של לנובו, ברוב המקרים משתמש הלינוקס שכן ירכוש Thinkpad, הוא יהיה מספיק חכם כדי להתקין בעצמו לינוקס על הלאפטופ מבלי להזדקק ל"טובות" של לנובו. (בשרתים כמובן המצב בדיוק הפוך – שום חברה לא מעזה לשחרר ציוד כלשהו בלי שתהיה תמיכה ללינוקס), כך שהדרך היחידה היא לגגל ציוד שלא נתמך בלאפטופ שלך, לראות אם מישהו התחיל לעשות Reverse Engineering לפרוטוקול של ציוד, אם כתבו איזה דרייבר ואם דרושה עזרה שאתה יכול לעזור בה.

ישנו "טרנד" חדש בו ניתן לרכוש מחשבים ניידים עם לינוקס מותקן עליו (בדרך של אובונטו של קנוניקל) ואותה הפצת לינוקס מקבלת דרייברים ו"אופטימיזציה". אני יכול לאמר לכם שאני משתמש ב-Thinkpad T480s ש"נתמך" בהפצת אובונטו שמשוחררת עבור יצרני הלאפטופים, אבל ציוד כמו קורא טביעות-אצבע שרשום באתר של קנוניקל כ"נתמך" – כלל אינו נתמך ואין לו דרייבר חיצוני. בקיצור – עדיף לרכוש לאפטופ (אם אתם רוצים, במקרים רבים אפשר לרכוש אותו עם FreeDOS כך שלא יהיה צורך לשלם את ה"מס" של מיקרוסופט) ולהתקין עליו הפצת לינוקס מודרנית.

לסיכום: אני מעריך את אינטל שמשקיעה בכתיבת דרייברים ללינוקס ולשילובם ב-Kernel, אבל עם DPTF אינטל די "פישלה" (אגב, ישנם כל מיני "דרייברים" ל-DPTF שתוכלו למצוא להפצות לינוקס שונות, אבל הדבר היחיד שמצאתי שהם עושים – זה שהם לא מאפשרים למעבד לעבור את ה-85 מעלות צלזיוס, הביצועים נשארים נמוכים) ולצערי לא מצאתי עם מי ניתן לשוחח על מנת שאינטל תוכל לטפל בדברים ולתקן. יחד עם זאת, בהשוואה למצב מלפני עשור – רוב הציוד בלאפטופים ודסקטופים נתמך יפה מאוד בלינוקס "ישר מהקופסא".

כמה מילים על UPS

מי שקורא את הבלוגים שלי (זה הנוכחי והבלוג היותר עסקי) אולי קרא בעבר שאני לא בדיוק חובב UPS. חלק מהאנשים כתבו שאני "אנטי UPS" למרות שאני לא, והייתי רוצה לנצל את הפוסט הזה כדי להסביר את התצורה שלי, היכן UPS עוזר והיכן .. לא כל כך.

עד לפני חודשים ספורים ב-LAB שלי כל המכונות היו שרתי מותג ושרת האחסון מבוסס לינוקס+ZFS היה מכונת Core i5 פשוטה עם 32 ג'יגה זכרון ודיסקים. אם היתה מתרחשת הפסקת חשמל והחשמל היה חוזר לאחר זמן מה, כל השרתים היו מופעלים מיידית, אך מכיוון שלשרתים לוקח זמן רב להגיע למצב שהם מטעינים את ה-OS, הזמן ה"פנוי" הזה היה די והותר עבור מכונת ה-i5 לעלות, לבדוק שהכל תקין מבחינת ZFS, לייצא את ה-NFS ושאר שרותים, כך שכשהשרתים היו מתחילים לעלות, כל השרותים שהם זקוקים להם חיצונית – היו זמינים להם. את ה-UPS עצמו לא הייתי צריך כי רוב הזמן המכונות הוירטואליות היו סטטיות "ריקות" שמריצות Hypervisor (כך ש-reboot פתאומי לא היה ממש משנה משהו) ומכונות ה-VM היו עולות בין כה מחדש, כך שב-99% מהמקרים הפסקת חשמל לא היו ממש מזיקות לי. כל המערכת כולה, החל מהרגע שהחשמל חזר ועד שהכל למעלה – עולה תוך 10 דקות בערך.

UPS באופן עקרוני יכול לעזור במצבים מסויימים. אם יש לך מכונת דסקטופ עם GPU יוקרתי וביצעת Overclock לדוגמא למעבד ו/או לזכרון, המכונה תעבוד 24/7 ותצרוך הרבה יותר חשמל מהמצב הרגיל, מה שאומר ש-UPS של 1000VA (וולט אמפר) יחזיק לך אולי דקה או 2 גג. אתה יכול להגדיר את ה-UPS כך שלא יעשה כלום או שיתחיל את תהליך הכיבוי או להריץ סקריפט משלך כשאין חשמל. כמה זה עוזר? תלוי. יש מקרים ש-Windows לדוגמא בעת כיבוי מציג חלון שאומר שאפליקציות X,Y,Z פתוחות והחומר לא נשמר, מה שדי מבזבז את הזמן שנשאר בסוללת ה-UPS. בלינוקס ובמק המצב יותר טוב והמערכת כשמקבלת פקודת כיבוי מתחילה לכבות את השרותים במקביל עד לחלק ה-poweroff שמורץ ואז המכונה תיכבה מעצמה בצורה חלקה ללא נזקים.

בזמן האחרון ה-LAB שלי קיבל תפנית חדה ועד סוף חודש הבא (תלוי בשירותי השליחויות בחו"ל, מכס וכו') יתווספו ל-LAB שלי עוד 5 שרתים באורח קבע ושרת האחסון שלי יוחלף בשרת עם מעבד Xeon מרובה דיסקים ו-SSD. שרת כזה לא עולה תוך 45 שניות כמו השרת הנוכחי וכששרתי הוירטואליזציה השונים לא מקבלים שרותי NFS ו-iSCSI בזמן boot – הם גם לא מפעילים את המכונות הוירטואליות שאמורות לרוץ עליהם, ולכן מה שאצטרך לעשות בעצם זה לחבר את ה-UPS ל-Raspberry Pi ולדגום את ה-UPS. אם יש הפסקת חשמל, הוא ישלח פקודות דרך ipmitool כדי לכבות את המכונות ושרת הקבצים כמכונה אחרונה. חזר החשמל? הסקריפט ירוץ הפוך (שרת קבצים קודם כל, בדיקת שרותים, ולאחר מכן הפעלת שרתי הוירטואליזציה).

אז למי ששואל אותי לגבי עמדתי בעניין UPS – כן, אני ממליץ לכל אחד, במיוחד שזה עולה רק בסביבות ה-400 שקל ויכול להציל אותך מהפסקות חשמל קצרצרות (כמו שיש כאן באזור). למי שיש LAB לעומת זאת, אני ממליץ לעשות חישובי צריכה ולקנות את ה-UPS בגודל המתאים (אם יש לך נסיון בלינוקס אז אתה לא חייב את הגירסה עם הכרטיס רשת. יש בלינוקס את NUT ואתה יכול לעשות איתו את הכל ופשוט לחבר את ה-UPS לאיזה מכשיר Raspberry Pi או תואם). אני לא אהבתי כל כך UPS כי אני אוהב לחיות מבחינת טכנולוגיה "על הקצה" ואוהב לעשות Stress לציוד שברשותי (ושהינו בבעלותי) ולבדוק אם המערכת חיה גם אחרי אירועי הפסקות חשמל, חום וכו', אבל גם אני עכשיו עם UPS 🙂

על המו"מ מול מיקרוסופט, וקוד פתוח בממשלה

בימים האחרונים נודע כי המשא ומתן בין ממשלת ישראל למיקרוסופט בעניין חידוש שנתי של הרשיונות – התפוצץ. בדה-מרקר כבר הוציאו כתבה שממשלת ישראל לא תחדש את את הרישוי ובמקום זה יבדקו מה ניתן לעשות עם רשיונות קיימים והיכן ניתן להשתמש בקוד פתוח.

אז מה קרה הפעם שהממשלה, שכמו שעון שוויצרי רוכשת את הרשיונות כל שנה החליטה לפוצץ את המו"מ הפעם? כמה דברים:

  • Windows Server 2016/2019 – מיקרוסופט מודעים היטב לכך שאינטל ו-AMD מוציאים שורת מעבדים שבכל דגם יש כמות מסויימת של ליבות ונימים (Threads). זה מתחיל ב-4 ליבות ו-8 נימים וגנמר (במקרה של אינטל) ב-28 ליבות ו-56 נימים או 32 ליבות ו-64 נימים (במקרה של AMD). עד גירסת Windows Server 2012R2, זה שיש לך מעבד עם 4 ליבות או 32 ליבות – לא ממש שינה ברשיון. הנה החלק הרלוונטי ב-License Datasheet של Windows Server 2012 – שימו לב לשורה האחרונה המתחילה ב-Note בסוגריים:

עם Windows Server 2016 – למיקרוסופט "נפתח התאבון". זה נחמד שבכל שרת שלך יש 2 ליבות, עכשיו בוא נספור כמה ליבות (לא נימים) יש לך בכל מעבד, כך שאם לדוגמא חושבים להתקין שרת Windows Server 2016 (להריץ אפליקציות "על הברזל", Hyper-V וכו') – אתה תשלם החל מפי-4 על Windows Server 2016 בהשוואה ל-Windows Server 2012R2 (פתאום כל אלו שהשוויצו כמה Hyper-V "יותר זול" רואים שעכשיו פתאום העיסקה על vSphere יותר זולה בהשוואה למחיר Windows Server 2016 ו-Hyper-V).

  • הבעיה המהותית השניה קשורה יותר ל-Office. מיקרוסופט עושה הכל כדי לדחוף את הלקוחות משתמשי אופיס שלה לענן כך שהם ישלמו תשלום חודשי או שנתי כמנוי. הסיכוי שהחשכ"ל והרגולטור וגופי אבטחת מידע יאשרו לעבוד בענן שווה בערך לסיכוי שלי להיות ראש ממשלת ישראל בקדנציה הקרובה. מיקרוסופט מצידה מעלה כבר באוקטובר הקרוב את מחירי אופיס (הרגילים, לא 365) ב-10% (וזה בארה"ב, באירופה וישראל המחיר יעלה יותר). כשקונים 20 רשיונות זה כואב טיפה, שאתה מדבר על מאות אלפי רשיונות – העצבים מתחילים לרתוח.

אז מה לגבי תחליפים מבוססי קוד פתוח?

כאחד שביקר בכמה וכמה גופים ממשלתיים, אני יכול לאמר שכיום יותר מתמיד, אין כמעט התנגדות לכלים מבוססי קוד פתוח. לא מעט שרתי לינוקס כבר רצים במשרדים ממשלתיים ותוכנות לביצוע CI/CD קיימים (אם כי הדבר שהכי קשה להכניס שם הם שרתים ל-GIT כמו Gitlab, Bitbucket וכו' – הם "מכורים" ל-TFS ולא רוצים לרדת מזה) – כך שכניסת כלים מבוססים קוד פתוח למשרדים ממשלתיים – בעיצומה (בצבא זה הרבה יותר חזק בפנים).

אבל כשזה מגיע לדסקטופ, האפשרות שכלים מבוססי קוד פתוח יכנסו למשרד של הפקידה רבקה ממס הכנסה או רויטל במשרד הבריאות – קלוש (טוב, למעט Web Application, וגם זה – רק אם זה רץ על אקספלורר!).

מדוע? הסיבה נורא פשוטה ונראה לי שרבים מאנשי לינוקס המקצועיים (גם אצל מפתחים בהפצות לינוקס שונות) מפספסים אותה: אלו שחושבים בראש של מהנדסים ומפתחים, חושבים על פונקציונאליות, API, סקריפטים וטרמינל, שזה מעולה – אבל מפספס לגמרי את אותם משתמשי קצה. קחו לדוגמא את אופיס, יש את LibreOffice – זה יכול להחליף? מבחינת פונקציונאליות, כן ברוב המקרים, אבל לא מבחינת ויזואליות. ל-LibreOffice יש ממשק שמזכיר את אופיס מלפני 11 שנה ואנשים רוצים ממשק שהם מכירים כיום, הם רוצים החלקת פונטים בדיוק כמו שיש להם ב-Windows (דבר ש-LibreOffice עדיין עושה בצורה די עקומה) ואלו שמעל אותן פקידות, אלו שמפתחים כל מיני כלים סביב ה-Office מחפשים את האינטגרציה בין האופיס ל-Access (ישמרנו האל!), למאקרו, לטפסים האוטומטיים וכו'. אנחנו מדברים על שנים על גבי שנים של עבודת אינטגרציה, ושום LibreOffice לא יכול להחליף את זה בלי חתיכת עבודה רצינית וכבדה מאוד.

נוסיף על כך את העניין שבמשרדים ממשלתיים הכל מתקדם לאט והם עדיין משתמשים ב-Windows 7, עם אקספלורר (כמו הבנקים), ונוכל להבין שפתרון קוד פתוח לדסקטופים לא הולך לקרות בקרוב מהסיבה הפשוטה שלמשרד האוצר יהיה הרבה יותר זול "לבלוע" את התוספת במחיר לרשיונות אופיס מאשר לממן פרויקט מבוסס LibreOffice או החלפת דפדפן ושכתוב מאסיבי של קוד עתיק או בכלל לינוקס על דסקטופ.

כך שלסיכום: לינוקס בשרתים? מקובל מאוד ברוב המקרים. לינוקס לצרכי דסקטופ? אין מצב. צר לי, זו המציאות.

מעבר דסקטופ ללינוקס אצלי

אינני הטיפוס שמתייחס למערכות הפעלה כ"דתות". אין לי שום בעיה להודות שעד לפני זמן לא רב, מערכת ההפעלה העיקרית בדסקטופ שלי היתה Windows 10, וכשאני רוצה לעבור מערכת הפעלה, אני לא עושה זאת כצעד "אנטי מיקרוסופטי" אלא פשוט בגלל נוחות: 90% מהזמן שאני משתמש במחשב לעבודה או לבדיקות, אני נמצא מול חלון טרמינל או דפדפן, וב-Windows די נמאס לי להפעיל Putty, להשתמש ב-WSL ולגלות שהחלון "טרמינל" מתחרפן לו כשאני מגדיל אותו, ואני גם לא אוהב את המעקב של Windows אחרי.

אבל כמו שאומרים: יש רצוי ויש מצוי, והסיבה שנשארתי עד כה עם Windows 10 היו התוכנות, ובמיוחד תוכנת Camtasia Studio ותוכנת Premiere Pro של אדובי. אני רוצה להתייחס לשתיהן והתחליפים שלהן בלינוקס.

למי שלא מכיר את Camtasia Studio, זו אחת התוכנות המעולות ביותר שקיימות להקלטת מסך, עריכת הוידאו ופרסומו. היא לא תוכנה שיכולה להתחרות ב-Premiere מבחינת כלים לטיפול בוידאו, אבל יש בה מספיק פונקציונאליות להקליט מסך, לערוך, להוסיף טקסטים וגרפיקה פשוטה/אנימציה, והיא משלבת העלאת וידאו ישירה ליוטיוב.

בלינוקס קיימים מספר כלים להקלטות מסך (כולל OBS Studio המפורסם), אך הקידוד שהם מקודדים את הוידאו מתאים יותר לשידור מאשר לעריכת וידאו (קידוד של H.264, WebM, OGG וכו') כך שוידאו כזה שאקליט מסך ולאחר מכן אערוך ואוסיף אפקטים, שינוי צבעים וכו' – יעבוד בצורה מאוד איטית בתוכנות כמו Premiere. עם Camtasia Studio לעומת זאת, הם משתמשים במקודדים שלהם (TSCC, TSC2) כך שהעריכה בתוך התוכנה היא לא רק קלה, הקובץ המיוצא קטן ב-90% מכל קובץ שיוצא בתוכנת הקלטת מסך בלינוקס. מדוע זה משנה? מכיוון שאני מחובר ב-ADSL וזמן ההעלאה שונה משמעותית, בין 3-4 דקות (וידאו שהוקלט ונערך עם Camtasia) לבין כל וידאו שנוצר בתוכנה אחרת (40-50 דקות). בנוסף, שום תוכנת הקלטת וידאו לא מאפשרת באופן רציני הקלטה עם Codec מקצועי (Apple ProRes, DNxHD, DNxHR) ו-OBS שכן מאפשר – נותן עיוות בוידאו או חונק את המעבד.

ויש גם את Premiere Pro ועם כל הכבוד למתחרים שלו מבוססי קוד פתוח, הם לחלוטין מחווירים לעומת ה-Premiere, קלות עבודה, תוספים ועוד. אני מכיר את Kdenlive ואת Openshot, ועם שתיהם לא הצלחתי להסתדר. שלא תבינו אותי לא נכון, אני מלא טענות כרימון כלפי אדובי – היא אינה משפרת מהירות רינדור וידאו (בין אם יש לכם כרטיס GTX 1080Ti יקר או GTX 980 – תקבלו את אותם ביצועי רינדוד אחד לאחד!), אינה יודעת לתמוך במעבדים מרובי ליבות, ושיטת המנוי שלה לא ממש מעודדת אנשים (כמוני) שלא משתמשים ב-Cloud של אדובי ולשלם 175 שקל לחודש רק בשביל הזכות להשתמש בתוכנה נשמע לי חסר פרופורציות. אם אני צריך תוכנה מסחרית, אני אשלם אליה תשלום חד פעמי וזהו. בלי מנויים ובלי הקפצות מחיר בדרך.

להלן הפתרונות שמצאתי:

  • הקלטת וידאו של מסך: אני אשתמש בתוכנות כמו Green Desktop ואחרים. נכון, זה לא יתן וידאו בגודל קטן של קבצים, ולכן אנצל את הוידאו להמרה (עם FFMPEG) ל-DNxHD על מנת לאפשר עריכת וידאו יותר קלה ל-Process מצד תוכנת עריכת הוידאו.
  • תוכנת עריכה מקצועית: אין Premiere Pro? ברוך הבא Davinci Resolve 15 ללינוקס (שמתקן את הבאגים של אודיו ללינוקס שהיה בגירסה 14). יש גירסה חופשית ויש גירסה מסחרית, אני כנראה ארכוש את המסחרית. יש בתוכנה כמעט כל מה שיש ב-Premiere ו-After Effects ומבחינת לימוד התוכנה היא נראית מקליפים שצפיתי – די קלה ללימוד.
  • פתרונות VPN: מי שאינו פרילאנסר אולי לא מכיר זאת, אבל כאן בישראל חברות רבות משתמשות ב-VPN מסוים ואינן זזות ממנו גם כשהמערכת יצאה לגמלאות. חלק מהחברות עדיין משתמש ב-VPN שמצריך ActiveX (אללה יוסטור), חלק משתמשות ב-JAVA, וחלק בכלל קיימות רק כ-Native ל-Windows. לזה אין ממש פתרון בלינוקס, ולכן אצטרך להשתמש כנראה ב-VM או Dual Boot, צריך להחליט..
  • מיקרוסופט אופיס: יש גוגל Docs ולמי שלא נוח, שיעביר קובץ PDF. ביי אופיס.

עם איזו הפצה אעבוד? כמו תמיד, אותה הפצה: Fedora האחרונה.

לסיכום: האם אני ממליץ למשתמשים לנטוש את Windows לטובת לינוקס? לא, אלא אם הם מוכנים להשקיע בלימוד לינוקס בצורה רצינית דרך טרמינל ופקודות. לי יש איזו דקה וחצי נסיון עם לינוקס אז אני יכול לעבור לשם ולהישאר שם רוב הזמן. מדוע אני עובר? כי סוף סוף יש לי פתרונות לרוב הדברים שאני צריך. אם לא היו לי פתרונות, לא הייתי עובר למרות שאני מחבב מאוד את לינוקס. יש לי עוד דברים לפתור (Kodi לא מעוניין להפעיל וידאו בחלון השני, מציג מסך שחור – תיקנתי בזמן שאני כותב את הפוסט הזה) אבל אני מאמין שעם השקעה פה ושם, אצליח להתגבר על הבעיות.

אז אתם רוצים ללמוד על לינוקס

אנחנו נמצאים בשנת 2018 וחדירת מערכת הלינוקס לחברות השונות נמצאת בעיצומה. כל סטארטאפ יודע מהיום הראשון שככל שמדובר בשרתים, הוא מהר מאוד יצטרך לעבוד על לינוקס. תחום מתודות ה-Devops והכלים שמשתמשים? סביר להניח שחלק גדול מהכלים יצטרכו שרת לינוקס לעבוד עליו. קונטיינרים? ב-Windows יש אבל זו בדיחה לא מצחיקה (שם זה בכלל VM) – אתם תצטרכו לינוקס להריץ את זה ואם אתם עובדים על עננים ציבוריים עם כלי אוטומציה, סביר להניח שהחיים יהיו יותר קלים עם טרמינל לינוקס (כן, מיקרוסופט משפרת את הקונסולות של ה-CMD וה-PowerShell אבל מספיק להריץ פקודת TOP ולהגדיל את החלון כדי לראות את הקונסולה Freak out ופתאום לא רואים כלום. במקרים כאלו פקודת reset תעזור, אגב).

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

מטבע הדברים, כשמערכת חדשה נכנסת, יהיו יותר ויותר אנשים שירצו ללמוד אותה. אחרי הכל, עולם ההייטק הוא תחרותי מאוד ומי שלא משקיע בעצמו במשך מספר שנים "גוזר" על עצמו להיתקע בתחומים שתהיה להם פחות ופחות דרישה. בל נשכח שהיום, למעט כל מיני מקומות ממשלתיים וחברות בטחוניות גדולות, אבטחת תעסוקה זה לא דבר שמובטח לך. יכול תמיד להיות מצב שבחודשים הקרובים תצטרך לאמר שלום למשרתך הנוכחית ותצטרך למצוא משהו אחר, ואם כל הידע שיש לך שווה לידע שהיה שווה משהו מלפני עשור ומעלה – אתה בצרות.

אז קודם כל, הדבר הכי חשוב שצריך לזכור לגבי תחום הלינוקס – זה שהתחום מתפתח בקצב רצחני. אנשים לומדים עכשיו קונטיינרים על Docker ו-Kubernetes? הגיע הזמן שתכירו את ה"אח" שלו – cri-o. משתמשים בפתרונות של Docker ל-Enterprise? זה מת, תעברו ל-Kubernetes או OpenShift (תלוי בסביבה ובכל מיני פרמטרים).

בשביל להתחיל ללמוד לינוקס, מתחילים תמיד בבסיס, ומומלץ כמה שפחות להיות "תלוים" בממשק הגרפי, כי כשתגיעו לנהל שרתי לינוקס כלשהם, לא תמצא שם ממשק גרפי (ואם תתקין דבר כזה, בוא נאמר שצוות ה-IT לא יתפוס ממך כאיש לינוקס רציני), ולכן הדבר הראשון זה להכיר בצורה הכי קרובה את המסוף (Terminal). להכיר את מערכת הקבצים בלינוקס, להכיר הרשאות, פקודות, ואם אפשר – להכיר כמה הפצות לינוקס. אובונטו זה נחמד ודי פופולרי בענן, לא ממש פופולרי ב-Enterprise, שם RHEL (של רד-האט) או CentOS עדיין שולטים. הפצות לינוקס כמו Debian ו-Arch או Gentoo הן טובות – למי שרוצה להשקיע ממש לעומק בלינוקס.

אחרי שמכירים הרשאות קבצים ותיקיות, sudo, כדאי להכיר דברים כמו הפניות (redirection) כמו > | < שמאפשרות לקחת פלט מסוים ולהעביר אותו לפקודות/אפליקציות אחרות, כדאי להכיר גם פקודות המאפשרות לבצע מניפולציות לקבצים, פקודות כמו SED, AWK, GREP ועוד. יש כמובן לא מעט פקודות, ותמיד לכל פקודה ניתן למצוא את ה"מדריך" שלה עם פקודת man, כך שלדוגמא אם אין לי מושג ירקרק מה לכל הרוחות עושה awk, פקודת man awk תתן לך הסברים. חלק מה-manuals ארוכים מאוד ומפורטים מאוד (תסתכל על man awk כמה הוא ארוך!) וחלק מאוד קצרים וחיפוש בגוגל יוכל לעזור.

אחרי שנלמד כמה וכמה פקודות, יגיע הזמן שנצטרך שפת סקריפטים כדי להריץ את הפקודות ביחד מתוך קובץ. למי שמגיע מעולם מיקרוסופט, מכיר בוודאי קבצי Batch או PowerShell. בלינוקס כיום הדבר הכי פופולרי זה BASH, ועם BASH תוכלו לכתוב סקריפטים קצרים או ארוכים. השפה עצמה די קלה ללימוד אך מצד שני BASH מאוד פדנטי לגבי רווחים. יהיו לכם הרבה מקרים שתשברו את הראש מדוע סקריפט לא עובד ורק אחרי שעות חיפוש תגלו ש… ששכחתם רווח בין פקודה לסוגריים או שחסר איזה ; ואחד החסרונות הגדולים של BASH הוא שאין לך debug אמיתי.

עוד דבר חשוב – עורך טקסטים. כאן אני ממליץ להכיר את VIM למרות שרבים מעדיפים את nano, רק ש-nano לא יהיה זמין לכם בשרתים רבים של אחרים ו-VIM אחרי שמתרגלים אליו, אפשר לעבוד ולעשות דברים במהירות. עוד אופציה שאני יכול להמליץ עליה היא emacs (יש מלחמה בין אנשי לינוקס בין עורכי הטקסט לגבי מי יותר טוב ומי יותר נוח. הכל תלוי במשתמש).

בשביל לכתוב סקריפטים ואפליקציות רציניות, נצטרך משהו יותר "כבד" מ-BASH, ואחת ההמלצות הכי פופולריות היא שפת Python. עם Python אנחנו יכולים לכתוב דברים שיכלנו גם לכתוב ב-BASH, אבל היתרון הגדול של Python זו הכמות העצומה של הספריות שאנחנו יכולים להתממשק אליהם ולבצע דברים. כמעט כל אפליקציה או שרות שקיימים ללינוקס תומכים ב-API כלשהו ו-Python יכול לעזור לנו להתממשק ולבצע דברים. אגב, לפי מאמר שפורסם מלפני מס' ימים, Python היא שפת התכנות הכי פופולרית כיום, כך שמאוד מומלץ להכיר אותה.

ברגע שאנחנו מכירים לא רע את שפת Python ו-BASH, מכירים פקודות פופולריות של לינוקס ואנחנו מרגישים די נוח עם הטרמינל, יהיה כדאי להכיר כלי אוטומציה, כלים אלו יעזרו לכם לבצע דברים שונים בשרתים אחרים כך שלא תצטרכו להמציא את הגלגל מחדש בכל פעם ולא תצטרכו להריץ פקודה 20 פעם רק כי יש לכם 20 שרתים שונים. כלי האוטומציה שאני ממליץ עליו הוא Ansible שמאפשר לעשות כמעט כל דבר תוך כתיבת Playbook (שזה בעצם ה"תסריט") בפורמט YAML ומודולים ב.. Python. יש גם כלים אחרים ואם אתם עובדים עם עננים ציבוריים, סביר להניח שימליצו לכם לעבוד על consul או עם terraform. כל חברה והעדפותיה, כך שאם אתם חושבים לעבוד בתפקיד "Devops", כדאי שתכירו גם את terraform ותלמדו איך להתחבר לעננים כמו AWS כדי לעשות דברים שונים דרך ה-API של אמזון לדוגמא. עוד תחום שכדאי ללמוד, הוא ניהול קוד (כן, גם לדברים הקטנים שלך) עם כלי כמו GIT. אתה יכול להרים לעצמך בבית לדוגמא את GOGS, מנהל GIT קטן וחמוד שיכול לעזור לך הרבה.

דבר נוסף שחשוב הם השרותים שנמצאים בלינוקס. תכירו את SystemD, תכירו כלי כמו TOP (למפונקים שביניכם – htop), תכירו איך לנהל דיסק עם Volume Management, ועוד ועוד. כל קורס טוב שמדריך לינוקס מסביר פחות או יותר על הדברים רק שחשוב לזכור: הקורסים מסבירים דברים בצורה בסיסית בלבד וה"חבר" הכי טוב שלך הם פקודת ה-man לפקודות השונות.

מכאן – הכל תלוי לאן אתם רוצים לקחת את ההכרות שלכם עם לינוקס. תכנות? תכירו את השפות והכלים, ויש מאלו המון. כך לדוגמא אם אתם רוצים ללמוד על Kernel, פיתוח דרייברים וכו', תצטרכו להכיר עמוק את ה-GNU Chaintools ואת GCC, את GDB כ-Debugger ואת ה-proc filesystem, ניהול זכרון, scheduling, ועוד ועוד. שפות כמו PHP? תכירו את השפה וערימות המודולים שלה ואת הדרך להטעין דינמית מודולים, וכו' וכו'.

לסיכום: אם אתה רציני לגבי לימוד לינוקס, תתחיל בדברים שתיארתי לעיל. זה לוקח זמן ותרגול, זה לא MCITP של מיקרוסופט! חשוב שתגדיר לעצמך מה אתה רוצה ללמוד בלינוקס. חושב ללמוד על הכל בלינוקס? שכח מזה. הצצה לדוגמא בגירסאות Fedora שונות יכולה להראות לך כמה דברים משתנים בחודשים ספורים כך שמדובר ב"מטרה נעה". לכן חשוב להתפקס בדברים שאתה רוצה ו/או צריך ללמוד. את השאר תלמד בזמנך החופשי לפי הצרכים שלך.