מערכות הפעלה

37
הההההה ההההה ההההה1 הההה-

description

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

Transcript of מערכות הפעלה

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

מערכות הפעלה

- מבוא1תרגול

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

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

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

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

סקירה היסטורית-הכנה לעבודה בLinux-כיצד לקבל עזרה ב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סביבת חלונות:

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

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

Linux (1)קבלת עזרה בעבודה ב-

הפקודהman מציגה מידע על כל פקודה או פונקצית ספריה בה תרצו להשתמש

הקישו:lsדוגמה: לקבלת מידע על הפקודה >man ls

לקבלת מידע על כל הפקודות הקשורות לנושא מסוים.>man –k <topicהקישו

דוגמה: לקבלת מידע על כל הפקודות העוסקות בקבצים הקישו:

>man –k file

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

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

Linux (2)קבלת עזרה בעבודה ב-

-הshell-שבו תעבדו ב Linux יהיה בדרך-כלל bash -חלק מהפקודות שתחפשו הן פקודות של הshell ולכן מופיעות

"man bashבתוך " :דוגמא לפקודות כאלוhistory, alias, fg

-דפי הman) מחולקים למספר חלקים sections ,למשל .(. פונקציות 1) נמצאות בחלק ps ו-lsפקודות שימושיות (כמו

.2) נמצאות בחלק ()open(), closeמערכת (כמו .לעיתים אותו שם יכול להופיע בשני חלקים של המדריך

) והן kill של המדריך (הפקודה 1 נמצאת הן בחלק killלמשל, תחזיר את man kill). במקרה שכזה, ()kill (הפונקציה 2בחלק

המידע מהמדריך הנמוך ביותר עם השם המתאים

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

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

Linux (3)קבלת עזרה בעבודה ב-

הקישו 2כדי לקבל את המידע על פקודה ספציפית מחלק מסוים (למשל ((לדוגמה):

man 2 kill הקישו:2כדי לקבל מידע על כל המצוי בחלק מסוים (למשל (

man 2 intro-דפי מידע ארוכים מוצגים תוך שימוש בless שהיא תוכנה לגלילה מבוקרת ,

של קבצי טקסט על המסך. ניתן לנוע בין העמודים בחופשיות באמצעות . קבלת עזרה על ’q‘ באמצעות less. יציאה מ-pgup/pgdnמקשי החיצים וה-

.’h‘ באמצעות lessמקשי :מקור נוסף לקבלת מידע על פקודות ומילות מפתח

>info <keyword> עם מעט יותר הסבר hypertextפקודה זו מביאה את המידע מאורגן בצורת

ידידותי לגבי השימוש בה.

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

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

)1 ראשונה (Linuxתכנית

#include <stdio.h>

int main() {char *str=“Hello”;printf(“%s World!\n”, str);return 0;

}

hello.c

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

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

)2 ראשונה (Linuxתכנית

נקליד את התוכנית באמצעות תכנית עריכה כלשהי (למשלemacs(:נעביר את התכנית קומפילציה

>gcc –g –o hello hello.cנריץ את התכנית

>./helloHello World!>

ניתן (ורצוי) לבנות קובץ עבורmake בשם Makefile הקפידו על אותיות גדולות) וקטנות) בתוך ספרית העבודה שלכם. הקומפילציה תתבצע על-ידי הפקודה:

>make <target> ניתן לבצעdebugging אינטראקטיבי של תכנית באמצעות gdb:לדוגמה .

gdb hello באותו אופן.dddמי שמשתמש בסביבה גרפית יכול להשתמש למטרה זו ב-

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

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

Linuxעבודה עם קוד גרעין

קוד המקור של גרעיןLinux נמצא בדרך כלל בספרייה /usr/src/linux-2.4במחשב בו אתם עובדים

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

הגרעין ,לכל דוגמת קוד נציין מהו הקובץ ממנו לקוחה הדוגמה

במסלול יחסי לספרית השורש המצוינת לעיל למשל, אם ציינו שהפונקציהsys_open() נמצאת בקובץ גרעין

fs/open.c:הרי שהמסלול המלא לקובץ הוא ,/usr/src/linux-2.4/fs/open.c

" בסוף ספר הלימודUnderstanding the Linux Kernel יש ") את המסלול sys_openמפתח המכיל עבור כל שם (כמו

היחסי לקובץ המכיל שם זה

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

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

משתמשיםLinuxהיא מערכת הפעלה מרובת משתמשים לכל משתמש ישUser Id

User ID ='0‘ נקרא משתמש root האדמיניסטרטור שיכול לעשות כל - דבר במחשב

כל תהליך משויך לuserשהפעיל אותו כל קובץ משויך לuserשיצר אותו קובץ/etc/passwd מכיל את רשימת כל ה users:במערכת

User NamePassword סיסמאות יכולות להופיע בצורה מוצפנת גם בקובץ

wshado/etc/User ID (number)User's default Group ID (will be explained later)Home DirectoryLogin Shell

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

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

קבוצות משתמשים מוגדרות בקובץ/etc/group המכיל את רשימת כל ה groups:במערכת

Group Name Password Group Id (number)List of Users

לכלUser יש default groupאך הוא יכול להשתייך לקבוצות נוספות , אפשר לבדוק לאילו קבוצותUser שייך ע"י הפקודה groups [username]

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

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

קבציםלכל קובץ מוגדרות הרשאות גישה

קבוצות: 3ההרשאות מתחלקות ל user-owner, group-owner, others - כל קבוצת הרשאות מתחלקת להרשאות קריאה,כתיבה, הרצהrwx:ספריה היא גם קובץ. עבור ספריה

קריאה פירושה לראות את רשימת הקבצים והתתי ספריות בספריה זוכתיבה פירושה יצירת קובץ או ספריה חדשה בספריה זו הרצה פירושה לגשת לקבצים בספריה

כדי לקרוא קובץtmp/X צריך הרשאת /x על "/" , הרשאת x על tmp // tmp/X על rוהרשאת

בעל הקובץ – זה שיצר אותו, רשאי לשנות את ההרשאות ניתן לשנות הרשאות ע"י הפקודהchmod 7 ל 0 ההרשאות נכתבות בפורמט של מספר אוקטלי – בין 9כ"א מ הרשאות ברירת מחדל הן בד"כrw ,לכולם עבור קובץ rwxלכולם עבור ספריה הפקודהumask לתת לקובץ חדשלא קובעת אילו הרשאות ברירת מחדל

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

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

תהליכים פקודהpsמציגה את רשימת התהליכים הרצים ב shell הנוכחי

היא ניגשת ל)/proc(פרטים בהמשך – ps –a, ps –u <user_name<kill <pid>, kill -9 <pid<משתמש יכול להרוג רק תהליכים שלו -

rootיכול להרוג תהליכים של כולם הפקודהsbin/fuser/רשימת התהליכים שמחזיקים את הקובץ פתוח כרגע - הפקודהusr/sbin/lsof/רשימת הקבצים הפתוחים כרגע ע"י תהליך נתון -

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

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

מציאת קבצים משתנה סביבהPATHרשימת הספריות בהן יש לחפש – executables בעת

הרצה הפקודהwhich היכן בדיוק ממוקם - executable שהספריה שלו מפורטת

pathב אם קובץ ההרצה לא בpath:או סתם כדי למצוא קובץ במערכת הקבצים

find(איטי אבל תמיד נכון) סורק את מערכת הקבצים – locate(מהיר אבל יכול לטעות) מחפש במסד נתונים –

updatedb (רץ ברקע כל פרק זמן מסוים) מעדכן את מסד הנתונים –

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

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

suidהרשאות מיוחדות – – לכל קובץ קיים ביט הרשאה נוסףset user-id bit:כשהוא דלוק עבור קובץ הרצה אזי

כשמשתמש יריץ אותו – התהליך שירוץ יקבל את ההרשאות של בעל הקובץ ולאאת ההרשאות של המשתמש שהריץ את הקובץ

suidמאפשר לתת למשתמש גישה זמנית לקבצים שבד"כ אין לו גישה אליהם :שימוש טיפוסי

התוכניתpasswd שמשנה סיסמא של המשתמש צריכה לגשת לקובץ ,/etc/passwd לכתיבה. למשתמש רגיל כמובן אסור לגשת לקובץ /etc/passwd

קובץ של התוכניתpasswdשייך ל root ול root מותר גם לגשת לקובץ /etc/passwd

suid bit של התוכנית passwdדלוק כשמשתמש מריץ את התוכניתpasswd התהליך שמריץ את תוכנית מקבל –

etc/passwd/ולכן יכול לגשת ל root באופן זמני את כל הרשאות הגישה של

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

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

System Monitoring - topמציגה את הסטטסיטיקות לגב ביצועי המערכת

כמות התהליכיםCPU usage תפוסת זכרון פיזי וswap תהליכים שצורכים הכי הרבה זמןCPU

iostat מידע על ביצועי – IOשל הדיסק df -h מידע על הדיסקים (כל ה – mounted disks(du -h) גודל הספריות והקבצים – du -hs(סיכום - quota –v גודל הדיסק המרבי המוקצה עבור המשתמש –w כל המשתשים שכרגע – logged-in והפקודה שהם מריצים

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

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

strace – System Call Tracer

?אילו קריאות מערכת מופעלות בעת ביצוע התוכנית הבאה

#include <stdio.h>

int main(void)

{

printf("Hello, world!");

return 0;

} אילו קריאות מערכת מופעלות ע"י תוכניתX בהינתן קובץ הרצה של X בלבד? ?מהם הפרמטרים של הקריאות האלו? מהו ערך החזרה? האם הם הצליחו

?errno לאחר החזרה? מהי המחרוזת הסימבולית המתאימה ל- errnoמהו יותר פרטים בחומר נוסף באתר הקורס