תרגול 4 Flashcards

(52 cards)

1
Q

למה יש מודלים

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

מה הבעיה עם טעינת מערכת ההפעלה בעליית המחשב

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Bios
ראשי תיבות

A

Basic input output system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

מהי ביוס
מתי נטען

A

התוכנה הראשונה שנטענת למחשב
צרובה בהתקן חומרה ונטענת לכתובת קבועה בזכרון בעת עליית המחשב

הוא מזהה את התקני החומרה המחוברים למחשב
בודק מקלדת ועכבר תקינים
עובר כל רשימה מוגדרת מראש לחיפוש התקן מאפשר אתחולbootable device
אם לא מוצא התקן כזה מדפיס שגיאה

אם מוצא אז טועם את הסקטור הראשון שלו למקום קבוע בזכרון

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

איזה שינוי עבר הביוס כיום

A

היום בדרכ על זכרון שמאפשר כתיבה כדי לידכן אותו

יש מנגנון חדש שמועדף עליו בשם UEFI

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mbr
ראשי תיבות

A

Master boot record

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Mbr
מה זה

A

סקטור ראשון של דיסק מאפשר אתחול

מיכל קוד אסמבלי בסיסי לטעינת מנהל האתחול
Boot loader

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

למה לא שומרית את הboot loader
ב
Mbr

A

לא יספיק לנו 512 בתים

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

באיזה boot loader
לינוקס משתמש לרוב

A

Grub

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

איך grub מצליח לגשת לדרייבריפ כמו מקלדת עכבר ודיסק?

האם זה מושלם ?

A

הוא מנצל את זה שהביוס כבר מימש אותם ומשתמש בהם

הדרייברים מצומצמים יחסית ןלכן לפעמים יכול לפספס דיסקים

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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

A

Grub
טוען לזיכרון תמונה דחוסה של הגרעין
bzimage/vmlinuz
ואז מחלץ אותה
שוקלת בערך 8 מגה

Grub
טוען את מערכת הקבצים הראשונית
שהיא מערכת קבצים קטנה
initramfs inital ram file system
Or
Initrd initial ram disk
כמה עשרות מגה

גרעין הלינוקס מריץ את
/init
מתוך מערכת הקבצים
בדרך כלל זהו סקריפט shell

התוכנית הזו טוענת את הדרייברים הנחוצים ועושה mount למערכת הקבצים האמיתית במקום הראשונית

גרעין הליקנוס קורא ל
/sbin/init

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

מהי פקודת
dmesg -H

A

בעזרתה ניתן לראות הדפסות שהיו במהלך עליית המערכת

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

איזה פקודה
טוענת מודל חדש
פורקת קיים
מציגה רשימת הטעונים

A

insmod
Rmmod
Lsmod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

האם מודלים יכולים

להוסיף קריאת מערכת חדשות

להוסיף מערכת קבצים חדשות

לשנות קריאות מערכת קיימות

A

כן כן כן

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

מה היתרונות של מודלים

A

משאירים את הגרעין קטן

כל משתמש טוען איזה מודלים שהוא צריך

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

יותר מהר לקמפל את הגרעין כי יותר קטן

אפשר להוסיף אותם בלי לעשות ריסט ובלי לקמפל את כל הגרעין

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

האם אפשר לטעון מודלים בתור משתמש לא root

A

No
Root only

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

על מה חשוב להקפיד בבניית מודל

A

להקפיד על אבטחה כי המודל רץ במצב גרעין

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

מה הקשר בין גרסת הלינוקס שבה נבנה המודל לזה שרץ בה

A

חייבת שהמודל שרץ יבנה על אותה מערכת הפעלה שרץ בה כדי למנוע שגיאות

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

בעת כתיבת מודל
מה הפונקציה שתרוץ בעת טעינת המודל
בעת מחיקת המודל

A

init_module(void)…

cleanup_module(void) …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

איזה ספרייה צריל ליבא בקוד מודל

A

<linux/module.h>

22
Q

מהי
modprobe

A

פקודה בטרמינל כמו insmod
רק שהיא טוענת גם את התלויות מודלים שיש למודל
אם יש מודלים שהוא צריך בעצמו

23
Q

איך מודל מקבל פרמטר מהמשתמש

A

אפשר בעת טעינת המודל להעביר לו פרמטרים

בעזרת המאקרו
moudle_param(varName, int/sting…, SIRGO irrelvat)

24
Q

איפה התקנים נשמרים
איך המשתמש מדבר איתם

A

תחת
/dev

המשתמש מדבר איתם בממשק הסטנדרטי של read write open…

