KornShellGenericName

ImprimirCitar
Bourne shell compatível para trás Unix shell criado por David Korn

KornShell (ksh) é um shell Unix desenvolvido por David Korn no Bell Labs no início dos anos 80 e anunciado no USENIX em 14 de julho de 1983. O desenvolvimento inicial foi baseado no código-fonte do shell Bourne. Outros contribuidores iniciais foram os desenvolvedores do Bell Labs, Mike Veach e Pat Sullivan, que escreveram os modos de edição de linha Emacs e vi-style; código, respectivamente. O KornShell é compatível com versões anteriores do shell Bourne e inclui muitos recursos do shell C, inspirados nas solicitações dos usuários do Bell Labs.

Recursos

KornShell está em conformidade com POSIX.2, Shell e utilitários, interpretador de comandos (IEEE Std 1003.2-1992). As principais diferenças entre o KornShell e o shell Bourne tradicional incluem:

  • controle de trabalho, aliasing de comando e histórico de comando projetado após as características correspondentes do shell C; controle de trabalho foi adicionado ao Bourne Shell em 1989
  • uma escolha de três estilos de edição de linha de comando baseados em vi, Emacs e Gosling Emacs
  • arrays associativos e operações aritméticas em ponto flutuante (apenas disponíveis na ksh93 versão de KornShell)
  • busca dinâmica de funções
  • funções matemáticas
  • substituição do processo e redirecionamento do processo
  • expressões semelhantes a C
  • orientada para a expressão para e enquanto loops
  • extensibilidade dinâmica de comandos (dinamicamente carregados) incorporados (desde ksh93)
  • variáveis de referência
  • variáveis hierarquicamente aninhadas
  • variáveis podem ter funções associadas a elas
  • projeto orientado a objetos (desde - Não.)
    • variáveis podem ser objetos com membros (sub-)variáveis e métodos membros
    • métodos de objeto são chamados com o nome da variável objeto seguido (depois de um caractere do ponto) pelo nome do método
    • métodos de objetos especiais são chamados: inicialização de objetos ou atribuição, abandono de objetos (Não.)
    • composição e agregação está disponível, bem como uma forma de herança

História

Korn Shell em execução no Windows Services para UNIX

O KornShell era originalmente um software proprietário. Em 2000, o código-fonte foi lançado sob uma licença específica da AT&T, mas desde o lançamento do ksh93q no início de 2005, ele foi licenciado sob a Eclipse Public License. O KornShell está disponível como parte da coleção de software de código aberto da AT&T Software Technology (AST). Como o KornShell estava inicialmente disponível apenas por meio de uma licença proprietária da AT&T, várias alternativas gratuitas e de código aberto foram criadas. Isso inclui pdksh, mksh, bash e zsh.

A funcionalidade do KornShell original, ksh88, foi usada como base para o padrão POSIX.2, Shell e utilitários, interpretador de comandos (IEEE Std 1003.2-1992.)

Alguns fornecedores ainda enviam suas próprias versões da variante ksh88 mais antiga, às vezes com extensões. ksh93 é mantido no GitHub.

Como "Desktop KornShell" (dtksh), ksh93 é distribuído como parte do Common Desktop Environment. Esta versão também fornece mapeamentos em nível de shell para widgets Motif. Foi concebido como um concorrente do Tcl/Tk.

O KornShell original, ksh88, tornou-se o shell padrão no AIX na versão 4, com o ksh93 disponível separadamente.

UnixWare 7 inclui ksh88 e ksh93. O shell Korn padrão é ksh93, que é fornecido como /usr/bin/ksh, e a versão mais antiga está disponível como /usr/bin/ksh88. O UnixWare também inclui dtksh quando o CDE é instalado.

A distribuição ksh93 passou por um destino menos estável depois que os autores deixaram a AT&T por volta de 2012 na versão estável ksh93u+. Os autores principais continuaram trabalhando em uma ramificação beta ksh93v- até por volta de 2014. Esse trabalho acabou sendo assumido principalmente pela Red Hat em 2017 (devido a solicitações de clientes) e resultou no eventual lançamento inicial de ksh2020 no outono de 2019. Essa versão inicial (apesar de corrigir vários problemas anteriores de estabilidade) introduziu alguns problemas menores de quebra e compatibilidade. Em março de 2020, a AT&T decidiu reverter as alterações da comunidade, armazená-las em uma ramificação e reiniciar a partir de ksh93u+, pois as alterações eram muito amplas e muito focadas em ksh para a empresa absorver em um projeto em modo de manutenção. O desenvolvimento da correção de bugs continua na ramificação ksh93u+m, com base na última versão AT&T estável (ksh93u+ 2012-08-01). ksh2020 foi lançado como um "grande lançamento por vários motivos" como a remoção do suporte EBCDIC, abandono do suporte para plug-ins binários escritos para ksh93u+ e remoção de algumas funções matemáticas quebradas, foi lançado pela AT&T, mas nunca foi mantido ou suportado por eles (nem mesmo em sua data de lançamento inicial).

