Avançar para o conteúdo principal

Sistemas Operativos - para quê?

No conjunto das coisas-que-existem-na-informática-que-na-minha-opinião-que-vale-o-que-vale-não-deviam-existir, em meio a utilizadores, gestores de projecto, bases-de-dados relacionais, frameworks e quejandos, existe uma que nunca tinha referido antes - Sistemas Operativos.

Há muito muito tempo, "more time then I care to remember" como dizia a canção, comecei eu a trabalhar num computador todo jeitoso que na altura era o "state of the art" da indústria, inventado por quem inventou os computadores como os conhecemos hoje. Toda a gente sabe de quem falo - a Xerox, claro está.

Essa maravilha tecnológica chamada Xerox 820-II corria em CP/M, produzido por uma companhia chamada Digital Research que mais tarde ficou tristemente célebre por ter "perdido" o contrato de fornecimento à IBM do sistema operativo para os IBM-PC para o então pouco famoso Bill Gates que soube aproveitar da melhor maneira o facto da sua mãe pertencer ao conselho administrativo de uma instituição de caridade onde também tinha assento o então presidente da... IBM!!! Mas enfim,isso é (outra) história...

Mas, dizia eu, o CP/M era muito bonzinho para trabalhar, uma "footprint" de memória baixíssima (que remédio, pois se não havia memória...), simples o suficiente para, por exemplo, escrever "device drivers" e pequenos utilitários em Assembler praticamente só usando as "system calls" do CP/M (a propósito, fazendo o mesmo em MS-DOS bem que reparei na altura que 80 ou 90% dos System Calls eram iguais).

E o que era melhor, ligava-se o computador e demorava talvez um segundo a carregar todo o OS, desligava-se o computador sem ter cá "shutdowns", fazia-se CTRL+ESC para fazer reboot quase instantâneo. E podia-se correr tudo o que se quisesse em Debug... Incluindo o próprio CP/M. Claro que está que conseguir perceber o programa só olhando para código assemblado e o os registos da CPU era obra...

Mas ainda mais importante, a sua simplicidade permitia compreender o funcionamento do computador, permitia entender directamente essa relação equivoca de software com hardware, entre aquilo que nós como programadores escrevemos e aquilo que a máquina faz ao nível do processador.

Ora eu não defendo que para programar em linguagens de alto nível o programador tenha que necessariamente saber o que se passa a baixo nível, até ao nível do hardware. Aliás, acho que os computadores só marginalmente estão relacionados com a Informática. No entanto, dado que eles são parte integrante do corrente estádio evolutivo da indústria, perceber o que fazem a baixo nível é muito útil seja a que nível se esteja a trabalhar. E eu sou uma pessoa tipicamente de baixo nível...

Bom, mas sendo pequeno é no entanto um OS, e eu comecei por dizer eles que nem deviam existir... É um exagero, claro, só para marcar o meu ponto. Um OS é uma conveniência, às vezes inconveniente. O problema é que quanto maior se torna OS maiores se tornam os inconvenientes, porque cada vez temos um OS "one-size-fit-all", que pode ser bom para a maioria da situações mas que vão sendo cada vez piores quanto mais específicos são os problemas que tentamos resolver. E porque cava-se um fosso cada vez maior entre OS (que é software) e o restante "software aplicacional" que tem que depender daquele, mas que deve ser moldado não às capacidades permitidas pelo OS mas às necessidades do nosso problema.

Idealmente, devíamos ter uma "separação" de níveis somente entre hardware e software , e o que se vê é existirem cada vez mais níveis de separação (que por si só constituem pontos de falha) tal como em HW, OS e SW.

Imaginem em desenvolvimento de software para sistemas críticos como equipamentos hospitalares, aeronáuticos/espaciais, militares e outros, a enorme vantagem que não é poder fazer "debug" de toda a aplicação desde o UI ou outra qualquer fonte de input de dados até a ultima instrução que age directamente sobre o hardware, seja abrir a válvula do oxigénio ao paciente que sufoca, abrir só mais uns milímetros o flap do avião que está em rota de colisão com o nosso, fazer com que o giroscópio na cabeça do míssil alinhe com a gruta onde esta o Bin Laden e não com a casa 500 metros ao lado onde uma família de 150 pessoas está a fazer a festa do primeiro aniversário do mais recente rebento...

Ter todo o software escrito na mesma plataforma/linguagem, de modo a não haver diferenças entre OS e SW aplicacional, parece ser uma ideia boa em teoria, mas funcionará na pratica?

Squeak

Squeak é uma implementação de Smalltalk que corre sobre uma VM que é ela própria escrita em Smalltalk. Foi inventada pelos meus ex-colegas da Xerox PARC, os tais que inventaram o computador como o conhecemos (eu trabalhava na Xerox quando a sede era ali no Parque Eduardo VII, de modos que PARC / Parque, fomos praticamente colegas -- que piada tão gira, não é?) .

