b.Incarc,sist si.proc
De ce nucleul copiazг codul apelului sistem exec оn spaюiul de adrese utilizator al procesului 1? Ar putea sг invoce versiunea internг a exec-lui direct din nucleu, dar asta ar fi mai complicat decвt implementarea deja descrisг.
--algoritmul start /* algoritm pentru boot-area sistemului */
^intrгri: niciuna
^ie?iri: niciuna
{
^iniюializarea tuturor structurilor de date ale sistemului;
^pseudo-montarea rгdгcinii;
^pregгtirea mediului pentru procesul 0;
^apel fork pentru procesul 1:
{
/* procesul 1 */
^alocг regiune;
^ata?eazг regiunea la spaюiul iniюial de adrese;
^cre?te mгrimea regiunii оn concordanюг cu codul ^care va fi copiat оn ea;
^copiazг codul din spaюiul nucleu pentru a iniюializa spaюiul utilizator pentru a executa init;
^schimbг modul din modul nucleu оn modul utilizator;
/* init niciodatг nu va fi aici... ca rezultat al modului schimbat оnainte, init executг /etc/init ?i devine un proces utilizator "normal" care respectг apelurile sistem */
}
/* procesul 0 continuг aici */
^apel fork pentru procesele nucleu;
/* procesul 0 invocг swapper-ul pentru a face management-ul alocгrii spaюiului de adrese pentru proces оn memoria proncipalг ?i a dispozitivelor de swap. Acesta este un ciclu infinit; procesul 0 este оn mod obo?nuit оn a?teptare оn buclг, dacг nu este ceva de fгcut pentru el */
^executг codul pentru algoritmul swapper;
}