Archive

Archive for janeiro \10\UTC 2010

Considerações sobre a relação entre o Unix e o Linux

10 de janeiro de 2010 4 comentários

No artigo passado, deixei aberta uma questão importante, e foi proposital. Em alguns momentos comparei o Unix e o Linux indistintamente, visando um detalhamento futuro da relação entre os dois sistemas operacionais, que será explicado agora.

Pode ser que, ao ler algumas citações do artigo anterior, você tenha imaginado: Ah mas o Linux também serve pra isso, também roda nessas plataformas e etc. A verdade é que o Unix está em todo lugar. In everywhere. E “em todo lugar”, também inclui-se dentro do Windows (várias partes – principalmente dos descendentes atuais do antigo BSD) e dentro do Linux (várias partes do código, inserido nos últimos anos).

Porém, considerei como Unix apenas as vertentes modernas dos filhos tanto do BSD quanto do System V.

Então Lucas, explica essa relação

Sim. O Linux foi criado com base no Minix. O Minix era um sistema operacional multi-tarefa e Unix-Like (“igual ao Unix”), desenvolvido por Andrew Tannenbaun no final da déca de 80. A finalidade do Minix era educacional, unicamente para aprendizagem. Ele possuía as mesmas funções que o Unix, mas não foi feito a partir do código de fonte dos releases de Unix da época.

Quando o mr. Linus Torvalds se sentiu entediado o suficiente para sentar “um pouquinho” e programar seu próprio kernel, ele não o fez com base no Minix, mas sim como um projeto próprio. Na época o Linux ainda era imaturo suficiente a ponto de precisar do Minix para ser compilado. Assim como o Minix, o Linux também não foi criado com base em código de Unix – seja BSD ou System V.

Linus Torvalds, como todo nerd supremo, era uma pessoa extremamente exigente com os sistemas operacionais que utilizava. Se pra você, querido leitor, não bastarem os fatos dele ter programado o kernel Linux original sozinho (coisa que os GNU/programadores não conseguiram – até hoje) e até hoje ser o principal mantenedor do kernel Linux, existe um terceiro motivo que embasa esse meu comentário: O antigo quebra-pau entre Linus Torvalds e Andrew Tanenbaun sobre a questão kernel monolítico x micro-kernel.

O Solaris (na época: SunOS, BSD) era um sistema operacional que lhe atendia perfeitamente. Ele já era um ótimo programador. E usava Minix em seu 386. Porém, movido pelo gostinho de quero-mais, ele criou seu próprio kernel, e nem ele imaginava o quão grandioso esse sistema se tornaria, sendo um dia um “substituto” para o Unix em muitas aplicações.

Assim sendo, o Linux também é um SO Unix-like, que se comporta igual o Unix, com os mesmos algoritmos de gerenciamento e muitos recursos idênticos. Mas o Linux não é Unix. Solaris, AIX, BSDs, HP-Ux, Irix (R.I.P.), Tru64 (R.I.P.) sim – estes são Unices. O código do Linux também não foi feito com base em Unix BSD ou System V, assim como o Minix.

Sobre a GNU, o Unix e o Linux

O embrião da GNU (GNU is Not Unix) surgiu em 1983. Richard Stallman (quando ele ainda fazia alguma coisa era ciencista do MIT) se sentiu injustiçado pela quantidade de código criado por ele (e outros programadores) no Unix e sendo licenciado de maneira cretina pela AT&T para outras empresas gigantes. Em 1985 ele criou a FSF (Free Software Foundation), com o intuito de criar um sistema operacional livre, cujos conceitos de liberdade se resumia em que: Qualquer um poderia utilizar sem qualquer restrição desde que o código de fonte permanecesse aberto.

A partir de 1985, muitos programadores aderiram essa “causa”, e parecia que de fato esse maravilhoso sistema operacional sairia do forno. Os caras criaram quase tudo: Os aplicativos (vulgo comandos), o compilador, as bibliotecas, e muitos drivers. Só faltava o principal: O kernel! É, irônico que tudo isso fosse criado para rodar nos sistemas operacionais opressores e imperialistas das grandes corporações, mas foi assim durante algum tempo.

