This shows you the differences between two versions of the page.
|
sde2:teme:tema_fr_3_rust [2022/04/25 22:39] 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 ===== | ||
| + | |||
| + | <note important> | ||
| + | Date limite: ** Le 30 mai, 23h59 ** \\ | ||
| + | Note: ** 2 points ** de la note \\ | ||
| + | Lien: [[https://classroom.github.com/a/5CBIdgHi|Devoir 4]] \\ | ||
| + | Télécharger en retard: **2 points / jour** (maximum 4 jours)\\ | ||
| + | </note> | ||
| ===== Obiectivele temei ===== | ===== Obiectivele temei ===== | ||
| Line 25: | 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 35: | 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 ===== | ||
| Line 43: | Line 70: | ||
| <note> | <note> | ||
| - | //mem_size// este reprezentata de campul //size// | + | * //mem_size// este reprezentata de campul //size// |
| - | //file_size// este reprezentat de una din valorile din tupul //file_range// | + | * //file_size// este reprezentat de una din valorile din tupul //file_range// |
| </note> | </note> | ||
| Line 70: | Line 97: | ||
| *Cursuri | *Cursuri | ||
| - | *[[http://ocw.cs.pub.ro/courses/so/cursuri/curs-05 | Curs 5 - Gestiunea memoriei]] | + | *[[sde2::cursuri:07]] |
| - | *[[http://ocw.cs.pub.ro/courses/so/cursuri/curs-06 | Curs 6 - Memoria virtuală]] | + | *[[sde2:cursuri:08]] |
| - | *[[http://ocw.cs.pub.ro/courses/so/cursuri/curs-07 | Curs 7 - Securitatea memoriei]] | + | |
| *Laboratoare | *Laboratoare | ||
| - | *[[http://ocw.cs.pub.ro/courses/so/laboratoare/laborator-04 | Laborator 4 - Semnale]] | + | *[[sde2:laboratoare:05_new]] |
| - | *[[http://ocw.cs.pub.ro/courses/so/laboratoare/laborator-05 | Laborator 5 - Gestiunea memoriei]] | + | *[[sde2:laboratoare:08_new]] |
| - | *[[http://ocw.cs.pub.ro/courses/so/laboratoare/laborator-06 | Laborator 6 - Memoria virtuală]] | + | |
| *Operating System Concepts -- Chapter 8 -- Main Memory | *Operating System Concepts -- Chapter 8 -- Main Memory | ||
| *Operating System Concepts -- Chapter 9 -- Virtual Memory | *Operating System Concepts -- Chapter 9 -- Virtual Memory | ||