עד 50% הנחה
לקורסי בוקר במתכונת BOOTCAMP!
4 חודשים ונכנסתם להייטק כמפתחים מן השורה
אל תחמיצו את מועדי הפתיחה הקרובים:
מסלול RT Embedded Linux | 09/12 |
מסלול Cyber | 09/12 |
מסלול Computer Vision | 11/12 |
מסלול Machine Learning | 19/12 |
מסלול Full Stack | 19/12 |
עודכן לאחרונה: 22 ספטמבר, 2022
רבים מאתנו שעובדים במערכות מחשוב שונות ועושים שימוש בפונקציונליות הרחבה של מערכות ההפעלה (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 מהווים שכבה מקשרת בין האפליקציה אל החומרה.
התשובה היא חד משמעית לא!
מערכות מחשוב יכולות להסתדר גם בלי. ישנם מערכות מחשוב שאין להם צורך בכך כלל. כל מערכת המכילה מעבד (system embedded), מחייבת שימוש בשפת מעבד (assembly – השפה הבינרית שהמעבד יודע לעבוד בה) ותוכנת טעינה ראשונית (boot loader – התוכנה הראשונה שהמעבד מריץ, לרוב נמצאת על רכיב חיצוני כגון flash או eprom).
אופי העבודה ללא שכבות ה kernel נקרא Single User Single Task Operating System. ועם זאת החיסרון במערכת מחשוב ללא תוכנה מסוג זה הוא עצום, והוא בא לידי ביטוי באופן הפיתוח.
מערכות ללא kernel הם בעיקר מערכות פשוטות ו / או ייעודיות. לדוגמה מצלמות רשת זעירות, טייפ מנהלים, ציודי תקשורת פשוטים ברמה הנמוכה (לדוגמה hub-ים או switch-ים פשוטים / ציודי תמסורת), שעונים דיגיטליים כרטיסי הרחבה וכדומה.
אלו מערכות מוגבלות, והשימושים בהם ספציפיים. ומנגד, ישנם מקרים בהם נדרשת עבודה מסוג זה, לדוגמה במערכות Real Time – אשר זמן התגובה של המערכת צריך להיות קצר, מדוד מראש וקונסיסטנטי.
במידה ונדרש לעבוד עם מספר רכיבים במקביל, הסיבוכיות עולה. האפליקציה המיועדת צריכה לקחת על עצמה תפקוד של שכבות תוכנה מסוג ה kernel.
התזמון והסנכרון של ה i/o-ים השונים הינה מלכה מורכבת מאוד, ועל אחת כמה וכמה כאשר להתקן מסוים או לתת תהליך מסוים יש עדיפות גבוהה יותר מאשר לאחר.
זוהי הסיבה שרוב החברות מעדיפות לעשות שימוש במערכת הפעלה. נכון להיום השימוש המועדף בתעשייה הוא ה linux kernel.