+Quando un programma viene lanciato dal kernel viene eseguito il
+programma \texttt{ld-linux.so}, è questo programma che prima carica le
+librerie condivise che servono al programma, effettua il link dinamico del
+codice e poi alla fine lo esegue. La procedura è controllata da alcune
+variabili di ambiente e dai settaggi di
+
+Il sistema fa partire qualunque programma chiamando la funzione \texttt{main};
+sta al programmatore chiamare così la funzione principale del programma, se
+così non fosse lo stesso linker darebbe luogo ad errori.
+
+Lo stadard ISO C specifica che detta funzione può non avere argomenti o
+prendere due argomenti che rappresentano gli argomenti passati da linea di
+comando, in sostanza un prototipo che va sempre bene è il seguente:
+\begin{verbatim}
+ int main (int argc, char *argv[])
+\end{verbatim}
+
+
+In realtà nei sistemi unix esiste un'altro modo per definire la funzione
+\texttt{main}, che prende un terzo parametro, \texttt{char *envp[]}, che
+fornisce l'ambiente (vedi \secref{proc_environ}) del programma; questa forma
+però non è prevista dallo standard POSIX.1 per cui se si vogliono scrivere
+programmi portabili è meglio evitarla.
+