É importante entender como a memória é usada. Uma parte significativa da memória é frequentemente compartilhada. Qualquer código usado em um programa e suas bibliotecas são compartilhadas entre diferentes processos. O código é mapeado na memória como somente leitura e é compartilhado por todos os processos, portanto, não pertence a nenhum usuário. Certas bibliotecas como libc
são usadas por praticamente todos os processos, mas são carregadas somente na RAM uma vez. Programas com mais código terão mais memória compartilhada do que programas com mais dados.
Para responder à sua pergunta, quase todas as informações que programas como top, free e ps get vêm da verificação do /proc
filesystem. Todo processo tem sua própria pasta com o nome do PID. Há vários arquivos, como mapas, que mostram seu mapa de memória, comm que mostra o comando que foi executado para iniciar o processo e io que mostra o uso de E / S. Há uma introdução a /proc
na Documentação do Kernel Linux .