Almquist shell

Almquist shell
DesenvolvedorKenneth Almquist
Lançamento inicial30 de maio de 1989; há 37 anos
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".[1]

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.[2] 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.[3] 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.[4]

Dash

Debian Almquist shell (DASH)
DesenvolvedorHerbert Xu
Lançamento inicial15 de julho de 1997; há 28 anos
Lançamento estável
0.5.12 / 11 de dezembro de 2022; há 3 anos
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[5]
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.[2]

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[6][7] em 2006. O motivo foi a execução mais rápida de script shell,[8] 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.[7] No Debian, o Dash substituiu o Bash como /bin/sh a partir da versão 6 (Squeeze), lançada em fevereiro de 2011.[6]

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. a b 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. a b «Non-interactive Shell». Debian Wiki. 13 de janeiro de 2020. Consultado em 29 de fevereiro de 2020 
  7. a b «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 

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.