Almquist shell

Almquist shell
DesenvolvedorKenneth Almquist
Lançamento inicial30 de maio de 1989; há 37 anos (1989-05-30)
Escrito emC
Sistema
operacional
Sistema operacional tipo Unix
PlataformaMultiplataforma
Tiposhell Unix
LicençaLicença BSD de 3 cláusulas
Websitewww.in-ulm.de/~mascheck/various/ash

O Almquist shell (também conhecido como A Shell, ash e sh) é um shell Unix leve originalmente escrito por Kenneth Almquist no final da década de 1980. Inicialmente um clone da variante System V.4 do Bourne shell, ele substituiu o Bourne shell original nas versões do BSD do Unix lançadas no início dos anos 1990.

História

O ash foi lançado pela primeira vez através de uma postagem no grupo de notícias Usenet comp.sources.unix, aprovada e moderada por Rich Salz em 30 de maio de 1989. Ele foi descrito como "uma reimplementação do shell System V com a maioria dos recursos desse shell, além de algumas adições".

Rápido, pequeno e virtualmente compatível[carece de fontes]? com a especificação POSIX do shell Unix, o ash não fornecia mecanismos de editor de linha ou histórico de comandos, pois Almquist acreditava que essa funcionalidade deveria ser movida para o driver do terminal. No entanto, variantes modernas oferecem esse suporte.

A seguir, um trecho extraído das informações do pacote ash no Slackware v14:

ash (o shell ash de Kenneth Almquist)

Um shell compatível com Bourne e leve (92K). Ótimo para máquinas com pouca memória, mas não oferece todos os extras de shells como bash, tcsh e zsh. Executa a maioria dos scripts compatíveis com o Bourne shell. Note que, no Linux, a maioria dos scripts parece usar pelo menos alguma sintaxe específica do bash. Os scripts de configuração do Slackware são uma exceção notável, pois o ash é o shell usado nos discos de instalação. O NetBSD usa o ash como seu /bin/sh.

Diversos forks foram criados a partir da versão original do ash. Essas derivações do ash são instaladas como shell padrão (/bin/sh) no FreeBSD, NetBSD, DragonFly BSD, MINIX, e em algumas distribuições Linux. O MINIX 3.2 usava a versão original do ash, cujo recurso test diferia do POSIX. Essa versão do shell foi substituída no MINIX 3.3. O Android usou o ash até o Android 4.0, quando foi substituído pelo mksh.

Dash

Debian Almquist shell (DASH)
DesenvolvedorHerbert Xu
Lançamento inicial15 de julho de 1997; há 29 anos (1997-07-15)
Lançamento estável
0.5.12 / 11 de dezembro de 2022; há 3 anos (2022-12-11)
Repositóriogit.kernel.org/pub/scm/utils/dash/dash.git
Escrito emC
Sistema
operacional
Linux, Android
Tiposhell Unix
LicençaLicença BSD de 3 cláusulas com mksignames sob GNU GPL
Websitegondor.apana.org.au/~herbert/dash/

Em 1997, Herbert Xu portou o ash do NetBSD para o Debian Linux. Em setembro de 2002, com o lançamento da versão 0.4.1, esse port foi renomeado para Dash (Debian Almquist shell). As principais prioridades de Xu são a conformidade com o POSIX e a implementação enxuta.

Como seu predecessor, o Dash não implementa suporte para internacionalização e tradução nem para codificação de caracteres de largura variável (ambos exigidos pelo POSIX).[carece de fontes]? O suporte a edição de linha e histórico baseado no GNU Readline é opcional (--with-libedit).

Adoção no Debian e Ubuntu

Devido à sua leveza, o Ubuntu decidiu adotar o Dash como padrão para /bin/sh em 2006. O motivo foi a execução mais rápida de script shell, especialmente durante a inicialização do sistema operacional.

O Dash se tornou o padrão /bin/sh no Ubuntu a partir da versão 6.10, lançada em outubro de 2006. No Debian, o Dash substituiu o Bash como /bin/sh a partir da versão 6 (Squeeze), lançada em fevereiro de 2011.

Linux embarcado

Ash (principalmente o fork do Dash) também é bastante popular em sistemas Linux embarcados. A versão 0.3.8-5 do Dash foi incorporada ao BusyBox, o executável catch-all frequentemente empregado nessa área, e é usado em distribuições como DSLinux, Alpine Linux, Tiny Core Linux e firmware de roteadores baseados em Linux, como OpenWrt, Tomato e DD-WRT. Muitos fornecedores de sistemas comerciais também o incluem, porque ele não é GPL-Ware, mas tem uma licença que o permite, por exemplo, no Sophos XGs, ele é enganosamente chamado de "Advanced Shell".

Referências

  1. ↑ Almquist, Kenneth (30 de maio de 1989). Rich Salz, ed. «v19i001: A reimplementação do shell System V, Parte 01/08». Usenet newsgroup, comp.sources.unix
  2. 1 2 Mascheck, Sven. «Ash (Almquist Shell) Variants». www.in-ulm.de
  3. ↑ Thomas E. Dickey (2015). «TEST versus Portability». Consultado em 1 de março de 2020
  4. ↑ Elliott Hughes (20 de junho de 2018). «Android's shell and utilities». Consultado em 29 de fevereiro de 2020
  5. ↑ Xu, Herbert. «COPYING». The Linux Kernel Archives. Consultado em 23 de dezembro de 2023
  6. 1 2 «Non-interactive Shell». Debian Wiki. 13 de janeiro de 2020. Consultado em 29 de fevereiro de 2020
  7. 1 2 «Dash as /bin/sh». Ubuntu Wiki. 16 de dezembro de 2017. Consultado em 29 de fevereiro de 2020
  8. ↑ Neal Krawetz (2011). Ubuntu: Powerful Hacks and Customizations. [S.l.]: John Wiley & Sons. 178 páginas. ISBN 9781118080382

Ligações externas