1 / 23

מערכות הפעלה

מערכות הפעלה. תרגול 1 - מבוא. ברוכים הבאים לקורס מערכות הפעלה!. אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+) מערכת ההפעלה שתודגם בקורס היא Linux : סקירה היסטורית הכנה לעבודה ב- Linux. ארכיטקטורת IA32. ארכיטקטורה של 32 ביט, Little-Endian נמצאת במעבדי Intel החל מ- 80386

amaris
Download Presentation

מערכות הפעלה

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מערכות הפעלה תרגול 1 - מבוא

  2. ברוכים הבאים לקורס מערכות הפעלה! • אדמיניסטרציה • סקירה בסיסית של ארכיטקטורתIA32 (80386+) • מערכת ההפעלה שתודגם בקורס היא Linux : • סקירה היסטורית • הכנה לעבודה ב-Linux מערכות הפעלה - תרגול 1

  3. ארכיטקטורת IA32 • ארכיטקטורה של 32 ביט, Little-Endian • נמצאת במעבדי Intel החל מ-80386 • מהווה הרחבה של ארכיטקטורות קודמות במעבדי 8086 ו-80286 • הופיעה לראשונה בשוק בשנת 1985 • הארכיטקטורה מגדירה למעבד שלושה מצבי עבודה: • Real Mode – מצב של תאימות לארכיטקטורות ישנות יותר. משמש בעיקר לאתחול המערכת • VM86 Mode – מצב נוסף של תאימות למערכות ישנות • Protected Mode – מצב פעולה עיקרי הכולל תמיכה מלאה ב-32 ביט, ניהול זיכרון, ריבוי משימות וכו'. • נציג סקירה בסיסית הכוללת ניהול זיכרון, רגיסטרים, פסיקות, ק"פ. הסקירה תתייחס למעבד במצב Protected Mode בלבד. מערכות הפעלה - תרגול 1

  4. פעולות מיוחסות ב-IA32 (1) • עקרון הפעולות המיוחסות מוטמע בכל המנגנונים בחומרה ומשמש להגבלת פעולות יישומי המשתמשים ולהפרדה בין היישומים • גישה מבוקרת לחומרה • גישה חסומה לזיכרון שבשימוש מערכת ההפעלה • ארכיטקטורת IA32 מבדילה בין 4 רמות (rings או privilege levels) שונות של פעולות מכונה מיוחסות, המסומנות 0-3 • Ring 0 – הרמה המקסימלית - ברמה זו ניתן לגשת לכל החומרה במחשב ללא הגבלה • Ring 3 – הרמה המינימלית – מאפשרת גישה מוגבלת (ברוב מערכות ההפעלה, גישה לחלקי זיכרון בלבד). מערכות הפעלה - תרגול 1

  5. פעולות מיוחסות ב-IA32 (2) • רוב מערכות ההפעלה ל-PC מנצלות רק את ring 0 בתור kernel mode (הרמה של קוד מערכת ההפעלה) ואת ring 3 בתור user mode (הרמה של קוד משתמש) • כאשר המעבד מבצע קוד, ה-ring שבו נמצא המעבד כרגע נקרא CPL (Current Privilege Level) מערכות הפעלה - תרגול 1

  6. ניהול זיכרון ב- IA32(1) • IA32 מסוגלת לנצל עד 4GB של זיכרון פיזי (צ'יפים) • לכל יישום (וגם למערכת ההפעלה עצמה) יש זיכרון "פרטי", שרק הוא יכול לגשת אליו • הגנה על נתוני מערכת ההפעלה • הגנה על נתוני כל יישום • למערכת ההפעלה מותר לגשת לזיכרון של היישום • ניתן לשתף זיכרון בין יישומים • הזיכרון מאורגן בצורת "איזורים". לכל יישום יש בדרך-כלל גישה לשני איזורים לפחות: אחד לקוד ואחד לנתונים + מחסנית מערכות הפעלה - תרגול 1

  7. ניהול זיכרון ב-IA32 (2) • כאשר קוד מבקש לגשת לאיזור, החומרה מאשרת את הגישה במגבלות הבאות: • לפי הפעולה המבוקשת: read/write/execute . לכל איזור מוגדרות הרשאות המגבילות את סוג הפעולה • לפי ה-CPL של המבקש: לכל איזור מוגדר DPL (Descriptor Privilege Level). הגישה מותרת רק אם CPL≤DPL. כך נמנע מיישומי המשתמש לגשת לאיזורים של מערכת ההפעלה מערכות הפעלה - תרגול 1

  8. ניהול זיכרון ב-IA32 (3) • בגישה לזיכרון, הקוד מספק כתובת לוגית המכילה segment:offset • Segment הוא מספר בן 16 ביט המזהה את איזור הזיכרון המבוקש. • Offset הוא מספר בן 32 ביט המזהה כתובת ספציפית בתוך האיזור המבוקש • החומרה מתרגמת את הכתובת הלוגית לכתובת פיזית (מספר בן 32 ביט) של תא בזיכרון המחשב • על מנגנון הזיכרון ב-IA32 וב-Linux נלמד ביתר דיוק והרחבה בתרגולים הבאים מערכות הפעלה - תרגול 1

  9. רגיסטרים במעבד IA32 (1) • נציג רק את סט הרגיסטרים הבסיסי (80386) • כל הרגיסטרים, למעט ה-segment registers, הם בני 32 ביט וניתן לגשת למילה (16 ביט) הנמוכה של כל רגיסטר בהשמטת ה-e מתחילת השם • לדוגמה: המילה הנמוכה של ebp היא bp • 4 רגיסטרים לחישוב כללי: eax, ebx, ecx, edx • ברגיסטרים אלו בלבד, ניתן לגשת גם לבית (8 ביט) הנמוך ביותר בכל רגיסטר בהחלפת ה-x ב-l. לדוגמה: al. לבית השני הנמוך ביותר ניגשים בהחלפת ה-x ב-h. לדוגמה: ah. • 2 רגיסטרים כלליים המשמשים גם לגישה למערכים: esi, edi מערכות הפעלה - תרגול 1

  10. רגיסטרים במעבד IA32 (2) • מצביע המחסנית: esp • רגיסטר כללי שמשמש גם בקריאה לפונקציות: ebp • מצביע התכנית: eip • רגיסטר הדגלים: eflags • segment registers: רגיסטרים בני 16 ביט המכילים את הסגמנט בגישה לזיכרון: cs (code), ds (data), ss (stack), es / fs / gs • דוגמאות: ראש המחסנית נמצא ב ss:esp. ההוראה הבאה לביצוע נמצאת ב-cs:eip. • ה-CPL הוא שדה בתוך הרגיסטר cs • רגיסטרים נוספים יוצגו בהמשך לפי הצורך מערכות הפעלה - תרגול 1

  11. רגיסטרים במעבד IA32 (3) • הדגלים של רגיסטר eflags: • הדגלים מחולקים לשני סוגים: • דגלי חיווי סטטוס: מתעדכנים בעקבות כל פעולת מכונה. משמשים לחיווי מצב המעבד • מתגי בקרה: משנים מצב על-פי פעולה מפורשת של הקוד, על-מנת להשפיע על התנהגות המעבד בהמשך. • בהמשך נפרט את תפקידם של מספר דגלים רלוונטיים מערכות הפעלה - תרגול 1

  12. רגיסטרים במעבד IA32 (4) • דגלי חיווי סטטוס • CF (Carry Flag) מציין (ערך 1) אם בחישוב האחרון נוצר נשא (carry/borrow) מעבר לסיבית הגבוהה ביותר • PF (Parity Flag) מציין (ערך 1) האם מספר הסיביות במצב "1" בתוצאת החישוב האחרונה הינו זוגי • ZF (Zero Flag) מציין (ערך 1) האם תוצאת החישוב האחרונה היא 0 מערכות הפעלה - תרגול 1

  13. רגיסטרים במעבד IA32 (5) • מתגי בקרה: • IF (Interrupt Flag) מאפשר (ערך 1) למעבד לקבל ולטפל בפסיקות חמרה חיצוניות • IOPL (I/O Privilege Level) קובע את ה-ring המקסימלי עבורו מותר לבצע פעולות קלט/פלט (שדה בגודל 2 ביט) • רק קוד שרץ ב-CPL=0 רשאי לשנות את ערך IOPL • רק קוד שרץ ב-CPL שאינו גבוה מ-IOPL רשאי לאפשר ולחסום פסיקות מהחומרה באמצעות מתג ה-IF במעבד (פעולות cli, sti) מערכות הפעלה - תרגול 1

  14. פסיקות ב-IA32 (1) • פסיקה (interrupt) היא אות הנקלט במעבד במהלך ביצוע קוד. אות זה מעיד על אירוע שדורש את טיפולו המיידי של המעבד • המעבד מבחין ומטפל בפסיקות בין ביצוע של שתי הוראות עוקבות בקוד • בתגובה על פסיקה, המעבד מבצע שגרת קוד מוגדרת מראש ואחר כך חוזר להמשך ביצוע הקוד. • שגרת הטיפול בפסיקה נקראת Interrupt Handler • הפעלת שגרת הטיפול בפסיקה יכולה לגרום מעבר מ-user mode ל-kernel mode (ומעבר הפוך בסיום הטיפול בפסיקה) • ב-IA32 מוגדרות 256 פסיקות שונות הממוספרות 0..255 מערכות הפעלה - תרגול 1

  15. פסיקות ב-IA32 (2) • בארכיטקטורת IA32 מוגדרים שני סוגי פסיקות: • פסיקות חומרה (interrupts, פסיקות אסינכרוניות): פסיקות אלו נגרמות ע"י חומרה חיצונית למעבד וללא תיאום עם שעון המעבד. מטרת פסיקות אלו היא להודיע למעבד על שינוי מצב בחומרה החיצונית הדורש את טיפולו של המעבד, כגון הקשת מקש במקלדת, הגעת נתונים מהרשת וכו'. חלק מפסיקות אלו ניתנות לחסימה סלקטיבית (maskable interrupts) וחלקן קריטיות ואינן ניתנות לחסימה (non-maskable interrupts). • חריגות (exceptions, פסיקות סינכרוניות): פסיקות אלו נוצרות ע"י המעבד עצמו בעת ביצוע הוראות של הקוד. מטרת החריגות היא לגרום למעבד לטפל בתקלות שמתעוררות עקב ביצוע קוד, או ליזום במתכוון מצב שבו המעבד מפעיל שגרת טיפול כלשהי. דוגמה: חלוקה ב-0, breakpoint, גישה לא מותרת לזיכרון מערכות הפעלה - תרגול 1

  16. פסיקות ב-IA32 (3) • סוג מסוים של חריגות נקרא Programmed Exceptions או פסיקות תוכנה (Software Interrupts). זהו המנגנון באמצעותו מבקשים יישומים לקבל שירות ממערכת ההפעלה, הנגיש כשיגרת טיפול בחריגה מסוימת. ניתן לגרום פסיקת תכנה על-ידי הוראת int: int <int_num> שאלה: מדוע משתמשים במנגנון זה לקבלת שירותים במקום בקריאה פשוטה לפונקציה? תשובה: • כדי לתמוך במעבר מ-user mode ל-kernel mode • כדי שיישום המשתמש לא יצטרך לדעת את מיקום שגרות מערכת ההפעלה מערכות הפעלה - תרגול 1

  17. קלט/פלט ב-IA32 • המעבד מחובר לחומרה היקפית כמו דיסק, מדפסת וכו' באמצעות "שערים" - ports • תמיכה ב-64K שערים • בכל שער ניתן לקבל ולשלוח הוראות ונתונים לחומרה ההיקפית באמצעות פעולות I/O • פעולות I/O הן פעולות מיוחסות. רק קוד שרץ ב-CPL שאינו גבוה מערך שדה IOPL במעבד רשאי לבצע פעולות אלו. למעשה, רק קוד מערכת ההפעלה רשאי לגשת לחומרה בחופשיות מערכות הפעלה - תרגול 1

  18. המחסנית ב-IA32 (1) • לכל יישום במערכת יש מחסנית המשמשת לקריאה לפונקציות במהלך ביצוע הקוד • למעשה, לכל יישום יכולות להיות מספר מחסניות והן משמשות בתפקידים נוספים. פרטים נוספים בתרגולים הבאים • המחסנית נגישה דרך צמד הרגיסטרים ss:esp, המצביע על האיבר הנוכחי שבראש המחסנית מערכות הפעלה - תרגול 1

  19. המחסנית ב-IA32 (2) • המחסנית גדלה בכיוון הכתובות הנמוכות • esp מוקטן ב-2 או ב-4 בכל פעולת push, גם אם מכניסים למחסנית פחות מ-16 ביט • כתובות segment:offset (far pointer או far call) נשמרות במחסנית ע"י דחיפת ה-segment כערך של 32 ביט ואחריו ה-offset • בדרך-כלל מכניסים למחסנית רק offset של כתובת (near pointer או near call) מערכות הפעלה - תרגול 1

  20. Linux – נעים להכיר! • מערכת הפעלה דמוית Unix • תאימות גבוהה (אך לא רשמית) לתקן POSIX.1 • מערכת הפעלה חופשית • ניתנת להורדה בחינם מהאינטרנט • קוד פתוח - מפותחת כשיתוף פעולה של אלפי מתכנתים מכל העולם • התחילה כפרויקט של סטודנט ב-1990 • Linus Torvalds – כיום מוביל את פיתוח הגרעין העתידי של Linux • שמה המלא: GNU/Linux • חלק ניכר מהתוכנה בכל distribution (גרסת הפצה) מעבר לגרעין הוא קוד פתוח של פרויקט GNU • Linux מותאמת לסביבות חומרה רבות ושונות • למעשה, כמעט לכל סוג מעבד שיש • משעוני יד ועד לשרתים אירגוניים מערכות הפעלה - תרגול 1

  21. הכנה לעבודה ב-Linux (1) • VMware: • תוכנה המבצעת סימולציה של מחשב וירטואלי • רצה על-גבי Windows, Linux • מותקנת בתחנות windows בחוות המחשבים בטאוב • על גבי VMware נתקין Red Hat Linux 8.0. • פרטים נוספים – בתרגיל הבית הראשון. מערכות הפעלה - תרגול 1

  22. הכנה לעבודה ב-Linux (2) • פקודות סטנדרטיות של Unix Shell שלמדנו במת"ם • ls, cp, mv, cd, mkdir, rmdir, ps, grep, … • למי שרוצה לעבוד עם קבצים בקלות ובנוחות: mc (Midnight Commander) מערכות הפעלה - תרגול 1

  23. הכנה לעבודה ב-Linux (3) • מגוון סביבות עבודה גרפיות נוחות תחת X-Windows • KDE, Gnome • סביבות פיתוח (IDE) חלונאיות • KDevelop, Anjuta • תוכנות עריכה נוחות: nedit, (x)emacs, vim • תוכנות עריכה סטנדרטיות שפועלות גם ללא סביבת חלונות: emacs, vim, pico, mcedit מערכות הפעלה - תרגול 1

More Related