Entendo que, classicamente, o Kernel do Linux era conservador quanto à adição de novos syscalls.
Mas aprendi sobre a existência de copy_file_range
, que parece fazer exatamente a mesma coisa que sendfile
. As únicas diferenças que consegui identificar são:
- não funciona em soquetes, apenas em arquivos regulares adequados
- permite que o deslocamento de entrada e saída seja definido
Mas para arquivos regulares, a seek
pode atingir a mesma semântica de deslocamento, então agora estou confuso sobre qual é o propósito do copy_file_range
syscall, se suas habilidades são um subconjunto estrito do syscall existente do San? Especialmente porque a busca como uma coisa separada pode ser feita de forma bastante sensata separadamente, para não estender ainda mais o tempo gasto no kernelspace l. (Como de costume, o objetivo do design do sistema operacional é fazer com que as chamadas do sistema operacional não sejam bloqueadas, e a busca física possa ser concluída enquanto o controle já foi devolvido ao usuário.)