Untitled-1_0009_data-analysis-business-finance-concept

מה זה BIOS?

אתם שומעים לעיתים דיבורים אודות "מערכת ההפעלה" ולבטח איתרע מזלכם ואף גונב הביטוי "עדכון BIOS" לאוזניכם…. מהו פשר הביטויים האלו ומה בעצם הם מעוללים לכם ביום יום?

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

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

תוכנית הפעולה הזו היא "מערכת ההפעלה" (Operating System או בשמה המקוצר OS). זוהי תוכנה מורכבת שתפקידה לספק תשתית לכל היישומים שאתם מבקשים להפעיל ולטפל בכל ההתקנים שבמחשב אך אודותיה נרחיב בהמשך מעט יותר.

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

נעים להכיר: BIOS

המונח BIOS הוא קיצור ל-Basic Input Output System (המונח Input/Output מגלם את כל אמצעי הקלט השונים במחשב – דוגמת מקלדת ויציאות שונות; וכל אמצעי הפלט דוגמת המסך ושוב היציאות השונות ולרוב שמו המקוצר הנו I/O שהוא אף סוג של סימול 1/0 המשמשים את התשתית הדיגיטלית כולה).

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

ה-BIOS הוא רכיב שצרוב בו קוד הפעלה ראשוני וקוד זה מוגבל בגודלו באופן מוחלט מסיבות היסטוריות שונות. מאחר וגודלו מאוד מוגבל אך עם השנים הצרכים גדלו – קוד זה מכווץ ודחוס, נפרש לזכרון בעת הדלקת המחשב משך השניות הראשונות שבהן המסך שחור – עד הופעת התמונה עם סמל היצרן ולפעמים בליווי הודעות דיאגנוסטיקה שונות המלוות את האתחול. במרבית המחשבים קיימת אפשרות כניסה למסך הגדרות שבו ניתן לשלוט במאפיינים שונים של התנהגות רכיבי המחשב – שכן ה-BIOS אחראי עליהן ומאפשר שינוי התנהגות התקנים ואף הגברת או האטת מהירות המחשב דרך תדר השעון וכיוב'. הגדרות אלו, השמורות 'למבינים בלבד', מאוחסנות בתוך רכיב זכרון נדיף (כזה שדורש זרם חשמלי בכדי… לא להתנדף) המגובה בסוללת כפתור כסופה שתוכלו למצוא בכל מחשב ובכל שרת בעולם. אותה סוללה אף מספקת מינימום חשמל לגיבוי שעון קטן המצוי על לוח האם שתפקידו לעקוב אחר התאריך והשעה גם בזמן שהמחשב כבוי ובעיקר כשהוא מנותק מהחשמל כליל. אם קרה לכם שקיבלתם הודעה בסגנון "BIOS Settings Restored to Default" או שגיאה מסוג "Date/Time Not Set" – פירוש הדבר לרוב הוא שסוללת הכפתור הקטנה על לוח האם פגה ויש להחליפה (בלוחות האם הראשונים היו הסוללות מולחמות ללוח ולא ניתן היה להחליפן – מה שהיה מעצבן וחייב להחליף לוח אם לאחר שנים ספורות או לפרק את ההלחמות – מה שלעיתים היה מאוד מורכב מפאת מיקומן או כי מישהו על גבול הסכיזופרניה טרח להלחימן למקום עם ליטר בדיל….).

נסכם את פרק ה-BIOS בדור החדש שנכנס לפני שנים לא מועטות לשימוש – והוא ה-UEFI (Unified Extensible Firmware Interface) – המאפשר גמישות גדולה יותר והתאמה להתקנים חדישים פלוס בונוס קטן המאפשר להתקני חומרה לטעון תוספי תוכנה הצרובים בהם אשר מספקים למשתמש חופש הגדרות דינמי המותאם לכל יצרן ללא תלות בתמיכה ישירה ברמת ה-BIOS באותם התקנים – בוודאי ככל שמדובר בהתקנים חדישים יותר שיוצאים לשוק בכל שנה. כיום כל המחשבים משווקים עם מנגנון ה-UEFI אך מכילים לעיתים תמיכה לאחור בצורת העבודה של ה-BIOS המקורי – בעיקר עבור מערכות הפעלה והתקנים מיושנים שלא תמיד ניתן להפטר מהם.

