מערכת הפעלה

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Disambig RTL.svgהמונח "OS" מפנה לכאן. לערך העוסק ביסוד כימי, ראו אוסמיום.
תרשים המציג את מקומה של מערכת ההפעלה במחשב מודרני

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

ניתן למנות שלושה תפקידים עיקריים של מערכת ההפעלה:

  1. הקצאת משאבי החומרה
  2. תזמון פעולות רכיבי החומרה ומרכיבי התוכנה
  3. העמדת תשתית משותפת ומסגרת מאורגנת של ממשק ושירותים למשתמש ולחבילות התוכנה

חלקים[עריכת קוד מקור | עריכה]

החלקים העיקריים של מערכת הפעלה הם:

  1. ליבה - שכבת התוכנה אשר אחראית על הקשר שבין שכבת התוכניות אל שכבת החומרה. היא אחראית גם על תגובה ראשונית לפסיקות חומרה או תוכנה (Interrupt Handling). בנוסף על הליבה לתזמן את כל התוכניות הרצות על המעבד/ים על מנת שכל תוכנית תוכל לרוץ בזמן שנקבע לה, כך שתוכניות לא יישארו "מורעבות" (כלומר - לא יקבלו זמן ריצה) ושתוכניות לא יגזלו לעצמן את כל משאבי המעבד.
  2. מעטפת פקודה (Application Programming Interface - API) - נותנת למשתמש הקצה את האפשרות להריץ פקודות של מערכת ההפעלה. בגלל רגישות מערכת ההפעלה לתוכניות זדוניות הרי שרוב הקריאות למערכת ההפעלה עוברות דרך שכבת תוכנה אשר מקשרת את תוכנת המשתמש אשר רצה לרוב ממרחב המשתמשים (user space) למערכת ההפעלה עצמה. קריאות אלה הן קריאות מערכת (System Calls) והיא מאפשרת למערכת ההפעלה להגן על עצמה ועל החומרה מפני תוכניות אשר מנסות להשתמש בה ובמשאביה בצורה מוטעית, או לצרכים פסולים.

ממשק משתמש[עריכת קוד מקור | עריכה]

ממשק המשתמש הוא דרך להציג למשתמש נתונים לשם הפעלה של תוכניות וקבלת תוצאות מהן. דוגמאות נפוצות לממשק משתמש גרפי נראות במערכות הפעלה כמו Windows של חברת מיקרוסופט, Mac OS מחברת אפל, או סביבות גרפיות חופשיות כמו KDE ו- GNOME. ממשקים גרפיים מאפשרים למשתמש לשלוט בכל הנעשה במחשב בעזרת העכבר והמקלדת, ובעזרת צלמיות (Icons) ורכיבי מסך כמו לחצנים, תיבות טקסט, רשימות נגללות וכן הלאה. זאת ללא צורך לכתוב פקודות וללא ידע בשפת מחשב. מערכות הפעלה רבות יודעות לשמור פרופיל משתמש המכיל התאמות אישיות שהוא ביצע לממשק המשתמש, ובכך לשמור את ההגדרות מהפעלה להפעלה.

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

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

ממשק החומרה[עריכת קוד מקור | עריכה]

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

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

ממשק תוכנה (API)[עריכת קוד מקור | עריכה]

API הן ראשי תיבות של Application Programming Interface - ממשק תכנות יישומים. ממשק זה מאפשר לכותבי היישומים להשתמש בשירותיה של מערכת ההפעלה, כמו ציור של חלונות על המסך, אחסון מידע בקבצים, ושימוש בזיכרון המחשב (RAM), מבלי שיזדקקו לנהל פעולות אלו בעצמם. כך, כותבי היישומים יכולים להתמקד במטרת היישום כמו עיבוד תמלילים, נגינת קובצי MP3, הכנת אלבום תמונות, ניהול חשבונות וכדומה.

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

