E se a interface do sistema de arquivos focasse primeiro nos arquivos e depois nos nomes, e não o contrário?
Ao invés de criar um arquivo com nome tal, os programas primeiro criam arquivos, da mesma forma como alocam memória, e posteriormente criam ligações desse arquivo para locais na árvore de nomes.
Um programa que criasse um arquivo mas nunca criasse ligações teria um arquivo temporário fatalmente destruído após o término do programa.
Uma referência válida para o arquivo em um programa adquire o arquivo e portanto ele não pode ser destruído; transmitir essa referência a outro programa por interprocess communication se torna uma forma de object remoting paralela a shared memory.
Isto evidenciaria melhor a distinção no sistema de arquivos entre os arquivos propriamente ditos e os nomes; no Unix, entre os inodes e os paths. A interface de arquivos e a interfaces de nós na árvore seria logicamente associada porém claramente distinta.
Esta distinção é útil ao aplicar truques análogos ao swap de memória virtual em operações de IO, como montar pacotes de dados em um arquivo para posteriormente usar sendfile ou TransmitFile. Este truque não necessita de um novo nó na árvore de arquivos; apenas de um arquivo que faça o papel de swap para um memory map.
Ao invés de criar um arquivo com nome tal, os programas primeiro criam arquivos, da mesma forma como alocam memória, e posteriormente criam ligações desse arquivo para locais na árvore de nomes.
Um programa que criasse um arquivo mas nunca criasse ligações teria um arquivo temporário fatalmente destruído após o término do programa.
Uma referência válida para o arquivo em um programa adquire o arquivo e portanto ele não pode ser destruído; transmitir essa referência a outro programa por interprocess communication se torna uma forma de object remoting paralela a shared memory.
Isto evidenciaria melhor a distinção no sistema de arquivos entre os arquivos propriamente ditos e os nomes; no Unix, entre os inodes e os paths. A interface de arquivos e a interfaces de nós na árvore seria logicamente associada porém claramente distinta.
Esta distinção é útil ao aplicar truques análogos ao swap de memória virtual em operações de IO, como montar pacotes de dados em um arquivo para posteriormente usar sendfile ou TransmitFile. Este truque não necessita de um novo nó na árvore de arquivos; apenas de um arquivo que faça o papel de swap para um memory map.
Comentários
Postar um comentário