הכוכב התורן BootSector

אוקיי, ה-BIOS או ה-UEFI נטען לזכרון וכעת מה?

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

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

ומכאן למחיצת ההפעלה: Boot Partition

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

וכאן סוף סוף: הOperating System –

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

בסופו של יום מדובר על תשתית תוכנה גדולה ומורכבת – הבנויה משכבות שמתחילות ב-Kernel – הוא גרעין המערכת המהווה את המנוע הפנימי – ועד ה-User Space וה-User Interface (UI) שם פועלות כל התוכנות והיישומים השונים אותם אתם מריצים ושם כל הגרפיקה והפירוטכניקה הממוקדת בהצגת ובהשמעת מה שהמחשב מבצע לנגד עיניכם.

מערכת ההפעלה שכולכם מכירים במחשבים האישיים היא Windows של חברת Microsoft וכמובן OS X המשרתת את משתמשי המק – האוהדים השרופים/מפוחמים של חברת Apple. רובכם ככולכם מכירים גם את Android של Google ואת iOS של Apple בטלפוני ה-iPhone.

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

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

אם נביט מעט בהיסטוריה – מערכת ה-UNIX נולדה מתוך פרוייקט בשנות ה-60 שמטרתו היתה בניית מערכת הפעלה שתשרת מספר משתמשים במקביל בסביבת MainFrame (מחשבים מרכזיים גדולים ומורכבים). זה אמנם נשמע לכם טריוויאלי כיום אך דאז – הפעלת מספר יישומים של משתמשים שונים במקביל היה אתגר מורכב. המערכת עברה אבולוציה ניכרת והפכה להיות סטנדרט ליציבות ומהירות, גמישות רבה ובעיקר אבטחה מאוד חזקה וקושי רב לפרוץ את השכבות השונות שלה אך היתה יקרה לרכישה ולרוב סופקה רק עם חומרה של יצרנים מסויימים בעולם השרתים ותחנות העבודה המקצועיות. בשנת 1991 החל סטודנט פיני בשם לינוס טורבאלדס לפתח אחות חורגת ל-UNIX שלימים נקראה Linux ובעצם היוותה התאמה חופשית ופתוחה של מערכת UNIX לסביבת x86 או סביבת ה-PC שכולכם מכירים (מקור השם x86 הוא במעבדי 80×86 של חברת אינטל דאז שהפך שם שגור לייצוג כל מה שרץ על מחשבים בעלי מעבדי Intel או AMD). מהלך זה היווה את אחת ממהפכות המחשוב המודרני שכן הוא פתח וסלל את הדרך לאימוץ התשתית היציבה והמהירה של UNIX למגוון מחשבים ומכשירים והיווה בסיס למערכות ההפעלה המודרניות (OS X מבוססת על UNIX ואילו מערכות ההפעלה של Microsoft שהחלו בגרסת NT לשרתים אימצו רכיבים רבים וקונספטים מעולם ה-Linux/UNIX).

כיום – מרבית המכשירים שאתם מפעילים כמו למשל Android או iOS מושתתים על גרסת Linux או UNIX וכך גם מכשירי הסטרימרים שלכם, לפעמים גם מכונות הכביסה והמקררים שלכם וכך גם מתגי התקשורת, הפיירוולים ושלל מכשירים אחרים כמו בקרי מים או רכיבי בית חכם. כמובן אין מדובר בהכרח באותה מערכת מלאה אלא בגרסאות מנוונות שלה אך ביסודן מדובר בגרסא כלשהי של הלינוקס. ומדוע? אתם שואלים עצמכם? כי זה קוד פתוח וחינמי! וגם כי יש המון הרחבות וקהילה אדירה של מפתחים התורמים רכיבים ויכולות שונות ובכל מקום שישנו Eco System של גורמים התורמים לקהילה – ישנו סגסוג והצלחה.

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

לסיכום ?

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