Eu não começaria a mexer com o LFS, que é um caminho de jardim que leva a algumas florestas escuras.
Comece com uma distro em que você tenha muito controle sobre a instalação inicial, como o Arch, ou uma edição sem cabeçalho, como o servidor Ubuntu. O objetivo disso não é tanto economizar espaço, mas sim delimitar a complexidade da configuração do init; a partir de uma distribuição sem cabeça, se o aplicativo que você deseja executar requerer uma GUI, você pode adicionar o que é necessário para isso sem ter que ter um login GUI (também conhecido como gerenciador de exibição ou DM) iniciado pelo init e uma área de trabalho completa. ambiente para acompanhar.
Você então quer aprender como configurar o sistema init para seus propósitos - note que você não pode fazer sem o init e pode ser o melhor meio de atingir seu objetivo. Existem três variações no init comumente usadas no linux (mas existem algumas outras ):
-
O Debian usa uma variação do estilo clássico Unix SysV init . A partir do release
jessie
, o Debian também mudou parasystemd
( link ) -
O Ubuntu e os derivados usam o upstart .
-
Fedora, Arch e derivados usam systemd .
Se você ainda não sabe nada sobre nenhum deles, nenhum deles é particularmente mais difícil de usar do que qualquer um dos outros. Se você for com um dos dois mais recentes, eles fornecem alguns mecanismos para compatibilidade retroativa com o SysV, mas não se incomode com isso , NÃO é mais simples. 1
O ponto aqui é minimizar o que o init faz no boot, e é assim que você pode criar um sistema que irá rodar uma quantidade mínima de software para suportar o aplicativo que você quer focar - isso é essencialmente como um servidor é configurar, BTW, por isso é uma tarefa comum (note que você não pode literalmente ter "apenas um" processo userland em execução, pelo menos não utilmente).
Se o aplicativo que você deseja executar for um programa GUI (um bom exemplo de por que você não pode literalmente executar apenas um aplicativo, já que os aplicativos GUI exigem um servidor X), você pode ter um ~/.xinitrc
semelhante a este ;
#!/bin/sh
myprogram
Quando você, em seguida, startx
, seu programa será a única coisa em execução e será impossível alterar os desktops ou iniciar qualquer outra coisa, parcialmente porque não há gerenciador de janelas ou ambiente de área de trabalho (portanto, não haverá janela frame ou barra de título também.
1. Para minimizar um pouco o ponto: quando você está pesquisando isso, você pode encontrar algumas reclamações sobre systemd e upstart de pessoas que já estavam familiarizadas com o SysV alegando, por exemplo, que elas são muito complicadas. No entanto, objetivamente, eles não são mais complexos do que o SysV (o sistema IMO é mais simples de usar, na verdade), mas a maioria dos cães prefere seus truques antigos, por assim dizer. Este aperto está começando a diminuir agora ambos os sistemas estão em uso há algum tempo.