O que é um shell gráfico?

2

Da compreensão do kernel do Linux

Unix is a multiprocessing operating system with preemptable processes. Even when no user is logged in and no application is running, several system processes monitor the peripheral devices. In particular, several processes listen at the system terminals waiting for user logins. When a user inputs a login name, the listening process runs a program that validates the user password. If the user identity is acknowledged, the process creates another process that runs a shell into which commands are entered. When a graphical display is activated, one process runs the window manager, and each window on the display is usually run by a separate process. When a user creates a graphics shell, one process runs the graphics windows and a second process runs the shell into which the user can enter the commands. For each user command, the shell process creates another process that executes the corresponding program.

O que significa "shell gráfico" aqui?

O gnome shell é um shell gráfico?

É minha pergunta anterior Onde "shell gráfico" está na hierarquia de "sistema de janelas, gerenciador de janelas, ambiente de área de trabalho"?  relacionado ao aqui? A pergunta está vinculada ao link , que diz

Graphical shells provide means for manipulating programs based on graphical user interface (GUI), by allowing for operations such as opening, closing, moving and resizing windows, as well as switching focus between windows. Graphical shells may be included with desktop environments or come separately, even as a set of loosely coupled utilities.

O "shell" perto do final significa "shell gráfico"? É um shell de linha de comando executado em um emulador de terminal?

    
por Tim 16.09.2018 / 18:12

1 resposta

4

O termo graphics shell pode ser um shell gráfico ou um shell de linha de comando sendo executado sob ele. Ou seja, a interface gráfica do usuário (GUI) ou a linha de comando que controla as funções da GUI.

Primeiro, vamos começar com o shell, o que significa "shell": a definição da palavra "shell" significa um programa, ou mesmo um grupo de programas trabalhando juntos, ele controla o sistema operacional e o hardware. shell é realmente o software que lhe dá controle direto sobre o computador.

Um shell gráfico é um shell que apresenta saída como gráficos 2D ou 3D, ao contrário de texto simples. Em outras palavras, é a interface gráfica do usuário (GUI) que inclui janelas, menus. ..etc que proporcionam uma interação mais flexível entre o usuário e o sistema, em vez do simples texto sem graça oferecido pela interface do terminal.

No entanto, dado que o núcleo da GUI é construído como um shell, todas as suas funções podem ser controladas pela linha de comando . Por exemplo, o comando genome-shell é o shell gráfico para a área de trabalho do GNOME, esse comando fornece funções principais da interface com o usuário para a área de trabalho do GNOME que pode ser ajustada por uma linha de comando. Outro exemplo, é o nautilus que é a principal interface GUI do explorador de arquivos no Gnome, esta interface está disponível como uma linha de comando chamada nautilus . Esta linha de comando tem as seguintes funções:

$ nautilus --help
Usage:
  nautilus [OPTION...] [URI...]

Help Options:
  -h, --help                  Show help options
  --help-all                  Show all help options
  --help-gapplication         Show GApplication options
  --help-gtk                  Show GTK+ Options

Application Options:
  -c, --check                 Perform a quick set of self-check tests.
  --version                   Show the version of the program.
  -w, --new-window            Always open a new window for browsing specified URIs
  -n, --no-default-window     Only create windows for explicitly specified URIs.
  -q, --quit                  Quit Nautilus.
  -s, --select                Select specified URI in parent folder.
  --display=DISPLAY           X display to use

Ou seja, você pode controlar as funções da GUI por meio da linha de comando.

No Linux, um shell gráfico é geralmente feito de algumas camadas de software. O sistema operacional deve fornecer drivers gráficos e drivers de teclado e mouse. Em seguida, no topo dos drivers, você tem um sistema de janelas como o X11 ou o Wayland. isto cria invólucros de alto nível em torno da entrada (como o fornecimento de layouts de teclado), gerencia a memória que armazena as imagens 2D transmitidas ao driver de vídeo e fornece aos aplicativos recursos para pintar essas imagens 2D na memória.

Acima do sistema de janelas você tem um gerenciador de janelas, e é assim que um aplicativo converte os eventos de teclado e mouse em chamadas do sistema que manipulam as janelas para as quais os aplicativos estão pintando. Isso inclui tarefas como iniciar, pausar, ocultar, exibir e fechar aplicativos, detectar quando um aplicativo falhou e limpá-lo depois.

Existem dezenas de gerenciadores de janelas populares, incluindo o Unity, o Gnome Shell, o Xfwm, o OpenBox, o i3, o Xmonad e muitos outros.

Os aplicativos podem desenhar gráficos como preferirem, no entanto, os desenvolvedores de aplicativos geralmente preferem usar um conjunto comum de ferramentas de desenho, para que o aplicativo pareça consistente com todos os outros aplicativos em execução no sistema. Estas são as bibliotecas de software que você importa para o seu aplicativo. Em seguida, você chama suas funções para desenhar menus, botões, entrada de texto e exibir imagens como imagens PNG e JPG.

Essas ferramentas de desenho comuns são chamadas de "kits de ferramentas de widget". Os dois toolkits de widgets mais populares no Linux são o Gtk + e o Qt. Você pode usar o Gtk + e o Qt ao mesmo tempo, e muitas vezes é por isso que diferentes aplicativos no Linux às vezes podem ter inconsistências em sua aparência.

Essas camadas são bastante específicas para o ecossistema do software Linux. O Mac OS, o Windows e o Android fazem tudo de maneira diferente, mas todos eles tendem a integrar cada uma dessas camadas em um único software de shell gráfico monolítico. Isso simplifica as coisas, mas também evita muita personalização.

O motivo pelo qual o Linux complica as coisas é porque as pessoas preferem ter escolhas e gostam de personalizar seus shells. Se você está gerenciando sua própria distribuição Linux, é uma boa ideia colocar algum esforço na escolha do seu conjunto padrão de aplicativos, para que todos eles usem os mesmos kits de ferramentas de widget e forneçam uma aparência consistente.

Na parte superior do shell gráfico, você pode criar aplicativos gráficos, como navegadores de sistemas de arquivos, inicializadores de aplicativos, aplicativos de notificação e de status do sistema e aplicativos de configuração do sistema ("painel de controle"). Esses aplicativos tomam coletivamente o que chamamos de "ambiente de área de trabalho".

    
por 16.09.2018 / 19:11

Tags