domingo, 27 de maio de 2007

Linux /proc

Ainda não tenho muito para escrever sobre este artigo ainda, e também não me arriscaria a escrever uma receita de bola pra "tunnar" o seu kernel e coisas do genero.
Simplesmente fiquei impressionado com o poder do nosso amigo linux, e gostaria de compartilhar esse barganha.

Como sabemos no linux tudo é tratado como diretorio, (Tambem tem os daemons, mas esses são como serviços). Portanto um link simbolico pode ser visto como um diretorio, um nfs, ou um ponto de montangem tambem pode ser visto apenas como um diretorio, de facil navegação e facil acesso, certo? E por que não, já que tudo é diretório, não ter um diretorio que reflita as coisas que estão na memória do seu micro? É isto, o /proc é um pseudo diretório, criado na memória da sua maquina e acessado pelo linux, cuja o qual, pode ser acessado pelo /proc.

Bom quando nos listamos os processos, nos temos os PPID, podemos portanto alterar o valor de um arquivo na memoria, seria somente entrar na /proc/xxxxx. É claro que não é uma boa ideia fazer isso sem plena conciencia do que se esta fazendo. Outro causo interessante seria fazer um certo tipo de backup do arquivo que se encontra na memoria.

Dentro tambem do /proc encontramos diversas outras pastas muito importantes, como por exemplo: cpuinfo, meminfo, filesystem, kernel, modules.
Podemos alterar todos os parametros do kernel em tempo de execução, sem a necessidade de se rebootar a maquina. Não é lindo isso?

É claro que os valores dentro destes arquivos não podem ser alterados assim por um editor de texto, ou outra coisa, ele estão em execução e isto seria quase suicidio.

Para isso usamos o sysctl, que irá nos ajudar com este exemplo.

#hostname
sysctl -a -----Exibe todos os parametros, vamos então alterar um que não influenciaria no funcionamento do kernel.
#sysctl -a | grep kernel.hostname
#sysctl -w kernel.hostname="localhost.novodominio"
#hostname

Perceberam a alteração? Para voltar é simples, reiniciar a maquina, ou usar o sysctl novamente, este aplicativo alterar o valor da variavel em tempo de execução para fixar este valor temos que alterar os arquivos de configurações.

Referencias e Links:
http://www.ibm.com/developerworks/linux/library/l-adfly.html


Falow!