A palavra shell é sinônimo de processo?

1

De este artigo :

Sourcing will execute the commands in the current shell, executing will create a new shell and execute the commands there.

Ele descreve que cada shell tem seu próprio PID. Eu não vejo nenhuma diferença entre a palavra shell e o processo, pelo menos não para como a palavra shell é usada em seu contexto.

    
por Bentley4 02.03.2014 / 11:09

2 respostas

4

Não. Um shell é um tipo de programa .

E, no contexto, o escritor está falando sobre os processos que executam esse tipo específico de programa: processos do shell . Essa frase é simplesmente escrita de forma abreviada (e também falta uma conjunção). Poderia ter sido escrito:

Sourcing a script will execute the commands in the current shell process, whereas executing a script will spawn a new shell process and execute the commands there.

Foi escrito em um contexto em que ficou claro que shells - especificamente o shell Bourne Again -, scripts e processos eram os assuntos de discussão. Contexto é importante aqui.

shell faz parte da metáfora do sistema operacional como uma porca.

Leitura adicional

por 02.03.2014 / 12:00
3

Um shell (em execução) é um processo, mas nem todos os processos são shells.

Todos os aplicativos e daemons em execução são processos. A única coisa que roda, que não é um processo, é o kernel (incluindo threads do kernel). O kernel, pelo menos em SOs semelhantes a Unix, está lançando um (ou mais) processos criados manualmente, geralmente chamados de init . Esses processos são os pais de toda uma hierarquia de outros processos. Quando você executar o comando ps ou top , verá cada processo com seu próprio PID específico.

Ao efetuar login em um emulador de terminal, você está iniciando um shell interativo, por exemplo, sh , dash , ksh , bash , zsh e semelhantes. Essas camadas estão interpretando os comandos que você está digitando na janela do terminal, por exemplo, ls , cat e date . Os últimos não são shells, mas binários executáveis.

Você também pode executar scripts de shell, que são arquivos de texto contendo comandos a serem executados por um shell.

Como nem todos os programas são scripts de shell ou sessões de shell interativas, você não pode dizer que shell é sinônimo de processo.

    
por 02.03.2014 / 11:26