תרגול 4 Flashcards

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
Q

מה זה דרייבר
באיזה הרשאות רץ
מה מטרתו

A

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

26
Q

מה ההבדל בין מכניזם למדיניות

A

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

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

27
Q

מה זה התקן תווים
והתקן בלוקים

A

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

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

28
Q

איך אפשר לראות את המספר הראשי והמשני של device

A

ls -l /dev

X,y

X major
Y minor

29
Q

Major and minor number
איך נקראים בעברית
לאיזה סוג התקנים רלוונטים
מה משמעותם

A

מספר ראשי ומשני
שייכים להתקני תווים
מספר ראשי - מזהה את הדרייבר המקושר להתקן

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

30
Q

Open

ופונקציות של הדרייבר

מי משתמש במספר המשני והראשי של הדרייבר

A

Open משתמשת בראשי כדי לדעת איזה דרייבר יש להתקן

המשני משומש לדוגמה לניהול של הדרייבר

31
Q

מה המספר הראשי של התקנים פיקטיביים

A

1

32
Q

איזה התקנים פיקטיבים יש ומה קראיה וכתיבה אליהם תניב

A

/dev/null - EOF - מצליח והמידע נזרק

/dev/zero - רצף אפסים כפי שיבוקש -
מצליח ונזרק

/dev/full
מחזיר רצף אפסים
מחזיר מיד ENOSPC

/dev/random
/dev/arandom
/dev/urandom
מחזירה רצף בתים אקראי שנוצר מרעש
כותב לרצף הבתים האקראי

33
Q

מהו udev

A

Deamon
אשר מזהה התקנים מחוברים למערכת ומייתר בשבילם התקן ב/dev
כדי שהמשתמש לא יצטרך לעשות זאת ידנית

34
Q

איך מוחקים התקן מהמערכת

A

מוחקים את הקובץ המתאים לו

35
Q

איך מיצרים התקן חדש

A

בטרמינל
mknod NAme c/b major minor

36
Q

בעת open
מוקצה fd בfdt
על מה הוא מצביע?
מה הקשר לדרייברים

A

על אובייקט מסוג struct file
שמכיל מצביע למבנה מסוג
file_operations

בשם
F_op
המימש שלו זה בעצם הדרייבר

37
Q

מה זה אומר אם f_op
מצביע לnull

A

מימוש דיפולטי של הפעולות

38
Q

שדות חשובים בfile operation

A

Open read write
מצביעים למימוש

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

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

llseek
משנה את המיקום הנוכחי בקובץ
מחזיר את המיקום החדש

ioctl
מעביר פקודות ייחודיות להתקן
רק אם אי אפשר ללממש עם השאר נשתמש בזה

39
Q

מה נקבל אם נקרא לioctl
שלא מומש

A

EINVAL
-1

40
Q

מה מקבלת ioctl

A

Fd
Cmd number
And …

41
Q

איזה פונק גרעין רושמות ומוחקות דרייבר
ומה מקבלות

A

register_chrdev
מקבלת מספר ראשי
שם דרייבר
מצביע לfops

Unregister_chardev
מקבלת מספר ראשי
ושם דרייבר
ומשחררת את מספר הראשי של הדרייבר
לא מוחקת את קובץ הדרייבר ב/dev

42
Q

איך ממומש דרייבר בתור מודר

A

In module
Init_moudle will call register_char_chrdev
Cleanup_module calls unregister_chrdev

43
Q

האם רישום דרייבר מקושר ישירות להתקן?

A

לא
זה מקושר למספר ראשי לא להתקן מסויים

44
Q

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

A

chrdevs[]

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

כל כניסה מכילה את השם של הדרייבר ומצביע לfops

45
Q

האם
Chrdev
הוא באמת מערך?

A

מלינוקס 4.15 הוא hash table

46
Q

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

A

/proc/devices

Cat to the file

47
Q

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

A

כן
אחד להתקני בלוקים ואחד לתווים

48
Q

כמה מספרים ראשיים יש בלינוקס

A

512

49
Q

איך מבקשים מלינוקס מספר ראשי דינאמי

A

שולחים 0 במפר הראשי בעת רישום הדרייבר
נדע מה הוא לפי ערך החזרה מהרישום

50
Q

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

A

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

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

51
Q

איך משחררים את המספר הראשי של דרייבר

A

Unregister_chardev(major, name)

52
Q

שלהי הפעולה של
sys_open
בהקשר דרייברים

A

ניגשת למערכת הקבצים וקוראת את המספר הראשי והמשני של ההתקן
לפי הinode של קובץ ההתקן

מוודאת שיש דרייבר רשום להתקן לפי המספר הראשי בchedevs (אם המיקום במערך לאnull(

משנה את
file->ops
להצביע על המימוש של הדרייבר
chrdevs[M]->f_ops

אם הדרייבר מימש אתopen מעבירים לו בין היתר את המספר המשני