Arquivo da tag: unix

40 anos de evolução das shells

Uma verdade que não se pode negar, ou rebater, é que as shells estão aí para ficar, mesmo que cada vez mais só nos bastidores, em modo não-interativo, ou nas mãos de usuários experientes, que apreciam seus recursos.

Mas você sabia que a shell original – o primeiro /bin/sh, escrito por Ken Thompson – surgiu há quarenta anos, em 1971 (dois anos depois do nascimento do próprio Unix) e tinha menos de 900 linhas de código? Isso porque boa parte do que hoje conhecemos como comandos builtin da shell (incluindo elementos essenciais, como o if), na época, eram apenas utilitários externos, até mesmo recursos como o glob (que “interpreta” caracteres especiais como * e ? em parâmetros correspondentes a nomes de arquivo) eram implementações à parte, e a shell era exclusivamente interativa. A capacidade de interpretar scripts veio mais tarde.

Em compensação, recurso,s como pipes (| ou, na época, ^) e redirecionamento de entrada e saída (<, >, >>, etc.) já estavam presentes.

Daí pra frente a evolução foi acelerada: Stephen Bourne criou a Bourne Shell (que ainda pode ser vista em sistemas contemporâneos) em 1977, fazendo a base do que no final da década de 1980 surgiu como o mestiço /bin/bash (Bourne Again Shell) que hoje vemos como shell default em boa parte das distribuições Linux, do OS X e de outros sistemas UNIX e Unix-like atuais.

Um livro que trata do assunto e está sendo muito comentado pelos profissionais é o Bombando o Shell, do Júlio Neves. O foco do livro está na interatividade das shells, incluindo o controle de diálogos em modo gráfico.

Com informações de BR-Linux.org

Fonte: IMasters

Node v0.6.0 é lançado

A equipe de desenvolvimento do Node anunciou o terceiro branch estável do Node v0.6. Segundo os desenvolvedores, eles congelarão JavaScript, C++ e interfaces binárias para todos os releases v0.6.

As maiores diferenças entre as versões v0.4 e v0 são: suporte nativo para Windows usando I/O Completion Ports para sockets; equilíbrio de carregamento integrado entre múltiplos processos; melhor suporte para IPC entre instâncias do Node; melhor linha de comando do debugger; ligação integrada ao zib para compressão; e atualização do v8 3.1 para 3.6.

Para dar suporte ao Windows, os desenvolvedores retrabalharam grande parte da arquitetura principal. Havia o receio de que isso prejudicasse a performance em sistemas UNIX, mas esse não foi o caso.

Na última versão do Node, a v0.4, os desenvolvedores só conseguiram rodar o Node no Windows com Cygwin. Entretanto, eles conseguiram importantes melhorias ao focar nas APIs nativas.

Por enquanto, usuários não têm acesso a um bom caminho para construírem módulos de aplicativos em Visual Studio – isso será feito em releases futuros.

Para aqueles que atualizarem suas bases de código da v0.4 para v0.6, há uma documentação disponível que mostra a maioria dos problemas com os quais eles terão que lidar. Apesar da longa lista de mudanças, a maior parte da API permaneceu intocável.

Além disso, os desenvolvedores informaram que o ciclo de liberação de versões do Node será bem apertado agora. Eles esperam liberar uma nova versão estável em janeiro e desejam sincronizar a liberação de releases com a do Chrome e a do V8, que é de 6 semanas.

Mais detalhes sobre as mudanças da v0.5.12 para a v0.6.0 e benchmarks podem ser encontrados aqui. O download do Node v0.6.0 pode ser feito através deste link e sua documentação está disponível aqui.

Fonte: IMasters