סוגי מערכות הפעלה[עריכת קוד מקור | עריכה]

  • מערכות דסקטופ, PC - Personal Computer systems
    במערכות מחשב מסוג זה תפקידו של המחשב הוא לשרת את המשתמש הבודד - לכן מערכת הפעלה כזו פועלת על עקרונות של נוחות למשתמש וזמן תגובה מהיר. במערכות מסוג זה ניתן לאמץ טכנולוגיות ממערכות הפעלה גדולות יותר. דוגמאות למערכות כאלה:
    Time-Sharing Systems - מחשבים אינטראקטיביים
    זמן המעבד מחולק בין מספר משימות (jobs), אשר מאוחסנות בזיכרון ובדיסק (המעבד מוקצה אך ורק למשימה אשר נמצאת בזיכרון). כאשר אין מספיק מקום בזיכרון, נעשה שימוש בזיכרון וירטואלי, כלומר המידע השייך למשימה מועבר פנימה והחוצה מהזיכרון לדיסק.
  • מערכות מקביליות: מחשב מקבילי הוא מחשב המצויד ביותר ממעבד אחד, עם תקשורת צמודה:
    • מערכות הפעלה מקביליות הן Tightly coupled systems, כלומר המעבדים חולקים זיכרון ושעון. התקשורת נעשית לרוב דרך הזיכרון המשותף.
    • יתרונות המערכת המקבילית: תפוקה מוגברת; חיסכון: ניצול של מספר מעבדים עם זיכרון ושעון יחיד; אמינות גבוהה: כל מעבד מגובה על ידי האחרים.
    • מערכות מקביליות הן סימטריות או אסימטריות:
      • במערכות הפעלה סימטריות: ( SMP - Symmetric Multi Processing): כל מעבד מריץ עותק זהה של מערכת ההפעלה. מעבדים רבים יכולים לרוץ בו-זמנית. רוב מערכות ההפעלה המודרניות תומכות ב SMP.
      • במערכות הפעלה אסימטריות: לכל מעבד מקצים משימה (task) ספציפית. מערכות מסוג זה נפוצות במערכות גדולות ביותר.
  • מערכות מבוזרות: במערכות אלו החישוב מבוזר בין מספר מעבדים פיזיים. ** מערכות אלו הן Loosely coupled system - לכל מעבד יש את הזיכרון המקומי שלו. המעבדים מתקשרים ביניהם דרך קווי תקשורת מסוגים שונים, כמו אפיקים (buses) מהירים או קווי טלפון. יתרונות המערכת המבוזרת: שיתוף משאבים, אמינות, שיתוף בעומס המאפשר חישוב מהיר יותר.
  • מערכות זמן-אמת: מערכות מחשב אשר בהן יש דרישות לביצועים בזמנים מסוימים. הן נחלקות לשני סוגים:
    • Hard real-time: במערכות כאלה מובטח כי זמן הריצה הגרוע ביותר האפשרי לא עובר רף מסוים. בשל האיטיות היחסית של אחסון הזיכרון המשני, במערכות Hard real-time שטח הזיכרון המשני מוגבל או שלא נעשה בו כלל שימוש והמידע מאוחסן בזיכרון קצר טווח או בזיכרון לקריאה בלבד (ROM). קיימת התנגשות בין דרישות אלו לדרישות של time-sharing systems, ולכן שילוב כזה לא נתמך על ידי מערכות הפעלה שנועדו למגוון מטרות (להבדיל ממערכות הפעלה ייעודיות).
    • Soft real-time: במערכות כאלה המשתמש מרוצה יותר כאשר המערכת מגיבה בצורה אופטימלית, אך בו בזמן המשתמש לא יראה תגובה איטית יותר כ"כישלון". סוג זה שימושי בישומים כגון מולטימדיה ומציאות מדומה (virtual reality).
  • Handheld Systems: מערכות הפעלה אלו נמצאות בשימוש במחשבי כף יד ובטלפונים סלולריים מתקדמים. תכונות של מערכות הפעלה מסוג זה: זיכרון מוגבל, מעבדים איטיים ומסכי תצוגה קטנים.

