Atualmente estou lendo o livro Como funciona o Linux e no capítulo 5 ele fala sobre os parâmetros do Linux. Curioso eu comecei a ver quais eram os parâmetros passados para o meu kernel instalado quando ele inicializava e percebi:
BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64
Eu tenho pesquisado on-line para obter uma explicação para esse parâmetro, mas não obtive êxito. Alguém poderia me apontar para a direção certa, onde eu poderia encontrar mais informações ou explicar o que é isso BOOT_IMAGE
sobre? Uma coisa a notar é que estou executando um servidor Debian remoto. Eu sei que o serviço em si é virtualizado, provavelmente com o Xen. Isso tem a ver com o Xen e como ele inicializa instâncias?
ATUALIZAÇÃO:
Então, enquanto investigava, notei que vmlinuz-3.16.0-4-amd64
é a imagem do kernel. Veja também man bootparam
:
Most of the sorting goes on in linux/init/main.c. First, the kernel
checks to see if the argument is any of the special arguments ’root=’,
’nfsroot=’, ’nfsaddrs=’, ’ro’, ’rw’, ’debug’ or ’init’. The meaning
of these special arguments is described below.
Anything of the
form ’foo=bar’ that is not accepted as a setup function as described
above is then interpreted as an environment variable to be set. A
(useless?) example would be to use ’TERM=vt100’ as aboot argument.
Any remaining arguments that were not picked up by the kernel and
were not interpreted as environment variables are then passed onto
process one, which is usually the init program. The most common
argument that is passed to the init process is the word ’single’ which
instructs init to boot the computer in single user mode, and not
launch all the usual daemons. Check the manual page for the version
of init installed on your system to see what arguments it accepts.
A execução de systemctl show-environment
exibirá algo como:
[root@localhost ~]# systemctl show-environment
BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
LANG=en_US.UTF-8
Então parece que estamos passando como argumento a localização da imagem do Linux que estamos inicializando. As únicas perguntas restantes são quais processos usam essa variável de ambiente e por quê?