Todo programa precisa passar pelo shell para concluir o processo que deseja realizar?

Todo programa precisa passar pelo shell para concluir o processo que deseja realizar?

Eu vi em algum lugar que "o bash é usado para se comunicar com o kernel do Linux".

É aplicável apenas ao terminal? Ou todos os programas (incluindo programas que possuem GUIs) precisam passar pelo shell para concluir o processo que desejam realizar?

(Considere que estamos colorindo uma foto. Como o bash sabe o que estamos fazendo? Existe um terceiro entre o gimp e o bash para convertê-los em bash?)

Seria muito útil se você pudesse dar um exemplo para explicar :)

Responder1

Não. Apenas os usuários precisam passar por um shell para se comunicarem com o Kernel. Uso de aplicativosAPIs.

Por exemplo, se eu quiser excluir um arquivo, tenho que usar um shell ou outro e depois um aplicativo para excluir o arquivo:

  1. Com um shell de interface de linha de comando (CLI), como bash, posso usar o rmcomando para excluir o arquivo.
  2. Com um shell GUI (como Unity ou GNOME Shell), posso usar outra coisa, como o Gerenciador de Arquivos, para excluir o arquivo. O shell GUI, por sua vez, não precisa usar um shell CLI.

Tanto o Gerenciador de Arquivos quanto rmo por sua vez podem usar a função unlink(3)(ou de nível superior remove(3)) (ouchamada de sistema) para fazer o trabalho real.

informação relacionada