Kernel ושירותי מערכות הפעלה

עודכן לאחרונה: 22 ספטמבר, 2022

מה זה Kernel?

רבים מאתנו שעובדים במערכות מחשוב שונות ועושים שימוש בפונקציונליות הרחבה של מערכות ההפעלה (windows / android / linux / Apple's IOS X וכו'), לא מכירים בחשיבותה המכרעת של ה kernel.

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

סביב הליבה נבנו עוד אוסף של תוכנות שירות עבור המשתמש components / packages (לדוגמה תמיכה בחלונות גרפיים – windows explorer, X window system, דפדפני אינטרנט – iexplorer / firefox / chrome כלי שמע ונגני וידאו – sound recorder / equalizer plugins / vlc / mediaplayer, תמיכה בקידודי מדיה למטרות דחיסה – mp3 / ac97 / xvid / divx / mpeg / jpeg, תוכנות כיווץ zip / gzip / bzip2 / rar, תוכנות office ועריכת טקסט ועוד..) ולזו השם 'מערכת הפעלה'.

חלק מהתוכנות משולבות באופן אינטגרלי בה, וחלק הם אפליקציות להתקנה / תוספים. לדוגמה, כאשר אנו סורקים עבור קובץ ב PC, או מחפשים להפעיל אפליקציה ב smartphone, החומרה מאזינה לקלט (input) מהמשתמש – Hardware Interrupt, ומוכנה לפלט (output) משכבות האפליקציה – System Call.

יתכן שה input יגיע מ-touch screen או מלחיצת כפתור, או מהעכבר ומהקלדת. יתכן שה output יעשה שימוש בכרטיס קול, או במסך. שכבות התוכנה של ה kernel מהווים שכבה מקשרת בין האפליקציה אל החומרה.

חובה להשתמש ב - Kernel כדי שהמחשב יעבוד?

התשובה היא חד משמעית לא!

מערכות מחשוב יכולות להסתדר גם בלי. ישנם מערכות מחשוב שאין להם צורך בכך כלל. כל מערכת המכילה מעבד (system embedded), מחייבת שימוש בשפת מעבד (assembly – השפה הבינרית שהמעבד יודע לעבוד בה) ותוכנת טעינה ראשונית (boot loader – התוכנה הראשונה שהמעבד מריץ, לרוב נמצאת על רכיב חיצוני כגון flash או eprom).

אופי העבודה ללא שכבות ה kernel נקרא Single User Single Task Operating System. ועם זאת החיסרון במערכת מחשוב ללא תוכנה מסוג זה הוא עצום, והוא בא לידי ביטוי באופן הפיתוח.

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

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

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

התזמון והסנכרון של ה i/o-ים השונים הינה מלכה מורכבת מאוד, ועל אחת כמה וכמה כאשר להתקן מסוים או לתת תהליך מסוים יש עדיפות גבוהה יותר מאשר לאחר.

זוהי הסיבה שרוב החברות מעדיפות לעשות שימוש במערכת הפעלה. נכון להיום השימוש המועדף בתעשייה הוא ה linux kernel.

נמנה כאן את עיקר השירותים שמציעה מערכת הפעלה

  • עבודה מקבילית – multi-tasking.
  • ניצול אופטימלי של מערכות מרובות מעבדים (ומעבדים מרובי ליבות)
  • יכולת עבודה יציבה ופשוטה יחסית של חלוקת זמן ומשאבים.
  • ניצול מלא (בהתאם לתמיכת הדרייברים) של כל רכיבי ה i/o תחת סביבה אחת.
  • מיסוך העבודה מול החומרה (שירות של המערכת הפעלה עצמה – kernel module / driver)
  • תקן אחיד לכתיבת אפליקציות.
  • פשטות וגמישות בניהול קוד ע"ג פלטפורמות תוכנה וחומרה הטרוגניות

תחומי לימוד הכי מבוקשים בהייטק בשנת 2024

© כל הזכויות שמורות Real Time Group