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
מערכות הפעלה
- מבוא1תרגול
מערכות הפעלה - תרגול 1 2(c) 2003 ארז חדד
ברוכים הבאים לקורס מערכות הפעלה!
אדמיניסטרציהסקירה בסיסית של ארכיטקטורת IA32
(80386+) מערכת ההפעלה שתודגם בקורס היאLinux:
סקירה היסטורית-הכנה לעבודה בLinux
מערכות הפעלה - תרגול 1 3(c) 2003 ארז חדד
IA32ארכיטקטורת
ביט, 32ארכיטקטורה של Little-Endian נמצאת במעבדיIntel-80386 החל מ
80286 ו-8086מהווה הרחבה של ארכיטקטורות קודמות במעבדי 1985הופיעה לראשונה בשוק בשנת:הארכיטקטורה מגדירה למעבד שלושה מצבי עבודה
Real Mode מצב של תאימות לארכיטקטורות ישנות יותר. משמש – בעיקר לאתחול המערכת
VM86 Modeמצב נוסף של תאימות למערכות ישנות – Protected Mode-ביט, 32 – מצב פעולה עיקרי הכולל תמיכה מלאה ב
ניהול זיכרון, ריבוי משימות וכו'. ,נציג סקירה בסיסית הכוללת ניהול זיכרון, רגיסטרים, פסיקות
בלבד.Protected Modeק"פ. הסקירה תתייחס למעבד במצב
מערכות הפעלה - תרגול 1 4(c) 2003 ארז חדד
IA32 (1)פעולות מיוחסות ב-
עקרון הפעולות המיוחסות מוטמע בכל המנגנונים בחומרה ולהפרדה בין ומשמש להגבלת פעולות יישומי המשתמשים
היישומיםגישה מבוקרת לחומרהגישה חסומה לזיכרון שבשימוש מערכת ההפעלה
ארכיטקטורתIA32 רמות (4 מבדילה בין rings או privilege levels 0-3, המסומנות מיוחסות) שונות של פעולות מכונה
Ring 0 הרמה המקסימלית - ברמה זו ניתן לגשת לכל – החומרה במחשב ללא הגבלה
Ring 3 הרמה המינימלית – מאפשרת גישה מוגבלת (ברוב – מערכות ההפעלה, גישה לחלקי זיכרון בלבד).
מערכות הפעלה - תרגול 1 5(c) 2003 ארז חדד
IA32 (2)פעולות מיוחסות ב-
-רוב מערכות ההפעלה לPC מנצלות רק את ring 0 בתור kernel mode הרמה של קוד)
user בתור ring 3מערכת ההפעלה) ואת mode(הרמה של קוד משתמש)
-כאשר המעבד מבצע קוד, הring שבו נמצא CPL (Current Privilegeהמעבד כרגע נקרא
Level)
מערכות הפעלה - תרגול 1 6(c) 2003 ארז חדד
IA32(1) ניהול זיכרון ב-
IA32 4 מסוגלת לנצל עדGB(צ'יפים) של זיכרון פיזי ,"לכל יישום (וגם למערכת ההפעלה עצמה) יש זיכרון "פרטי
שרק הוא יכול לגשת אליו הגנה על נתוני מערכת ההפעלההגנה על נתוני כל יישום
למערכת ההפעלה מותר לגשת לזיכרון של היישום
ניתן לשתף זיכרון בין יישומים הזיכרון מאורגן בצורת "איזורים". לכל יישום יש בדרך-כלל
גישה לשני איזורים לפחות: אחד לקוד ואחד לנתונים + מחסנית
מערכות הפעלה - תרגול 1 7(c) 2003 ארז חדד
IA32 (2)ניהול זיכרון ב-
כאשר קוד מבקש לגשת לאיזור, החומרהמאשרת את הגישה במגבלות הבאות:
:לפי הפעולה המבוקשתread/write/execute לכל . איזור מוגדרות הרשאות המגבילות את סוג הפעולה
-לפי הCPL של המבקש: לכל איזור מוגדר DPL (Descriptor Privilege Level) הגישה מותרת רק .
. כך נמנע מיישומי המשתמש לגשת CPL≤DPLאם לאיזורים של מערכת ההפעלה
מערכות הפעלה - תרגול 1 8(c) 2003 ארז חדד
IA32 (3)ניהול זיכרון ב-
המכילה כתובת לוגיתבגישה לזיכרון, הקוד מספק segment:offset
Segment ביט המזהה את איזור הזיכרון 16 הוא מספר בן המבוקש.
Offset ביט המזהה כתובת ספציפית 32 הוא מספר בן בתוך האיזור המבוקש
כתובת החומרה מתרגמת את הכתובת הלוגית ל ביט) של תא בזיכרון המחשב32 (מספר בן פיזית
-על מנגנון הזיכרון בIA32-וב Linux נלמד ביתר דיוק והרחבה בתרגולים הבאים
מערכות הפעלה - תרגול 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
מערכות הפעלה - תרגול 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רגיסטרים נוספים יוצגו בהמשך לפי הצורך
מערכות הפעלה - תרגול 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
מערכות הפעלה - תרגול 1 12(c) 2003 ארז חדד
IA32 (4)רגיסטרים במעבד
דגלי חיווי סטטוסCF (Carry Flag) אם בחישוב 1 מציין (ערך (
) מעבר לסיבית carry/borrowהאחרון נוצר נשא (הגבוהה ביותר
PF (Parity Flag) האם מספר 1 מציין (ערך (" בתוצאת החישוב האחרונה הינו 1הסיביות במצב "
זוגיZF (Zero Flag) האם תוצאת 1 מציין (ערך (
0החישוב האחרונה היא
מערכות הפעלה - תרגול 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ה-
מערכות הפעלה - תרגול 1 14(c) 2003 ארז חדד
IA32 (1)פסיקות ב-
) פסיקהinterrupt .היא אות הנקלט במעבד במהלך ביצוע קוד (אות זה מעיד על אירוע שדורש את טיפולו המיידי של המעבד
המעבד מבחין ומטפל בפסיקות בין ביצוע של שתי הוראותעוקבות בקוד
בתגובה על פסיקה, המעבד מבצע שגרת קוד מוגדרת מראשואחר כך חוזר להמשך ביצוע הקוד.
שגרת הטיפול בפסיקה נקראת Interrupt Handler-הפעלת שגרת הטיפול בפסיקה יכולה לגרום מעבר מuser mode
(ומעבר הפוך בסיום הטיפול בפסיקה)kernel modeל--בIA32 255..0 פסיקות שונות הממוספרות 256 מוגדרות
מערכות הפעלה - תרגול 1 15(c) 2003 ארז חדד
IA32 (2)פסיקות ב-
בארכיטקטורתIA32:מוגדרים שני סוגי פסיקות פסיקות אלו , פסיקות אסינכרוניות):interruptsפסיקות חומרה (1.
נגרמות ע"י חומרה חיצונית למעבד וללא תיאום עם שעון המעבד. מטרת פסיקות אלו היא להודיע למעבד על שינוי מצב בחומרה
החיצונית הדורש את טיפולו של המעבד, כגון הקשת מקש במקלדת, הגעת נתונים מהרשת וכו'. חלק מפסיקות אלו ניתנות לחסימה
) וחלקן קריטיות ואינן ניתנות maskable interruptsסלקטיבית ().non-maskable interruptsלחסימה (
פסיקות אלו נוצרות ע"י , פסיקות סינכרוניות):exceptionsחריגות (2.המעבד עצמו בעת ביצוע הוראות של הקוד. מטרת החריגות היא
לגרום למעבד לטפל בתקלות שמתעוררות עקב ביצוע קוד, או ליזום במתכוון מצב שבו המעבד מפעיל שגרת טיפול כלשהי. דוגמה:
, גישה לא מותרת לזיכרוןbreakpoint, 0חלוקה ב-
מערכות הפעלה - תרגול 1 16(c) 2003 ארז חדד
IA32 (3)פסיקות ב-
סוג מסוים של חריגות נקראProgrammed Exceptions או ). זהו המנגנון Software Interruptsפסיקות תוכנה (
באמצעותו מבקשים יישומים לקבל שירות ממערכת ההפעלה, הנגיש כשיגרת טיפול בחריגה מסוימת. ניתן
:intלגרום פסיקת תכנה על-ידי הוראת int <int_num>
מדוע משתמשים במנגנון זה לקבלת שירותים שאלה: במקום בקריאה פשוטה לפונקציה?
תשובה:kernel mode ל-user modeכדי לתמוך במעבר מ-–כדי שיישום המשתמש לא יצטרך לדעת את מיקום שגרות –
מערכת ההפעלה
מערכות הפעלה - תרגול 1 17(c) 2003 ארז חדד
IA32קלט/פלט ב-
המעבד מחובר לחומרה היקפית כמו דיסק, מדפסתportsוכו' באמצעות "שערים" -
-64תמיכה בKשערים בכל שער ניתן לקבל ולשלוח הוראות ונתונים לחומרה
I/Oההיקפית באמצעות פעולות פעולותI/O-הן פעולות מיוחסות. רק קוד שרץ ב CPL
במעבד רשאי לבצע IOPLשאינו גבוה מערך שדה פעולות אלו. למעשה, רק קוד מערכת ההפעלה רשאי
לגשת לחומרה בחופשיות
מערכות הפעלה - תרגול 1 18(c) 2003 ארז חדד
IA32 (1)המחסנית ב-
לכל יישום במערכת יש מחסנית המשמשתלקריאה לפונקציות במהלך ביצוע הקוד
למעשה, לכל יישום יכולות להיות מספר מחסניותוהן משמשות בתפקידים נוספים. פרטים נוספים
בתרגולים הבאים המחסנית נגישה דרך צמד הרגיסטרים
ss:esp שבראש האיבר הנוכחי, המצביע על המחסנית
מערכות הפעלה - תרגול 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כתובת (
מערכות הפעלה - תרגול 1 20(c) 2003 ארז חדד
Linux!נעים להכיר – מערכת הפעלה דמויתUnix
תאימות גבוהה (אך לא רשמית) לתקןPOSIX.1 מערכת הפעלה חופשית
ניתנת להורדה בחינם מהאינטרנטקוד פתוח - מפותחת כשיתוף פעולה של אלפי מתכנתים מכל העולם
-1990התחילה כפרויקט של סטודנט בLinus Torvalds כיום מוביל את פיתוח הגרעין העתידי של – Linux
:שמה המלאGNU/Linux חלק ניכר מהתוכנה בכלdistribution (גרסת הפצה) מעבר לגרעין הוא קוד פתוח של
GNUפרויקט Linuxמותאמת לסביבות חומרה רבות ושונות
למעשה, כמעט לכל סוג מעבד שישמשעוני יד ועד לשרתים אירגוניים
מערכות הפעלה - תרגול 1 21(c) 2003 ארז חדד
Linux (1)הכנה לעבודה ב-
VMware:תוכנה המבצעת סימולציה של מחשב וירטואלי רצה על-גביWindows, Linux מותקנת בתחנותwindows בחוות המחשבים
בטאוב על גביVMware נתקין Red Hat Linux 8.0..פרטים נוספים – בתרגיל הבית הראשון
מערכות הפעלה - תרגול 1 22(c) 2003 ארז חדד
Linux (2)הכנה לעבודה ב-
פקודות סטנדרטיות שלUnix Shell שלמדנו במת"ם
ls, cp, mv, cd, mkdir, rmdir, ps, grep … , :למי שרוצה לעבוד עם קבצים בקלות ובנוחות
mc (Midnight Commander)
מערכות הפעלה - תרגול 1 23(c) 2003 ארז חדד
Linux (3)הכנה לעבודה ב-
מגוון סביבות עבודה גרפיות נוחות תחתX-Windows
KDE, Gnome) סביבות פיתוחIDEחלונאיות (
KDevelop, Anjuta :תוכנות עריכה נוחותnedit, (x)emacs, vim
תוכנות עריכה סטנדרטיות שפועלות גם ללאemacs, vim, pico, mceditסביבת חלונות: