23
הההההה ההההה ההההה1 הההה-

מערכות הפעלה

  • Upload
    amaris

  • View
    53

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: מערכות הפעלה

מערכות הפעלה

- מבוא1תרגול

Page 2: מערכות הפעלה

מערכות הפעלה - תרגול 1 2(c) 2003 ארז חדד

ברוכים הבאים לקורס מערכות הפעלה!

אדמיניסטרציהסקירה בסיסית של ארכיטקטורת IA32

(80386+) מערכת ההפעלה שתודגם בקורס היאLinux:

סקירה היסטורית-הכנה לעבודה בLinux

Page 3: מערכות הפעלה

מערכות הפעלה - תרגול 1 3(c) 2003 ארז חדד

IA32ארכיטקטורת

ביט, 32ארכיטקטורה של Little-Endian נמצאת במעבדיIntel-80386 החל מ

80286 ו-8086מהווה הרחבה של ארכיטקטורות קודמות במעבדי 1985הופיעה לראשונה בשוק בשנת:הארכיטקטורה מגדירה למעבד שלושה מצבי עבודה

Real Mode מצב של תאימות לארכיטקטורות ישנות יותר. משמש – בעיקר לאתחול המערכת

VM86 Modeמצב נוסף של תאימות למערכות ישנות – Protected Mode-ביט, 32 – מצב פעולה עיקרי הכולל תמיכה מלאה ב

ניהול זיכרון, ריבוי משימות וכו'. ,נציג סקירה בסיסית הכוללת ניהול זיכרון, רגיסטרים, פסיקות

בלבד.Protected Modeק"פ. הסקירה תתייחס למעבד במצב

Page 4: מערכות הפעלה

מערכות הפעלה - תרגול 1 4(c) 2003 ארז חדד

IA32 (1)פעולות מיוחסות ב-

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

היישומיםגישה מבוקרת לחומרהגישה חסומה לזיכרון שבשימוש מערכת ההפעלה

ארכיטקטורתIA32 רמות (4 מבדילה בין rings או privilege levels 0-3, המסומנות מיוחסות) שונות של פעולות מכונה

Ring 0 הרמה המקסימלית - ברמה זו ניתן לגשת לכל – החומרה במחשב ללא הגבלה

Ring 3 הרמה המינימלית – מאפשרת גישה מוגבלת (ברוב – מערכות ההפעלה, גישה לחלקי זיכרון בלבד).

Page 5: מערכות הפעלה

מערכות הפעלה - תרגול 1 5(c) 2003 ארז חדד

IA32 (2)פעולות מיוחסות ב-

-רוב מערכות ההפעלה לPC מנצלות רק את ring 0 בתור kernel mode הרמה של קוד)

user בתור ring 3מערכת ההפעלה) ואת mode(הרמה של קוד משתמש)

-כאשר המעבד מבצע קוד, הring שבו נמצא CPL (Current Privilegeהמעבד כרגע נקרא

Level)

Page 6: מערכות הפעלה

מערכות הפעלה - תרגול 1 6(c) 2003 ארז חדד

IA32(1) ניהול זיכרון ב-

IA32 4 מסוגלת לנצל עדGB(צ'יפים) של זיכרון פיזי ,"לכל יישום (וגם למערכת ההפעלה עצמה) יש זיכרון "פרטי

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

למערכת ההפעלה מותר לגשת לזיכרון של היישום

ניתן לשתף זיכרון בין יישומים הזיכרון מאורגן בצורת "איזורים". לכל יישום יש בדרך-כלל

גישה לשני איזורים לפחות: אחד לקוד ואחד לנתונים + מחסנית

Page 7: מערכות הפעלה

מערכות הפעלה - תרגול 1 7(c) 2003 ארז חדד

IA32 (2)ניהול זיכרון ב-

כאשר קוד מבקש לגשת לאיזור, החומרהמאשרת את הגישה במגבלות הבאות:

:לפי הפעולה המבוקשתread/write/execute לכל . איזור מוגדרות הרשאות המגבילות את סוג הפעולה

-לפי הCPL של המבקש: לכל איזור מוגדר DPL (Descriptor Privilege Level) הגישה מותרת רק .

. כך נמנע מיישומי המשתמש לגשת CPL≤DPLאם לאיזורים של מערכת ההפעלה

Page 8: מערכות הפעלה

מערכות הפעלה - תרגול 1 8(c) 2003 ארז חדד

IA32 (3)ניהול זיכרון ב-

המכילה כתובת לוגיתבגישה לזיכרון, הקוד מספק segment:offset

Segment ביט המזהה את איזור הזיכרון 16 הוא מספר בן המבוקש.

Offset ביט המזהה כתובת ספציפית 32 הוא מספר בן בתוך האיזור המבוקש

כתובת החומרה מתרגמת את הכתובת הלוגית ל ביט) של תא בזיכרון המחשב32 (מספר בן פיזית

-על מנגנון הזיכרון בIA32-וב Linux נלמד ביתר דיוק והרחבה בתרגולים הבאים

Page 9: מערכות הפעלה

מערכות הפעלה - תרגול 1 9(c) 2003 ארז חדד

IA32 (1)רגיסטרים במעבד

) 80386נציג רק את סט הרגיסטרים הבסיסי(-כל הרגיסטרים, למעט הsegment registers ביט 32, הם בני

ביט) הנמוכה של כל רגיסטר בהשמטת 16וניתן לגשת למילה ( מתחילת השםeה- לדוגמה: המילה הנמוכה שלebp היא bp

4 :רגיסטרים לחישוב כללי eax, ebx, ecx, edx) ביט) הנמוך ביותר בכל 8ברגיסטרים אלו בלבד, ניתן לגשת גם לבית

