As partes dos utilitários do Linux são o kernel / shell?

4

Como cp, ls, grep, ps ...

Eles são aplicativos independentes pré-instalados no sistema operacional ou na parte inata do sistema operacional?

    
por xczzhh 09.07.2012 / 13:25

3 respostas

10

No Ubuntu você encontrará Coreutils instalado.

  

Este pacote contém o arquivo básico, shell e manipulação de texto   utilitários que devem existir em todos os sistemas operacionais.

     

Especificamente, este pacote inclui: arch base64 basename cat chcon   chgrp chmod chown chroot cksum com cp csplit data de corte dd df dir   dircolors dirname du echo env expande fator expr falso rebanho fmt fold   grupos cabeça ID de hostid instalar juntar link ln logname ls md5sum mkdir   mkfifo mknod mktemp mv bom nl nohup nproc od pasta caminho rosado pr   printenv printf ptx pwd readlink rm rmdir runcon sha * sum seq shred   sono sort split stat stty sum sincronizar tac tail tee teste timeout toque tr   verdadeiro truncar tsort tty uname unexpand uniq desassociar usuários vdir wc que   whoami sim

Utilitários principais do GNU .

Você encontrará a maioria dos comandos básicos da página de descrição do Core Utilities , disse que, Linux é apenas um nome de Kernel , enquanto que o Ubuntu é um sistema operacional integrado e completo de tais utilitários. Como na pergunta Such as cp, ls, grep, ps...

 Are they stand-alone applications pre-installed on the operating
 system or the innate part of the operating system?

Eles, juntos, formam o sistema operacional Ubuntu / Linux . Qualquer um deles existente não ajuda muito.

Shell é basicamente Bridge entre kernel e o usuário, um Command Interpreter onde o usuário pode digitar o comando e o comando é enviado para o kernel e será executado. E é diferente do Kernel, consulte a imagem básica abaixo

E para uma imagem mais descritiva

O Gerenciador de Arquivos forma principalmente o front-end dos principais utilitários básicos.

Então, como essa coisa de innate acontece, é porque,

Linux é Monolítico kernel onde todos os serviços (sistema de arquivos, VFS, drivers de dispositivos, etc), bem como a funcionalidade principal (agendamento, alocação de memória, etc) são um grupo muito unido que compartilha o mesmo espaço. Ele fornece o caminho mais curto para um kernel estável e funcional. Considerando que Memory, Process and Device managing são as funções de qualquer Kernel.

Há também uma descrição muito boa fornecida aqui em Como entender o layout do sistema de arquivos do Ubuntu?

Adições relacionadas a bibliotecas -

A Biblioteca GNU C e A GCC GNU Compiler Collection é a mais importante exigência de biblioteca e núcleo do sistema operacional Ubuntu / Linux . Um dos motivos é o Kernel ser escrito como primário em C e código específico de hardware usando o idioma Assembly.

Até certo ponto, "OS is made up of two parts, i.e., Kernel and Shell" é válido, por exemplo Servidores, e Minos com base em Linux Distros. Mas para um Ubuntu Desktop completo você precisa de mais do que apenas Kernel e Shell.

Gtk (Gnome) é baseado em C e C ++, Qt (Kde) usa principalmente C ++, eu acho, eles não têm nenhuma biblioteca em comum. É por isso que eles oferecem uma experiência diferente ao usuário.

Para utilitários (pacotes), você encontrará o Python pré-instalado no Ubuntu & amp; Ubuntu-distros, para fornecer funcionalidades estendidas para aplicações baseadas em Python (como os gerenciadores de janelas, eu acho) e Scripts. Como mencionei antes "They together actually forms Ubuntu/Linux Operating System , Either of them existing standalone doesn't help much."

Você pode consultar ainda a questão Como posso saber se o meu aplicativo em meu ambiente de trabalho está carregando outros módulos, bibliotecas, etc. do DE? .

    
por atenz 10.07.2012 / 21:41
3

O Linux é apenas um kernel, permitindo que você execute executáveis com cabeçalhos ELF. Ele contém apenas os arquivos mais importantes necessários para inicializar e chama init , que pode carregar apenas upstart . No entanto, é importante que seja necessário chegar até mesmo aos utilitários mais básicos.

init é responsável por iniciar um prompt de login, que pode ser considerado uma "parte inata do sistema operacional". Ele irá carregar um shell. Embora necessário para o uso adequado do Linux, ele não faz parte do kernel, mas ainda é muito inato. Alguns comandos fazem parte desse shell e estão disponíveis como executáveis em /usr/bin , /bin ou /sbin . ps e grep são executáveis separados que não são necessariamente "inatos". Uma lista completa do que considero "partes inatas do sistema operacional":

  • O Kernel (Linux)
  • Drivers do sistema de arquivos (somente sysfs , mount e drivers necessários para montar os sistemas de arquivos raiz, /bin e /sbin ,)
  • Um shell de logon, necessário para fazer "qualquer coisa", que inclui os comandos essenciais não incluídos em /bin/ , /sbin ou /usr/bin .
  • Muitos comandos em /bin e /sbin .
  • Efetivamente, libc , como quase todo programa usa.
  • Drivers necessários para colocar discos ou outros hardwares críticos em funcionamento
  • De acordo com a política de pacotes do Debian, dpkg (e suas dependências) são essenciais, pois permitem a obtenção de utilitários adicionais, embora seja possível introduzir executáveis importantes a partir de mídia externa
por hexafraction 09.07.2012 / 13:38
1

Ferramentas de linha de comando, como ls, grep, cat e muitas outras, compõem o 'GNU coreutils', que é o conjunto de ferramentas padrão presente em qualquer sistema GNU / Linux. Para um resumo muito útil dos utilitários e sobre como usá-los, insira isto no terminal:

info coreutils

Para enviar para o arquivo:

info coreutils > coreutils.txt

(Em resposta à sua outra pergunta, eles não são parte do kernel ou integrados a ele. Eles são usados na sessão do shell do terminal como ferramentas para alcançar o que você deseja fazer.)

    
por user76204 10.07.2012 / 20:43