Criação e exclusão de um arquivo no nível do sistema [fechado]

0

O que acontece no nível do kernel quando alguém cria ou exclui um arquivo ( incluindo todas as atividades de manutenção )?

Eu fiz algumas pesquisas, mas não consegui encontrar uma boa resposta. Por favor, desculpe se parece trivial pergunta, mas como eu sou bastante fraco em conceitos do sistema operacional, eu não sei a resposta. Esta foi uma pergunta da entrevista.

    
por Coffee_lover 13.08.2015 / 07:00

1 resposta

2

Você precisa verificar as chamadas do sistema associadas aos comandos relevantes para ter uma ideia de baixo nível do que está acontecendo.

A ferramenta para rastrear chamadas do sistema é strace .

Por exemplo, se eu executar strace touch foobar.txt para verificar as chamadas do sistema associadas à criação de um arquivo vazio usando touch , a chamada de sistema mais notável (junto com outras) é:

open("foobar.txt", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3

Agora leia man 2 open para obter uma ideia detalhada.

Da mesma forma, se você quiser rastrear chamadas do sistema para rm foobar.txt , a importante chamada do sistema (junto com outras) seria:

unlinkat(AT_FDCWD, "foobar.txt", 0)     = 0

Agora leia man 2 unlinkat .

Você também pode salvar a saída strace em um arquivo para diagnóstico futuro usando -o option:

strace -o s_out.txt touch foobar.txt

Você também pode acompanhar apenas chamadas específicas do sistema:

strace -e open touch foobar.txt

Verifique também man strace .

    
por heemayl 13.08.2015 / 07:43