על אינטל, אנדרואיד ושקרים

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

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

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

הבעיה המרכזית של השוק: רוב היצרנים אמרו לאינטל "תודה, לא תודה" והם העדיפו לבחור פתרון של Qualcomm, nVidia, ויצרנים אחרים שמייצרים פתרונות מבוססים ARM. חלק מהיצרנים הסכימו למכור מכשירי אנדרואיד מבוססי הפתרון של אינטל, אבל רק כ-עוד פתרון, את זה אפשר לראות לדוגמא אצל לנובו עם ה-K800.

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

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

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

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

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

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

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

  • להוסיף קוד בינארי לאפליקציה, כך שאותו חלק בינארי ירוץ Native באנדרואיד על המעבד (אפשר לראות זאת באפליקציות רבות שמעבדות תמונה, אודיו וכו')
  • לוותר לגמרי על כתיבה ב-JAVA ולהשתמש ב-NDK של אנדרואיד כדי לכתוב את האפליקציה כולה כאפליקציה בינארית.

אלו כמו שיטות לגטימיות… כל עוד אותו אנדרואיד רץ על מעבד מבוסס ARM.

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

  • אם האפליקציה כתובה לגמרי ב-JAVA, הביצועים יהיו בערך כמו המעבדים של ARM ולפעמים הם ירוצו יותר מהר.
  • אם האפליקציה כתובה ב-JAVA אך ישנם חלקים בינאריים שכתובים עבור ARM, באותם חלקים בינאריים, המערכת תצטרך להשתמש באמולציה, מה שיגרום למעבד להתאמץ הרבה יותר והביצועים יהיו הרבה יותר איטיים. כמה איטיים? בין 25-50% יותר איטי.
  • אם האפליקציה היא בינארית וקומפלה רק עבור ARM – הביצועים יהיו גרועים עם צריכה כבדה של הסוללה והמעבד יתאמץ הרבה יותר כדי להמיר בינארי מ-ARM לאינטל.
  • אם האפליקציה היא בינארית לגמרי וקומפלה עבור אינטל – היא תרוץ מהר ולעיתים יותר מהר ממה שמעבד ARM יכול להציע, אבל המחיר – הוא בביצועי הסוללה, צפו ל-20-30% פחות סוללה בהשוואה למעבדי ARM.

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

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

ועוד נקודה שהמסמך בקישור לעיל לא מתייחס אליו אך חשוב שאתם תדעו: פיתוח אפליקציית אנדרואיד, בין אם בצורה של Native Binary או JAVA – כולל התאמות לתצורות מכשירים פופולאריות (סמארטפון/טאבלט/פאבלט) לוקח זמן ומשאבים. כרגע זה לוקח יותר מאשר לכתוב לאייפון (שוב, מבחינת עיצוב UX) אבל עוד חודשיים המצב גם עם אפל ישתנה (חכו להכרזות ב-WWDC הקרוב) ורוב מוחלט של החברות פשוט לא מוכנים להשקיע עוד משאבים בקימפול האפליקציות לאינטל אם זה דורש השקעה (כמו במקרים של אפליקציות בינאריות). השוק עצמו לא דורש זאת, אז גם אותן חברות עושות מינימום ואם יש בעיה עם קימפול ל-X86 אז הן פשוט מורידות אותו בשורת הקומפילציה ומוציאות גירסת ARM לאפליקציה. הרבה אפליקציות רצות נהדר על מעבדי אינטל, אבל אף פעם אינך יודע אם האפליקציה שאתה בדיוק צריך כרגע לבצע מטלה מסוימת – תהיה תואמת או לא ואם היא תרוץ בצורה טובה או לא. אתה אוהבת הפתעות?

מה קורה, אינטל?

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

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

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

קודם כל נבדוק מי יכולים להיות המתחרים של אינטל שיכולים להציע הצעות מפתות לגוגל ואחרים. נתחיל עם Oracle.

מה הסיכוי שאמזון, פייסבוק, או גוגל יעברו למעבדי Sparc? טכנית, המעבדים הללו יותר מהירים ממה שאינטל מציעה בקצה העליון – במיוחד בכל מה שקשור לאפליקציות שיודעות להשתרשר (Threading). גם באינטל יש תמיכה ב-Threading אך היא מצומצמת (בהשוואה למה שיש ב-SUN) ולמעבדי ה-Sparc מסדרות T, X, M, והם מאפשרים לעשות דברים מאוד מעניינים בוירטואליזציה (ספציפית עם Solaris Zones אם אתם מריצים מערכות סולאריס כמכונות וירטואליות על שרת SUN עם מעבד Sparc רציני).

הסיכוי שאותן חברות יחתמו על רכישה מאסיבית מאורקל הוא אפס. מדוע? מכמה סיבות.

הסיבה הראשונה היא שאורקל/SUN עדיין חיה בשנות ה-80 כשיש צורך לשלם רשיונות פר ליבות, דבר שאף חברה מהשלישיה (גוגל,אמזון,פייסבוק) לא מוכנה אפילו לשמוע על כך. הסיבה השניה קשורה יותר לביצועים, כך לדוגמא אם תסתכלו כאן תראו שגם המעבד האחרון של SUN, ה-T5 חוטף נבוט בראש מ-Xeon E7 וה-E7 מהיר במקרים רבים ב-30% מה-T5 כשבודקים ביצועי אפליקציות, ועוד לא דיברנו על כך שאינטל יכולה לחתוך מחירים הרבה יותר מאורקל.

(אגב, אם אני כבר מזכיר את SUN, בקרוב תהיה מסיבת עיתונאים בה תוכרז גירסה 11.2 של סולאריס. לא, אתם לא ממש צריכים להתכונן לשדרוג מאסיבי אם אתם משתמשים בסולאריס. 3 שנים אחרי שיצאה סולאריס 11 לשוק, התוספות שיש ב-11.2 הם Open Stack ו-Puppet ביחד עם עוד כמה תוספות. פלא שהפצות לינוקס אוכלות לאורקל לקוחות?)

מכאן הדברים מתפצלים לכיוונים מעניינים.

moboמהנדס בכיר בגוגל העלה תמונה (משמאל, לחצו להגדלה) של ה-Red Board החדש שלהם. חדי העין שביניכם שיסתכלו בתמונה המוגדלת יראו כי הלוח שונה לחלוטין מכל לוח אחר שקיים בשוק, ויש סיבה לכך: הוא לא מבוסס מעבד אינטל או X86/X64. הלוח הזה הוא הלוח הראשון שגוגל תכננה שרץ על המעבד של IBM, ה-Power8.

מדוע מעבד זה? באוגוסט IBM הכריזה ביחד עם חברות כמו גוגל, nVidia ורבות אחרות על OpenPower, בסיס לחברות אחרות לקחת את פלטפורמת Power שנפתחה, ולבנות מעבדים וחומרה מסביב. בגוגל לקחו את העניין ברצינות והלוח הוא התוצאה הראשונה.

מדוע Power8? כי מדובר במפלצת ביצועים שעד לאחרונה לא היה לה תחרות רצינית בשוק (לפחות לא עד שהגיע Xeon E7 V2 שצריכת החשמל שלו בשמיים!), ובשביל גוגל ה-OpenPower מאפשר לתכנן את הכל מהתחלה ללא צורך בהתחשבות בדברים ישנים שהיו צריכים להישאר במערכות X86. אם תסתכלו לדוגמא על הלוח, תראו שאין בכלל תושבות זכרון, הוא ישב בצורה אחרת ממה שהיה צריך עם מעבדי XEON (זכרון צמוד כמה שיותר למעבד).

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

גוגל במקביל עובדת על עוד פרויקט שכרגע עדיין לא מפורסמים פרטים (כך שמה שאני כותב הוא יותר קשור לשמועות עקשניות) להכניס מעבדי ARM של AMD (ה-Opteron A1100) בחלק אחר של עבודה שם. אני מאמין שנשמע יותר על כך לקראת נובמבר.

באמזון החליטו לעבור ל-ARM, אז מה אמזון עשתה? היא "חטפה" את המהנדסים שעבדו ב-Calxeda ז"ל בשביל לעבוד על מעבד עבורה מבוסס ARM של חברת Applied Micro כפי שתוכלו לראות כאן. מבחינת אמזון, התכנון יהיה להעביר כנראה מערכות פנימיות ל-ARM (לפי תכנון עומסי עבודה, Front End וכו') ולאחר מכן בהדרגה להציע ללקוחות שרתים וירטואליים מבוססי ARM במחירים זולים מאוד (עשיריות הסנט ומתחת לכך).

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

מבחינת מיקרוסופט, לחברה אין את הלוקסוס כמו פייסבוק, גוגל ואמזון שמשתמשים בלינוקס ושהמעבר למעבד אחר אינו כזה מורכב. מיקרוסופט שמשתמשת ב-Windows Server 2012 כמעט לכל המערכות שלה, תצטרך בשלב ראשון לעשות Porting ל-Windows 2012 מ-X64 ל-ARM וזו עבודה גדולה מאוד (ה-Core עצמו כבר רץ תחת ARM, אבל שאר החלקים שמרכיבים את 2012 – עדיין לא) ואם מיקרוסופט חכמים, אז הם התחילו לעבוד על כך, אבל עד שאין מערכת 2012 מוכנה לרוץ החל מה-Boot על ARM, מיקרוסופט לא יכולה לעבור לשום פלטפורמה אחרת. ברגע ש-2012 תהיה מוכנה, אז סביר להניח שמיקרוסופט תראה מה קורה בשוק מבחינת הצעות מבוססות ARM, ביצועים, מחירים – וכנראה שעוד שנתיים-שלוש – גם היא תתחיל לעבור.

באשר לחברות אחרות – סביר להניח שהחל משנה הבאה נראה יצרנים מוציאים לוחות-אם עם Opteron A1100 של AMD (שזה מעבד ARM) שייועדו בעיקר עבור ספקי תשתיות ענן (אמזון, גוגל וכו') והמחיר הזול שאותן חברות יציעו (הרבה יותר זול מ-VM על אינטל) יתחיל לשכנע סטארט-אפים וחברות אחרות להעביר חלק ממכונות ה-VM ל-ARM בשלבים כדי "לבדוק את המים". עם תמחור אגרסיבי מצד אותם ספקי IAAS, יותר ויותר חברות יראו שאפשר לקבל מה שהם התרגלו אליו – על ARM במחיר זול יותר, והן יעברו.

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

מה שאינטל, לעניות דעתי, יכולה לעשות זה להתבגר, לסגור על רישוי ARM, לרכוש עיצוב מוכן של אחד המתחרים ולהוציא לשוק (כדי לקבל דריסה) – ומשם להתחיל לבנות מעבדים לשרתים (וטאבלטים?) עם הנסיון העשיר שיש לה. השאלה אם אינטל תתעורר בזמן ולא תחזור על הפאדיחה של מעבד ה-Itanium (מעבד שאף אחד לא רצה ולבסוף אינטל בשקט העתיקה את תוספות ה-64 ביט ש-AMD המציאו).

האם אינטל תבין את הפואנטה לפני שהיא תתחיל להפסיד ברבעונים הבאים עוד? שאלה מצויינת.

כמה מילים על הדרייבר של nVidia ועל מסכים בעייתיים

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

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

בלינוקס ישנם 2 סוגים של דרייברים לכרטיסים הגרפיים של nVidia ל-PC (ל-ARM זה סיפור אחר לגמרי). ישנו הדרייבר הפתוח בשם Nouveua. זהו דרייבר שנעשה ע"י "הנדסה לאחור" (Reverse Engineering) והוא בקוד פתוח. הדרייבר הזה נותן תמיכה טובה בגרפיקה דו/תלת מימד, וידאו, Boot גרפי ועוד. החל מפברואר חברת nVidia החלה גם לתרום קוד לדרייבר הזה (ולפני כן היא בשקט תרמה כרטיסים חדשים לפני יציאה רשמית כך שכרטיסים חדשים נתמכו ע"י הדרייבר ביום הראשון שהם יצאו לשוק). הדרייבר הזה יכול לשמש משתמשי לינוקס עם 1-2 מסכים בצורה די טובה אבל הוא חלש בביצועים בכל הקשור למשחקים, עריכת וידאו, תוכנות תלת מימד וכו'.

מהצד השני ישנו דרייבר בינארי רשמי של nVidia. הדרייבר הזה תומך בכל תכונה שיש לכרטיסי המסך מבוססי nVidia כולל תמיכה בדברים חדשים כמו Display Port, Thunderbolt (ללא "הכנסה חמה"), כרטיסים מרובים במחשב אחד, SLI, גרפיקה ווידאו מהיר (אותה מהירות כמו Windows). הדרייבר עצמו הוא סגור (הסיבות שהן סגור: הדרייברים של לינוקס, מק ו-Windows משתמשים באותו קוד בסיס ועקב שילוב של קוד מגורמים שונים מחוץ ל-nVidia – אין אפשרות לשחרר אותו), מה שגורם לו להיות בעייתי בעולם הלינוקס, עולם שבו גירסת הליבה משתנה תדיר והמשתמש גם יכול לשנות את הגירסה, ומכיוון שרוב הדרייבר הוא מודול ליבה (מפלצתי – 11.3 מגהבייט. שזה פי כמה וכמה יותר מכל מודול בליבה), יש צורך בקימפול מחדש בכל פעם שמשנים קרנל (ב-fedora יש את dkms ו-akmod שמטפלים בכך אוטומטית בעת הפעלת הלינוקס) – כך שמבחינת ביצועים הדרייבר יתן לך תוצאות טובות, אולם הדרך להגיע לשם היא לא תמיד קלה.

אחת הבעיות הגדולות עם הדרייבים הרשמיים של nVidia היא להסתדר עם ציוד בעייתי, וכשאני מדבר על ציוד בעייתי, אני מדבר על ציודים עלומי שם שלא ממש מחזירים מידע שהדרייבר מצפה לקבל. כך לדוגמא, הח"מ משתמש במסך IPS עם רזולוציית 2560X1440 מייצור קוריאני ללא שם (על המסך כתוב CrossOver אולם כשמנסים לקרוא דרך לינוקס וכרטיס המסך את הפרטים של הכרטיס, מקבלים תשובה של QHD270QHD270QHD270 וג'יבריש בכל הקשור לרזולוציות שהמסך תומך). כשהחלק הגרפי (Xorg) בלינוקס עולה, הדרייבר מיד נופל בטענה שהוא לא מכיר את המסך הזה. לעומתו הדרייבר החופשי Nouveau מבין שזהו עוד מסך עלום שם עם רזולוצייה של 2560X1440 והוא פשוט מתעלם ממה שהמסך אומר ומפעיל עליו את הרזולוציה הנ"ל – וזה עובד מצוין, רק שביצועי תלת מימד/משחקים וכו' לא תקבל.

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

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

  • חיבור VGA נחשב עבור הכרטיס הגרפי כחיבור למסך CRT ישן (כן, מסכי LCD עם חיבור VGA משתמשים במעגלים פנימיים להדמיית מסך אנלוגי) ולפיכך אם תחבר מסך ב-VGA, הדרייבר יציין לעצמו שיש CRT
  • חיבורים כמו DVI, DVI-DL, Thunderbold, DisplayPort, HDMI הם חיבורים דיגיטליים ולפיכך הדרייבר ממפה אותם כחיבורי DFP (ר"ת Digital Flat Panel) ונותן להם מספרים, כך שאם יש לך מסך עם אחד מהחיבורים שציינתי לעיל, הוא ימפה אותם לפי סדר מספרי DFP-0, DFP-1 וכו'. קישוריות כזו כוללת תקשורת דו כיוונית מלאה והמסך נותן הרבה יותר מידע על עצמו לכרטיס המסך. הוא נותן לכרטיס הגרפי פרטים כמו גודל פיזי של הפאנל, כל האזולוציות שהוא תומך בהן, קצבי רענון מסך שהוא תומך בהם, נקודות לאינצ' (ככל שיש יותר נקודות – האותיות יהיו יותר קטנות ולכן אם אתה רואה את הטקסט באותיות מאוד קטנות – כדאי שתעלה את ה-DPI ל-128 לדוגמא במקום 96 שהוא ברירת המחדל), והאם המסך תומך בכיבוי, צריכת חשמל נמוכה ועוד.

לפיכך, אם המסך הבעייתי הוא בחיבור DFP-1 לדוגמא (כמו במקרה שלי), נצטרך להזין לו שורת ModeLine שתגדיר לו את הרזולוציה והרענון בצורה ידנית (כלומר ספציפית) או שנשתמש בקובץ בינארי פשוט ונבקש מהדרייבר שיתייחס לקובץ הבינארי במקום לנסות לקרוא את פרטי המסך. במידה ויש לך מספר מסכים בעייתיים, תוכל להשתמש בקבצים בינאריים שונים שנמצאים באינטרנט או שפשוט תוכל להזין את ה-ModeLine בתוך קובץ etc/xorg.cong/ כפי שזה מופיע ההרחבה בפוסט הזה.

חשוב לזכור: מכיוון שרוב הפצות הלינוקס מפעילות את עצמן במצב גרפי, אם התקנת את הדרייבר הבינארי, סביר להניח שתקבל סמן מהבהב ותו לא. לחץ על מקשים ALT F2 והתחבר כ-root ולאחר מכן הפעל פקודת: telinit 3 כדי שהלינוקס יעבור למצב טקסטואלי. לאחר שהגדרת את השינויים, תוכל לנסות אותם ע"י הפעלת פקודת startx (כדאי למחוק את קבצי var/log/Xorg*log/ לפני כן כדי שאם תהיה תקלה – תוכל לראות בקובץ החדש שנוצר היכן התקלה, סביר להניח שתראה זאת בסוף הקובץ ה-log). לאחר שתצליח להיכנס למצב גרפי, צא ממנו ע"י בחירה ב-logout או בחירת reboot.

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

בלינוקס, בשביל להשתמש בכל הטרראם הזה, יש צורך בדרייבר משולב שנקרא BumbleBee (כן, כמו ההוא מ-Transformers). הדרייבר (הוא לא בדיוק דרייבר, זה יותר ערכת סקריפטים וספריות) לאחר ההתקנה אינו מספיק, ויש לבצע alias או לכתוב 2 שורות סקריפט ב-Bash כדי לגרום לאפליקציות להכיר בצ'יפ של nVidia ולרוץ על אותו צ'יפ גרפי. עוד פרטים בדף הבית של BumbleBee.

אם רוצים ביצועים יותר גבוהים מאותם מחשבים ניידיים ועם הצ'יפ של nVidia, אז תכירו את פרויקט Primus והחבילה primus נמצאת בכל גירסת לינוקס נפוצה. ב-Fedora אפשר להתקין בפשטות עם yum install primus

הרצת אפליקציה עם primus: כל מה שצריך זה לאמר למערכת להשתמש במנוע primus הוא להוסיף את הפרמטרים b primus- כלומר אם אני רוצה להריץ glxgears לדוגמא, אז הפקודה תהיה:

optirun -b primus glxgears

בהצלחה

תכירו: פרויקט ARA

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

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

גוגל (באמצעות רכישת מוטורולה ועתה כחטיבה בתוך גוגל לאחר שמוטורולה נמכרה) החליטה לשנות את המפה ולהציע צורה חדשה שיותר מזכירה את הצורה של השינויים ב-PC.

IMG_9815תכירו את פרויקט ARA.

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

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

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

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

האם יהיה שווה להזמין מכשיר כזה? זה כמובן תלוי. אם זה "בשביל הדודה", כלומר משתמש שבקושי מבין מה הולך עם המכשיר שלו, אז לא. משתמש כזה אינו צריך מכשיר כזה. לעומת זאת, משתמשים טכניים שמבינים טוב בטכנולוגיה ורוצים להיות מעודכנים – אני בהחלט אמליץ להם לרכוש מכשיר כזה. חישבו על כך: מחר חברה X יוצאת עם מעבד שנותן ביצועים חזקים ואתם מעוניינים באותו מעבד. מה עדיף? להשקיע 4000+ שקל במכשיר חדש או 500 שקל (נניח) במודול עבור הטלפון ARA שלכם?

אני ממתין בשקיקה לראות את תגובת אפל 🙂

תכירו את Asus Chromebox

מי שעוקב אחר גוגל רואה בוודאי איך החברה עושה הכל כדי לקדם את הרעיון של הדפדפן שלה ותוכנות לדפדפן שלה.הם לא עוצרים בדפדפן ורינדור HTML5, אלא גם מפתחים תוספות (שאחרים קוראים לזה "ActiveX דור שני" – לכך אתייחס בהזמנות אחרת) ויוצרים פורמט של Package כך שאפליקציה שתכתוב תוכל להפיץ אותה דרך החנות (החנות שודרגה לאחרונה להפיץ גם אפליקציות בתשלום), ולהריץ אותה על דפדפן כרום, על מחשב ChromeBook/ChromeBox עם ChromeOS ובעתיד הקרוב – גם על מכשירי אנדרואיד ו-IOS, כך שעם אפליקציה אחת תוכל "לכבוש" את כל הפלטפורמות. (אגב, במסגרת כנס Build האחרון שנערך זה עתה, הכריזה מיקרוסופט בערך על אותו קונספט – Universal Binaries שיתנו למפתחים לכתוב קוד שירוץ גם על Windows רגיל וגם על Windows Phone).

עד היום מספר חברות הוציאו מחשבים ניידים עם מפרט נמוך מאוד כדי להריץ ChromeOS – אלו כמובן ה-ChromeBooks. ברוב המקרים מדובר על מעבד סלרון, 2 ג'יגהבייט זכרון ו-16 ג'יגהבייט אחסון מקומי (חשבון הגוגל Drive שלך מורחב אוטומטית בעוד 100 ג'יגה לאחר ש"תשדך" אותו עם Chromebook). יש כמובן יוצאים מהכלל כמו סמסונג ו-HP שחלק מדגמי המכשירים שלהם כוללים מעבד ARM במקום מעבד אינטלי והם נותנים ביצועים לא רעים אך ביצועי הסוללה שלהם – טובים מאוד. ל-Acer היה דגם (שקשה להשיג אותו כיום) של ChromeBook עם 4 ג'יגה זכרון. הדגם הישן יותר דווקא פופולרי כי ניתן להחליף ולשדרג שם זכרון/SSD.

ב-Asus לקחו את הזמן לראות איך השוק מגיב לכל עניין ה-ChromeOS ולאחר שראו שהמכירות של המתחרים בתחום אינם רעים, הם החליטו להיכנס, אם כי לא עם ChromeBook אלא ChromeBox (אני מאמין שזה היה עניין של שכנוע מצד גוגל. אחרי הכל, אסוס וגוגל שותפים ותיקים בפיתוח ויצור מכשירים כמו הנקסוס 7).

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

הפעם, לשם שינוי, אסוס ממש תכננו בצורה חכמה את המכשיר. כך לדוגמא המכשיר כולל 4 יציאות USB-3 (ולא יציאות USB-2 עם איזו יציאה אחת שהיא USB-3), יש קורא כרטיסים, יש יציאת Display Port וגם יציאת HDMI. גם חיבורי הרשת לא הוזנחו ויש כניסת ג'יגהביט לרשת חוטית וכמובן Wifi עם תמיכה לתקן  N (כולל Dual Band) ו-Bluetooth 4 ולא שכחו את ה-Kensington Lock, כך שתוכל לנעול את המכשיר שלא יגנב. המעבד (בגירסת ה-179$ – שזהו מחירו הרשמי) הוא אמנם Celeron אך הוא מסידרת Haswell, כלומר במקרים שהוא ממש מתאמץ, הוא צורך בערך 11.2 וואט, כך שישנו אספקט של חסכון נחמד בחשמל.

אסוס תמכור את המכשיר הזה ב-3 גרסאות: גירסה עם סלרון במחיר 179$, גירסה עם מעבד i5 וגם גירסה עם מעבד i7 (כאשר גרסאות i5, i7 עדיין אינן זמינות בשוק ולמען האמת – המחירים שמדברים עליהם – יקרים מאוד).

אז יש לנו כאן מכשיר ChromeBox במחיר זול מאוד עם מפרט טכני מרשים.

אבל הדבר הכי מרשים הוא שהמכשיר בעצם "פתוח". מה זה אומר? ש-ASUS לא תבטל אחריות אם תפתחו את המכשיר ותשדרגו אותו, וכאן נמצא אחד היתרונות הגדולים של ה-ChromeBox הנ"ל: אפשר להרחיב את הזכרון עד ל–16 ג'יגהבייט זכרון ואת ה-SSD הפנימי ניתן להחליף עד לגודל של 1 טרהבייט (סמסונג הוציאה כזה)

אז ה-ChromeBox של ASUS נותן לנו אפשרות להרחיב את הזכרון ואת הדיסק לכמות מכובדת. האם זה ישנה משהו ל-ChromeOS? אם תרחיבו מ-2 ל-4 ג'יגהבייט של RAM, בהחלט יהיו שיפורים אך מעבר לכך – לא ממש. מה שכן, אפשר להפוך את ה-ChromeBox למכונת לינוקס נחמדה (ע"י התקנה של Cruton או Chrubunto – תוכלו לראות עוד פרטים כאן) ובכך המכשיר הנחמד יכול להיות גם מכונת לינוקס וגם מכונת ChromeOS עם מפרט טכני נאה וכל זאת במחיר ממש זול.

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

הערה מקומית לסיום: כן, בישראל ל-ASUS יש תמיכה מתחת לכל ביקורת ושרות על הפרצוף בכל הקשור לתקלות, קחו את זה בחשבון לפני שאתם מזמינים מכשיר (אינני יודע אם הוא ימכר בארץ או לא). אישית אני הזמנתי בשבוע שעבר את ה-ChromeBox לצרכי בדיקה של ChromeOS (וגם לבצע לו Dual Boot ל-Fedora a שישמש אותי בתור התחנה הקבועה שלי. בין כה עבודות כבדות ירוצו על המכונות האחרות שיש לי כאן בבית) ואם תהיה לי תקלה, אני אעדיף להזמין חלקים מאשר לסמוך על השרות בארץ.

ה-NSA והמפגש עם האירוניה

מי שנמצא בתחום אבטחת מידע ועוקב אחרי החדשות, יזכור בוודאי את הסיפור שהיה לפני כשנתיים עם חברת Huawei וחברת ZTE הסיניות. מדובר ב-2 חברות סיניות גדולות שרצו למכור בארה"ב ציוד תקשורת בכל הרמות – החל מהרמה הביתית (מודמים DSL וכבלים) ועד לרמה של נתבי תקשורת לסיבים, מתגים חכמים וכו' – וכל זאת במחיר זול משמעותית ממחיר מהציוד שמיוצר ע"י חברות אמריקאיות.

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

בסופו של דבר אותן חברות סיניות החליטו שהם יתמקדו בשוק הפרטי ולא יכנסו לשוק הארגוני ושוק ה-Telco.

אבל, אתם יודעים, החיים – מלאים באירוניה.

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

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

לפחות בשנתיים שלוש האחרונות מפמפמים לנו כמה הסינים הם הנבלות שמתקיפים התקפות סייבר את ארה"ב ושאר מדינות. זה כנראה נכון, אבל ה-NSA עוקף את הסינים בכל מובן אפשרי. הסינים מסוגלים ליזום התקפות סייבר, אבל רק לאחרונה דווח של-NSA יש יכולת חדשה מעניינת: את היכולת להקליט שיחות של מדינה שלמה!! לא מדובר על איזה Meta Data, אלא הקלטה קולית של כל השיחות!

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

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

אמא'לה, "מתקפת האקרים" !

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

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

היום התבשרנו שקבוצת אמן מזהירה כי "מתקפת האקרים" תתחולל ב-7/4. הודעה מאוד חשובה! כל כך חשובה שאם מישהו יריץ חיפוש פשוט של OPISRAEL ימצא די בקלות את הוידאו הבא  שבו עוד פעם קבוצת ילדים משועממים יריצו סקריפטים מוכנים (נראה לכם שהם יודעים לכתוב אשכרה את זה?), ושוב הם יעשו השחתת עמודי בית לאתרים שברובם המוחץ לא קיבלו מעולם שום אבטחה, או שספק האחסון המשותף שלהם שם קצוץ בכל מה שקשור על אבטחת מידע (אבל יבטיח ש"יש לנו פיירוול משוכלל!"). במילים אחרות, מה שקורה כל יום לערימות אתרים בארץ, יקרה שוב ב-7/4. חושבים שיהיה התקפת DDOS? אז יכול להיות שהילדים הללו ינסו ויראו מה שאתרים גדולים בארץ עושים – פשוט מנתקים תקשורת מחו"ל והופס, אין DDOS. נגמרה הבעיה. 

את כל מה שתיארתי כל איש אבטחת מידע רציני יודע, ואם הוא ממש מקצועי, אז ה-7/4 לא ממש יטריד אותו. אולי הוא יציץ מדי פעם לראות מה קורה עם הטראפיק והלוגים, כי אם הוא רציני, הוא יודע להגן והוא ממש לא צריך את זעקות השווא של "זאב זאב" מטעם קבוצת אמן. בסופו של דבר, כפי שציין ידידי הלל, כשתהיה באמת התקפת חדירה (שאותה בד"כ עושים חברות מקצוענים שבוודאי לא רצה להוציא וידאו יוטיוב על תאריך עתידי להתקפה!) – אף אחד לא יתייחס, כי כולם היו בפאניקה מההתרעה המפגרת שהוצאה, וכשבאמת יצטרכו שאנשים יקשיחו אבטחה, זה לא יבוצע. הרי כבר היינו בסרט הזה לפני חצי שנה, שנה, שנתיים וכו'.

בכלכליסט, כרגיל, החליטו לנסות גם לעשות "1+1" על חשבון ויזה כא"ל. מדוע? כי שוב, "האקרים" "פרצו" לאתר והפיצו את תוכן ה-DB. מה שהעיתונאי לא בודק או שלא יודע, זה שויזה, כמו חברות רבות אחרות בישראל, מוציאות לחברות בניית אתרים פרויקטים של בניית מיני אתר (mini site) שאין לו כל קשר תשתיתי בין המיני סייט לאתר הראשי. כך גם חברות פרסום עושות. 

אז בוא נסתכל על האתר שנפרץ – אתר cal-weekend יושב על כתובת IP שהיא 212.29.241.21 ששייכת לעסק שמאחסן ב-35 שקל אתר. כמובן שמדבר כזה אין מה לצפות ממש לאותה אבטחה שויזה כא"ל משתמשת בה לתשתית שלהם, כי זה אתר לתקופה קצרה לשם מבצע. שם לא היו ולא יהיו נתונים רגישים שמגיעים משרתי ויזה כא"ל. הכתובות של ויזה כא"ל, אגב, הם בכלל 3 קלאסים C (ויש להם כמובן עוד) כפי שניתן לראות כאן, כך שכפי שאתם רואים, אין שום קשר בין האתרים, אבל היי – אפשר לרמוז שויזה נפרצה, למרות שהיא לא!

לכן המלצתי היא פשוטה: מי שיש לו אתר שיושב באחסון אתרים ורוצה להימנע מפדיחות של Defacement, שיעבור ל-VPS או שיכתוב סקריפט שבודק את דפי הבית ואם משהו משתנה, שיחזיר העתק דף בחזרה ויחסום את הכתובת שממנה בוצע POST (זה ב-לוגים של ה-Virtualhost). כמובן שמומלץ כבר עכשיו לבדוק שהפלטפורמה שאתה משתמש היא הכי עדכנית, התוספים הם הכי עדכניים ושלא פתחת הרשאות 777 בתיקיות (רק כי היית עצלן להבין למה זה נותן לך Forbidden).

ובפעם ה-23407138947928374 – מי שרוצה ללמוד אבטחת מידע בצורה רצינית, עדיף שקודם כל ידע לעומק מערכת הפעלה כלשהי, TCP/IP באופן עמוק, והכי חשוב – מחשבה מחוץ לקופסא. 

סקירה: רד-האט 7 (בטא) – חלק שני

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

מבחינת תמיכה בברזלים, רד-האט 7 תומכת ביותר מעבדים וליבות, עד 5120 ליבות במערכת אחת (מישהו ברד-האט שכח שהם חתומים ב-NDA מול AMD וזו הסידרה הבאה של מעבדים ש-AMD הולכת להוציא בקרוב, כל מעבד עם 32 ליבות). מבחינת זכרון יש תמיכה שנוסתה עד 3 טרה בייט ותאורתית המערכת תומכת עד 64 טרה בייט של זכרון. כשמדובר על מערכות מבוססות Power, דרישת המערכת לכל VM מבחינת זכרון עולה מחצי ג'יגה ל-2 ג'יגה בייט של זכרון.

מערכת הקבצים: כפי שציינתי בחלק הראשון, שונתה ל-XFS (גירסאות EXT4 ו-BTRFS גם קיימות בזמן ההתקנה, אם כי אינני ממליץ על התקנת BTRFS למערכת פרוקדשן גם כשרד-האט 7 תצא מ-בטא. היא פשוט מערכת חדשה מדי, תנו לה זמן עד שהיא תהיה יציבה, סופית ונקייה מבאגים קריטיים). מערכת הקבצים EXT4 שופרה ועתה ניתן לאכסן קובץ בגודל מקסימלי של 50 טרהבייט. בגירסת XFS שמגיעה עם RHEL 7 ומבחינת File system, הגודל ש-XFS תומך בהשוואה ל-RHEL-6 גדל פי 5 וכעת ניתן להקים File System בגודל של עד חצי פטה-בייט (500 טרה בייט). ב-BTRFS ב-RHEL-7 ניתן רשמית להרים File system עד לגודל 50 טרהבייט וגודל מקסימלי של LUN עתה הוא 50 טרה-בייט. הכל גדל, רק תביאו דיסקים 🙂

תוכנות שהוחלפו: כמו תמיד, ברד-האט זורקים החוצה תוכנות ישנות ומכניסים תוכנות חדשות כשיוצאת גירסה חדשה להפצה, מה שמתורגם כמובן להרבה עבודה של מיגרציה (ומיגרנות לפעמים…!) כשרוצים להטמיע את RHEL-7 לכשתצא. עובדים עם sendmail? תתחילו להתרגל ל-postfix. אין יותר acpid, יש systemd. מנהלים מערכות עם sblim? תכירו את Pegasus של Open Group. גם חבילות Kerberos (במיוחד krb5-appl) עברו שדרוג ובמקומם את תפקיד Kerberos תתן חבילת openssh. מי שמשתמש ב-LVM1 (מישהו עדיין משתמש??) מחליפה חבילת LVM2 כשהפעם סוף סוף יש תמיכת Thin Provisioning כך שאפשר להרים הרבה מכונות מבלי לצרוך מיידית את כל הדיסק/Storage. גם חבילת gcj (איכסה!) הוחלפה סוף סוף ב-OpenJDK נורמלי (גירסה 7).

פונקציונאליות שנזרקה לפח: ברד-האט לא מתביישים לזרוק דברים יותר ישנים לפח כולל חומרה. כך לדוגמא אם אתם משתמשים במערכות Power6, רד האט מודיעה שתמשיכו להשתמש ב-RHEL-6, אין יותר תמיכה למעבדים הללו. עובדים עם matahari? (אתם כן? למה???), רד האט ממליצה שלא לעבוד איתה יותר.  מצפינים עם encryptfs? תפתחו את ההצפנה ותצפינו עם dm-crypt.אלו שהשתמשו ב-TurboGears2 – צר לי, החבילה נזרקה מ-RHEL-7. מקמפלים אפליקציות שיש להן זקן ארוך ו-MOTIF? (כן CDE אני מסתכל עליך!) – סוף סוף Motif האמיתי הוא קוד פתוח וגירסה 2.3 כלולה בהפצה. אין יותר צורך ב-lesstif. התרגלתם ל-webalizer? חפשו חבילת אנליזה חדשה כי הוא לא כלול יותר ואם אתם חושבים להשתמש ב-RHEL-7 לדסקטופ ורוצים להמשיך להנות מאפקטים של Compiz, אז ב-gnme-shell יש אפקטים וגם הם נמצאים מובנים בתוך KDE שאותו אני תמיד תמד ממליץ. 

לעצלנים שבינינו שהשתמשו ב-system-config-services, מעתה יש את systemadm. צ'אטים עם pidgin? תתרגל ל-empathy. לחובבי perl שמשתמשים (משום מה) ב-perl-suidperl – הוא מת (כן, גם בגירסת perl המעודכנת בחוץ). תוספי pam כמו pam_passwdqc ו-pac_cracklib הוחלפו בתוסף בשם pam_pwquality. ספריית HAL (כולל ה-daemon) נזרקו לפח ומעתה חוזרים (כן, חוזרים) ל-.. UDEV. 

מבחינת הגדרת רשתות, משחקי ההגדרות ב-etc/sysconfig/network-scripts/ifcfg-eth/ נגמרו (אם כי הם עדיין נתמכים, כמדומני שבגירסת RHEL-8 הם יהפכו להיסטוריה) ובמקומם יש את NetworkManager (כן, החבילה שרבים מאיתנו הקפידו להעיף בסוף התקנה ולהפעיל את שרות network, זוכרים?) והדברים צריכים להיות מבוצעים עם פקודת nmcli (קחו דוגמאות של שימוש ב-nmcli). על מנת קצת להקל, רד-האט מוסיפים את nm-connection-editor כדי לערוך חיבורים (מנסיון: הגדרת שרת עם 24 פורטים לרשת עם nmcli זה לא כיף!). 

חבילות נוספות שעפו: taskjuggler = היסטוריה. thunderbird? זוכרים אותו? אם אתם מתגעגעים, תורידו אותו מהאתר היעודי כי מה שיש עכשיו זה רק evolution. חבילת vconfig להגדרות VLAN מתה ובמקומה יש iproute (בלי רווח). לאלו שאוהבים לכתוב ב-perl אפליקציות web, אין יותר mod_perl, יש mod_fcgid (ומכיוון ש-RHEL-7 מגיע עם אפאצ'י 2.4. לאלו שאוהבים להריץ prelink כדי לקבל ביצועים יותר טובים – החבילה והפונקציונאליות נכללת ב-RHEL-7 אבל היא ב-disable בברירת מחדל (רמז של רד האט שבעתיד – גם זה יעוף). חבילת module-init-tools גם עפה לטובת kmod ולסיום – חבילת kernel-firmware שמגיעה עם כל גירסת kernel מההפצה, שמה שונה ל-linux-firmware, כך שמומלץ לעדכן את הסקריפטים שלכם אם אתם הולכים להטמיע RHEL-7.

דרייברים שהולכים לעוף: רד-האט מצהירה על דרייברים מסויימים (שהם לציוד ממש ישן למען האמת… Cirtus Logic, Mach64) שהם deprecated כך שאם יש לכם ציודים כאלו והמערכות הללו ישודרגו על אותו ברזל, כדאי שתמצאו להם פתרונות. בד"כ מדובר על דרייברים לציוד גרפי ישן (כן, כולל מטרוקסים ישנים מאוד) וגם ציוד מבוסס צ'יפים ישנים של VIA. ניתן יהיה להמשיך להשתמש בציוד רק שבמקום דרייברים רגילים, תצטרכו להשתמש בדרייבר KMS ואפשר לקרוא איך להשתמש ב-KMS כאן. אני ממליץ לגבי מערכות כאלו להעביר אותם P2V להיות מערכת וירטואלית. גם דרייבים לכרטיסי RAID ישנים עומדים לפוג, כולל כרטיסי Adaptec (זוכרים אותם?) עם הדרייבר aic79xx, כרטיסי 3ware עם דרייבר 3w-9xxx וכמובן arcmsr (שעשה לי אישית המון צרות, ברוך שפטרנו!).

דרייברים שלא קיימים יותר: בלינק שנתתי ל-Release Notes ישנה רשימה שלמה של דרייברים שעפו מ-RHEL-7, כולל cciss (לחובבי שרתי HP), דרייבים כמו aic ו-i2o, דרייבר שהרבה חברות השתמשו בו (megaraid_mbox), ה-mptlan, mptfc וכל הדרייבים של 3ware (דרייבר: 3W-XXXX). גם כרטיסי רשתות עפים, וכל מה שלא ג'יגהביט או משהו יותר ישן מ-3-4 שנים – פשוט עף החוצה. אני ממליץ להסתכל ברשימה (עמודים 11-14 בלינק למעלה). העפת הדרייברים הללו מחסלת את האפשרות להשתמש ב-RHEL-7 על שרתים ישנים ועל כך אתייחס בסוף הפוסט.

התקנה:בקצרה, אם השתמשים באחת מגירסאות ה-Fedora האחרונות, אז אין הבדל. בהשוואה ל-RHEL-6 ההבדל הוא בין שמיים לארץ. ההתקנה כבר יודעת לזהות את ציודי ה-Storage שלך אוטומטית (טוב נו, יש עדיין מקרים שצריך להזין פרטים..). לחובבי הקינקיות בינינו (אני מדבר על S/390) יש תמיכה בטרמינלים טקסטואליים מונוכרומטיים בזמן התקנה. ניתן עתה להקטין פרטישנים קיימים (בחלק מהמקרים, אם לא, תמיד אפשר לפני ההתקנה להשתמש ב-gparted), אפשר להגדיר thin provisioning ב-LVM, אפשר לפרמט ישירות ציודים ללא פרטישנים, וסוף סוף גם ניתן להשתמש ב-tmpfs במהלך ההגדרות להתקנה. ניתן במהלך ההתקנה מבחינת כרטיסי רשתות להגדיר teaming, bonding, NTP ושאר ירקות. 

תהליך Boot: ב-RHEL-7 ה-Boot Manager שמגיע הוא GRUB-2, מה שהיה בעבר אפליקציה קטנה ונחמדה שהפכה עכשיו למפלצת שתומכת כמעט בכל דבר במה שקשור לדיסק/פרטישנים/מערכות קבצים שונות. כמו כן ישנה תמיכה מלאה ב-UEFI, OpenFirmware וכמובן BIOS רגיל. ישנה תמיכה מלאה גם ב-MBR וגם ב-GPT ומבחינת מערכות קבצים, יש תמיכה ל-NTFS, ולחובבי המק – גם +HFS.

תמיכה ב-Storage: ב-RHEL-7 שוב החליפו את מערכת ה-Storage מ-tgtd ל-LIO. הסיבה? תמיכה הרבה יותר רחבה בציודים כמו FCoE, iSCSI, iSER וכמובן SRP (אהלן לחברים ממלאנוקס הישראלית, תוזילו כבר מחירים!). ניתן לנהל את כל העניינים דרך פקודת targetcli.

רד האט כוללת את תוכנת dm-cache שמאפשרת לך לעשות משהו שחובבי ZFS עם מערכות רציניות מכירים ממזמן: אם יש לך מערך דיסקים מכניים ואתה רוצה יותר מהירות, אתה מוסיף דיסק SSD שישמש ל-Cache וכך תקבל ביצועים יותר גבוהים. התוכנה שרד-האט ממליצה עליה היא נחמדה, אבל אני ממליץ במקומה את EnhanceIO שנותנת ביצועים יותר גבוהים בהשוואה ל-dm-cache.

kernel: ערימות של שיפורים הוספו ל-kernel, הנה כמה מהם:

  • ניתן לדחוס זכרון SWAP כך שכמות הקריאה/כתיבה היא נמוכה בהרבה מהמצב הרגיל.
  • תמיכה בוירטואליזציה של APIC, כך שמכונה וירטואלית תהיה כמה שיותר "טבעית" בהשוואה למכונה פיזית (את הפוקנציונאליות הזו ניתן לקבל רק במעבדי XEON ו-Opteron חדשים). 
  • עד היום מבחינת דיווח על בעיות חומרה בשרת היו מספר כלים שלא תמיד נתנו לוגים מפורטים ומסבירים מספיק מה התקלה שהמערכת חווה (זוכרים kernel panic למרות שלא רואים לפני כן כלום בקובץ log? העיקר שכל הנורות LED מהבהבות על המקלדת, מעולה!) ב-RHEL-7 ההפצה כוללת את HERM (ר"ת Hardware Event Reporting Mechanism) שכוללת daemon בשם raddaemon שיודע לנהל את כל מה שקשור ל-RAS (ר"ת Reliability, Availability, Serviceability) ורושם את הכל ללוג. HERM כולל כלים לדיווח, בדיקה וכו'. 

וירטואליזציה: ישנם שיפורים רבים ל-KVM מאוד בהשוואה לוירטואליזציה שקיימת ב-RHEL-6, ושוב, אציין רק כמה מהם שנראים חשובים:

  • שיפור רציני תעבורת נתונים ב-VM: ב-KVM יש פונקציונאליות חדשה (עדיין בשלב Preview) שנקראת virtio-blk-data-plane שפותחת שרשור (thread) משלה שמיועד אך ורק לתעבורת נתונים, כך שהמכונה עצמה עובדת ב-thread אחד והעברת הנתונים ב-thread אחר. 
  • עד כה QEMU (שהוא חלק גדול מ-KVM) תמך ב-32 כניסות PCI. בגירסה החדשה (שוב, Preview) יש יותר מ-32
  • מעתה ב-KVM ישנה פונקציונאליות חדשה שנקרא QEMU Sandboxing, כך שישנם פילטרים שמפרידים ומבצעים פילטרים לקריאות מה-Guest ל-Host ומאפשרים הגנה יותר חזקה.
  • מעתה ניתן במערכות אורחות להוסיף מעבד ל-VM רץ כך שאין צורך לכבות אותו (שימו לב שעל מנת לבצע זאת, סוג המכונה הוירטואלית ב-QEMU אמור להיות pc-i440fx-rhel7.0.0)
  • מספר "תורים" לכרטיסי רשתות ולמעבדים: עד היום, כל תעבורת הרשת של ה-VM נעשתה תחת אותו Queue. מעתה, כל כרטיס ו-Queue שלו.
  • דחיסה בזמן מיגרציה חיה – מעתה ניתן לבחור אפשרות לדחוס את דפי הזכרון של המכונה האורחת שמועברת בצורה חיה, ובכך לחסוך זמן למיגרציית המכונה.
  • תמיכה ב-VM מבוסס Hyper-V: וירטואליזציית KVM יודעת לתמוך גם במכונות VM שהיו רצות תחת HyperV, כך שניתן להעביר מכונות וירטואליות ממערכות Hyper-V אל KVM.
  • תמיכה ל-USB-3 – מעתה יש גם תמיכה לציודים מבוססים USB-3 כ-Guest
  • תמיכה ל-Windows 8 ו-Windows Server 2012 – המערכות הנ"ל נתמכות באופן מלא על RHEL-7 כאורחות.
  • הקטנת משאבים ל-VM: ניתן להגביל מכונות VM מבחינת משאבים אם המכונה האורחת לדוגמא "משתוללת" (מתאים במיוחד ל-Hosting)
  • מיגרציה "חיה" בין שרתים: מעתה ניתן לבצע Live Migration בין מערכות RHEL 6.5 ל-RHEL-7 (כך שאם רץ אצלכם KVM על RHEL 6.5 ואתם מקימים שרתי RHEL-7, תוכלו להעביר את המכונות האורחות בצורה חיה).
  • תמיכה בכרטיסי גרפיקה מקצועיים: ניתן למפות מעתה כרטיסים גרפיים מקצועיים (Quadro, GRID, Tesla K) של nVidia ישירות למערכת VM, כך שהכרטיס הפיזי יהיה הכרטיס הגרפי השני (הראשון הוא הוירטואלי).
  • תמיכה ב-AER: אם הלוח שלך תומך ב-PCI AER (רוב לוחות האם עם PCI Express, לא כולם) ומיפית כרטיס PCI אל VM ויש תקלה בכרטיס PCI, רק ה-VM מופסק, ולא כל המערכת הפיזית.
  • תמיכה ב-Q35 Chipset: (עדיין ב-Preview) – מעתה ניתן להקים VM מבוסס Q35 מה שיתן למערכת האוכלת פונקציונאליות כמו AHCI. מצוין אם אתם רוצים להקים VM שיריץ Windows עדכני.
  • תמיכה ב-Large Pages עם VT-d: אם המכונה שלכם כוללת מעבד עדכני עם תמיכת VT-d, ניתן להגדיר ב-KVM שהוירטואליזציה תשתמש ב-2 מגה זכרון שישמשו כ-Buffer לתרגום פעולות I/O בין המערכת האורחת למערכת האמיתית (host) ובכך לשפר ביצועי דיסק/רשת בוירטואליזציה.
  • תמיכה ב-QCOW V3 (נקרא גם QCOW3): אחת התלונות הכי גדולות על KVM (ועל פתרונות וירטואליזציה אחרים, אגב) היא איטיות בכל מה שקשור לדיסק בהשוואה למערכת "טבעית". QCOW2 V3 בא לתת פתרון עם ביצועים מאוד קרובים למהירות "טבעית". ניתן לקרוא על QCOW2 V3 בהרחבה כאן.
  • מיגרציה חיה בשרשור – מעתה Live Migration יהיה במקום Process יחיד – כ-Thread (פר מיגרציה)
  • תמיכה בחיבור חי של ציוד: מעתה ציודים כמו USB או סריאליים ניתן לחבר באופן "חי" ישירות ל-VM (הגיע הזמן, אצל המתחרים זה קיים ממזמן).
  • תמיכה בטכנולוגיות החדשות של מעבדי אינטל (כמו 256 ביט integer vectors), פקודת MOVBE ועוד.
  • תמיכה בוירטואליזציה אחרת: ניתן להשתמש במערכות VM שהוקמו על HyperV ישירות ללא צורך בהמרה.
  • תמיכה משופרת ב-libguestfs: מעתה ניתן להשתמש בדיסקים וירטאליים (שרצו על מכונת VM) במכונה אחרת (או במכונת ה-host) עם הגנה של sVirt (כך שאפליקציות זדוניות מהמערכת האורחת לא ירוצו על מערכת אחרת שבוצע אליה mount לדיסק). ניתן מעתה להשתמש בדיסק האורח כ-block device דרך NBD. בנוסף ניתן לחבר בצורה "חמה" דיסקים כאלו.

וירטאליזציה מתחרה: RHEL-7 מאפשר להריץ עליו מכונות וירטואליות, אך יהיו רבים שירצו להריץ את המערכת כ-VM, ורד האט השקיעו בגירסה הזו את המקסימום:

  • יש תמיכה מלאה ב-XEN (כך שאין צורך להתקין/לשנות את המערכת על מנת שתרוץ כמערכת אורחת תחת XEN)
  • משתמשים ב-Hyper-V? תשמחו לדעת ש-RHEL-7 יכולה להיות משומשת כמכונה מסוג "דור שני" על ה-Hyper-V (ללא התקנת דרייברים נוספים) תחת Windows Server 2012 R2.

וירטואליזציית אפליקציות: RHEL-7 כוללת את LXC שמוכר יותר כ-Linux Containers. הקונטיינרים הללו הם מה שיש בסולאריס ומוכר כ-Zones, מה שהיה בעבר ב-OpenVZ: מערכת שיכולה להקים מכונות וירטואליות אך ללא כל הטרראם של מערכת וירטואליזציה מלאה. אין כאן דרייברים, חיבור ציודים חיצוניים כמו USB, PCI וכו'. המטרה היא לאפשר לך מערכות אחרות קטנות כדי להריץ עליהן אפליקציות לשם Build, לשם ניסויים וכו'. אחת האפליקציות הכי פופלריות לשימוש יחד עם LXD הוא ה-Docker שנותן לך את כל הכלים להקים ולתחזק קונטיינרים כאלו (ויש גם ממשק WEB אם אתם רוצים). אפשר, אגב, עם LXC להתקין מערכות לינוקס מתחרות על אותו לינוקס שאתם מריצים (אך לא מערכות שאינן לינוקס).

Clusters: ב-RHEL-7 האשכולות (Clusters) מוגדרים ומנוהלים ע"י Pacemaker. ביי ביי luci, ricci, ccs ושלום ל-pcs. כלי לא כל כך קל, כך שאם אתם רוצים, גם לזה יש ממשק WEB.

פיתוח: כמיטב המסורת של Red Hat, גם הפעם הכלים בהפצה מעודכנים לגירסה האחרונה היציבה. GCC בגירסה 4.8, עם שיפורים ותוספות, תמיכה למעבדים חדשים, תמיכה ב- ++C בסטנדרט 11++C ותמיכה חלקית ב-C11, תמיכה משופרת ב-OpenMP. גם GLIBC קיבל עדכונים והוא בגירסה 2.17, עם שיפורים ואופטימיזציות רציניות למעבדי אינטל ו-AMD (גירסת 64 ביטכמובן), תמיכה משופרת ב-SSE ו-SSSE3, SSE4.2, AVX. גם התמיכה ב-PowerPC וב-Power7 שופרה וכמו כן יש תמיכה משופרת בהרבה ל-S/390, Z10, zEnterprise 196.

גירסאות מעודכנות לשפות תכנות: Ruby 2.0, פייתון מגיע ב-2 גרסאות, כאשר גירסה 2 שמגיעה (2.7.5) תואמת קדימה לפייתון 3, מודול I/O מהיר יותר, ומודול sysconfig (נו, זה רד האט, החברה שכל הכלים וההתקנה שלה כתובים בפייתון). גירסת JAVA היא 7 ויש תמיכה מלאה למספר גרסאות JAVA במקביל שיותקנו על המערכת (השתמשו בפקודת alternatives כדי לשנות/להציג איזו גירסת JAVA אתם רוצים להשתמש אם התקנתם יותר מגירסה אחת). 

רשת: כפי שציינתי לעיל, RHEL-7 משתמש בברירת המחדל לכל אורך הדרך ב-NetworkManager ואיתו ניתן להגדיר רשת כחיבור יחיד או יותר, Teaming, Bonding, VPN, חיבור DSL, WIFI ועוד, כלומר הכל תחת כלי אחד. מבחינת חומת אש, RHEL-7 משתמשת ב-firewalld, שזו חומת אש דינמית עם תמיכה ל-Zones. מבחינת DNS, המערכת מגיעה עם DNS Client שתומך ב-DNSSEC על מנת לבצע אותנטיקציה ולוודא שנתונים עברו בהצלחה ללא הפרעה.

כלי נוסף ש-RHEL-7 מגיעה איתו הוא ה-OpenLMI, שהוא כלי לניהול שרתים כאשר התוצאה אינה ידועה (בניגוד ל-Puppet שהכל ידוע מראש). על ההבדלים בין Puppet/Chef ל-OpenLMI ניתן לקרוא בהרחבה כאן.

אותנטיקציה: ב-RHEL-7 רד האט די "נכנעים" לשוק וקל יותר לצרף מכונות ושרתי לינוקס ל-Active Directory (בין אם מדובר על ה-Active Directory של מיקרוסופט, או אם אתה משתמש במימוש SAMBA). ישנו Trust חדש ב-RHEL-7 וקל מאוד (בעזרת פקודת realm) לחבר מכונת RHEL-7 לשרת Active Directory. שימו לב: חשוב שיהיו POSIX Attributes ב-AD על מנת לאפשר למשתמשי לינוקס להתחבר למכונות RHEL אם האותנטיקציה מבוצעת על AD.

אבטחה: ב-HREL-7 נעשו מספר שינויים רציניים לאבטח יותר חזק את המערכת, להלן חלק מהשינויים:

  • מעתה ניתן להגדיר ChrootDirectory יחד עם משתמשים מסויימים שאתם רוצים שיכנסו, והם יהיו תחת ה"השגחה" של SELinux (בדף ה-MAN זה מופיע תחת: selinuxuser_use_ssh_chroot). 
  • אבטחה משופרת יותר ל-SSH: מעתה ניתן להגדיר מספר "אתגרים" לחיבור. עד כה לדוגמא היה אפשר לבקש מהמשתמש מפתח או סיסמא, מעתה ניתן להגדיר שמשתמש יוכל להיכנס רק ע"י מענה ל-2 האתגרים או יותר (מפתח, סיסמא, כרטיס חכם)
  • חבילת ה-NSS שודרגה ומעתה אלגוריתמים ישנים כבר לא מתקבלים.

דסקטופ: אין הרבה מה לחדש: GNOME 3, עם מראה Gnome Classic (מראה רשימת חלונות למטה, ותפריטי Applications ו-Places למעלה). +GTK שודרג ל-3 והוא מותקן אוטמטית במקביל עם גירסה 2, כך שאפליקציות ישנות אמורות לרוץ ללא בעיה. בונוס: אפליקציית GNOME Boxes ליצירת מכונות וירטואליות על המכונה שלך וניהול (קליל) של מכונות וירטואיליות על KVM מקומי או רחוק.

מבחינת KDE – גירסה 4.10 מגיעה עם RHEL 7 עם Plasma Workspaces. אפליקציה נחמדה שמגיעה איתה: KScreens לניהול דינמי של חיבור מסכים למחשב.

שרתי אפליקציות: להלן שרתי האפליקציות שמגיעים עם RHEL-7 והערותיי:

  • Apache 2.4 – שרת ה-HTTP הכי ידוע בעולם מגיע בגירסה 2.4. בגירסה זו שונו מספר דברים וכתוצאה מכך נשברו (מבחינת תואמות בינארית) מספר מודולים. תוכלו לקרוא עליהם כאן. מבחינת CGI, יש לאפאצ'י 2.4 מודול Native כ-FastCGI שנמצא תחת mod_proxy
  • MariaDB 5.5 – מעתה במקום לאמר MySQL Server, אימרו MariaDB Server. אותה הגברת בשינוי אדרת. עוד פרטים לגבי השינוי והיתרונות – כאן.
  • PostgreSQL 9.2 – עוד אפיקציית בסיס נתונים ידועה.

לסיכום: RHEL-7 זו הגירסה שבעצם משלימה פער גדול מסוף שנת 2010 (הזמן שרד האט 6.0 יצאה לשוק), הרבה דברים משתנים ומשתפרים ורד-האט מנצלת את ההזדמנות גם להיפטר מדברים ישנים. 

האם כדאי להטמיע את RHEL 7 לכשתצא? כן אבל לאט. קודם כל, חשוב להבין שרד-האט זורקת המון דברים ודרייברים החוצה, כך שיכול להיות שלמשך זמן מסויים תצטרכו לתמוך ב-2 הפצות בארגון שלכם (גירסה 6 ו-7), זו תהיה הזדמנות טובה עבורכם להעריך מחדש מה האפליקציות שרצות, על מה הן רצות, האם כדאי לעשות לאותן מערכות P2V?, האם כדאי להתחיל לבדוק אלטרנטיבות לאפליקציות ישנות? כל ארגון והחלטותיו.

כדאי לתת את הדעת על עוד נקודה שלא רבים מתייחסים אליה: ישנם הרבה חלקים בהפצות לינוקס שמשתנים יותר מהר ממה שגירסאות Major משוחררות. כך לדוגמא PHP שמגיע עם RHEL 6 הוא 5.1, משהו ש-ZEND יצעקו עליך לא להריץ בשום מערכת ועדיף שתריץ את גירסה 5.4 או אפילו 5.5, אבל רשמית היא לא קיימת להפצת RHEL (היא קיימת ב-repository של צד ג', כמו remi), כנ"ל לגבי ספריות ואפליקציות נוספות (הדפדפן כרום לדוגמא לא קיים יותר ל-RHEL או CentOS אלא דרך טריקים ושפצורים) ורד-האט עדיין לא נתנה שום פתרון לכך. Fedora לא מומלץ שיכנס בשום ארגון ולשום מחשב שמייצר דברים של פרודקשן אלא למטרת טסטים. האם רד-האט תלך בעקבות Open SuSE והפצות אחרות ל-Rolling release? אני בספק. לקוחות רד-האט מצפים לדברים יציבים, גם אם הם לא הכי מעודכנים.

תכירו את Chrome Apps

אחד הדברים שהיום מתסכלים מנהלים רבים, זה כמות הקוד, כח אדם, קימפולים, גרסאות, עיצובים וכו' – צריך בשביל לשחרר אפליקציה אחת על מנת "לכסות" כמה שיותר את המכשירים והמחשבים שיש בשוק. אתרי מדיה רבים לדוגמא בונים את האתר שלהם ומוודאים שהוא רץ בכל דפדפן מודרני (בניגוד למדינה במזרח התיכון שהאתר תשלומים שלה עובד רק על אקספלורר ישן ואקספלורר חדש צריך "תואמות", וחס ושלום כרום/פיירפוקס/ספארי), וכמובן יש את המובייל. פעם אפל התגאו שבשביל משתמשי אייפון, מספיק פעם אחת לעצב "בניגוד לאנדרואיד", רק שהיום יש אייפונים עם מסך 3.5 אינטש, מסך 4 אינטש, ובקרוב כנראה אפל תוציא אייפון 5 אינטש, ואם נוסיף את האייפד אז צריך לתכנן לרזולוציה רגילה ורזולוציית רטינה. באנדרואיד גם החיים כלל לא קלים, מגוון המכשירים עצום אבל מי שרוצה לבנות לאנדרואיד, עדיף שישתמש בדברים כמו Android Studio (שמגיע בחלקו מ-IntelliJ) שפותרים את הבעיה ברובה.

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

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

הבעיה העיקרית של HTML5 בזמן שחרור האייפון הראשון, היו המגבלות של HTML5. להזכירכם, ג'אווהסקריפט לא ממש טס כמו שד באותה תקופה וכמו שמוזילה משפרים אותו עוד וועוד בדפדפן הפיירפוקס. בנוסף, תמיכת המדיה שלו היתה גרועה, בכל הקשור ל-CSS היו עדיין מריבות בין גוגל לאפל למוזילה למיקרוסופט (ע.ע. "יאללה בלאגן") ומה שהכי חשוב – לא היה ל-HTML5 שום דרך ליצור קשר עם האביזרים במכשיר (מצלמה, מיקרופון, רשת מעבר ל-HTTP/S), מה שהגביל את אפשרויות פיתוח האפליקציות.

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

גוגל רצו ועדיין רוצים ופועלים להרחבת השליטה שלהם בשוק הדפדפנים, בכך שהם ביחד עם יצרני חומרה יצרו את ה-Chromebook (ועתה ה-Chromebox שעליו תהיה לי סקירה בימים הקרובים) – זהו מחשב נייד עם מעבד X86 או ARM עם כמות זכרון די קטנה (2-4 ג'יגה) ו-SSD קטן של 16 ג'יגה שמריץ ליבת לינוקס ואת הדפדפן ואולי עוד כמה דברים קטנים (אפליקציית ניהול קבצים וכו'). ל-Chromebook יש יתרון עצום בכך שהוא בעצם אפס תחזוקה ומקסימום דפדפן. הדפדפן לא מגיב טוב? מחק את הפרופיל, תתחבר מחדש עם שם משתמש וסיסמא, ואחרי דקות ספורות הכל יעבוד פיקס. 

אבל עדיין יש בעיה: לא בכל מקום יש אינטרנט, ואנשים כן רוצים לעבוד עם הכרומבוק בכל מיני מקומות כאלו, ומעוניינים באפליקציות שהם לא רק Offline, אלא שאותן אפליקציות ידעו גם לעבוד עם הציודים במכשיר, בין אם זה מצלמה, מיקרופון, וגם ציודים שאתה מחבר ב-USB.

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

התוצאה? Chrome Apps: אפליקציות שמותקנות לך במחשב ויכולות (בקרוב) לרוץ גם ללא דפדפן כרום. האפליקציות יוכלו לרוץ לגמרי Offline עם גישה לציודים, הם יוכלו להיות כתובות ב-HTML5 וגם ניתן יהיה לשלב קוד Native שקומפל עם NaCL, וכל זה ירוץ באופן טבעי ומהיר על ווינדוז, מק, לינוקס ומה שיותר חשוב – ה-run time שיהיה באפליקציה ירוץ גם על אנדרואיד ו-IOS (כן, בגוגל אין שום חיבה ל-Windows Phone). 

זוכרים את הדוגמא שנתתי בהתחלת הפוסט על אותה אפליקציה של חברת המדיה? עם Chrome Apps הם יוכלו לכתוב קוד אחד עם מגוון Layouts, וכל מה שהם יצטרכו לעשות זה לשחרר את האפליקציה בחנות של ה-Chrome ובחנויות אחרות (Play Store, iTunes). המפתח פשוט יצטרך לעקוב אחרי הוראות הפיתוח, חתימת חבילה ושחרורה. כך באותו יום כולם מקבלים את הגירסה האחרונה ואם יש באגים, ניתן לתקן באותו קוד. בשביל חברות זה חסכון בכסף וחיים יותר קלים.

אישית, אני משתמש רבות ב-Google Apps, ובשבועות האחרונים אני גם משתמש ב-Chrome Apps במחשבים שלי בבית. אני משתמש באפליקציה כמו 2X כדי להתחבר ל-Windows, ואפליקציית VNC (כן, היא גם קיימת כ-Chrome app) לסביבות SUN גרפיות (סיפור ארוך..), וכמובן אפליקציית SSH, ועוד אפליקציה שעדיין לא יצאה שדרכה אני שולט על דונגל USB-SERIAL, ומכיוון שאת כל המסמכים שלי אני כותב עם Google Docs ודיאגמות עם אפליקציית כרום עם Gliffy – אני די מכוסה. 

הטכנולוגיה עצמה היא די חדשה ולמען האמת לא בדיוק סטנדרטית. גוגל הרחיבו את ה-HTML5 כדי לתמוך בציוד חומרה, ב-Native Client, ועוד, מה שכמובן עיצבן כל מיני אנשים ובראשם את מוזילה. הויכוח הוא למען האמת קשור לפרגמטיות – האם לחכות שאולי מוזילה תאמץ (הם לא) או שה-W3C יאמץ? בשביל גוגל לא קיימת התלבטות כזו, הם משחררים כקוד פתוח, מודיעים ומי שרוצה, שיצטרף. גוגל כבר עשתה את אותו תרגיל בעבר עם ה-Google Gears שהם ראו ש-W3C לוקח את כל הזמן שבעולם להחליט על תקנים. מוזילה עובדים בכיוון אחר והוא אופטימיזציה מאוד חזקה ל-JS כדי שיתן ביצועים כמו אפליקציות שכתובות ב-C או ++C, והם קרובים (יחסית) לתוצאות טובות, אבל הפתרון הזה עדיין לא נותן אפליקציות Offline או תמיכה בציוד שנמצא במכשיר, ומוזילה לא נותנים בינתיים שום תשובה ל-Chrome apps לצערי.

בסופו של יום, אם גוגל יצליחו לשכנע מפתחים לכתוב עוד אפליקציות כרום (ולמען האמת, יש לטכנולוגיה הזו כולה 5 חודשים וכמות האפליקציות הללו גודלת בצורה מעולה!) אז יש סיכוי טוב לכרומבוקים לתפוס יותר מקום בשוק. יש לגוגל הרבה עבודה לעשות (כמו בכל הגוגל Docs לאפשר Embed מאפליקציות אחרות! ולסדר את ה-Chrome Store), אבל אני מניח שכבר בגוגל I/O הקרוב יהיה פוש מאוד רציני מצד גוגל לשכנע יותר מפתחים לכתוב אפליקציות כאלו, ועד כה אני מאוד מתרשם מהאפליקציות, הגודל שלהן, ושהן זמינות לי בכל מקום שאני עושה אליו login. 

על התפתחות אישית בהיי-טק וקורסים בחינם

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

כל מי שחיפש לעצמו ספרות בנושא לימוד שפות תכנות יכול לאמר לכם שמציאת ספר טוב היא כמו מציאת מחט בערימת שחט. סתם דוגמא: לפני מספר שנים כשחיפשתי ספר ללמוד שפת פייתון, מצאתי ספר שחבר המליץ עליו. התחלתי לקרוא אותו ואחרי כמה רגעים הרמתי גבה: העמודים הראשונים מדברים על Python Eggs ועל עוד כמה מושגים שבתחילה היו נשמעים לי מוזרים. חיפוש קצר בגוגל הביא לי דף שהסביר לי את המושגים כולם בדף אחד בקיצור ואז עוד יותר תהיתי – מדוע לכל הרוחות כותב הספר מתחיל בהתחלה לדבר על eggs עוד לפני שהתחלנו ללמוד איך להדפיס (print) על המסך? בוא נעובר משתנים, פונקציות, if/else/elif, קצת מכות בוליאניות ובהמשך בחלק היותר מתקדם נדבר על ביצים, ביצי משק וכו'. 

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

כיום אנחנו חיים בעידן ה-Constant online ולאמזון יש את ה-Kindle כך שחובבי ספרות יכולים תוך שניות לרכוש ספרים ולקבל אותם לסמארפון/טאבלט/קינדל ולא חשוב מאיזו ארץ אתה מזמין (בניגוד למתחרים כמו B&N או אפילו Google שברגע שרואים שאתה מחוץ לארה"ב – שכח מהזמנה, ולך תעבוד עליהם עם Buy2USA ועוד חברות שנותנות לך כתובת בארה"ב), אך עדיין – קשה למצוא ספרות טובה שיכולה להתאים לרוב האנשים וגם כשמוצאים, צריך למצוא זמן ללמוד, לתרגל את החומר, להמציא תרגילים וכו'.

עוד דרך ללמוד היא דרך הוידאו, חברות כמו Lynda, Plural Sight ואחרות מוכרות תקליטורים ושידורי און ליין של הדרכות בשפות תכנות שונות, אפליקציות שונות וכו', אך הבעיה העיקרית איתם זה שאינך יכול לרכוש קורס אחד ולגמור עניין, כי הם מפצלים זאת ל-Essentials, Advanced ועוד שמות, ומה לעשות ששפת תכנות לא לומדים ב-3 ימים (אחרת חודשיים אחרי זה כשלא תתרגל, סביר להניח שתשכח חלק מהחומר), אלא לאורך זמן. אותן חברות בדיוק בונות על זה ומציעות לך מנויים חודשיים, כך שאתה תשלם כמה חודשים בשביל ללמוד לעומק את השפה שתרצה.

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

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

לאתר קוראים: Codeacademy

מבחינת הקורסים שהוא מציע, כפי שציינתי, אין כמות כרגע, אבל יש בהחלט תחומים מעניינים והם: Python, Ruby, HTML&CSS, jQuery,Javascript, PHP

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

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

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

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

בהצלחה