Não é tão simples essa coisa do SO reservar a memória. De certa forma é isso, mas pode levar a entendimento errado. De qualquer forma isso nada tem a ver com variável, esse memória pode existir sem variável e a variável ser de algo que não precisa reservar nada. Novamente, não vou entrar em detalhes, é mais complexo que isso.
Existem a declaração (geralmente reserva de memória) e atribuição (colocar um valor ali). Inicialização não é uma operação diferente, para deixar claro, é só uma especialização da atribuição, assim como a definição é só uma forma de dizer que a declaração e atribuição acontecem ao "mesmo tempo".
Importante notar que sintaxe e alguns outros conceitos mostrados são um exemplo em uma linguagem de programação, mas tem maneiras diferentes de fazer isso.
A palavra reservada é para o compilador saber que fará uma declaração, e diferencia de uma atribuição ou outra operação com a variável.
Constante não é uma variável que não varia, até porque isso existe e é chamada de variável imutável ou somente leitura. Constante é bem diferente, é apenas um valor e não uma posição de memória. Algumas linguagens chamam de constante algo que é só uma variável que não varia, e já vi até caso que variava, mas é um erro.
Ajudei? Era o meu desejo.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).