מערכות הפעלה

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

ממשק משתמש (User Inteface, UI ) - ממשק משתמש הוא הדרך שבה המשתמש יכול לתת פקודות למערכת ההפעלה. בעבר ממשק המשתמש היה טקסטואלי, כלומר, מערכת ההפעלה נראתה כמעין שורת פקודה בעלת מסך שחור שבה היה ניתן להריץ פקודות. למשל, על מנת ליצור תיקייה ששמה newfolder ב-path - (לדוגמה בכונן C שהוא הדיסק הקשיח ) במערכת ההפעלה הישנה של חברת מיקרוסופט ששמה DOS, היה צריך לכתוב את הפקודה:

mkdir newfolder

. כיום רוב מערכות ההפעלה הן גרפיות, ומכילות שולחן עבודה ( Desktop ).

ליבה ( באנ'-Kernel ) - ליבת מערכת ההפעלה היא הרכיב החשוב ביותר של המערכת. הליבה מתווכת בין החומרה לבין התוכנה. ליבות כתובות בדרך כלל מ-Assembly (שפת סף- שפת התכנות הקרובה ביותר לשפת מכונה- שבה המעבד מקבל את הפקודות) , C, ובדרך כלל גם C++. ישנם שני סוגים עיקריים של ליבות : ליבה מונוליטית, ומיקרו ליבה ( Microkernel ). ליבה מונולטית כתובה כתוכנה אחת אשר כל חלקיה באותו מרחב כתובות, ומכילה את כל הקוד הנדרש לביצוע פעולות הליבה. כתוצאה מכך, שינוי של חלק אחד עלול לגרור שינוי של חלקים נוספים, ובאג יחיד עלול לגרום לקריסת המערכת כולה. יתר על כן, תכנות ודיבוג בשפה זו הינם משימות קשות יותר, ולכן הסיכוי להימצאות באגים בקוד גובר. עוד חיסרון משמעותי הוא הצורך לשכתב מחדש את המערכת לכל ארכיטקטורת תוכנה. עם זאת, סוג ליבה זה דורש פחות זיכרון, פועל מהר יותר, ותכיל פחות קוד בצורת קוד המקור וכן בצורת הקוד המהודר. - מנהל התקנים: מנהל את ההתקנים החיצוניים של המערכת, כגון מקלדת, עכבר, דיסק, וכו'. מערכות הפעלה מוכרות : מערכות הפעלה מבית מיקרוסופט: DOS. Vista. Windows 7/8/10. מערכות הפעלה דמויות יוניקס ( UNIX ): Linux וניביה השונים. BSD. MacOS. נכון לסוף העשור השני של המאה ה-20, מבין מערכות ההפעלה בעלות Desktop, וונדוס מבית מיקרוסופט מחזיקה ב-82.74% מנתח השוק, MacOs ב 13.23% וניבי ה-Linux השונים ב 1.57%.

רקע תיאורטי עריכה

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

משאבי המחשב על פי ארכיטקטורת פון ניומן עריכה

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

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

0110 1010

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

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

אפיקי נתונים , או פסי נתונים ( System Busses ) הם ערוצי מידע בהם הזיכרון, המעבד, ויחידות הקלט \ פלט מתקשרות. ישנם 3 פסי נתונים מרכזיים : פס הנתונים ( Data Bus ), פס הבקרה ( Control Bus ), ופס הכתובות ( Address Bus ). מידע עובר בערוץ מבין ה-3 בהתאם לסוגו, כלומר, נתון יעבור בפס הנתונים.