diff --git a/Scooby-doo.jpg b/Scooby-doo.jpg new file mode 100644 index 0000000..e5d5729 Binary files /dev/null and b/Scooby-doo.jpg differ diff --git a/dynamic-linking.ro.md b/dynamic-linking.ro.md index 3630d63..3a53fc3 100644 --- a/dynamic-linking.ro.md +++ b/dynamic-linking.ro.md @@ -13,7 +13,7 @@ Diferența este că acum, folosim linkare dinamică în loc de linkare statică Pentru aceasta, am renunțat la argumentul `-static` folosit la linkare. Pentru acest exemplu, obținem un singur executabil `main`, din legarea statică cu biblioteca `libinc.a` și legarea dinamică cu biblioteca standard C. -Similar exemplului din directorul `05-static/, folosim comanda `make` pentru a obține executabilul `main`: +Similar exemplului din directorul `05-static/,` folosim comanda `make` pentru a obține executabilul `main`: ```console [..]/06-dynamic$ ls @@ -43,7 +43,7 @@ main: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically link Fișierul executabil `main` obținut prin linkare dinamică are un comportament identic fișierului executabil `main` obținut prin linkare statică. Observăm că dimensiunea sa este mult mai redusă: ocupă `7 KB` comparativ cu `600 KB` cât avea varianta sa statică. -De asemenea, folosind utilitarul `file`, aflăm că este executabil obținut prin linkare dinamică (*dynamically linked*), în vreme cel obținut în exemplul anterior este executabil obținut prin linkare statică (*statically linked). +De asemenea, folosind utilitarul `file`, aflăm că este executabil obținut prin linkare dinamică (*dynamically linked*), în vreme cel obținut în exemplul anterior este executabil obținut prin linkare statică (*statically linked*). Investigăm simbolurile executabilului: @@ -66,7 +66,7 @@ Investigăm simbolurile executabilului: Simbolurile obținute din modulul obiect `main.o` și din biblioteca statică `libinc.o` sunt rezolvate și au adrese stabilite. Observăm că folosirea bibliotecii standard C a dus la existența simboblului `_start`, care este entry pointul programului. -Dar, simbolurile din biblioteca standard C, (`printf`, __libc_start_main`) sunt marcate ca nedefinite (`U`). +Dar, simbolurile din biblioteca standard C, (`printf`, __libc_start_main) sunt marcate ca nedefinite (`U`). Aceste simboluri nu sunt prezente în executabil: rezolvarea, stabilirea adreselor și relocarea lor se va realiza mai târziu, la încărcare (load time). La încărcare, o altă componentă software a sistemului, loaderul / linkerul dinamic, se va ocupa de: @@ -77,7 +77,7 @@ La încărcare, o altă componentă software a sistemului, loaderul / linkerul d Putem investiga bibliotecile dinamice folosite de un executabil prin intermediul utilitarului `ldd`: -``console +```console [..]/06-dynamic$ ldd main linux-gate.so.1 (0xf7f97000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7d8a000) diff --git a/football.md b/football.md new file mode 100644 index 0000000..ebeff4a --- /dev/null +++ b/football.md @@ -0,0 +1,9 @@ +# Where are you Scooby-Doo? 🐶👻 + +![Scooby-Doo](./Scooby-doo.jpg) + +Drop a like for my music [Scooby Jam](https://www.youtube.com/watch?v=776rvGHfzuM&pp=ygUQc2Nvb2J5IGRvbyBpbnRybw%3D%3D) pretty please <3 + + + + diff --git a/helloworld/helloworld.cpp b/helloworld/helloworld.cpp index 11d982c..ed703a2 100644 --- a/helloworld/helloworld.cpp +++ b/helloworld/helloworld.cpp @@ -3,5 +3,6 @@ int main() { std::cout << "Hello, World!" << std::endl; + std::cout << "Nu mai pot ba frt" << "\n"; return 0; } diff --git a/helloworld/helloworld.py b/helloworld/helloworld.py index 7df869a..e27e38f 100644 --- a/helloworld/helloworld.py +++ b/helloworld/helloworld.py @@ -1 +1,2 @@ print("Hello, World!") +print("Nu mai pot ba frt")