Aggiornamento note copyright
[gapil.git] / fileadv.tex
index 15b32e484783f2ddabda09139565c947682d64c1..1bce388813321f2c7bc72723a9ed5da5eb77ffc9 100644 (file)
@@ -1,6 +1,6 @@
 %% fileadv.tex
 %%
-%% Copyright (C) 2000-2019 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2024 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -925,6 +925,7 @@ attuale delle cose è sconsigliabile fare affidamento sul \textit{mandatory
 
 % TODO il supporto è stato reso opzionale nel 4.5, verrà eliminato nel futuro
 % (vedi http://lwn.net/Articles/667210/)
+% è stato eliminato nel 5.15
 
 \itindend{file~locking}
 
@@ -2011,6 +2012,9 @@ questo caso la trattazione di un esempio concreto a quando avremo esaminato in
 dettaglio le caratteristiche dei socket; in particolare si potrà trovare un
 programma che utilizza questa interfaccia in sez.~\ref{sec:TCP_serv_epoll}.
 
+% TODO: trattare epoll_wait2, introdotta con il kernel 5.11 (vedi
+% https://lwn.net/Articles/837816/)
+
 \itindend{epoll}
 
 
@@ -2788,6 +2792,9 @@ definita la macro \macro{\_GNU\_SOURCE} prima di includere \headfile{fcntl.h}.
 
 \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
@@ -3492,6 +3499,10 @@ raggruppati in un solo evento.
 % http://lwn.net/Articles/343346/ (incluso nel 2.6.36)
 % fanotify_mark() ha FAN_MARK_FILESYSTEM dal 4.20
 % fanotify() ha FAN_OPEN_EXEC dal 4.21/5.0
+% fanotify() ha FAN_REPORT_PIDFD dal 5.14
+% fanotify() ha FAN_FS_ERROR dal 5.16, vedi
+% https://docs.kernel.org/admin-guide/filesystem-monitoring.html 
+% fanotify() ha FAN_RENAME dal 5.17, vedi https://kernelnewbies.org/Linux_5.17
 
 
 \subsection{L'interfaccia POSIX per l'I/O asincrono}
@@ -3883,7 +3894,9 @@ per il campo \var{aio\_sigevent} di \struct{aiocb}.
 
 % TODO trattare la nuova API per l'I/O asincrono (io_uring), introdotta con il
 % kernel 5.1, vedi https://lwn.net/Articles/776703/,
-% https://lwn.net/ml/linux-fsdevel/20190112213011.1439-1-axboe@kernel.dk/ 
+% https://lwn.net/ml/linux-fsdevel/20190112213011.1439-1-axboe@kernel.dk/
+% altre feature correlate:
+% dal 5.11: support for the shutdown(), renameat2(), and unlinkat()
 
 \section{Altre modalità di I/O avanzato}
 \label{sec:file_advanced_io}
@@ -4721,7 +4734,13 @@ caching dei dati.
 % 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
+% TODO: aggiunte MADV_POPULATE_READ e MADV_POPULATE_WRITE (vedi
+% https://lwn.net/Articles/861695/) 
 
 \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
@@ -5485,7 +5504,7 @@ copiati i puntatori.
 
 
 % TODO trattare qui copy_file_range (vedi http://lwn.net/Articles/659523/),
-% introdotta nel kernel 4.5
+% introdotta nel kernel 4.5, vedi anche https://lwn.net/Articles/846403/
 
 \subsection{Gestione avanzata dell'accesso ai dati dei file}
 \label{sec:file_fadvise}
@@ -5835,15 +5854,33 @@ file uno \textit{sparse file} a posteriori.
 
 % TODO aggiungere FALLOC_FL_INSERT vedi  http://lwn.net/Articles/629965/
 
-
 % TODO aggiungere i file hints di fcntl (F_GET_RW_HINT e compagnia)
 % con RWH_WRITE_LIFE_EXTREME e RWH_WRITE_LIFE_SHORT aggiunte con
 % il kernel 4.13 (vedi https://lwn.net/Articles/727385/)
 
+\subsection{Altre funzionalità avanzate}
+\label{sec:file_seal_et_al}
+
+da fare
+
 % TODO non so dove trattarli, ma dal 2.6.39 ci sono i file handle, vedi
 % http://lwn.net/Articles/432757/ (probabilmente da associare alle
 % at-functions) 
 
+% TODO: trattare i file seal, vedi fcntl / F_ADD_SEAL e memfd_create
+
+% TODO: con il kernel 5.14 è stata introdotta la syscall memfd_secret, vedi
+% https://lwn.net/Articles/835342/ https://lwn.net/Articles/812325/
+% https://lwn.net/Articles/865256/
+% https://lwn.net/ml/linux-mm/20210729082900.1581359-1-rppt@kernel.org/ e
+% https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1507f51255c9 
+
+% TODO trattare qui ioctl_ficlonerange ?
+
+% TODO trattare qui close_range, vedi https://lwn.net/Articles/789023/
+% dal 5.11 aggiunto CLOSE_RANGE_CLOEXEC, https://lwn.net/Articles/837816/ 
+
+
 
 % LocalWords:  dell'I locking multiplexing cap sez system call socket BSD GID
 % LocalWords:  descriptor client deadlock NONBLOCK EAGAIN polling select kernel