כמה מילים על Coreboot ועל יצרני לוחות אם

2 תגובות

הנה סיטואציה שידועה לכל איש IT שמנהל איזה שרת או שתיים (או יותר). אתה מחבר את הכבלים, לוחץ על כפתור ה-Power ועד שתקבל מצב שמערכת ההפעלה המותקנת עולה – יחלפו לפחות 2-4 דקות, ולא חשוב כמה השרת שלך חזק או עוצמתי, בין אם יש לו 2 ג’יגהבייט זכרון או 1 טרהבייט (אם כבר, ככל שיש לך יותר זכרון, זה יקח יותר זמן).

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

מדוע זה כך? בגלל ה-BIOS.

ה-BIOS שנמצא בכל מחשב, ה”אפליקציה” העתיקה הזו שבעצם מאפשרת לך להגדיר דברים שונים במחשב שלך, קיימת זמן רב, עוד מאז המצאת ה-PC. עם הזמן נוספו לה כל מיני חלקים בהתאם לציודים ולטכנולוגיות שהתפתחו. פה PCI, שם AGP (בזמנו), תמיכת ACPI גירסה 1 ו-2. תמיכה ב-AHCI, RAID, SATA ועוד דברים רבים, מה שכמובן מגדיל את התוכנה עצמה.

והתוכנה כתובה ב… אסמבלר! אסמבלר זה לא רע בכלל. מה כן רע? ה-BIOS כתוב ב-16 ביט! בערך מהזמן שהיו איתנו אטארי ST ואמיגה!

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

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

מדוע, אם כך, היצרנים לא עברו לפתרון אלטרנטיבי? שאלה טובה. אינטל ניסתה לדחוף את פתרון ה-EFI עד שהיא עצמה התייאשה ממנו (הפתרון נוצר במקור עבור מערכות 64 ביט עם מעבד Itanium, או איך שקורא לו הרגיסטר: Itanic) ותרמה את הקוד לפורום ה-Unified EFI Forum ואותו פורום הוציא מספר גרסאות. אחת החברות שהזדרזו לתמוך ב-UEFI היתה .. אפל. שאר היצרנים עשו כל מיני קולות של תמיכה וחלק מהלוחות יצאו עם UEFI, אבל רוב הלוחות נשארו עם BIOS.

המצב הולך להשתנות השנה. מיקרוסופט הולכת להוציא את Windows 8 לטאבלט ול-PC ומיקרוסופט “ממליצה בחום” להפעיל דבר שנקרא Secure Boot (תהליך שיש לו לא מעט מתנגדים), ובשביל לעשות דבר כזה, צריך UEFI כי אי אפשר לעשות זאת דרך BIOS רגיל, אז מיקרוסופט מובילה את תהליך השינוי.

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

עד כאן הסיפור עם ה-BIOS וה-UEFI, כעת נכיר את Coreboot.

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

התהליך של Coreboot מורכב מ-2 חלקים עיקריים:

  • Coreboot – החלק הראשון שאחראי על הפעלת ואיפוס החומרה עצמה במחשב. מבחינת זמנים וביצועים, ה-Coreboot גומר לעשות את העבודת איפוס תוך 1-1.5 שניות.
  • אחרי ה-Coreboot מגיע החלק היותר מעניין שנקרא ה-Payload. ה-Payload זו קטגוריה של חלקים אחרים שניתן להריץ. הפופולרי שבהם הוא SeaBIOS ומה ש-SeaBIOS מאפשר לך לעשות זה לבצע Boot מציודים שונים (USB, כונן CDROM, כרטיסי SD ועוד). ועוד. קיימות אפשרויות נוספות חוץ מ-SeaBIOS אם מערכת ההפעלה העיקרית שלך היא לא-Windows כמו GRUB או GPXE או אפילו UEFI בגירסת הקוד הפתוח (היא נקראת Tiano Core)

אם אתה חושב לסיים לקרוא את הפוסט הזה ולרוץ להחליף את ה-BIOS שלך, אז תעצור. כאן מגיעה הבעיה המרכזית של Coreboot והיא: תמיכה בלוחות אם. רוב הצ’יפים שבלוח האם שלך נתמכים אולם על מנת להפעיל מערכות קוד סגור כמו Windows, אתה צריך שבלוח האם תהיה תמיכה מלאה של ACPI, וברוב הלוחות זה לא קיים. אז איך כל לוח אם היום מסוגל להפעיל בקלות Windows? כי יצרני ה-BIOS כותבים חלקים בקוד שיודעים “לרמות” את ה-Windows ולגרום למערכת לחשוב שיש מימוש מלא של ACPI בלוח אם, כלומר ה-BIOS מסתיר את הקיצוצים שנעשו בתכנון הלוח אם ובצ’יפים הזולים שיש שם. Coreboot מחליף את ה-BIOS אך אין בו את כל טבלת ה-ACPI וזה לא בדיוק דבר קל לכתוב את הטבלאות האלו.

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

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

לסיכום: Coreboot נותן חופש גדול מאוד למשתמש לעשות במחשב שלו כרצונו, החל מ-Overclock וכלה בהפעלת מערכות הפעלה בצורות שלעיתים לא נמצאות על BIOS רגיל. ל-Coreboot יש יתרונות על UEFI מבחינת פתיחות ואבטחה, זה קוד פתוח לגמרי (רשיון LGPL), וחברות כמו AMD כותבות לו תמיכה אבל זה עדיין לא מספיק. צריך לגרום ליצרנים האחרים לאמץ את Coreboot וזה לא דבר קל.