Contribuições primárias para o ramo de software principal

Para efeitos das listas abaixo, o principal ramo de software do KSH é definido como o programa original, datado de julho de 1983, até o lançamento de KSH2020 no final de 2019. O desenvolvimento contínuo de versões subsequentes (ramificações) do KSH foi dividido em diferentes grupos a partir de 2020 e não é detalhado abaixo.

Principais colaboradores individuais

Os seguintes estão listados em ordem cronológica aproximadamente crescente de suas contribuições:

  • David G. Korn (AT&T Bell Laboratories, AT&T Laboratories e Google; e criador)
  • Glenn S. Fowler (AT&T Bell Laboratories, AT&T Laboratories)
  • Kiem-Phong Vo (AT&T Bell Laboratories, AT&T Laboratories)
  • Adam Edgar (AT&T Bell Laboratories)
  • Michael T. Veach (AT&T Bell Laboratories)
  • Patrick D. Sullivan (AT&T Bell Laboratories)
  • Matthijs N. Melchior (AT&T Network Systems International)
  • Karsten-Fleischer (Engenharia de Software de Omnium)
  • Boyer-Moore
  • Siteshwar Vashisht (Chapéu vermelho)
  • Kurtis Raider

Consultor de integração

  • Roland Mainz

Principais colaboradores corporativos

Os seguintes estão listados em ordem cronológica aproximadamente crescente de suas contribuições:

  • AT&T Bell Laboratories
  • AT&T Network Systems International
  • AT&T Laboratories (agora AT&T Labs)
  • Engenharia de Software Omnium
  • Oracle Corporation
  • Google - Serviço técnico para computadores
  • Chapéu vermelho

Recursos corporativos doados

Além das principais corporações contribuintes (listadas acima), algumas empresas contribuíram com recursos gratuitos para o desenvolvimento do KSH. Estes estão listados abaixo (em ordem alfabética):

  • Cobertura
  • GitHub
  • IC de Travis

Variantes

Existem vários forks e clones do KornShell:

  • Dtksh– um garfo de ksh93 incluído como parte do CDE.
  • Tksh– um garfo de ksh93 que fornece acesso ao kit de ferramentas widget Tk.
  • Está bem.– uma porta da variante do OpenBSD de KornShell, destinada a ser maximamente portátil em sistemas operacionais. Ele foi usado como o shell padrão no DeLi Linux 7.2.
  • Meu Deus!– uma porta Linux da variante do OpenBSD de KornShell, com mudanças mínimas.
  • Mksh– uma implementação gratuita da linguagem KornShell, falsificada do OpenBSD Pdksh. Ele foi originalmente desenvolvido para MirOS BSD e é licenciado sob termos permissivos (embora não de domínio público), especificamente, a Licença MirOS. Além de seu uso em BSD, esta variante substituiu Pdksh no Debian, e é o shell padrão no Android.
  • SKH– uma variante AmigaOS que fornece várias características específicas de Amiga, tais como interoperabilidade ARexx. Nesta tradição MorphOS usa Pdksh no SDK.
  • MKS Inc.'s MKS Korn shell – uma implementação proprietária da linguagem KornShell da Microsoft Windows Services para UNIX (SFU) até a versão 2.0; de acordo com David Korn, o MKS Korn shell não foi totalmente compatível com KornShell em 1998. Na versão 3.0 da SFU a Microsoft substituiu o MKS Korn shell com um novo POSIX.2-compliant shell como parte do Interix.
  • KornShell está incluído no UWIN, um pacote de compatibilidade Unix por David Korn.
  • /bin/sh no sistema Doug Gwyn (US Army BRL) O pacote V on BSD incluiu a versão de Ron Natalie do SVR2 /bin/sh que tinha controle de trabalho e edição de linha de comando. Este foi um contemporâneo do ksh original em um momento em que não tinha escapado AT&T. Este foi posteriormente o /bin/sh que enviou com todos os sistemas derivados CMU Mach.

Contenido relacionado

Firewire (desambiguação)

FireWire é marca comercial da Apple para a interface IEEE...

Relógio

Um relógio ou um relógio é um dispositivo usado para medir e indicar o tempo. O relógio é uma das mais antigas invenções humanas, atendendo à...

Blitz BÁSICO

Blitz BASIC é o dialeto da linguagem de programação dos primeiros compiladores Blitz, criado pelo desenvolvedor baseado na Nova Zelândia Mark Sably. Sendo...
Más resultados...
Tamaño del texto:
Copiar