SqueakNOS

SqueakNOS é uma tentativa de reduzir ainda mais a dependência de OS do Sqweak, na pratica para 99.9% Smalltalk, 1400 linhas de C e 60 de Assembler.

Squawk

Squawk é uma iniciativa que pretende fazer o mesmo com a JVM que o Squeak fez com o Smalltalk, ou seja, reduzir o mais possível a dependência entre a JVM e o OS.


Bom, para tornar curta uma história longa e antes que mandem dar uma volta larga num cais pequeno, é minha opinião, que mais uma vez repito vale o que vale, que seria de todo conveniente que existissem não um ou dois ou três grandes sistemas operativos mas sim uma grande numero deles, um vasto numero, escritos para casos específicos e de preferência na mesma linguagem das aplicações que vai suportar. Que é como quem diz, não haver OS algum...

Como dizia o outro, isso de ter o OS separado do SW está muito bem na pratica, mas funcionará em teoria?



Bom, e que tal acabarmos com uma músiquinha? Não? Então vamos lá...

Para não roubar largura de banda a outros blogs, podem ouvir (e fazer o download, ler a letra e ver ao vivo) esta música intitulada Every OS Sucks, e que como podem ver pelo refrão simboliza perfeitamente senão o conteúdo, ao menos o espírito deste "post".

Every OS wastes your time,
from the desktop to the lap,
Everything since Apple Dos,
Just a bunch of crap.

From Microsoft, to Macintosh,
to Lin– line– lin– lie… nux,
Every computer crashes,
’cause every OS sucks.

Referências:
http://www.artima.com/weblogs/viewpost.jsp?thread=239339
http://blogs.oreilly.com/digitalmedia/2005/10/we-dont-need-no-stinkin-os.html

Comentários

Mensagens populares deste blogue

Conferência Europeia da Comunidade Alfresco

Já foi há quase quinze dias, mas julgo que ainda será relevante abordar a Conferência Europeia da Comunidade Alfresco, que decorreu em Barcelona no dia 22 de Abril. Com uma audiência de mais de 200 pessoas (a sala reservada estava cheia) vindas de vários pontos da Europa, este evento serviu para que muita gente desta comunidade se encontrasse pela primeira vez face a face. A Alfresco Inc. é uma empresa recente, que apostou em criar uma solução de gestão documental de topo de gama usando o modelo open-source . Considerando que a empresa, no seu terceiro ano de actividade, já atingiu o break-even , parece ter sido uma boa aposta. No arranque da conferência esteve John Powell, CEO da empresa, que falou um bocado sobre a excelente evolução da empresa e abordou a "guerra" entre o modelo de negócios proprietário e o modelo de código aberto. Exemplificou este conflito com o Microsoft SharePoint, que ele designou como "a morte da escolha", justificando o epíteto pelo facto

Backup automático de disco USB (pen drive)

Hoje em dia toda a gente tem uma pen drive para levar os seus ficheiros de um lado para o outro. E muitas vezes está lá trabalho importante. Mas impõe-se uma pergunta: o que acontece se se perde a pen drive ? Ou se esta se avaria? Quem é que faz backups regulares da pen drive ? Muito pouca gente! Pessoalmente tenho por hábito fazer um backup cerca de uma vez por semana. Quando o trabalho é muito, faço backup mais vezes. Mas já por duas vezes as avarias me fizeram perder as versões mais recentes. E isto chateia. Por isso aqui há uns dias decidi "coçar esta comichão" e resolver o problema de forma mais sistemática: arranjei maneira de fazer um backup automático cada vez que ligo a pen drive a um computador. (sim, eu sei que há software específico para isto, mas que querem, apeteceu-me fazer mais um) A receita é relativamente simples: um script (DOS batch file ) que faz o backup , um ficheiro de definição de autorun e já está. 1. O script de backup - Basta instalar, na roo

Horário de trabalho

A trabalhar há dois meses na Irlanda, ando para escrever alguns apontamentos daqui de Dublin, mas são tantos e tão diversos que há matéria aqui para escrever um blog inteiro (e talvez ainda o faca se a inspiração vier em meu auxílio). Há no entanto uma diferença que encontrei por aqui que é muito mais marcante do que eu poderia supor poder ser, e lembrei-me deste ponto que talvez se acomode bem neste blog e no tipo de posts que por aqui há. Falo do horário de trabalho . O horário que por aqui se pratica, e que suponho generalizado, é de entrar as 9h e sair as 17h, com meia-hora de almoço. Ou seja, 7 horas e meia. Ou seja, meia-hora de diferença para o horário "normal" de Portugal. E que diferença que essa diferença faz... Os irlandeses não são muito "fanáticos" com o trabalho e os horários, não se trata de regimes "autoritários" como parece ser em Inglaterra ou na Alemanha - a propósito, sabem que os alemães dizem que na Alemanha a taxa de criminalidade é