תגובות

על Core Boot, Thunderbolt ו..אינטל

אין תגובות

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

הטכנולוגיה שרציתי להכניס לשרת היא Thunderbolt. למי שלא מכיר, זהו פתרון של חיבור סריאלי חיצוני שעליו עובר ממשק PCI Express, ובתרגום לעברית: Thunderbolt הוא ממשק סריאלי המאפשר חיבור ציודים שצורכים המון נתונים בחיבור טורי. מהירות החיבור היא 10 ג’יגהביט וכל ציוד שמחובר הוא בעצם PCI Express רק עם תמיכה לחיבור “חם” (לא צריך להפעיל את המחשב מחדש), ואפשר לחבר ציודים שונים בחיבור טורי: המחשב שלך מתחבר למסך עם Thunderbold ומשם באותו חיבור אפשר לחבר דיסקים קשיחים, או כל ציוד אחר (ש”מדבר” Thunderbolt). חיבור פופולרי ב-מק עם Thunderbolt זו קופסא שמחברים למחשב הנייד ואליה מכניסים כרטיסים גרפיים או כל ציוד אחר.

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

מדוע? כי חסר לך משהו ב-BIOS. חסר טבלאות ACPI, הגדרות ודברים נוספים כדי שכרטיס כזה ירוץ בצורה טובה. ב-BIOS יש תמיכה בכך שאתה מכניס כרטיס גרפי, אבל לא בצורה של חיבור “חם” דרך ממשק Thunderbolt, כלומר גם אם קנית מחשב חדש ואתה מוציא אותו מהניילונים ברגעים אלו, לא תהיה לו תמיכה גם אם תוסיף את הכרטיס.

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

מי שמכיר לינוקס טוב, יודע שלינוקס יכול להסתדר כמעט עם כל דבר (כמובן שצריך להגדיר ולעבוד על הלינוקס עצמו), החל מקומודור 64 (לא צוחק) ועד המפלצות System Z של IBM, מערכות HPC ועוד, ולינוקס יודע להסתדר על חלופה ל-BIOS שנקראת CoreBoot, זו תוכנה בקוד פתוח שאפשר להריץ אותה על לינוקס, לבחור פרמטרים שונים ובסופו של דבר יוצא לך קובץ אשר אפשר לצרוב אותו על ה-BIOS שלך כתחליף (זה קצת יותר מסובך מזה ואפשר למצוא את ההוראות שם).

הבעיה עם דברים כמו Thunderbolt ו-CoreBoot, היא שצריך לכתוב תמיכה לכך ב-Core Boot, ולמי יש את התיעוד, הנסיון והידע בכתיבת דברים כאלו? אינטל. מי גוררת רגליים בתמיכה ופיתוח של CoreBoot? ניחשתם נכון.. אינטל.

מבחינת לינוקס עצמו, יש כבר תמיכה בכל ה”מסביב”. יש בלינוקס דבר שנקרא ACPIPHP עוד ממזמן (מ-2001 בערך) שיודע לתמוך בהכנסת ציודים בחיבור חם, אבל צריך להוסיף דברים ב-BIOS ובליבת לינוקס עצמה. ב-ליבה יש לא מעט כאלו שמוכנים כבר היום לבצע את זה, אך כל עוד אין תמיכה לא ב-BIOS ולא ב-Coreboot, הם לא יכולים לעשות מאומה. המצב, אגב, ב-Windows קצת יותר מסובך: ב-Windows צריך להוסיף מערכת שלמה לתמיכה ב-Thunderbolt וגם לוודא שב-BIOS יש את כל מה שצריך (שוב, בעיה בגלל יצרני ה-BIOS), כך שהמשימה שם יותר מסובכת.

מדוע אינטל גוררת רגליים? שאלה מעולה. AMD לדוגמא בהחלט תומכים בצ’יפים שלהם ב-Coreboot וניתן לראות את המהנדסים משתתפים ברשימות התפוצה לעיתים מאוד קרובות.

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

ביעוס.

למעוניינים: הפוסט הבא יהיה פוסט יותר מפורט על Coreboot, אולי תרצו לקרוא.

תגובות

הצפון ובחזרה, ופרטיות של הסלולר שלך

6 תגובות

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

כאן בצפת נפתח לאחרונה בית ספר לרפואה, מה שהצליח תוך זמן קצר להקפיץ את המחירים פה בעשרות (ולעיתים במאות) אחוזים. פעם היה אפשר לשכור בצפת דירה של 3 חדרים בגודל של 70-90 מטר בסכום של 1300-1600, היום המחירים מתחילים ב-2200. כמובן שאפשר לחפש דירה יותר קטנה במחיר יותר זול, אולם אלו ברובם תפוסות ע"י הציבור דתי-חרדי (לא מעט מודעות מפורסמות עם הדגשה שהם לציבור החרדי בלבד).

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

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

איך הפתגם אומר "דברים שרואים משם, לא רואים מכאן", הפתגם בהחלט צודק, ולכן אני מבקש את עזרת הקוראים: אם מישהו מכיר דירה באזור תל-אביב/רמת-גן/חולון/בת-ים/ראשל"צ/גבעתיים עד מחיר 2800 ל-2.5 חדרים, ל-50 מטר בערך – אשמח לשמוע.

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

תגובות

Older Entries