This shows you the differences between two versions of the page.
|
sde2:teme:tema_fr_3_rust [2022/04/25 22:45] alexandru.radovici |
sde2:teme:tema_fr_3_rust [2023/05/14 20:30] (current) alexandru.radovici |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Tema 3 Rusty Loader ====== | + | ====== Tema 4 Rustyloader ====== |
| ===== Informatii ===== | ===== Informatii ===== | ||
| <note important> | <note important> | ||
| - | Date limite: ** Le 10 mai, 23h59 ** \\ | + | Date limite: ** Le 30 mai, 23h59 ** \\ |
| Note: ** 2 points ** de la note \\ | Note: ** 2 points ** de la note \\ | ||
| - | Lien: [[https://classroom.github.com/a/NenM8B_7|Devoir 3]] \\ | + | Lien: [[https://classroom.github.com/a/5CBIdgHi|Devoir 4]] \\ |
| Télécharger en retard: **2 points / jour** (maximum 4 jours)\\ | Télécharger en retard: **2 points / jour** (maximum 4 jours)\\ | ||
| </note> | </note> | ||
| Line 35: | Line 35: | ||
| * Își va inițializa structurile interne. | * Își va inițializa structurile interne. | ||
| + | * Va afisa pe stderr (2) lista de segmente ale fisierului executabil | ||
| + | * Va afisa pe stderr (2) //base address// pentru fisierul executabil (adresa de memorie minima la care se incarca segmente) | ||
| + | * Va afisa pe stderr (2) //entry point address// | ||
| * Va parsa fișierul binar - pentru a face asta aveți la dispozitie biblioteca [[https://docs.rs/object/latest/object/|object]]. | * Va parsa fișierul binar - pentru a face asta aveți la dispozitie biblioteca [[https://docs.rs/object/latest/object/|object]]. | ||
| * Va rula prima instrucțiune a executabilului (//entry point-ul//). | * Va rula prima instrucțiune a executabilului (//entry point-ul//). | ||
| Line 45: | Line 48: | ||
| * Pagina trebuie mapată **fix** la adresa indicată în cadrul segmentului. | * Pagina trebuie mapată **fix** la adresa indicată în cadrul segmentului. | ||
| + | |||
| + | ==== Formatul afisarii ==== | ||
| + | <code> | ||
| + | Segments | ||
| + | # address size offset length flags | ||
| + | 0 0x8048000 1012 0x0 1012 r-x | ||
| + | 1 0x804a000 8192 0x1000 8192 rw- | ||
| + | Entry point 8048120 | ||
| + | Base address 8048000 | ||
| + | </code> | ||
| + | |||
| + | <note> | ||
| + | Alinierea campurilor se face cu TAB (\t). Daca alinierea nu este buna, adaugati doua caratere TAB. | ||
| + | </note> | ||
| ===== Biblioteca object ===== | ===== Biblioteca object ===== | ||