# LTSP

Linux Terminal Server Project (ou somente LTSP) é um projeto baseado em Linux que agrupa várias ferramentas e protocolos, com a finalidade de proporcionar um ambiente de trabalho remoto. Todo o software é corrido no servidor, e os terminais servem apenas de interface entre o utilizador e as aplicações – os poucos ciclos de processamento gastos são para enviar os dados da placa de rede à placa gráfica. Com efeito, é possível ter vários clientes com hardware antigo (eg. Pentium a 90Mhz, com 16MB de RAM e placa gráfica de 2MB) a ter um desempenho equivalente ao do servidor (que poderia ser um Pentium 4 a 3GHZ com 1GB RAM e placa gráfica de 2MB).
A primeira das tecnologias envolvidas é o standard PXE, que permite efectuar o arranque de um sistema pela rede. Esta especificação requer suporte na placa de rede (NIC). Aquando do arranque da máquina, a BIOS, devidamente configurada para o efeito, notifica a NIC para arrancar por PXE e esta, por sua vez, envia um pacote broadcast e espera obter configurações da rede. Em caso de timeout, o arranque é delegado para a BIOS novamente, e processado normalmente (com os dispositivos de armazenamento locais).
Para os casos em que as NIC's não suportam PXE é possível criar uma imagem de arranque com Etherboot, que pode ser armazenada no NIC, se este disponibilizar um encaixe (slot) para EPROM, ou ser utilizado através de uma disquete. Activando o arranque pela disquete, a BIOS lê a imagem, que será responsável pelo arranque da rede. Como com PXE, será enviado um pacote broadcast, desta vez assinado como sendo gerado por Etherboot.
Para ambos casos, o servidor de DHCP deverá estar devidamente configurado para suportar uma ou ambas tecnologias. Sob um ponto de vista de uniformização das configurações, é possível gerar imagens Etherboot para PXE, de tal forma que o arranque PXE é delegado para o Etherboot, e este, por sua vez, irá arrancar a máquina como ilustra o diagrama da figura.
Nas configurações do DHCP, além do endereço da rede, gateway, e hostname, deverá constar a localização de uma imagem do sistema operativo, que será descarregada pelo Etherboot, utilizando o protocolo TFTP, pela sua simplicidade de utilização. Este protocolo não requer autenticação, e o conjunto de operações como cliente é bastante limitado, resultando em clientes bastante pequenos.
Assim que o núcleo tiver sido descarregado, o PXE/Etherboot delega o arranque para o núcleo, criado especificamente para o efeito (com a ferramenta MKNBI), que será responsável por criar uma raiz de sistema de ficheiros virtual, por NFS. Esta característica do núcleo é a que permite correr uma instalação remota de Linux sem qualquer dispositivo de armazenamento local – este tipo de terminais envolvidos designam-se também por thin clients.
Finalmente, após o núcleo montar a raiz do sistema de ficheiros, irá lançar os scripts de arranque do sistema, que serão responsáveis por colocar o terminal no modo configurado, neste caso, o modo gráfico, utilizando XFree86. Este servidor de ambientes de trabalho em modo gráfico permite autenticar e executar uma sessão num servidor remoto, utilizando o protocolo XDMCP. Caso o utilizador consiga autenticar, será lançado o seu ambiente de trabalho, como se o utilizador estivesse a trabalhar localmente no servidor.
A partir deste momento, todas as operações que o utilizador do terminal efectuar, serão transparentemente realizadas no servidor e o output enviado para o terminal.