X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=signal.tex;h=08f7b8d2d504695f5b9fb5ddcdd0d2f626367c68;hp=174ca0b0eeb19106878fec34ff6af1f3ef29df3c;hb=fddf66ed6c48647cbab38b3a27c4a12feb74b86c;hpb=5c53a509c4ad415ccf5f4bf3584f310ce5dd87a9 diff --git a/signal.tex b/signal.tex index 174ca0b..08f7b8d 100644 --- a/signal.tex +++ b/signal.tex @@ -2126,6 +2126,11 @@ tab.~\ref{tab:sig_sa_flag}. call} quando vengono interrotte dal suddetto segnale, riproduce cioè il comportamento standard di BSD.\\ + \constd{SA\_RESTORER} & Ad uso delle implementazioni delle liberie del C, + non deve essere usato nelle applicazioni, serve ad + indicare che il campo \var{sa\_restorer} contiene + l'indirizzo di un cosiddetto \textit{signal + trampoline}.\footnotemark \\ \constd{SA\_SIGINFO} & Deve essere specificato quando si vuole usare un gestore in forma estesa usando \var{sa\_sigaction} al posto di @@ -2136,6 +2141,13 @@ tab.~\ref{tab:sig_sa_flag}. \label{tab:sig_sa_flag} \end{table} +\footnotetext{il \itindex{signal~trampoline} \textit{signal trampoline} è il + codice usato per tornare da un gestore di segnali, che originariamente + veniva inserito nello \textit{stack}, ma i kernel recenti come misura di + sicurezza impediscono l'esecuzione di codice dallo stack, per cui questo + codice viene spostato altrove (ad esempio nella libreria del C) ed il suo + indirizzo viene indicato al kernel nel campo \var{sa\_restorer}.} + Come si può notare in fig.~\ref{fig:sig_sigaction} \func{sigaction} permette di utilizzare due forme diverse di gestore,\footnote{la possibilità è prevista dallo standard POSIX.1b, ed è stata aggiunta nei kernel della serie 2.1.x @@ -3834,21 +3846,21 @@ tipo \type{sigjmp\_buf}, è assolutamente identica a \func{longjmp}. \label{sec:sig_pid_fd} -% TODO: trattare (qui?) pidfd_send_signal() introdotta con il kernel 5.1 vedi +% TODO: trattare (qui? oppure sopra in "Ulteriori funzioni di gestione?) +% pidfd_send_signal() introdotta con il kernel 5.1 vedi % https://lwn.net/Articles/784831/, https://lwn.net/Articles/773459/ e -% https://lwn.net/Articles/801319/ -% oppure sopra in "Ulteriori funzioni di gestione" +% https://lwn.net/Articles/801319/ % TODO: Nuova subsection sui pidfd, e le funzioni correlate, in particolare: % trattare pidfd_send_signal, aggiunta con il kernel 5.1 (vedi % https://lwn.net/Articles/783052/) per mandare segnali a processi senza dover % usare un PID, vedi anche https://lwn.net/Articles/773459/, -% https://git.kernel.org/linus/3eb39f47934f -% trattare pure pidfd_open() (vedi https://lwn.net/Articles/789023/) per -% ottere un pid fd pollabile aggiunta con il kernel 5.3 -% man pidfd_send_signal su le versioni più recenti della man pages - - +% https://git.kernel.org/linus/3eb39f47934f trattare pure pidfd_open() (vedi +% https://lwn.net/Articles/789023/) per ottere un pid fd pollabile aggiunta +% con il kernel 5.3 ed il nuovo flag PIDFD_NONBLOCK aggionto con il 5.10 (vedi +% https://git.kernel.org/linus/4da9af0014b5), man pidfd_send_signal su le +% versioni più recenti della man pages trattare pidfd_getfd aggiunta con il +% kernel 5.6 % LocalWords: kernel POSIX timer shell control ctrl kill raise signal handler