Diretório de trabalho atual do Kernel e posicionamento das informações do inode

1

Estou lendo algum documento sobre o UNIX, mas não entendo duas coisas:

  • Por que é importante para o kernel conhecer o diretório de trabalho atual do processo em execução?
  • Por que não manter as informações do inode no diretório?
por Anth 21.06.2015 / 17:48

1 resposta

1

O sistema precisa acompanhar o diretório atual de todos os processos, pois os processos não poderiam usar caminhos relativos para nada (incluindo, por exemplo, arquivo aberto ou stat e alteração de diretórios - o que significa chdir("..") se você não usa? t track foi o processo atualmente se senta?).

Há também o problema de que, sem rastrear essas informações, o kernel não seria capaz de verificar se um processo está dentro de um determinado ponto de montagem. Então, você estaria sujeito a desmontar acidentalmente um sistema de arquivos de um processo, levando a um estado inconsistente.

Para sua segunda pergunta: pense em links físicos. Eles seriam muito mais difíceis de implementar corretamente e com segurança se os dados do inode estivessem no próprio diretório "estrutura". Muito mais fácil ter essencialmente ponteiros para os inodes na estrutura de diretório, torna a adição ou remoção de links para um determinado inode bem simples.

    
por 21.06.2015 / 21:42