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

1

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 com GUIs) precisam passar pelo shell para concluir o processo que desejam fazer?

(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:)

    
por Srinesh 01.12.2014 / 15:58

1 resposta

4

Não. Somente os usuários precisam passar por um shell para se comunicar com o Kernel. Os aplicativos usam APIs .

Por exemplo, se eu quiser excluir um arquivo, preciso usar um shell ou outro e, em seguida, um aplicativo para excluir o arquivo:

  1. Com um shell CLI (Command-Line Interface), como bash , posso usar o comando rm para excluir o arquivo.
  2. Com um shell da GUI (como o Unity ou o GNOME Shell), posso usar outra coisa, como o Gerenciador de arquivos, para excluir o arquivo. O shell da GUI, por sua vez, não precisa usar um shell CLI.

O Gerenciador de Arquivos e rm , por sua vez, podem usar a função unlink(3) (ou o nível mais alto remove(3) ) (ou system call ) para fazer o trabalho real.

    
por muru 01.12.2014 / 16:13