אתחול (מחשוב)

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

== מנהל אתחול ==

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

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

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

:0: הצב 8 באוגר P
:1: בדוק שקורא כרטיסי הניקוב מוכן
:2: אם הוא אינו מוכן, קפוץ ל־1
:3: קרא בייט מקורא כרטיסי הניקוב לצובר
:4: אם הגיע סוף טייפ הכרטיסים, קפוץ ל־8
:5: שמור מידע מהצובר לכתובת באוגר P
:6: קדם את P ב־1
:7: קפוץ ל־1

במחשבים מודרניים, תהליך האתחול מתחיל כשיחידת העיבוד המרכזית (CPU) מבצעת תוכנה אשר נמצאת בתוך ROM, דוגמת ה־BIOS של מחשב IBM PC בכתובת מוגדרת מראש (המעבד מתוכנת לבצע תוכנה זו אחרי פעולת reset, ללא עזרה חיצונית). תוכנה זו מכילה פונקציונליות מספיקה כדי לחפש התקנים המתאימים שישתתפו בתהליך האתחול, וטוענת תוכנה קטנה מחלק מיוחד (שנקרא לרוב סקטור אתחול ) של ההתקן המבטיח ביותר.

מנהלי אתחול עלולים להיתקל בהגבלות רבות. למשל, ב־IBM PC ותואמיהם, השלב הראשון של מנהל האתחול יהיה לעולם באורך של 512 בייטים, ויסתיים בערך AA55h (אשר אותו בוחן ה־BIOS על מנת לוודא שמנהל האתחול תקין).

===מנהלי אתחול שלב־שני===
התוכנה הקטנה עצמה אינה מערכת הפעלה לכשלעצמה בדרך כלל, אלא רק מנהל אתחול מסוג "שלב־שני", כמו NTLDR, LILO או GRUB. השלב השני יוכל לטעון את מערכת ההפעלה כראוי, ואז יורה למעבד להריץ אותה. המערכת תאתחל את עצמה, וייתכן שהיא תטען מנהלי התקן ותוכנות אחרות הדרושות לפעולה רגילה של מערכת ההפעלה.

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

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

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

ב־BIOS מודרני, המשתמש יכול לבחור באחד ממספר התקנים שממנו הוא רוצה לבצע את האתחול, לדוגמה הדיסק הקשיח, דיסקט, SCSI, CD-ROM, כונן ZIP, LS-120 או USB (דיסקט-ZIP-USB ,USB, תקליטור-USB וכונן קשיח-USB).

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

ישנן תוכנות מיוחדות המאפשרות לבחור את מערכת ההפעלה שתעלה במחשב כגון GRUB.

== תהליך האתחול במחשב PC סטנדרטי ==
מחשב PC במהלך תהליך האתחול
בהתחלה, המעבד של המחשב האישי מריץ את ההוראות הממוקמות באוגר בכתובת FFFF0h בזיכרון של ה־BIOS. אוגר זיכרון זה ממוקם קרוב לסוף זיכרון המערכת. הוא מכיל פקודת קפיצה (jump) שמעבירה את הביצוע למיקום של תוכנת ההתחלה של ה־BIOS. התוכנה מריצה בדיקה עצמית שנקראת Power-On Self Test (או בקיצור POST) – שתפקידה לוודא שההתקנים עליהם המחשב הולך להתבסס הם תקינים, ואז היא מאתחלת אותם. לאחר מכן, ה־BIOS עובר על רשימה מוגדרת מראש של התקנים עד שהוא מוצא אחד שניתן לבצע ממנו את הליך האתחול. אם לא נמצא אף התקן כזה, ניתנת הודעת שגיאה, ותהליך האתחול מופסק. אם ה־BIOS מוצא התקן שניתן לבצע ממנו אתחול, הוא טוען ומבצע את תוכן סקטור האתחול שלו, אשר בכוננים קשיחים הוא נקרא Master boot record (או בקיצור MBR), ואינו ספציפי למערכת הפעלה מסוימת. ברוב המקרים, ה־MBR בודק את טבלת המחיצות (Partition Table) עבור מחיצה פעילה. אם נמצאת מחיצה פעילה כזו, ה־MBR טוען את סקטור האתחול ומריץ אותו. סקטור האתחול הזה הוא ספציפי לכל מערכת הפעלה, אך ברוב מערכות ההפעלה, תפקידו העיקרי הוא לטעון ולהריץ את הגרעין, אשר ממשיך את האתחול, וטוען את מערכת ההפעלה באופן מלא עד לסיום תהליך האתחול.

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

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

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

== אטימולוגיה ==
מקור שם התהליך באנגלית (booting) הוא מאגדה שקשורה לברון מינכהאוזן.

==ראו גם==
* Bootstrapping
* Reset
* UNetbootin

==קישורים חיצוניים==

*[http://tldp.org/HOWTO/BootPrompt-HOWTO-1.html תהליך האתחול של לינוקס]
*[https://web.archive.org/web/20110628192228/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/dos-windows-boot-process.html תהליכי האתחול של DOS וחלונות]

==הערות שוליים==

קטגוריה:תוכנות מערכת
קטגוריה:חומרה
קטגוריה:מערכת הפעלה