[SO]O nelamurire Tema2

Doru Arfire doruarfire at gmail.com
Sun Nov 20 03:10:36 EET 2005


Pe scurt: din momentul in care setezi variabila de mediu LD_PRELOAD sa
indice biblioteca ta, orice program care "vede" aceasta variabila ar trebui
sa fie vazut de bibiloteca ta, adica apelurile de io se vor face prin
functiile definite de tine in biblioteca.

Pe "lung": in sistemul de operare exista o componenta foarte importanta
numita linker/loader. In linux aceasta este implementata de biblioteca
dinamica /lib/ld.so (in cazul formatului executabil a.out), respectiv
/lib/ld-linux.so (in cazul formatului ELF). Rolul linkerului este de a
permite programului tau sa apeleze functii care nu sunt implementate de
tine, ci de o biblioteca partajata. Pe scurt, biblioteca partajata este
mapata in spatiul de adrese programului tau iar executabilului i se spune la
ce adrese sa gasesca functiile de care are nevoie ca sa functioneze cum
trebuie. Tema 2 so se foloseste de faptul ca toate programele au nevoie sa
fie linkate cu libc.so si aproape toate operatiile de I/E se fac cu
apelurile de sistem read/write.
Linkerul verifica o serie de variabile de mediu si fisiere de configurare.
Printre acestea variabila LD_PRELOAD si fisierul /etc/ld.so.preload. Acestea
pot specifica o serie de biblioteci dinamice ce ar trebui incarcate inaintea
altora. In cazul temei acesteia biblioteca voastra, care implementeaza read
si write, vor fi incarcate inainte libc.so, care de asemenea implementeaza
read si write. Ideea e ca ale tale vor avea precedenta asupra celor
"standard", deci ele vor fi cele apelate in locul celor din libc. Tu poti
folosi acest fapt pentru o sumedenie de chestiuni, de ex tema 2 so.

Sper ca te-am lamurit cat de cat.

On 11/19/05, Alecu Andrei <aalecu at gmail.com> wrote:
>
> Am si eu o mica nelamurire. Procesele a caror stare o determin sunt rulate
> de mine? Adica dau eu comanda "ls" spre exemplu intr-un shell si trebuie sa
> obtin informatii sau fac un program in care rulez un exec cu "ls" in
> el(eventual intr-un fork) si despre acest "ls" trebuie sa aflu detalii?
>
> Daca s-ar putea un pic mai multe detalii as fi recunoscator.
>
> Multumesc,
> Andrei ALECU
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20051120/3f28b4ce/attachment.html


More information about the so mailing list