משפחות מערכות הפעלה[עריכת קוד מקור | עריכה]

מערכות הפעלה ממשפחת מיקרוסופט[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – Microsoft Windows

מערכת ההפעלה הראשונה של חברת מיקרוסופט הייתה MS-DOS מערכת זו הייתה מערכת אצוות לא גרפית. בהמשך ניתן היה להלביש על מערכת הפעלה זו ממשק גרפי שנקרא Microsoft Windows 3.0 וגרסאות 3.1 ו-3.11 שלו. סדרת מערכות הפעלה עוקבת הייתה, חלונות 95, חלונות 98 ו-חלונות ME שהגרעין שלהם עדיין התבסס בחלקו על DOS. במקביל החל פיתוח חלונות NT בגרסאות 3.1‏, 3.5‏, 4.0 ו-5.0 הידועה גם בשם חלונות 2000 עבור מחשבים אישיים ו-Windows 2000 server לשרתים. הגרסה הבאה הייתה NT 5.1 הידועה גם כחלונות XP ו-Windows 2003 server. בנובמבר 2006 השיקה מיקרוסופט את חלונות ויסטה למחשבים אישיים ובאפריל 2008 השיקה את גרסת השרתים שנקראת Windows 2008 Server. באוקטובר 2009 השיקה מיקרוסופט את Windows 7 למחשבים אישיים ובמקביל את גרסת השרתים Windows 2008 R2 עם ממשק משתמש דומה. באוקטובר 2012 הושקה Windows 8 המתאימה גם למעבדי ARM (האופייניים למחשבי לוח וטלפונים חכמים), שולחן העבודה המסורתי הוחלף בממשק אריחים המותאם למסך מגע.

בנוסף ישנם גם מערכות הפעלה המנסות לחקות את פעולת מערכות ההפעלה ממשפחת מיקרוסופט, כדוגמת ReactOS ו-Haiku.

מערכות הפעלה מבוססות יוניקס[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערכים מורחבים – יוניקס, לינוקס

יוניקס היא מערכת הפעלה מסחרית אשר פותחה במעבדות בל. בהמשך פתחו חברות רבות מערכות הפעלה המבוססות על ליבת מערכת ההפעלה יוניקס. ביניהן: AIX ,HP-UX, סולאריס, SunOS ,IRIX. משפחת BSD הכוללת את: OS X ,FreeBSD ,NetBSD ,OpenBSD. ומשפחת לינוקס הכוללת הפצות רבות בהן: דביאן GNU/לינוקס, אובונטו לינוקס, Suse ,RedHat , Fedora , מנדריבה, ג'נטו, סלאקוור, Linspire (לשעבר Knoppix,Lindows).בנוסף פותחה מערכת הפעלה לטלפון חכם בשם אנדרואיד.

משפחת IBM/360[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – IBM System/360

מערכת ההפעלה הראשונה של משפחה זו הייתה IBM/360 ושווקה בתחילת שנות ה-60. מערכת הפעלה זו הייתה מיועדת למחשבי MainFrame. ‏IBM עדיין משווקת מערכות הפעלה תחת משפחה זו. מערכות הפעלה אלה כוללות את: IBM/370 ,IBM/4300, IBM/3080 ו-IBM/3090.

מערכות הפעלה אחרות[עריכת קוד מקור | עריכה]

קיימות מערכות הפעלה רבות נוספות. חלקן בשימוש נרחב בעוד האחרות נכתבות עבור שימושים ספציפיים. סימביאןטלפונים סלולריים) ו-PalmOS (למחשבי כף יד) הן שתי דוגמאות. קיימות מערכות הפעלה שיצורן הופסק מסיבות היסטוריות או שאוחדו לתוך מערכות הפעלה אחרות. בין אלה ניתן למצוא את: CP/M,‏ Mac OS,‏ OS/2 וכו'

פרצות אבטחה[עריכת קוד מקור | עריכה]

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

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

ראו גם[עריכת קוד מקור | עריכה]