. לבית השני הנמוך ביותר ניגשים al. לדוגמה: l ב-xרגיסטר בהחלפת ה-.ah. לדוגמה: h ב-xבהחלפת ה-

2:רגיסטרים כלליים המשמשים גם לגישה למערכים esi, edi

Page 10: מערכות הפעלה

מערכות הפעלה - תרגול 1 10(c) 2003 ארז חדד

IA32 (2)רגיסטרים במעבד

:מצביע המחסניתesp :רגיסטר כללי שמשמש גם בקריאה לפונקציותebp :מצביע התכניתeip :רגיסטר הדגליםeflags segment registers ביט המכילים את 16: רגיסטרים בני

/ cs (code), ds (data), ss (stack), esהסגמנט בגישה לזיכרון: fs / gs

דוגמאות: ראש המחסנית נמצא בss:esp ההוראה הבאה לביצוע .. cs:eipנמצאת ב-

-הCPL הוא שדה בתוך הרגיסטר csרגיסטרים נוספים יוצגו בהמשך לפי הצורך

Page 11: מערכות הפעלה

מערכות הפעלה - תרגול 1 11(c) 2003 ארז חדד

IA32 (3)רגיסטרים במעבד הדגלים של רגיסטרeflags:

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

מצב המעבד:משנים מצב על-פי פעולה מפורשת של הקוד, על-מנת מתגי בקרה

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

31

18

17

16

15

14

13

12

11

10

9876543210

0VM

RF

0NT

IOPLOF

DF

IF

TF

SF

ZF

0AF

0PF

1CF

Page 12: מערכות הפעלה

מערכות הפעלה - תרגול 1 12(c) 2003 ארז חדד

IA32 (4)רגיסטרים במעבד

