מערכות הפעלה תרגול 1 - מבוא. מערכות הפעלה - תרגול 12 (c) ארז חדד 2003 ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+)

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
מערכות הפעלה תרגול 5 – תהליכים ב-Linux (3). מערכות הפעלה - תרגול 52 (c) ארז חדד 2003 תוכן התרגול החלפת הקשר (context switch) ב-Linux יצירת תהליך חדש ב-Linux.
מערכות הפעלה תרגול 4 – החלפת הקשר (context switch)
מערכות הפעלה תרגול 7 – ק/פ ותקשורת תהליכים ב-Linux.
מערכות הפעלה תרגול 5 – תהליכים ב-Linux (3). מערכות הפעלה - תרגול 52 (c) ארז חדד 2003 תוכן התרגול החלפת הקשר (context switch) ב-Linux יצירת תהליך חדש ב-Linux.
מערכות הפעלה חומר נוסף לתרגולים – אדמיניסטרציה ושימוש מתקדם ב Linux.
תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב - Unix תכנית ראשונה ב -Unix, gcc.
הפרעות ופסיקות (exceptions & interrupts) מבוסס ברובו על פרק 8 ב Computer Systems / Bryant & O’Hallaron.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 פסיקות  סוגי פסיקות  איך מערכת ההפעלה מטפלת בפסיקות  דוגמא : קלט בעזרת פסיקות.
מערכות הפעלה קורס מס ' מבוא  אדמיניסטרציה.  מהי מערכת הפעלה.  ארגון מערכות הפעלה.
מערכות הפעלה תרגול 9 – פסיקות ב-Linux. מערכות הפעלה - תרגול 92 (c) ארז חדד 2003 תוכן התרגול מבוא לפסיקות ב-Linux פסיקות ב-IA32:  סוגי הפסיקות  טבלת.
מערכות הפעלה תרגול 10 – זיכרון וירטואלי ב- Linux.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
הגנה במערכות מתוכנתות תרגול 1 – המחשב האישי הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
מערכות הפעלה תרגול 6 – חוטים ב-Linux.
מערכות הפעלה תרגול 9 – פסיקות ב-Linux. מערכות הפעלה - תרגול 92 (c) ארז חדד 2003 תוכן התרגול מבוא לפסיקות ב-Linux פסיקות ב-IA32:  סוגי הפסיקות  טבלת.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכות הפעלה קורס מס '
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מערכות הפעלה תרגול 9 – פסיקות ב-Linux. מערכות הפעלה - תרגול 92 (c) ארז חדד 2003 תוכן התרגול מבוא לפסיקות ב-Linux פסיקות ב-IA32:  סוגי הפסיקות  טבלת.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 מערכות הפעלה קורס מס '
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מערכות הפעלה תרגול 2 – קריאות מערכת ב-Linux. מערכות הפעלה - תרגול 22 (c) ארז חדד 2003 תוכן התרגול קריאה לפונקציות ב-Linux קריאה לשירותי מערכת ב-Linux.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
1 מבוא למדעי המחשב מבנה של תכנית. 2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה מרץ אלן אזאגורי (מרצה אחראי) ארז חדד.
ברוכים הבאים למת"ם! אדמיניסטרציה מטרת הקורס: לימוד תכנון וכתיבת תוכניות מורכבות תוך שמוש בכלי פתוח תוכנה מתקדמים. אתר הבית:
מנפה שגיאות - DEBUGGER מבוא למדעי המחשב (234114) רועי מלמד
מערכות הפעלה תרגול 6 – חוטים ב-Linux. מערכות הפעלה - תרגול 62 (c) ארז חדד 2003 תוכן התרגול מבוא לחוטים ב-Linux כיצד גרעין Linux תומך בחוטים עבודה עם חוטים.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
ברוכים הבאים למת"ם! אדמיניסטרציה מטרת הקורס: לימוד תכנון וכתיבת תוכניות מורכבות תוך שמוש בכלי פתוח תוכנה מתקדמים. אתר הבית:
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
SSDL פרויקט שנתי בהנדסת תוכנה שחר דג אודות שירותים מחשבים (מי הכי מהיר) הדפסה תוכנה עזרה שאלות נפוצות באתר המעבדה
מערכות הפעלה תרגול 11 – ניהול זיכרון ב-Linux: המשך.
אביב 2004 מערכות הפעלה מערכות הפעלה קורס מס '
מערכות הפעלה תרגול 6 – חוטים ב-Linux. מערכות הפעלה - תרגול 62 (c) ארז חדד 2003 תוכן התרגול סינכרוניזציה בגרעין של Linux מבוא לחוטים ב-Linux כיצד גרעין.
מערכות הפעלה תרגול 2 - הכרת Linux. מערכות הפעלה - תרגול 22 (c) ארז חדד 2003 תוכן התרגול הדגמה מעשית:  כיצד לקבל עזרה בעבודה ב-Linux  כתיבת תכנית ראשונה.
עקרון ההכלה וההדחה.
מערכות הפעלה תרגול 1 - מבוא. מערכות הפעלה - תרגול 12 (c) ארז חדד 2003 ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+)
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מערכות הפעלה תרגול 1 - מבוא. מערכות הפעלה - תרגול 12 (c) ארז חדד 2003 ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+)
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
מה היום ? - - חזרה מהירה. - קריאה וכתיבה לקבצים. - בניית תוכנית כתיבה low-level - בניית ערוץ גלובלי והדגמה מול חומרה - low-level DAQ, פולימורפיזם וטריגר.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
תירגול 14: מבני נתונים דינאמיים
מערכות הפעלה מרצה: ערן טרומר סמסטר א' תשע"ב
עבודה עם נתונים באמצעות ADO.NET
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
מבוא ל Maven אליהו חלסצ'י תכנות מתקדם תרגול מספר 3
מערכות הפעלה תרגול9 – פסיקות ב-Linux.
תרגול 2 – קריאות מערכת ב-Linux
תרגול 12 – ניהול זיכרון ב-Linux: המשך
Shell Scripts בסביבת UNIX
שפת סף וארכיטקטורה של מעבד 8086
Computer Architecture and Assembly Language
Presentation transcript:

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