25
מה זה דרייבר באיזה הרשאות רץ מה מטרתו
מנהל ההתקן רץ בהרשאות גרעין המטרה שלו היא לגשר בין המשתמש שמדבר עם הקובץ שמייצג את החומרה לחומרה עצמה
26
מה ההבדל בין מכניזם למדיניות
מכניזם זה מה אפשר לעשות לדוגמה החלפת הקשר לזה אחראי גם הדרייבר והמדיניות זה איך עושים את זה לדוגמה בחירה של אופן זימון תהליכים
27
מה זה התקן תווים והתקן בלוקים
התקן תווים ניגשים אליו כרצף של בתים לרוב ניתן לגשת אליו באופן סדרתי ולא אקראי משמש לרוב להעברת מידע לדוגמה מקלדת או עכבר התקן בלוקים ניתן לגשת אליו בכפולות של בלוק לדוגמה 512 בתים לרוב משמש לאחסון אפשר לגשת אליו אקראית
28
איך אפשר לראות את המספר הראשי והמשני של device
ls -l /dev X,y X major Y minor
29
Major and minor number איך נקראים בעברית לאיזה סוג התקנים רלוונטים מה משמעותם
מספר ראשי ומשני שייכים להתקני תווים מספר ראשי - מזהה את הדרייבר המקושר להתקן מספר משני - מזהה ספציפי לתהקן תחת דרייבר מסויים
30
Open ופונקציות של הדרייבר מי משתמש במספר המשני והראשי של הדרייבר
Open משתמשת בראשי כדי לדעת איזה דרייבר יש להתקן המשני משומש לדוגמה לניהול של הדרייבר
31
מה המספר הראשי של התקנים פיקטיביים
1
32
איזה התקנים פיקטיבים יש ומה קראיה וכתיבה אליהם תניב
/dev/null - EOF - מצליח והמידע נזרק /dev/zero - רצף אפסים כפי שיבוקש - מצליח ונזרק /dev/full מחזיר רצף אפסים מחזיר מיד ENOSPC /dev/random /dev/arandom /dev/urandom מחזירה רצף בתים אקראי שנוצר מרעש כותב לרצף הבתים האקראי
33
מהו udev
Deamon אשר מזהה התקנים מחוברים למערכת ומייתר בשבילם התקן ב/dev כדי שהמשתמש לא יצטרך לעשות זאת ידנית
34
איך מוחקים התקן מהמערכת
מוחקים את הקובץ המתאים לו
35
איך מיצרים התקן חדש
בטרמינל mknod NAme c/b major minor
36
בעת open מוקצה fd בfdt על מה הוא מצביע? מה הקשר לדרייברים
על אובייקט מסוג struct file שמכיל מצביע למבנה מסוג file_operations בשם F_op המימש שלו זה בעצם הדרייבר
37
מה זה אומר אם f_op מצביע לnull
מימוש דיפולטי של הפעולות
38
שדות חשובים בfile operation
Open read write מצביעים למימוש Release מצביע לפונק לשחרור ההתקן רק כאשר כל העותקים נסגרו Flush מצביע לפונק לכתיבה החוצצים להתקן וניקויים מופעלת כשתהליך סוגר את ההתקן אם לא מומש מה לא תעשה כלום llseek משנה את המיקום הנוכחי בקובץ מחזיר את המיקום החדש ioctl מעביר פקודות ייחודיות להתקן רק אם אי אפשר ללממש עם השאר נשתמש בזה
39
מה נקבל אם נקרא לioctl שלא מומש
EINVAL -1
40
מה מקבלת ioctl
Fd Cmd number And ...
41
איזה פונק גרעין רושמות ומוחקות דרייבר ומה מקבלות
register_chrdev מקבלת מספר ראשי שם דרייבר מצביע לfops Unregister_chardev מקבלת מספר ראשי ושם דרייבר ומשחררת את מספר הראשי של הדרייבר לא מוחקת את קובץ הדרייבר ב/dev
42
איך ממומש דרייבר בתור מודר
In module Init_moudle will call register_char_chrdev Cleanup_module calls unregister_chrdev
43
האם רישום דרייבר מקושר ישירות להתקן?
לא זה מקושר למספר ראשי לא להתקן מסויים
44
איך נקרא באנגלית מערך הדרייברים הרשומים מה יש בכל כניסה איך נראה
chrdevs[] שומר את כל הדרייברים הרשומים במערכת כל כנסיה אינדקס=מספר ראשי כל כניסה מכילה את השם של הדרייבר ומצביע לfops
45
האם Chrdev הוא באמת מערך?
מלינוקס 4.15 הוא hash table
46
איפה נשמרים הדרייברים ואיך אפשר לקרוא אותם
/proc/devices Cat to the file
47
האם יכולים להיות2 דרייברים עם אותו מספר ראשי
כן אחד להתקני בלוקים ואחד לתווים
48
כמה מספרים ראשיים יש בלינוקס
512
49
איך מבקשים מלינוקס מספר ראשי דינאמי
שולחים 0 במפר הראשי בעת רישום הדרייבר נדע מה הוא לפי ערך החזרה מהרישום
50
מה יכול לקרות אם הסרנו דרייבר ללא שחרור במספר הראשי שלו עם Unregister_chardev?
במקרה הטוב אין דרייבר אחר שנוכל להפיות אליו את הבקשה והמערכת תקרוס במקרה הרע דרייבר אחר יתפוס את המספר הראשי והוא יטפל בבקשות
51
איך משחררים את המספר הראשי של דרייבר
Unregister_chardev(major, name)
52
שלהי הפעולה של sys_open בהקשר דרייברים
ניגשת למערכת הקבצים וקוראת את המספר הראשי והמשני של ההתקן לפי הinode של קובץ ההתקן מוודאת שיש דרייבר רשום להתקן לפי המספר הראשי בchedevs (אם המיקום במערך לאnull( משנה את file->ops להצביע על המימוש של הדרייבר chrdevs[M]->f_ops אם הדרייבר מימש אתopen מעבירים לו בין היתר את המספר המשני