דגלי חיווי סטטוסCF (Carry Flag) אם בחישוב 1 מציין (ערך (

) מעבר לסיבית carry/borrowהאחרון נוצר נשא (הגבוהה ביותר

PF (Parity Flag) האם מספר 1 מציין (ערך (" בתוצאת החישוב האחרונה הינו 1הסיביות במצב "

זוגיZF (Zero Flag) האם תוצאת 1 מציין (ערך (

0החישוב האחרונה היא

Page 13: מערכות הפעלה

מערכות הפעלה - תרגול 1 13(c) 2003 ארז חדד

IA32 (5)רגיסטרים במעבד

:מתגי בקרהIF (Interrupt Flag) למעבד לקבל ולטפל 1 מאפשר (ערך (

בפסיקות חמרה חיצוניותIOPL (I/O Privilege Level)-קובע את ה ring המקסימלי

ביט)2עבורו מותר לבצע פעולות קלט/פלט (שדה בגודל -רק קוד שרץ בCPL=0 רשאי לשנות את ערך IOPL-רק קוד שרץ בCPL-שאינו גבוה מ IOPL רשאי

לאפשר ולחסום פסיקות מהחומרה באמצעות מתג )cli, sti במעבד (פעולות IFה-

Page 14: מערכות הפעלה

מערכות הפעלה - תרגול 1 14(c) 2003 ארז חדד

IA32 (1)פסיקות ב-

) פסיקהinterrupt .היא אות הנקלט במעבד במהלך ביצוע קוד (אות זה מעיד על אירוע שדורש את טיפולו המיידי של המעבד

המעבד מבחין ומטפל בפסיקות בין ביצוע של שתי הוראותעוקבות בקוד

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

שגרת הטיפול בפסיקה נקראת Interrupt Handler-הפעלת שגרת הטיפול בפסיקה יכולה לגרום מעבר מuser mode

(ומעבר הפוך בסיום הטיפול בפסיקה)kernel modeל--בIA32 255..0 פסיקות שונות הממוספרות 256 מוגדרות

Page 15: מערכות הפעלה

מערכות הפעלה - תרגול 1 15(c) 2003 ארז חדד

IA32 (2)פסיקות ב-

בארכיטקטורתIA32:מוגדרים שני סוגי פסיקות פסיקות אלו , פסיקות אסינכרוניות):interruptsפסיקות חומרה (1.

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

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

) וחלקן קריטיות ואינן ניתנות maskable interruptsסלקטיבית ().non-maskable interruptsלחסימה (

פסיקות אלו נוצרות ע"י , פסיקות סינכרוניות):exceptionsחריגות (2.המעבד עצמו בעת ביצוע הוראות של הקוד. מטרת החריגות היא

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

, גישה לא מותרת לזיכרוןbreakpoint, 0חלוקה ב-

Page 16: מערכות הפעלה

מערכות הפעלה - תרגול 1 16(c) 2003 ארז חדד

IA32 (3)פסיקות ב-

סוג מסוים של חריגות נקראProgrammed Exceptions או ). זהו המנגנון Software Interruptsפסיקות תוכנה (

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

:intלגרום פסיקת תכנה על-ידי הוראת int <int_num>

מדוע משתמשים במנגנון זה לקבלת שירותים שאלה: במקום בקריאה פשוטה לפונקציה?

תשובה:kernel mode ל-user modeכדי לתמוך במעבר מ-–כדי שיישום המשתמש לא יצטרך לדעת את מיקום שגרות –

מערכת ההפעלה

Page 17: מערכות הפעלה

מערכות הפעלה - תרגול 1 17(c) 2003 ארז חדד

IA32קלט/פלט ב-

המעבד מחובר לחומרה היקפית כמו דיסק, מדפסתportsוכו' באמצעות "שערים" -

-64תמיכה בKשערים בכל שער ניתן לקבל ולשלוח הוראות ונתונים לחומרה

I/Oההיקפית באמצעות פעולות פעולותI/O-הן פעולות מיוחסות. רק קוד שרץ ב CPL

במעבד רשאי לבצע IOPLשאינו גבוה מערך שדה פעולות אלו. למעשה, רק קוד מערכת ההפעלה רשאי

לגשת לחומרה בחופשיות

Page 18: מערכות הפעלה

מערכות הפעלה - תרגול 1 18(c) 2003 ארז חדד

IA32 (1)המחסנית ב-

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

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

בתרגולים הבאים המחסנית נגישה דרך צמד הרגיסטרים

ss:esp שבראש האיבר הנוכחי, המצביע על המחסנית

Page 19: מערכות הפעלה

מערכות הפעלה - תרגול 1 19(c) 2003 ארז חדד

IA32 (2)המחסנית ב-

המחסנית גדלה בכיוון הכתובות הנמוכותesp-בכל פעולת 4 או ב-2 מוקטן ב push גם אם ,

ביט16מכניסים למחסנית פחות מ- כתובותsegment:offset) far pointer או far call (

כערך segmentנשמרות במחסנית ע"י דחיפת ה-offset ביט ואחריו ה-32של

בדרך-כלל מכניסים למחסנית רקoffset של )near call או near pointerכתובת (

Page 20: מערכות הפעלה

מערכות הפעלה - תרגול 1 20(c) 2003 ארז חדד

Linux!נעים להכיר – מערכת הפעלה דמויתUnix

תאימות גבוהה (אך לא רשמית) לתקןPOSIX.1 מערכת הפעלה חופשית

ניתנת להורדה בחינם מהאינטרנטקוד פתוח - מפותחת כשיתוף פעולה של אלפי מתכנתים מכל העולם

-1990התחילה כפרויקט של סטודנט בLinus Torvalds כיום מוביל את פיתוח הגרעין העתידי של – Linux

:שמה המלאGNU/Linux חלק ניכר מהתוכנה בכלdistribution (גרסת הפצה) מעבר לגרעין הוא קוד פתוח של

GNUפרויקט Linuxמותאמת לסביבות חומרה רבות ושונות

למעשה, כמעט לכל סוג מעבד שישמשעוני יד ועד לשרתים אירגוניים

Page 21: מערכות הפעלה

מערכות הפעלה - תרגול 1 21(c) 2003 ארז חדד

Linux (1)הכנה לעבודה ב-

VMware:תוכנה המבצעת סימולציה של מחשב וירטואלי רצה על-גביWindows, Linux מותקנת בתחנותwindows בחוות המחשבים

בטאוב על גביVMware נתקין Red Hat Linux 8.0..פרטים נוספים – בתרגיל הבית הראשון

Page 22: מערכות הפעלה

מערכות הפעלה - תרגול 1 22(c) 2003 ארז חדד

Linux (2)הכנה לעבודה ב-

פקודות סטנדרטיות שלUnix Shell שלמדנו במת"ם

ls, cp, mv, cd, mkdir, rmdir, ps, grep … , :למי שרוצה לעבוד עם קבצים בקלות ובנוחות

mc (Midnight Commander)

Page 23: מערכות הפעלה

מערכות הפעלה - תרגול 1 23(c) 2003 ארז חדד

Linux (3)הכנה לעבודה ב-

מגוון סביבות עבודה גרפיות נוחות תחתX-Windows

KDE, Gnome) סביבות פיתוחIDEחלונאיות (

KDevelop, Anjuta :תוכנות עריכה נוחותnedit, (x)emacs, vim

תוכנות עריכה סטנדרטיות שפועלות גם ללאemacs, vim, pico, mceditסביבת חלונות: