O fim dos Sistemas Operacionais

O próximo passo na evolução dos sistemas de informação já está marcado a alguns anos e eu venho fazendo uma serie de posts aqui sobre o assunto, a computação distribuida.

Tudo neste cenário deverá ser repensado, inclusive o papel do sistema operacional, hoje ele é a base, a linha que divide os mundos, as plataformas e as tecnologias.

No conceito da computação distribuída o homem estará dando origem a sua primeira Singularidade, uma entidade única, onipresente até certo ponto semelhante ao poder de uma divindade que rege tudo e todos (Deus).

Neste ambiente, tudo o que conhecemos, informação, software, hardware, e conectividade se torna parte deste super sistema, com o único objetivo de controlar a nossa vida, não no sentido negativo da ficção cientifica, com a idéia de que nos tornariamos escravos, e sim com o único proposito de nos servir, afinal, para que um sistema super inteligente e onipresente vai querer escravizar o seu motivo de existir?

Neste sistema, levando-se em conta que esta super entidade irá ter suas próprias necessidades básicas, que a principio seriam coisas como poder computacional conectado a sua rede, espaço para salvar informação, energia para manter estes sistemas conectados e principalmente estabilidade, seus subsistemas não poderão falhar, pra que sua hegemonia possa se manter.

Assim eu chego ao ponto deste Post, cada sistema operacional executando seria um problema em potencial, um erro esperando para aparecer.

Inevitavelmente os Sistemas Operacionais terão que ser removidos das máquinas, pois o principal objetivo deles que é gestionar e operar um computador, já não será mais necessário, o seu unico objetivo deverá ser prover acesso a essa Singularidade, tanto para que ela possa acessar os componentes conectados a este computador, quanto para que o usuário possa ter acesso a elas.

No Futuro o que hoje temos como um fato para cada computador deverá ser um pseudo sistema já gravado de fabrica nas placas mãe, simplesmente com o objetivo de padronizar a interação desta entidade com os diversos componentes físicos, através de camadas de rede, frameworks padrão de interação com hardware, drivers e o que mais for necessário para que ela possa aproveitar tudo de cada entidade conectada. E não passará disso, provavelmente até será em memórias somente leitura para garantir a integridade e a segurança deste sistema.

E eu não consigo parar de imaginar o quão impressionante e tecnologicamente interessante será no dia que isto for fato, será que poderemos considerar isto uma Inteligencia Artificial? Será que terá consciencia de suas ações? Alguma especie de auto-consciencia artificial?

Dúvidas que só vou saber a resposta com o tempo.

Microsoft’s plans for post-Windows OS revealed

ENGINEERS’ DREAMS

Backdoor no Skype

A alguns meses eu andei pesquisando meios de conversação na internet confiáveis e com total privacidade.

Descobri que o Skype utiliza em todas as suas transferências criptografia pesada pois ele cria uma rede P2P entre diversos usuários da rede, caso um usuário não consiga falar com o outro, assim dados sensiveis de uma pessoa podem estar passando pela conexão de outras pessoas e gente mal intencionada poderia interceptar as comunicações

Mas como nem tudo é alegria, da versão 2.5 para a 2.6 eles sem avisar ninguém removeram a opção que desabilita o suporte a UPNP no programa, o protocolo UPnP é uma saída elegante para a transferencia de dados P2P, pois ele permite a pessoas através de internet compartilhada, abrir portas de comunicação direta. Isto causou um travamento no meu modem de casa e acabei descobrindo que esta era a causa, então tive de desligar no modem este protocolo.

Mas o que me deixou mais inquieto é por que remover esta opção de desabilitar? Por que alguém remove uma opção que já esta pronta e funcionando da configuração?

Algum tempo depois encontro esta notícia: More Skype Back Door Speculation.

Aparentemente o Skype está se negando a fazer uma declaração pública que o seu software não tem nenhum tipo de sistema de espionagem para que as agencias governamentais possam utilizar.

Isto praticamente resolveu a minha indagação e me fez concluir que sim, existe uma backdoor no Skype para que as policias do mundo possam utilizar para interceptar as ligações de pessoas normais, afinal um dos requisitos básicos para que se possa interceptar uma chamada é exatamente poder abrir uma conexão direta com um dos pontos (origem e destino) da chamada, por isto removeram o suporte a desabilitar uPNP! Sem isto ficaria praticamente impossível desenvolver uma backdoor!

O Jeito é apelar para algum software que codifique a voz antes de enviar pro skype através de um driver virtual de entrada/saida de audio! Se você precisa mesmo de privacidade ou costuma comprar Misseis Tomahawk pela internet, ta aí uma sugestão!

O Enigma da distribuição de homens e mulheres nos voos comerciais

Eu sempre me indaguei por que dificilmente sento próximo a uma mulher interessante ou pelo menos que seja possível conversar em uma das centenas de voos comerciais que já peguei, o fato é que somente uma vez, e indo para a Colombia, isto aconteceu, todas as outras vezes sempre parei do lado de casais, vovos, tias gordas e chatas, e gente muito estranha.

Ontem mesmo peguei um voo com 2 nazis do meu lado com problemas em usar desodorante.

Pensando um pouco cheguei a conclusão de que inevitavelmente deveria parar em torno de 50% das vezes ao lado de uma mulher, esteja ela acompanhada ou não, criança, velha, vovó e por ai vai. Mas isto não acontece, meus calculos são de que 90% das vezes são homens ou familias.

Verificando o meu bilhete de voo notei que eles sempre identificam se é um homem ou uma mulher através da saudação: Mr. Contezini.

Com isto ainda ontem, decidi dar uma voltinha pelo avião, estava nas primeiras poltronas e oportunamente fui utilizar o banheiro do fim do avião. Contei cada situação em que existia um homem e uma mulher sentados lado a lado, e que pareciam desconhecidos. Notei que são praticamente nulas estas situações, ou são familias inteiras viajando juntas, ou é um casal em que o homem vai na fila do meio, e do lado esquerdo vai um homem ou uma mulher. Ou são fileiras inteiras de homens e de mulheres convenientemente isolados.

Isto me leva ao seguinte questionamento: Será que o sistema que faz a gestão do booking das empresas convenientemente sugere sempre uma distancia entre homens e mulheres viajando sozinhos? A explicação que eu consigo ver é que para evitar transtornos com assédio, o sistema já trata isto separando homens e mulheres, sendo que quase todas usam o mesmo sistema para integração entre os diversos aeroportos e companhias, esta poderia ser uma função padrão!

Paranóia minha ou simplesmente falta de sorte? Vou notar nos próximos voos e tentar contar melhor!

Coisas que eu não entendo

Hoje eu acordei pensando em algumas coisas que eu não entendo:

  • Cerveja sem alcool
  • Café descafeinado
  • Namoro sem sexo
  • Casamento…

São dúvidas, logo não tem explicação.

Problemas no serviço Amazon S3

Como meu post anterior foi relacionado a este serviço, não posso deixar de comentar o problema ocorrido ontem.

Aparentemente durante 6 horas o serviço ficou fora do ar, uma falha no sistema de comunicação entre as maquinas para notificar seus estados, causado pela ausencia de um algoritmo de checksum nos pacotes, fez com que 99% dos servidores da Amazon ficassem fora do ar.

Eu particularmente não notei pois só utilizo este serviço para guardar arquivos particulares e nada publicado para algum serviço web que tenha acesso 24/7.

Referência: Amazon S3 Availability Event: July 20, 2008

Amazon S3

Um dos primeiros serviços de “computação nas nuvens” que eu irei avaliar é o S3 da Amazon, este é um serviço interessante pois ele provê uma forma de gravar dados via interface Web Service, e publicar via HTTP e Torrent a informação lá guardada.

Ele guarda informações em formato chave/valor e metadados customizáveis, dentro de uma especie de pasta que deve ter um nome único entre todos os usuários do serviço, chamado “Bucket”. O limite por chave é de 5 GB, nada mal para um Web Service.

Os dados podem ser guardados fisicamente em dois lugares distintos, um dos servidores se localiza nos EUA, e outro na Europa, para se gravar dados em um ou em outro deve-se mudar o endereço de acesso do servidor.

A Interface de acesso é bem documentada, e vários softwares já estão compatíveis com o serviço:

  • S3browse é um serviço via web que usa o S3 para simular um disco virtual online, é gratuito e bem fácil de usar.
  • Jets3t é um componente em Java para desenvolvedores que também vem com o Cockpit, uma especie de software de FTP muito amigável também
  • Cyberduck é um programa de FTP para Mac OS X que também suporta de forma transparente o serviço S3
  • JungleDisk na minha opnião é a mais profissional das ferramentas aqui citadas, ele implementa um drive virtual utilizando o FUSE como se fosse local, e também tem a opção de usar o serviço S3 para fazer backup da mesma forma que o Time Machine faz.

Os custos são relativamente baixos, custa 0.15 centavos de dolar por GB ocupado, e mais 0.10 centavos por GB enviado e 0.17 por GB baixado.

Minha ultima conta deu 1.26 dolares, com 3 GB’s ocupados em arquivos e uma boa quantidade de transferência.

Como todos os serviços novos ele ainda não é perfeito, as vezes há quedas bruscas nas conexões de download/upload, lentidão e latencias de rede. Mas a coisa tende a melhorar, a própria Amazon já prometeu verificar todos estes problemas e solucioná-los.

Maiores informações no próprio site: Amazon AWS

Computação nas nuvens

Este termo ainda desconhecido por muitos é o futuro da computação, ele prevê um mundo em que computadores como conhecemos hoje não serão nada mais do que interfaces de acesso, e toda a computação que precisaremos estará hospedada “nas nuvens”, ou seja, na rede, assim você não terá mais dados no seu computador, nem mesmo capacidade de processa-los, pedirá a rede que obtenha suas informações onde é que elas estejam, sendo que provavelmente nem você mesmo saberá, e as processe em algum “node” disponível para executar as tarefas necessárias.

Neste ambiente, empresas não mais necessitam de datacenters, tudo que fazem é alocar um “node” e enviar sua “imagem” com o sistema operacional e a aplicação a ser executada. Além disto ainda existem serviços “nas nuvens” como bancos de dados, discos virtuais, publicadores de conteúdo multimidia como som e video, sistemas de live streamming e tudo que for necessário para atender a demandas escaláveis.

A grande chave deste conceito está na disponibilidade e escalabilidade da arquitetura computacional, pois um dos desafios da tecnologia da informação nos dias de hoje é desenvolver um sistema que sirva para uma pessoa tanto quanto para milhões.

Neste ambiente todo o conceito de desenvolvimento de software que temos hoje não serve mais, pois a teoria da computação defende a execução de tarefas em forma linear, sendo processadas uma depois da outra. Mesmo a tecnologia de multiplos núcleos com threads defende basicamente a mesma idéia, porém dividindo com varios “executores” de tarefas sequenciais.

Em um sistema desenvolvido para rodar “nas nuvens”, as tarefas devem ser tratadas em forma paralela, onde sempre que se dispor de mais recursos de processamento, este seja utilizado para diminuir o trabalho de todos os outros nodes da rede. É um conceito extremamente complexo e atualmente não existem plataformas e frameworks faceis de se desenvolver que implementem este tipo de funcionalidade, acessível para qualquer programador.

Nos próximos posts eu vou avaliar alguns serviços já disponíveis começando pelo Amazon AWS.

Referências:
Cloud versus cloud: A guided tour of Amazon, Google, AppNexus, and GoGrid

Conservadorismo do padrão POSIX

O padrão POSIX foi criado na decada de 80 para permitir a portabilidade entre plataformas UNIX, anos mais tarde o Linux também aderiu ao padrão, assim como uma port chamada CYGWIN também habilitou os sistemas Windows a rodarem estas aplicações.

Além de uma interface de usuário (o shell, Korn Shell no caso), se é que ainda podemos chamar assim. Também foi criada uma interface de acesso aos serviços do Sistema Operacional, chamadas de SYSCALLS.

A verdade é que fazem quase 25 anos que estes padrões estão inalterados, e nos dias de hoje é simplesmente impossível entender por que ainda seguimos esta norma, abaixo segue um exemplo de como esta desatualizada a API de programação:

struct ifreq *ifr;
struct ifreq ifrr;
struct sockaddr_in sa;

ifr = &ifrr;

ifrr.ifr_addr.sa_family = AF_INET;

strncpy(ifrr.ifr_name, ifname, sizeof(ifrr.ifr_name));

…..

*ifaddr = ifrr.ifr_addr;
printf(“Address for %s: %s\n”, ifname, inet_ntoa(inaddrr(ifr_addr.sa_data)));

O código acima serve para mostrar os IP’s das interfaces de rede presentes na maquina, ele é tão antigo que no tempo em que o POSIX foi criado, as máquinas dificilmente tinham varias interfaces de rede, então para facilitar ao programador localizar o IP da máquina, foi criada uma macro chamada ifr_addr.sa_data, mas o que acontece quando queremos saber o endereço de outras interfaces? A maneira mais simples é fazer isto:

Copiar o nome da interface para a estrutura ifrr, chamar novamente o ioctl() pertinente, e pegar o campo .sa_data, mas o que acontece se não sabemos o nome da interface? Bem.. dai perdeu playboy. Não existe syscall POSIX para enumerar as interfaces presentes.. O Linux atualmente esta implementando uma função mas não é padrão..

Um método extremamente ultrapassado de se fazer uma operação muito simples.

E assim acontece o mesmo com a maioria das chamadas SYSCALLS do POSIX, outro exemplo é o já citado ioctl(), ele tem tantas funções que simplesmente é impossível uma pessoa saber a metade deles, ele preenche estruturas de tamanho variavel, com informação variavel, sem qualquer explicação do retorno possível a não ser na documentação do proprio sistema operacional.

Tenho conhecimento de dois sistemas operacionais com API’s atuais, o Windows e o Mac OS X.

No caso do Windows existem tantas SYSCALLS que algumas inclusive fazem exatamente as mesmas coisas, somente para manter a compatibilidade entre as versões interiores, mas a questão é que pelo menos elas lidam com problemas atuais como Orientação a Objeto, Leitura e Escrita multiplexada (ao mesmo tempo sem threads) e muito mais.

Ainda existe o Darwin, que é o verdadeiro sistema operacional do Mac OS X, pois este é muito mais, na verdade é um conjunto de serviços de alto nivel como manipulação de tela, execução de conteudo multimidia, comunicação com hardware e dezenas de outros serviços.

O fato é que este último eu ainda estou estudando para poder dar uma opnião correta, mas o meu ponto neste artigo é que, pelo menos estes dois sistemas operacionais tentam atender as necessidades dos desenvolvedores, ao contrario do POSIX que tenta manter compatibilidade e dificulta a criação de aplicações.

Acredito que num futuro breve será necessária a criação de um novo padrão para compatibilidade de sistemas operacionais, e poderemos nos ver livres desta interface velha e obsoleta.

Batman – Dark Knight

Bem, apesar de todo o meu esforço para ver este filme no cinema, descobri que aqui na Espanha a estréia será somente no dia 13 de Agosto, como estarei voltando para o Brasil um pouco antes provavelmente vou perder nos cinemas. Resolvi baixar uma versão screener e depois de procurar um pouco achei uma com qualidade.

O Filme em sí é relativamente bom, mas alguns aspectos me fizeram não considerá-lo o melhor filme já feito sobre o Cavalheiro Negro:

  • Eu não gosto desse Ator, desde o Begins para mim ele não tem jeito de milionário, o principio do Bruce Wayne é que ele pareca um burocrata, sangue azul, este Christian Bale parece um latino amigo do Zorro
  • O Joker roubou toda a atenção no Filme, para mim o Batman foi um coadjuvante na história toda
  • O desenho animado “Gotham Knight” deveria ter se passado entre o Dark Knight e o Begins certo? Então cadê o escudo contra balas que ele tem no desenho? (Correção que me escapou no desenho animado, ele não usa por não querer por as pessoas em risco! Obrigado ao Xico por me avisar!)
  • Todo mundo sabe que a Bat Caverna SEMPRE foi na mansão Wayne!
  • O Duas Caras nasce de um acidente com ácido! Não de um incêndio!
  • A Katie Holmes como Rachel Dawes é bem melhor que esta Maggie Gyllenhall

Agora basta esperar para sair a Liga da Justiça e ver se vão botar alguém com mais jeito de Batman!

Será o meu problema a Internet?

Eu sempre me perguntei se eu realmente sou um cara viciado em Internet, ou se é uma necessidade imposta pelo meu estilo de vida.

Um calculo rápido me deu 84 horas de internet por semana, o dobro da media mundial e brasileira. Clinicamente eu posso ser diagnosticado um viciado, pois antes mesmo de ligar a luz do quarto eu prefiro a luz do LCD, e antes de escovar os dentes pela manhã eu vejo os meus emails e feeds mais importantes.

Mas a questão é, o que tem de errado num estilo de vida assim? É artificial? Superficial? Eu acho muito cedo para podermos avaliar este tipo de coisa, pois essas mudanças impostas pelo desenvolvimento tecnologico ainda não foram analisadas por alguém que esteja fora deste contexto, todos estão dependentes do mundo digital mesmo sendo alheios a este movimento, e as pessoas que assumem o papel imersivo dos hábitos deste mundo novo podem ser classificadas como viciados, por aqueles que não fazem a mínima idéia do por que passamos tanto tempo conectados.

Como podem os “especialistas” em dependencia classificar-nos como viciados, quando estamos pisando em um territorio absolutamente inexplorado por eles? Eles não fazem idéia do que fazemos aqui além de passar muitas horas na frente dos nossos computadores, para eles conversarmos no MSN é nos escodermos atrás do computador com medo das pessoas do mundo exterior, mas quantos de vocês não tem tantos amigos online quantos fora? E muitos deles primeiramente foram descobertos pela Internet, e depois se tornaram amizades reais e de valor?

Na minha opnião é exatamente o oposto, a rede nos conecta as pessoas, faz conhece-las de uma forma que jamais teriamos conhecido, de formas diferentes, acho que a distancia nos retira a mascara da vergonha, da timidez, nos faz sermos quem realmente somos ou queremos ser, sem o medo do julgamento e da reação das pessoas.

Folha de São Paulo com seus julgamentos incorretos pra variar

Viciados em internet?