A proposta de sistema operacional da GNU, o GNU/HURD, ainda não está concluida – provavelmente só ficará pronta em Pasárgada, e será usado por Manoel Bandeira. Então, os GNUs resolveram partir pro óbvio: Ah, Linus Torvalds tem um kernel. A gente tem o resto. Que tal unir o útil ao agradável? Linus Torvalds concordou, e o Linux foi licenciado na GPL e passou a fazer parte do projeto GNU. O Linux Ganhou desenvolvedores, componentes e muito sucesso. E a GNU ganhou o kernel que faltava!

Muitos membros da GNU, incluindo Richard Stallman, dizem que o Linux foi programado para o GNU. Isso não é verdade. O “destino” permitiu que ambos se integrassem. Provavelmente o Linux não seria o que é hoje sem o projeto GNU, e o projeto GNU também não seria o que é hoje sem o Linux. E muitos membros do projeto GNU chamam o Linux de GNU/Linux, mas é algo mais pessoal do que técnico. Linus Torvalds, como eu, acha idiotice.

O Linux/Windows vão matar o Unix?

É verdade que, a partir do Windows 2000, os sistemas operacionais da Microsoft têm ganhado muito em estabilidade. Isso resultou em que, muitas aplicações antes usadas apenas em estações de alto desempenho movidas a Unix foram portadas para Windows, e aplicações que antes rodavam em hardware e software de primeira qualidade, foram gradativamente portadas para x86 e sistema operacional Windows (ou Linux). E quando falo de hardware de primeira qualidade, me refiro à processadores RISC, Unix 64 bits, 8GB Ram, 2 ou 4 processadores e HDs SCSI.

Humildemente acho que isso é uma regressão, mas em parte, justificado – visto que o x86 realmente evoluiu dos últimos anos pra cá. Por exemplo, o Windows “demorou” pra suportar mais que 4GB de memória Ram, e uma grande quantidade de processadores. O Unix já fazia isso há muito tempo atrás. Entretanto, essa debandada diminuiu bastante o número de aplicações específicas do Unix em comparação ao x86 (Linux/Windows) nas workstations. Versões de vários softwares (como o Maya) foram descontinuados em workstations Unix, e foram migrados para sistemas operacionais como o Red Hat Linux, ou mesmo o Windows Vista/Windows XP. Alguns (como o Catia) ainda permanecem para Unix, também com versão pra Windows, mas é difícil responder até quando isso permanecerá.

Entretanto, vários softwares comerciais que são multi-plataforma, como o Oracle, GIS Design, SAP, Natural/ADABAS, servidores de aplicação (Java), softwares de rede, e etc, continuam sendo desenvolvidos com versões para Unix em mainstream. Essas versões continuam sendo procuradas por empresas que buscam pela performance e estabilidade oferecidas pela plataforma quarentona. Cada um no seu quadrado, o Linux já matou o Unix onde ele podia. Bem como o Windows. Mas, o Unix continuará com suas aplicações específicas, pois embora mais restrito, continua sendo tecnologicamente mais “preparado” para aplicações críticas e de alto desempenho que o Linux e que o Windows. Pelo menos até o momento. 🙂

Stay safe,

Lucas Timm.

Categorias:Diversos, Linux, Unix Tags:, ,

A História do Unix (resumida)

9 de janeiro de 2010 4 comentários

A pedido do amigo Vinicius, e devido a ausência de conteúdo tecnológico relevante (que já foi forte por aqui), escrevi um pequeno resumo a respeito da história do sistema operacional Unix.

O Unix foi criado a partir do…

MULTICS

Tudo começou na década de 60, com o desenvolvimento de um sistema operacional de grande porte conhecido como MULTICS (Multiplexed Information and Computing Service). O MULTICS foi desenvolvido pelo MIT (Massachusetts Institute of Technology), em parceria com a Bell Labs (braço de pesquisas da AT&T) e com a General Eletric. Em 1969 a Bell Labs abandonou o projeto. E, em 1970, a Honeywell comprou a divisão computacional da General Eletric, absorvendo automaticamente o MULTICS e outros produtos da GE. O MULTICS (originalmente) funcionava nos mainframes GE-645, e com a compra, a série 600 dos mainframes GE também foi atualizada e renomeada para Honeywell 6180 Series. O MULTICS continuou funcionando nesse equipamento.

