O que é chamado de ambientes de comutação no terminal do sistema?

0

Atualmente, estou tentando fazer um drone autônomo usando o sistema operacional do robô ( ROS ). Para fazer isso, instalei o Raspbian Lite ( Jessie ) em um Raspberry Pi 3 e atualmente estou usando o ROS Kinetic > sobre ele. Como é o Raspbian Lite , não havia gerenciadores de janela ou ambientes de área de trabalho que acompanhassem a instalação. Eu decidi ir com o Openbox Window Manager e instalei um terminal nele por conveniência. Eu posso apenas chamar sudo startx , e o gerenciador de janelas se abre, o qual pode ser acessado por Ctrl + alt + F2 '.

Agora, minha pergunta está no fato de que eu não entendo o processo de criação de novas sessões dentro do terminal do sistema. É chamado o terminal do sistema para começar? O que são essas sessões, que estou invocando com o uso de Ctrl + Deslocamento + F ? Alguns deles acomodam gerenciadores de exibição e alguns deles acomodam terminais , enquanto eu imagino que todo um ambiente de área de trabalho pode ser acomodado também. Existe uma página de manual que eu possa investigar?

    
por Sharan Duggirala 30.12.2016 / 13:39

2 respostas

4

Eles são dispositivos terminais virtuais do kernel , multiplexados nos dispositivos de framebuffer físico e de entrada humana por um programa emulador de terminal que é embutido no próprio kernel. Para programas aplicativos rodando sobre o kernel, eles se parecem com qualquer outro dispositivo terminal, como um dispositivo terminal serial . (Eles têm uma disciplina de linha, mas nenhum controle de modem).

O sistema implementa login de terminal por meio da execução de um programa getty (ou equivalente) e um programa login que aceita credenciais de usuário e invoca sessões de login .

O programa Servidor X também precisa usar o framebuffer físico e os dispositivos de entrada humana. Ele precisa negociar o compartilhamento com o emulador de terminal do kernel. Ele faz isso alocando um terminal virtual e dizendo ao kernel para desconectar isso do emulador de terminal do kernel.

Por isso, parece que o servidor X "roda" em um determinado terminal. Quando o emulador de terminal do kernel vê o acorde da tecla de atalho para alternar para o terminal virtual alocado, ele cede o controle do framebuffer e dos dispositivos de entrada humana para o servidor X. Quando o servidor X vê o acorde da tecla de atalho para mudar para outro terminal virtual, o servidor X cede o controle.

Estes acordes de teclas de atalho não são necessariamente simétricos. Em um dos meus sistemas, o atalho de atalho implementado pelo programa de emulação de terminal do kernel para mudar para o terminal virtual # 2 é Alt + F2 enquanto o atalho de atalho implementado pelo servidor X para a mesma ação é Ctrl + Alt + F2 .

Quando se trata de login gráfico , um gerenciador de exibição manipula a inicialização de servidores X com programas greeter . Você está apenas começando um servidor X diretamente e não está usando um gerenciador de exibição, é claro. Depois que as credenciais do usuário forem autenticadas, um gerenciador de desktop exibe um ambiente de área de trabalho , que compreende um conjunto de aplicativos X client de vários graus de complexidade . Para ambientes de desktop complexos, há um monte de programas de servidor interconectados através de um barramento de desktop . (Em um dos meus sistemas, o chamado "pequeno e leve" Editor do GNOME requer um corretor D-BUS e nove outros programas de servidor em execução.)

Alguns desses programas cliente X podem ser outros emuladores de terminal, como o LXTerminal, Unicode RXVT, Terminal GNOME, Terminate, roxterm, evilvte, xterm e assim por diante. Eles não usam diretamente dispositivos framebuffer e de entrada humana, e utilizam dispositivos pseudo-terminais .

Leitura adicional

por 31.12.2016 / 01:52
1

O sistema é inicializado com o antigo SysVinit ou com o novo systemd. Dependendo da sua distro.

No SysVinit são runlevels. Simplesmente digite runlevel em um terminal para obter o número

  • 0 Desligar
  • 1 / S Modo de usuário único ( .. para mantê-lo simples )
  • 2 Texto multiusuário (padrão baseado no Debian)
  • 3 Texto para vários usuários (padrão baseado no Red Hat)
  • 4 -
  • 5 Multi User + GUI
  • 6 Reinicializar

No sistema, as coisas são diferentes. Você recebe um unknown ou um erro ao digitar runlevel

systemctl list-units --type=target

imprime uma lista de destinos como:

  • graphical.target
  • multi-user.target
  • ...

Em runlevel 2 ou sem graphical.target

você acabou de ter o console de texto. Você pode alternar entre sessões de terminal pressionando CTRL + F [1-7]

No runlevel 5 ou graphical.target

OpenBox, o KDE está começando a ser iniciado (veja ~/.xinitrc , eu acho), baseado no X11 / Xorg / Wayland / Mir e as teclas de atalho são mappend diferentemente. Ctrl + Alt + F2 por padrão leva você para tty2.

    
por 30.12.2016 / 15:44