\itindbeg{file~lease}
+% TODO: questa funzionalità potrebbe essere estesa vedi:
+% https://lwn.net/Articles/796000/
+
La prima di queste funzionalità è quella del cosiddetto \textit{file lease};
questo è un meccanismo che consente ad un processo, detto \textit{lease
holder}, di essere notificato quando un altro processo, chiamato a sua volta
% TODO aggiunta MADV_WIPEONFORK dal kernel 4.14 that causes the affected memory
% region to appear to be full of zeros in the child process after a fork. It
% differs from the existing MADV_DONTFORK in that the address range will
-% remain valid in the child (dalla notizia in https://lwn.net/Articles/733256/).
+% remain valid in the child (dalla notizia in
+% https://lwn.net/Articles/733256/).
+% TODO aggiunte MADV_COLD e MADV_PAGEOUT dal kernel 5.4, vedi
+% https://git.kernel.org/linus/9c276cc65a58 e
+% https://git.kernel.org/linus/1a4e58cce84e
\footnotetext{a partire dal kernel 2.6.32 è stato introdotto un meccanismo che
identifica pagine di memoria identiche e le accorpa in una unica pagina
\textit{pathname} assoluto, nel qual caso, come detto, il valore di
\param{dirfd} sarà completamente ignorato.
+% TODO: trattare openat2, introdotta con il kernel 5.6, vedi
+% https://lwn.net/Articles/796868/ e https://git.kernel.org/linus/b55eef872a96
+
\begin{table}[htb]
\centering
\footnotesize
pertanto l'uso della funzione è analogo a quello delle altre funzioni che non
hanno l'argomento \param{flags} (e non la tratteremo esplicitamente).
+% TODO: documentare l'introduzione di fchmodat4() se e quando ci sarà, vedi
+% https://lwn.net/Articles/792628/
+
L'altro flag comune è \const{AT\_EMPTY\_PATH}, utilizzabile a partire dal
kernel 2.6.39, che consente di usare per \param{dirfd} un file descriptor
associato ad un file qualunque e non necessariamente ad una directory; in
% TODO documentare la syscall getrandom, introdotta con il kernel 3.17, vedi
% http://lwn.net/Articles/606141/, ed introdotta con le glibc solo con la
-% versione 2.25, vedi https://lwn.net/Articles/711013/
+% versione 2.25 con getentropy, vedi https://lwn.net/Articles/711013/ ed i
+% problemi successivi vedi https://lwn.net/Articles/800509/
%\subsection{La gestione delle chiavi crittografiche}
%\label{sec:keyctl_management}
% TODO documentare PR_SPEC_DISABLE_NOEXEC in 5.1, vedi
% https://lwn.net/Articles/782511/
+% TODO documentare PR_SET_IO_FLUSHER in 5.6, vedi
+% https://lwn.net/Articles/811230/
+
\label{sec:prctl_operation}
\end{basedescript}
% TODO: trattare userfaultfd, introdotta con il 4.23, vedi
-% http://man7.org/linux/man-pages/man2/userfaultfd.2.html
+% http://man7.org/linux/man-pages/man2/userfaultfd.2.html,
+% https://lwn.net/Articles/787308/, https://git.kernel.org/linus/57e5d4f278b9
+
% TODO: trattare process_vm_readv/process_vm_writev introdotte con il kernel
% 3.2, vedi http://man7.org/linux/man-pages/man2/process_vm_readv.2.html e i
\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
% 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
-
+% trattare pidfd_getfd aggiunta con il kernel 5.6