O MULTICS era um sistema 24/7 que se destinava a servir milhares de terminais burros simultaneamente, e a idéia é que as pessoas comprariam esses terminais para suas residências, e o uso seria tarifado. Assim, teríamos as contas de água, luz, gás, telefone, e a conta de computador (!). Isso não aconteceu, e o MULTICS acabou sendo utilizado mesmo para fins educacionais e processamento pesado de informações. Seus recursos foram reutilizados em vários outros sistemas, até no System/360, da IBM.

O último servidor MULTICS foi desativado no dia 31 de outubro de 2000, e seu código de fonte foi aberto em 2007.

UNICS

No projeto MULTICS, haviam participantes que foram de grande importância para a tecnologia no geral. Ken Thompson saiu do projeto com a retirada da Bell Labs, mas continuou estudando o MULTICS. Mas, como o MULTICS era um sistema de grande porte, também não havia como ele utilizar em seu computador pessoal, um incrível DEC PDP-7. Assim, em 1970, Ken Thompson escreveu um sistema operacional para seu computador. Baseado no MULTICS, mas de bem menor porte. Brian Kernighan deu à criança o nome de UNICS (Uniplexed (!) Information and Computing Service).

O UNICS deveria ter as mesmas funcionalidades e características do antigo MULTICS, enquanto sua utilização seria possível em computadores “pessoais”. Naquela época, a maioria dos programas e sistemas operacionais ainda eram feitos em Assembly, o que dificultava muito a portabilidade dos mesmos. As linguagens de programação em alto nível também não tinham força suficiente para permitir que um software tão complexo (como um SO) fosse escrito; a linguagem Pascal ainda engatinhava, e a linguagem mais utilizado pelos cientistas ainda era o Fortran.

Então, em 1973, o pesquisador Dennis Ritchie (também da Bell Labs) criou uma nova linguagem de programação de alto nível chamada C (uma evolução da já existente B), e reescreveu o UNICS nessa nova linguagem, para demonstrar a eficiência de seu feito. Ele também alterou o nome do sistema operacional UNICS pra Unix, e desde então, a linguagem C e o Unix caminham lado a lado.

Unix

Com uma linguagem de alto nível flexível como C, bastaria que o compilador C fosse portado para novas arquiteturas, o código dos programas ficaria praticamente inalterado, havendo mudanças apenas nas particularidades de cada arquitetura e facilitaria o desenvolvimento de novas aplicações. Isso garantiu que o Unix ganhasse aceitação fora da BELL Labs e fosse utilizado por um número crescente de pessoas. O desenvolvimento original do Unix era OpenSource, e em 1974, a AT&T autorizou seu licenciamento para várias universidades.

Mas, partindo de 1977, o Unix passou a ser desenvolvido de outra maneira. A AT&T demonstrou interesse e investiu pesado no sistema, fazendo grandes alterações para uso próprio e finalidade comercial, lançando grandes releases do Unix como o “System III” (1978) e o “System V” (1983). Estes já possuíam um modelo fechado de desenvolvimento, e muitos fabricantes de computadores e equipamentos eletrônicos (IBM, DEC, NEC, SGI, Microsoft, HP…) compraram seu licenciamento, desenvolvendo seus próprios sistemas operacionais a partir de modificações e inclusões de recursos no Unix original.

Porém, a universidade de Berkeley (Califórnia) já havia feito alterações para uso próprio e acadêmico, lançando o Unix “BSD” (Berkeley Software Distribution), OpenSource e com intuitos apenas educacionais.  A AT&T processou a universidade de Berkeley, e o veredito a favor da universidade só veio na década de 90. Nesse meio tempo, partes do BSD foram reescritas do zero para não conter códigos patenteados da AT&T, mas permitiu que as versões baseadas no System V se consolidassem no mercado corporativo e o BSD permanecesse no meio acadêmico.

Atualmente, nenhum sistema baseado em Unix é feito completamente na linhagem BSD ou System V, como o próprio Linux. As versões de Unix atuais têm um pouco de cada um, mas com grande predominância em alguma dessas duas famílias.