מערכות הפעלה - תרגול 12 (c) ארז חדד 2003 ברוכים הבאים לקורס מערכות הפעלה! אדמיניסטרציה סקירה בסיסית של ארכיטקטורת IA32 (80386+) מערכת ההפעלה שתודגם בקורס היא Linux :  סקירה היסטורית  הכנה לעבודה ב-Linux  כיצד לקבל עזרה ב-Linux  כתיבת תכנית ראשונה ב-Linux

מערכות הפעלה - תרגול 13 (c) ארז חדד 2003 ארכיטקטורת IA32 ארכיטקטורה של 32 ביט, Little-Endian נמצאת במעבדי Intel החל מ  מהווה הרחבה של ארכיטקטורות קודמות במעבדי 8086 ו הופיעה לראשונה בשוק בשנת 1985 הארכיטקטורה מגדירה למעבד שלושה מצבי עבודה:  Real Mode – מצב של תאימות לארכיטקטורות ישנות יותר. משמש בעיקר לאתחול המערכת  VM86 Mode – מצב נוסף של תאימות למערכות ישנות  Protected Mode – מצב פעולה עיקרי הכולל תמיכה מלאה ב-32 ביט, ניהול זיכרון, ריבוי משימות וכו'. נציג סקירה בסיסית הכוללת ניהול זיכרון, רגיסטרים, פסיקות, ק"פ. הסקירה תתייחס למעבד במצב Protected Mode בלבד.

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

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

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

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

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

מערכות הפעלה - תרגול 19 (c) ארז חדד 2003 רגיסטרים במעבד 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

