a.Lansarea altor.prog
Sintaxa apelului este:execve(filename, argv, envp)
Unde:
-filename este numele fi?ierului executabil care a fost apelat;
-argv este un pointer cгtre un vector de pointeri la ?iruri care sunt parametrii programului executabil;
-envp este un pointer cгtre un vector de pointeri la ?iruri care reprezintг mediul programului executat.
Existг mai multe funcюii de bibliotecг care apeleazг exec cum ar fi execl, execv, execle, etc. Toate acestea apeleazг eventual pe execve, din acest motiv acesta este folosit aici pentru a specifica apelul sistem exec.
--algoritm exec
^intrгri: ^ (1) nume de fi?ier
^ (2) lista de parametri
^ (3) lista de variabile de mediu
^ie?iri: nimic
{ obюine inodul fi?ierului (algoritmul namei);
verificг dacг fi?ierul e executabil, dacг utilizatorul are drept de execuюie;
^cite?te header-ele de fi?ier, verificг dacг sunt module оncгrcabile;
^copiazг parametrii lui exec din spaюiul vechi de adrese оn spaюiul sistemului;
^for(fiecare regiune specificatг оn modului оncгrcat)
{
^alocг regiuni noi (algoritm allocreg);
^ata?eazг regiunile (algoritmul attachreg);
^оncarcг regiunea оn memorie dacг este cazul (algoritmul loadreg);
}
copiazг parametrii lui exec оn noua regiune de stivг a utilizatorului;
^procesare specialг pentru programele setuid, opюiunu de execuюie pas cu pas;
elibereazг inodul fi?ierului (algoritmul iput);
}
Оn primul rвnd exec acceseazг fi?ierul prin algoritmul namei pentru a determina dacг este executabil, obi?nuit (nu e director) ?i pentru a determina dacг utilizatorul are drept de execuюie asupra programului. Nucleul cite?te apoi header-ul fi?ierului pentru a determina mгrimea fi?ierului executabil.