Programas como o Nautilus usam shell?

0

Como eu entendo, o bash é um programa como o shell interativo python, que recebe o comando (ou comandos) pelo fluxo de entrada, executa-os chamando funções da API do Linux e fornece o resultado da execução ao fluxo de saída.

O terminal também é um programa que nos fornece alguns recursos como histórico de comandos e realce, internamente ele usa o shell (bash).

Mas os aplicativos (como o Nautilus) usam / bin / bash ou se comunicam com o linux usando sua API?

    
por Roman Roman 04.02.2018 / 12:14

1 resposta

1

Sim, os programas podem usar o shell, explícita ou implicitamente.

Ver, por exemplo, A resposta de Stéphane a uma questão não relacionada.

Ele diz, por exemplo, que se o programa usar as funções da biblioteca C execlp() ou execvp() para executar um comando, sobre execve() retornando ENOEXEC , ele normalmente chamará sh (sendo um script de shell sem um interpretador explícito especificado, que é o contexto para essa questão). sh é um shell.

Um aplicativo que usa system() para executar um utilitário também invocará um shell.

Eu não posso dizer nada especificamente sobre o Nautilus, mas se ele permitir que você execute scripts de qualquer tipo, provavelmente usará um shell para fazer isso. O restante do aplicativo provavelmente usará bibliotecas para os elementos da GUI e outras bibliotecas para eventos, operações do sistema de arquivos, etc. Essas bibliotecas provavelmente são gravadas em C ou em uma linguagem semelhante e usam a biblioteca C, algumas das quais fazem interface com o kernel do sistema operacional para algumas operações.

Eu duvido muito que o próprio gerenciador de arquivos seja escrito em qualquer tipo de linguagem shell, embora possa usar scripts shell para inicialização ou outras operações.

    
por 04.02.2018 / 12:26