כמה מילים על Coreboot ועל יצרני לוחות אם
מאי 19
טכנולוגיה, כללי, לינוקס, מדע, מחשבים AMD, BIOS, Coreboot, intel, support, UEFI, תמיכה 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 וזה לא דבר קל.

תגובות