O que você quer dizer com comandos de baixo nível e comandos de alto nível? [fechadas]

2

Eu li que a diferença entre useradd e adduser é que useradd é um comando de baixo nível e adduser é um comando de alto nível, da mesma forma a diferença entre netstat e ss é também que ss é o comando de baixo nível enquanto netstat é o comando de alto nível, e da mesma forma há muitos outros comandos ( apt : alto nível, apt-get : baixo nível) que fazem o mesmo trabalho mas a diferença que eles dizem é que um é um comando de baixo nível e outro é um comando de alto nível. O que o baixo nível e o alto nível realmente significam? Abstração?

    
por GypsyCosmonaut 09.05.2017 / 17:36

1 resposta

2

É uma espécie de conceito difuso relacionado à quantidade de abstração.

Um comando de baixo nível é o mais próximo dos dados brutos, da interface do kernel, etc. O benefício é que, ao usar um, você tem muito controle. Isso pode ser útil quando algo quebra, ou você precisa fazer algo estranho. A saída de comandos de baixo nível é também mais fácil de analisar com scripts (muitas vezes, é para isso que eles são destinados). A desvantagem é que você tem que saber o que está fazendo. As ferramentas quase não contêm conhecimento - tudo precisa estar na sua cabeça (ou notas à sua frente ...).

Um comando de alto nível abstrai muitos detalhes, colocando o conhecimento na ferramenta. Isso normalmente os torna muito mais fáceis de usar. A desvantagem é que às vezes eles simplesmente não podem fazer o que você quer, porque você quer algo estranho. Ou quando algo dá errado, pode ser difícil descobrir porque não está funcionando.

Isso não é uma dicotomia, é realmente um continuum. Existe, indiscutivelmente, uma ferramenta de nível mais baixo, onde você simplesmente despeja os dados brutos do kernel, mas quase sempre pode adicionar mais abstração.

Como exemplo, ps (no Linux) obtém informações de arquivos em /proc . A saída de ps l $$ é simples e prontamente compreendida por qualquer administrador competente. Mas tente cat /proc/$$/stat :

$ cat /proc/$$/stat
11026 (bash) S 11024 11026 11026 34843 12425 4194304 3972 3748 0 2 12 2 3 1 20 0 1 0 69581565 25628672 2101 18446744073709551615 4194304 5242068 140731668323552 0 0 0 65536 3670020 1266777851 0 0 0 17 2 0 0 3 0 0 7341384 7388228 9216000 140731668326960 140731668326965 140731668326965 140731668328430 0

Também há muitos outros arquivos nesse diretório, alguns com formatos muito mais agradáveis (mas ainda de baixo nível). Mas está claro que o ps contém muito conhecimento dentro dele - ele sabe o significado (alguns) desses campos, como exibi-los bem, etc. ps é um comando de nível mais alto que cat do aleatório arquivos em /proc/pid/ . top obtém seus dados da mesma fonte, mas ainda é um nível mais alto de abstração. Mas às vezes você precisa ir para /proc/pid/ - há muitas informações que ps (etc.) não expõem.

É um pouco confuso, no entanto. Pessoas diferentes discordarão sobre onde, no continuum, alguns comandos são.

    
por 09.05.2017 / 20:31

Tags