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:
- Com um shell CLI (Command-Line Interface), como
bash
, posso usar o comandorm
para excluir o arquivo. - 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.