Duas das grandes versões do Unix BSD foram o 4.3BSD (primeiro Unix com pilha TCP/IP, NFS) e o 386/BSD, destinado a computadores dessa arquitetura. Atualmente, existem grandes sistemas operacionais baseados na linhagem BSD, como o FreeBSD, NetBSD, OpenBSD e DragonFlyBSD.

Os sistemas baseados em System V que ainda estão em desenvolvimento são, conforme dito, comerciais. Algumas versões são o IBM AIX, o HP-Ux e o Solaris (que foi criado, originalmente, baseado em BSD). Em outros tempos existiram também o Xenix, Unixware, Caldera OpenServer, Tru64, Irix, e outros ótimos sistemas operacionais que já não são mais desenvolvidos.

Arquiteturas suportadas

As várias versões de Unix foram desenvolvidas para as mais variadas arquiteturas. Na década de 60 e 70, ainda em seu estado original, o Unix era disponibilizado e desenvolvido principalmente para os computadores da DEC, como o PDP-7 e PDP-11. Assim, a migração para a plataforma VAX, também da DEC, foi algo “natural”.

Com a aquisição das versões posteriores do Unix (Unix7, System III, System V) pelas empresas já mencionadas, as versões comerciais do Unix foram portadas para várias arquiteturas de hardware, como a Alpha (DEC), Sparc (Sun), POWER/PowerPC (IBM), MIPS (SGI), Motorola 68K, i386 (Intel), HP9000, Itanium, ARM, SH4, S/390, etc.

Os sistemas baseados em BSD, cuja maioria é OpenSource, também tem porte para quase todas as arquiteturas de processadores existentes, tanto atuais quanto já descontinuadas.

O Unix em ação

Atualmente, o Unix ainda é utilizado numa grande quantidade de equipamentos, como por exemplo:

– Roteadores, switches, e vários outros ativos de rede
– Video Games
– Computadores domésticos
– Supercomputadores
– Workstations de alto desempenho
– Equipamentos hospitalares (Raio-X, ressonância magnética)
– E etc…

Conclusão

É verdade que, na tecnologia do século 21, a presença do Unix é ofuscada por muitos fatores (Computação em núvem, computação pessoal, Windows x Linux, etc). Apesar disso, ele ainda vive. E muito bem, obrigado. Afinal, sempre existirão aplicações críticas, de alto desempenho, dispositivos embarcados e outros áreas que exijam sistemas operacionais confiáveis, estáveis e fáceis de manter. Enquanto existirem, o Unix continuará vivo. E eu, me divertindo muito com ele.

Stay safe,
Lucas Timm

Categorias:Unix Tags:

One week

8 de janeiro de 2010 Deixe um comentário

Yes. Just a week ago I was with she. We stay together by an entire afternoon. Was cool! We’re talking about movies, diseases, desires, plans, travelling and math. Yes, math! She likes math. She was the second people who I said about hexadecimal, octal and binary numbers, base conversion, and how much it affects our computers.

She don’t like computers. She prefer to calculate all your mathematic stuff using paper and pencil. I think it isn’t a problem. But honestly, one problem she has: She don’t face with your daily problems. She have fear about your life, and is your choice to live to another people, but not for yourself.

I also remember a song from Pink Floyd, called Wish You Were Here. Everyone knows this song, but I will put just the part that matters:

Did they get you to trade
Your heroes for ghosts?
Hot ashes for trees?
Hot air for a cool breeze?
Cold comfort for change?
Did you exchange
A walk on part in the war
For a lead role in a cage?

Yes, she did. Maybe it make sense only for me, and for two or tree another friends which watched everything that happened to me. Us. What can I do? I can choose for nobody, except by myself. Everything I know is: Thank you for those moments, but I don’t want you anymore, B. I’ve already told you so. And please: Don’t call me. Was not my fault. And I’m fine now.   🙂

(This was my CFA moment)

Categorias:Devaneios

Estagiários detectados na redação

6 de janeiro de 2010 1 comentário

O G1, notoriamente conhecido por suas pequenas gafes envolvendo a língua portuguesa, deixou de escapar mais essa:

Errar é humano…  😀

Categorias:Diversos