[pso] [Tema1] Structura std

Bogdan Cap-Bun capbunbogdan at yahoo.com
Fri Mar 19 18:47:23 EET 2010


Si pentru mine e la fel de neclar, dat fiind faptul ca:


Daniel Baluta wrote:
> Salutare,
> Am citit listele din anii precedenti insa nu m-am lamurit in totalitate 
> asupra functiei
> 
> BOOLEAN KeAddSystemServiceTable(void *base, int *ct, int ls, unsigned 
> char *spt, int index);

pe versiunea veche, daca era sa folosesti KeAddSystemServiceTable, 
trebuia sa creezi un vector ct cu dimensiunea data de numarul de apeluri 
de sistem si sa initializezi elementele vectorului la 0; de asemenea 
index ar fi trebuit sa insemne indexul noii tabele (pe versiunea veche a 
temei, valoarea ar fi fost 0)

> nu prea imi dau seama ce reprezinta ultimul parametru index si daca 
> parametru 2 ct pot sa il pun pe NULL.
> 

la tema de Windows nu trebuie sa folositi KeAddSystemServiceTable; ne 
cerem scuze pentru faptul ca am lasat-o in sci_win.h - e reminiscenta de 
anii trecuti

in prezent exista doar doua tabele de servicii; pana la winxp erau 4 si 
putea fi folosita ultima (cea cu indexul 3) pentru noi apeluri; din 
aceasta cauza va trebui sa lucrati cu tabela 0 si sa inlocuiti intrarile 
  serviciilor de sistem cu altele noi (atat in aceasta tabela cat si in 
tabela shadow - practic in KeServiceDescriptorTable[0] si 
KeServiceDescriptorTableShadow[0]

citat din enuntul temei:
"pentru ca nu exista apeluri de sistem nefolosite in Windows, va trebui 
sa inlocuiti tabela de apeluri de sistem cu una noua, in care sa 
adaugati apelul de sistem propriu; atentie, trebuie sa inlocuiti 
tabelele de apeluri de sistem atat in descriptorul principal cat si in 
shadow"

o sa modificam header-ul ca sa dispara KeAddSystemServiceTable de acolo 
sa nu mai produca nici un fel de confuzie

Razvan





________________________________
From: Eugen <pupicutz2000 at gmail.com>
To: Proiectarea Sistemelor de Operare <pso at cursuri.cs.pub.ro>
Sent: Fri, March 19, 2010 6:44:26 PM
Subject: Re: [pso] [Tema1] Structura std

Octavian Voicu wrote:
> Fri, Mar 19, 2010 at 10:57 AM, Eugen <pupicutz2000 at gmail.com> wrote:
>  
>> La tema 1 pe windows, structura std este un pic ambigua.
>> Ce inseamna fiecare camp ?
>>    
>
>  
>>   void **st;    /* service table */
>>    
> Un pointer la service call table [un vector de adrese ale handlerelor
> pentru fiecare system call, indexat dupa id-ul system call-ului]
>
>  
>>   int *ct;        /* counter table */
>>    
> Pentru profiling, folosit doar in debug builds. Un pointer la un
> vector de countere, indexat tot dupa id-ul system call-ului, care
> numara de cate ori a fost apelat fiecare system call.
>
>  
>>   int ls;            /* last service no */
>>    
> Numarul de intrari din service table / counter table / service parameter table.
>
>  
>>   unsigned char *spt;    /* service parameter table */
>>    
> Numarul de bytes ocupati de argumentele fiecarui system call.
>
> Pentru dispatcherul vostru nu veti folosi decat service table si last
> service no, dar cand creati noua tabela este nevoie sa duplicati si
> service parameter table.
>
> Pentru mai multe informatii vezi [1], descrierea
> KeAddSystemServiceTable [2] si trap.asm, sursa dispatcherului de
> system calls pentru windows [3].
>  

Vroiai sa adaugi niste linkuri aici ?


Ce inseamna id-ul system call-ului ? Numarul apelului de sistem ?
ls e atunci dimensiunea vectorului de handlere ?

Trebuie sa adaugam o noua tabela in vectorul de tabele continand o 
singura noua intrare?
sau sa modificam tabela curenta deja existenta,
sau sa o copiem undeva adaugam intrarea si apoi sa o readaugam folosind 
KeAddSystemServiceTable ?
Si cu shadow ce facem ?

E destul de neclar ce trebuie sa facem aici, cel putin pentru mine.

Multumesc
> Octavian
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
>  

_______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20100319/02804a9b/attachment.htm>


More information about the pso mailing list