מערכות הפעלה - תרגול 110 (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 רגיסטרים נוספים יוצגו בהמשך לפי הצורך

מערכות הפעלה - תרגול 111 (c) ארז חדד 2003 רגיסטרים במעבד IA32 (3) הדגלים של רגיסטר eflags: הדגלים מחולקים לשני סוגים:  דגלי חיווי סטטוס: מתעדכנים בעקבות כל פעולת מכונה. משמשים לחיווי מצב המעבד  מתגי בקרה: משנים מצב על-פי פעולה מפורשת של הקוד, על-מנת להשפיע על התנהגות המעבד בהמשך. בהמשך נפרט את תפקידם של מספר דגלים רלוונטיים CFCF 1PFPF 0AFAF 0ZFZF SFSF TFTF IFIF DFDF OFOF IOPLNTNT 0RFRF VMVM 0

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

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

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

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

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

מערכות הפעלה - תרגול 117 (c) ארז חדד 2003 קלט/פלט ב-IA32 המעבד מחובר לחומרה היקפית כמו דיסק, מדפסת וכו' באמצעות "שערים" - ports  תמיכה ב-64K שערים בכל שער ניתן לקבל ולשלוח הוראות ונתונים לחומרה ההיקפית באמצעות פעולות I/O פעולות I/O הן פעולות מיוחסות. רק קוד שרץ ב-CPL שאינו גבוה מערך שדה IOPL במעבד רשאי לבצע פעולות אלו. למעשה, רק קוד מערכת ההפעלה רשאי לגשת לחומרה בחופשיות

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

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

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

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

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

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

מערכות הפעלה - תרגול 124 (c) ארז חדד 2003 קבלת עזרה בעבודה ב-Linux (1) הפקודה man מציגה מידע על כל פקודה או פונקצית ספריה בה תרצו להשתמש דוגמה: לקבלת מידע על הפקודה ls הקישו: >man ls לקבלת מידע על כל הפקודות הקשורות לנושא מסוים הקישו man –k. דוגמה: לקבלת מידע על כל הפקודות העוסקות בקבצים הקישו: >man –k file

מערכות הפעלה - תרגול 125 (c) ארז חדד 2003 קבלת עזרה בעבודה ב-Linux (2) ה-shell שבו תעבדו ב-Linux יהיה בדרך-כלל bash חלק מהפקודות שתחפשו הן פקודות של ה-shell ולכן מופיעות בתוך "man bash"  דוגמא לפקודות כאלו: history, alias, fg דפי ה-man מחולקים למספר חלקים (sections). למשל, פקודות שימושיות (כמו ls ו-ps) נמצאות בחלק 1. פונקציות מערכת (כמו open(), close()) נמצאות בחלק 2. לעיתים אותו שם יכול להופיע בשני חלקים של המדריך. למשל, kill נמצאת הן בחלק 1 של המדריך (הפקודה kill) והן בחלק 2 (הפונקציה kill()). במקרה שכזה, man kill תחזיר את המידע מהמדריך הנמוך ביותר עם השם המתאים

מערכות הפעלה - תרגול 126 (c) ארז חדד 2003 קבלת עזרה בעבודה ב-Linux (3) כדי לקבל את המידע על פקודה ספציפית מחלק מסוים (למשל 2) הקישו (לדוגמה): man 2 kill כדי לקבל מידע על כל המצוי בחלק מסוים (למשל 2) הקישו: man 2 intro דפי מידע ארוכים מוצגים תוך שימוש ב-less, שהיא תוכנה לגלילה מבוקרת של קבצי טקסט על המסך. ניתן לנוע בין העמודים בחופשיות באמצעות מקשי החיצים וה-pgup/pgdn. יציאה מ-less באמצעות ‘q’. קבלת עזרה על מקשי less באמצעות ‘h’. מקור נוסף לקבלת מידע על פקודות ומילות מפתח: >info פקודה זו מביאה את המידע מאורגן בצורת hypertext עם מעט יותר הסבר ידידותי לגבי השימוש בה.

מערכות הפעלה - תרגול 127 (c) ארז חדד 2003 תכנית Linux ראשונה (1) #include int main() { char *str=“Hello”; printf(“%s World!\n”, str); return 0; } hello.c

מערכות הפעלה - תרגול 128 (c) ארז חדד 2003 תכנית Linux ראשונה (2) נקליד את התוכנית באמצעות תכנית עריכה כלשהי (למשל emacs) נעביר את התכנית קומפילציה: >gcc –g –o hello hello.c נריץ את התכנית >./hello Hello World! > ניתן (ורצוי) לבנות קובץ עבור make בשם Makefile (הקפידו על אותיות גדולות וקטנות) בתוך ספרית העבודה שלכם. הקומפילציה תתבצע על-ידי הפקודה: >make ניתן לבצע debugging אינטראקטיבי של תכנית באמצעות gdb. לדוגמה: gdb hello מי שמשתמש בסביבה גרפית יכול להשתמש למטרה זו ב-ddd באותו אופן.

מערכות הפעלה - תרגול 129 (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) את המסלול היחסי לקובץ המכיל שם זה

מערכות הפעלה - תרגול 130 (c) ארז חדד 2003 משתמשים Linux היא מערכת הפעלה מרובת משתמשים לכל משתמש יש User Id  User ID ='0‘ נקרא משתמש root - האדמיניסטרטור שיכול לעשות כל דבר במחשב כל תהליך משויך ל user שהפעיל אותו כל קובץ משויך ל user שיצר אותו קובץ /etc/passwd מכיל את רשימת כל ה users במערכת:  User Name  Password סיסמאות יכולות להופיע בצורה מוצפנת גם בקובץ wshado/etc/  User ID (number)  User's default Group ID (will be explained later)  Home Directory  Login Shell

מערכות הפעלה - תרגול 131 (c) ארז חדד 2003 קבוצות משתמשים מוגדרות בקובץ /etc/group המכיל את רשימת כל ה groups במערכת:  Group Name  Password  Group Id (number)  List of Users לכל User יש default group, אך הוא יכול להשתייך לקבוצות נוספות אפשר לבדוק לאילו קבוצות User שייך ע"י הפקודה groups [username]

מערכות הפעלה - תרגול 132 (c) ארז חדד 2003 קבצים לכל קובץ מוגדרות הרשאות גישה  ההרשאות מתחלקות ל 3 קבוצות: user-owner, group-owner, others  כל קבוצת הרשאות מתחלקת להרשאות קריאה,כתיבה, הרצה - rwx  ספריה היא גם קובץ. עבור ספריה: קריאה פירושה לראות את רשימת הקבצים והתתי ספריות בספריה זו כתיבה פירושה יצירת קובץ או ספריה חדשה בספריה זו הרצה פירושה לגשת לקבצים בספריה  כדי לקרוא קובץ tmp/X/ צריך הרשאת x על "/", הרשאת x על tmp/ והרשאת r על tmp/X/  בעל הקובץ – זה שיצר אותו, רשאי לשנות את ההרשאות  ניתן לשנות הרשאות ע"י הפקודה chmod  כ"א מ 9 ההרשאות נכתבות בפורמט של מספר אוקטלי – בין 0 ל 7  הרשאות ברירת מחדל הן בד"כ rw לכולם עבור קובץ, rwx לכולם עבור ספריה  הפקודה umask קובעת אילו הרשאות ברירת מחדל לא לתת לקובץ חדש

מערכות הפעלה - תרגול 133 (c) ארז חדד 2003 תהליכים פקודה ps מציגה את רשימת התהליכים הרצים ב shell הנוכחי  (היא ניגשת ל /proc – פרטים בהמשך) ps –a, ps –u kill, kill -9 - משתמש יכול להרוג רק תהליכים שלו  root יכול להרוג תהליכים של כולם הפקודה sbin/fuser/ - רשימת התהליכים שמחזיקים את הקובץ פתוח כרגע הפקודה usr/sbin/lsof/ - רשימת הקבצים הפתוחים כרגע ע"י תהליך נתון

מערכות הפעלה - תרגול 134 (c) ארז חדד 2003 מציאת קבצים משתנה סביבה PATH – רשימת הספריות בהן יש לחפשexecutables בעת הרצה  הפקודה which - היכן בדיוק ממוקם executable שהספריה שלו מפורטת בpath אם קובץ ההרצה לא ב path או סתם כדי למצוא קובץ במערכת הקבצים:  find – סורק את מערכת הקבצים (איטי אבל תמיד נכון)  locate – מחפש במסד נתונים (מהיר אבל יכול לטעות) updatedb – מעדכן את מסד הנתונים (רץ ברקע כל פרק זמן מסוים)

מערכות הפעלה - תרגול 135 (c) ארז חדד 2003 הרשאות מיוחדות – suid לכל קובץ קיים ביט הרשאה נוסף – set user-id bit כשהוא דלוק עבור קובץ הרצה אזי:  כשמשתמש יריץ אותו – התהליך שירוץ יקבל את ההרשאות של בעל הקובץ ולא את ההרשאות של המשתמש שהריץ את הקובץ  suid מאפשר לתת למשתמש גישה זמנית לקבצים שבד"כ אין לו גישה אליהם  שימוש טיפוסי: התוכנית passwd, שמשנה סיסמא של המשתמש צריכה לגשת לקובץ /etc/passwd לכתיבה. למשתמש רגיל כמובן אסור לגשת לקובץ /etc/passwd קובץ של התוכנית passwd שייך לroot ול root מותר גם לגשת לקובץ /etc/passwd suid bit של התוכנית passwd דלוק כשמשתמש מריץ את התוכנית passwd – התהליך שמריץ את תוכנית מקבל באופן זמני את כל הרשאות הגישה של rootולכן יכול לגשת ל /etc/passwd

מערכות הפעלה - תרגול 136 (c) ארז חדד 2003 System Monitoring - topמציגה את הסטטסיטיקות לגב ביצועי המערכת  כמות התהליכים  CPU usage  תפוסת זכרון פיזי ו swap  תהליכים שצורכים הכי הרבה זמן CPU iostat – מידע על ביצועי IO של הדיסק df -h – מידע על הדיסקים (כל ה mounted disks) du -h – גודל הספריות והקבצים (du -hs - סיכום) quota –v – גודל הדיסק המרבי המוקצה עבור המשתמש w – כל המשתשים שכרגע logged-in והפקודה שהם מריצים

מערכות הפעלה - תרגול 137 (c) ארז חדד 2003 strace – System Call Tracer אילו קריאות מערכת מופעלות בעת ביצוע התוכנית הבאה? #include int main(void) { printf("Hello, world!"); return 0; } אילו קריאות מערכת מופעלות ע"י תוכנית X בהינתן קובץ הרצה של X בלבד? מהם הפרמטרים של הקריאות האלו? מהו ערך החזרה? האם הם הצליחו? מהו errno לאחר החזרה? מהי המחרוזת הסימבולית המתאימה ל- errno ? יותר פרטים בחומר נוסף באתר הקורס