Ironicamente, foi um dos criadores do UNIX que cunhou essa frase: Ken Thompson, inventor do UNIX. Mas é uma grande verdade. Muitas vezes estamos programando algo e pensando em um algoritmo elegante para o problema mas a solucão, na verdade, é um bloco feio e cheio de GOTOs – porém eficiente. No código de boot do Linux tem um bocado de coisa feita, mas são só os primeiros 512 bytes de um sistema que, de resto, funciona maravilhas.
A Microsoft sempre agiu assim, e a julgar pela popularidade de seus softwares posso dizer, com certa intencão de provocar os UNIXeiros aí, que eles acertaram mais do que erraram. E olha que não sou Microsoftie ein! Quem me conhece sabe o que penso da Microsoft.
Só que forca bruta tem seu charme. É a diferenca de um filme do Steven Seagal(graduado 6o Dan no Aikido) onde ele derruba todo mundo sem esforcos e um verdadeiro brutamontes feito Chuck Norris que entra no Iraque sozinho atirando, ganha a guerra e salva a loirinha sequestrada das garras do Saddam.
Eis que a Microsoft sempre entrou pé-na-porta atirando. Temos que admitir, isso tem seu charme. Há um tempo, e eu não achei o link para citar essa entrevista, perguntaram a um alto oficial da Microsoft o que eles pretendiam fazer para combater o Google. Ele respondeu “nós temos dinheiro em caixa para comprar o Google à vista na Bolsa”… E não é que é verdade?
Bem, todo esse papo é porque a Microsoft anunciou que vai comprar o Yahoo! por quase 50 bilhões de U$. O Yahoo! é o portal mais acessado da Internet, à frente do Google, e possui um sistema de buscas competitivo, apesar que na minha opinião ainda aquém da qualidade do sistema Google.
A oferta da Microsoft é em cash, são 40 bilhões em espécie – é pegar ou largar. Sabem o que é isso? É o velho estilo Bill Gates de fazer as coisas. Como Gates saiu da MSFT, eles andavam meio morocoxôs. Aposto com você que ele disparou um telefonema pro Steve Ballmer e disse “o que você pensa que está fazendo, KCT, compra logo o Yahoo”. E assim se fez a luz.
Para nós webmasters isso trará enormes mudancas, e agora é esperar para ver o que vão mudar de imediato.
Há uns 15 dias instalei o Fedora Core 8 em meu notebook mas até hoje não tinha tido tempo para configurar tudo o que preciso para trabalhar. Aproveitei o fim de semana para colocar o note em dia e eis que a instalacão do adaptador Wi-Fi USB me deu um pouco de trabalho.
Primeiramente é preciso descobrir o chip que o adaptador utiliza. Normalmente a marca e nome fantasia não resolvem. Para saber o ID real do chip use o comando “lsusb” no shell do Linux.
O resultado deve ser algo tipo:
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 009: ID 0457:0163 Silicon Integrated Systems Corp.
A linha que nos interessa é a que tem o ID 0457:0163. Se você tiver vários dispositivos no USB e os nomes gerarem confusão, desligue-os temporariamente e teste com apenas o adaptador Wi-Fi para saber seu ID.
Jogando esse ID no Altavista encontro que o chip que possui esse ID é o SiS163u.
Agora que sabemos o modelo, precisamos encontrar um modulo de kernel para esse chip. No presente momento não me parece que exista um driver Linux para esse chip, assim precisamos utilizar o NDISWrapper para pegar emprestado um driver de Windows XP.
Instalando o NDISWrapper
Para comecar a instalacão, crio o diretorio /root/wifi para baixar os arquivos que vou precisar, compilar o ndiswrapper e etc.
O NDISWrapper, conforme o nome em inglês sugere, é um “embrulho” em torno do padrão NDIS do Windows. As chamadas do NDIS são interceptadas por essa camada de código e traduzidas para algo que o Kernel do Linux pode entender, assim migrando o driver do Windows para o Linux de forma quase transparente. Nem todos os drivers funcionam, mas pelo que se tem visto o desenvolvimento do Wrappers anda em ritmo acelerado e hoje grande parte dos cartões PCMCIA, placas PCI e dispositivos via USB estão funcionando através desse artifício. Mais uma conquista dos hackers Linux que, com isso, conseguiram migrar milhares de drivers nativos do Windows para o Linux. Como todo wrapper, este artificio torna o driver necessáriamente mais lento por inserir uma camada de compatibilidade entre o hardware e o kernel. Porém não é perceptível para redes caseiras visto que nossas conexões internet normalmente são muito mais lentas que o bus utilizado, neste caso o USB. Para redes de alta performance, clusters, etc, este tipo de wrapper poderia se tornar um gargalo. Não é nosso caso, então vamos prosseguir.
Baixe o ndiswrapper mais recente neste link do Sourceforge. Escolha a versão mais recente e estável da lista, no meu caso a 1.52. Baixe o pacote ndiswrapper-1.52.tar.gz dentro da pasta /root/wifi/ e instale seguindo os seguintes passos:
cd /root/wifi/
tar xjvf ndiswrapper-1.52.tar.gz
cd ndiswrapper-1.52
./configure –prefix=/usr
make install
O make install irá chamar as dependências, que incluem o make e instalará o ndiswrapper no /usr/sbin/ndiswrapper assim que a compilacão terminar. Não devem ocorrer erros nessa etapa, que é bastante simples. Se tiver algum problema me envie pelo campo de comentários deste post ou tente resolver lendo atenciosamente quaisquer mensagens na tela. Na instalacão padrão do Fedora não houve qualquer problema, então vamos adiante.
Encontrando o Driver NDISWrapper correto
Jogo a consulta ’0457:0163 ndiswrapper’ novamente no Altavista e recebo no primeiro resultado esta lista de dispositivos aceitos, há 2 ou 3 drivers compatíveis com esse chip. Escolho o seguinte, ao acaso:
# Card: Atlantis-Land Wireless USB Adapter (A02-UP-W54). 54mbps
* Chipset: SiS163
* usbid: 0457:0163
* Driver: http://www.atlantis-land.com/firmware/3463_A02-UP-W54%5BV10-20%5D.ZIP
* Other: I mount this on a slackware 10.2 with a 2.4.31 stable kernel. The device work very well!
Faco o download do link acima no diretorio /root/wifi e o descompacto assim:
cd /root/wifi
unzip 3463[teclo TAB para completar o nome extenso]
O pacote .ZIP descompactará um diretório Drivers, o qual acessamos e prosseguimos assim:
cd Drivers
cd Windows\ XP
E agora vem a parte importante, instalamos o driver Windows em nossa máquina com o seguinte comando:
ndiswrapper -i SiS163u.INF
Testamos a instalacão com o comando:
ndiswrapper -l
O qual deve retornar algo tipo:
sis163u: driver installed
device (0457:0163) present
Geramos o modules.dep novamente com o comando
depmod -a
E inserimos o módulo ndiswrapper no kernel atual através do comando:
modprobe ndiswrapper
Testamos se está tudo ok com o comando
lsmod | grep ndis
Cujo resultado deve ser algo semelhante a :
ndiswrapper 168860 0
Para termos certeza, vemos se o kernel tentou nos dizer algo no syslog através do comando
dmesg
Em alguma parte no fim do registro dmesg deve haver algo semelhante a :
ndiswrapper: driver sis163u (OEM,11/29/2004,5.1.1039.1020) loaded
wlan0: ethernet device 00:11:22:33:44:55 using NDIS driver: sis163u, version:0×10000000, NDIS version: 0×501, vendor: ‘NDIS Network Adapter 0457:0163.F.conf
wlan0: encryption modes supported: WEP, TKIP with WPA; AES/CCMP with WPA
No momento em que inserimos o módulo no kernel, este passa a enxergar o nosso hardware como um dispositivo de rede, wlan0 em nosso caso, que pode ser configurado com as ferramentas de rede tradicionais do Linux. No caso da interface Wi-Fi temos que fornecer os específicos da nossa rede para tentarmos obter um lease DHCP de nosso Access Point.
Configuracão Wi-Fi
Aquí em casa o access point é um D-Link DI-524 padrão 802.11g. O prédio onde moro está qualhado de access points abertos e sem senhas, porém já pago minha ADSL e não desejo abusar da rede alheia. Assim, fecho o access point com WPA e crio uma chave bem segura.
A configuracão do WPA no Fedora 8 é mais prática usando o wpa_supplicant. Este método exige que tenha algumas coisas configuradas corretamente na máquina, a saber: o arquivo /etc/wpa_supplicant/wpa_supplicant.conf
Primeiro vamos ver que redes estão disponíveis para conectar, usando o comando:
iwlist scan
Que resulta em
wlan0 Scan completed:
Cell 01 – Address: 77:88:99:aa:bb:cc
[DIVERSAS INFORMACÕES REMOVIDAS]
Procure a linha ESSID. Essa é a identificacão da rede encontrada, é nela que iremos conectar. Se você fechou seu AP com uma senha WPA, é preciso inserí-la no seu arquivo wpa_supplicant.conf. A senha não é fornecida em ASCII, e sim numa string hexadecimal que é facilmente gerada com o comando:
wpa_passphrase MEUSSID
Ele pedirá para digitar a senha do access point(AP) e o resultado pode ser colado diretamente no arquivo wpa_supplicant.conf. Exemplo:
#reading passphrase from stdin
teste123
O resultado é
network={
ssid=”minhawan”
psk=7d7ad77ad7ad7ad7a7d7ad7a7d7ad7a7d7ad7a7da7d7ad7a7d7ad
}
Copie e cole esse texto diretamente em /etc/wpa_supplicant/wpa_supplicant.conf substituindo, claro, o ssid pelo seu nome de rede e acrescentando quaisquer dados necessários à sua rede. Para cada rede sem fio que deseje conectar-se crie uma secão network={} nesse arquivo. Os parâmetros você obtem com o seguinte comando.
man wpa_supplicant.conf
Estamos quase lá! Agora coloque o wpa_supplicant para suplicar para você, através do comando:
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 &
Substituindo o nome de interface e caminho do arquivo de acordo(exemplo, se voce tiver diversos arquivos, um para cada cidade onde trabalha ou algo assim) e dependendo do driver pode ser eth1 ou wlan0, etc. No caso do sis163u é wlan0. Coloco para trabalhar como processo de fundo utilizando o & no fim do comando.
Agora obtenha um endereco de rede à partir de seu AP com o comando:
dhclient wlan0
E se tudo correr bem você deverá receber um IP!!! O próprio dhcliente alterará seu /etc/resolv.conf para conter o nameserver correto.
Em meu caso precisei setar a rota principal na mão por algum motivo. Ainda não descobrí por que o DHCP não se encarregou disso, porém é muito simples em meu caso. Verifiquei que o IP obtido foi 192.168.1.25 e sabia que meu modem ADSL é o 192.168.1.1, então adicionei a rota default assim:
route add default gw 192.168.1.1
Novamente, não sei por que o DHCP não se encarregou desse passo final…deve haver uma solucão mais elegante, mas no momento preciso voltar ao trabalho!
Conclusão
São os mesmos passos que devem ser seguidos em qualquer sistema operacional, a diferenca principal é entre configurar as coisas em modo texto ou através de uma interface mais amigável. Existem diversas ferramentas para trabalhar essa configuracão em modo gráfico e outras para operar o wpa_supplicant dentro do X – como por exemplo o wpa_supplicant_gui – porém eu já tenho costume de trabalhar no shell. O NDISwrapper é uma mão na roda, esta solucão só foi possível gracas a ele!
Um interessante artigo da IT Management especula sobre os motivos pelos quais o OS/2, que um dia já foi o carro-chefe dos sistemas operacionais para PC’s da IBM, jamais foi lancado como projeto de Software Livre.
O produto foi descontinuado em 1997 e completamente retirado do mercado em 2005. Ou seja, seu valor tende ao zero a cada dia que passa. Por que a IBM tem negado liberar o código?
Será que o código ainda existe?
O artigo traz algumas hipóteses, entre elas a de que a IBM simplesmente não tenha mais o código fonte todo organizado e que portanto sairía caro demais empacotá-lo num .tar.gz para a alegria da comunidade SL. Ou que talvez tenha sido destruído. A possibilidade existe, principalmente a de uma destruicão proposital do código. Os escritórios IBM em Boca Raton(seguindo pela famosa avenida A1A ao norte de Miami) onde o OS/2 foi, em grande parte, desenvolvido já não existem mais, e há a possibilidade da propriedade intelectual alí produzida ter sido perdida. A reportagem cita pelo menos uma fonte da IBM que afirma que essa hipótese é plausível.
E vale lembrar que em 1997 a idéia de liberar código fonte de sistemas corporativos ainda não era lá considerada muito inteligente. Muito menos código produzido em parceria com a Microsoft, conforme discutiremos adiante.
Java e o Solaris custaram bilhões – e a Sun abriu
Hoje, com o Java e o Solaris abertos por exemplo, sabemos que projetos de bilhões de dólares estão sendo desenvolvidos muito mais rapidamente pela comunidade do Software Livre do que estaria sendo no ambiente fechado dos anos 80 e 90. Mas, em 1997 a IBM jamais poderia sonhar em “dar de presente”(era assim que muita gente pensava sobre o Software Livre então) um trabalho colossal como o OS/2. Naquela época o Software Livre era visto como um movimento ideológico e não como uma metodología de trabalho extremamente eficiente.
O pioneiro do Unix Eric Raymond, em seu livro “The Art of Unix Programming”(que você pode ler gratuitamente clicando aquí) afirma que a grande virada na visão do Software Livre como instrumento eficiente de compilar conhecimento humano, e não como ideología, foi em 2000. Nesse ano o mundo corporativo adotou de vez a metodología aberta como parte de sua estratégia.
Mesmo assim, com seus principais rivais adotando o Software Livre e a cada dia mais enfraquecida no mercado de PC’s, a IBM não liberou o código do OS/2, preferindo vê-lo desaparecer. Posteriormente, a IBM vendeu sua unidade de PC’s para um grupo Chinês. E assim, a empresa que tem o nome sinônimo com computacão, e que criou o IBM-PC, saiu do ramo, pela porta dos fundos. Uma empresa inteligente como a IBM não faria isso se não houvesse um motivo muito forte.
A Microsoft tem uma arma encostada nas costas da IBM?
Outra possibilidade, na minha opinião mais provável, seriam as implicacões legais da liberacão do código fonte do OS/2. Vale lembrar que o OS/2 já foi um projeto conjunto da Microsoft com a IBM. As duas empresas separaram os projetos e cada uma ficou com código que havía sido desenvolvido até aquele momento. O da Microsoft se tornou o Windows NT e o da IBM o OS/2 Warp. Talvez existam cláusulas desse acordo de separacão que tornem impossível a divulgacão do código pela IBM. A única empresa que ganha com o segredo do OS/2 é a Microsoft. A IBM, como já falamos acima, nada tem a ganhar com um produto descontinuado.
Um dos maiores segredos do Windows NT é o seu sistema de arquivos NTFS. Apesar do esforco de milhares de hackers de todo o mundo, até as versões mais recentes o Kernel Linux era incapaz de utilizar esse sistema de arquivos. Certo dia decidí arriscar e o Linux simplesmente destruiu um disco NT que eu tinha usado em testes. Talvez o NTFS seja um dos motivos para que a IBM não possa liberar o código do OS/2. Enfim, mais um motivo que só beneficia a Microsoft.
Minha opinião? Bem, eu acho que está mais para o problema legal mesmo com a Microsoft e outros que licenciaram o sistema IBM, entre eles governos. Existe a possibilidade forte do OS/2 ter sido usado em sistemas militares dos EUA e, assim, ter seu código considerado segredo até daquí a 30 anos(ou algo por aí).
Mas tem uma outra possibilidade, e está bem próxima a nós aquí no Brasil.
O OS/2 é o sistema operacional de centenas de milhares de caixas eletrônicos. Por aquí, se você passar por um caixa eletronico vermelhinho “24 Horas”, entre outros, que deu pane, verá que na telinha de boot aparece o logotipo IBM OS/2 Warp todo orgulhoso. Até um tempo atrás o Banco do Brasil utilizava OS/2 em seus equipamentos de auto-atendimento também, não sei como anda hoje. O que nos tráz à questão da seguranca do OS/2.
Seria ele um sistema seguro? Se nos basearmos no Windows NT nós temos todos os motivos para desconfiar que não e, pelo contrário, trata-se de um sistema bastante vulnerável.
O fato de não conhecermos muitas falhas de seguranca no OS/2 vem, na minha opinião, de 2 causas muito simples:
1) Internet: o OS/2 não chegou a ser amplamente testado nem como sistema caseiro ou como sistema de servidores na Internet
2) Forca Bruta: se você for pego testando a seguranca de um caixa eletrônico, provavelmente será preso
Então eu desconfio que, se nos basearmos na quantidade de furos de seguranca que descobriram no Windows NT de 1997 em diante, o código do OS/2 provavelmente não é exatamente um caixa-forte. Se isso é verdade, e a IBM divulgasse o código-fonte, vandalos poderiam estudar o ataque preciso no código fonte e então centenas de milhares de caixas eletrônicos estariam subitamente abertos a todo tipo de fraude.
O nome disso é seguranca por obscuridade, e foi o ponto fraco do Windows dos anos 90 para cá. A Internet permitia a divulgacão de uma informacão no que os hackers chamam de “tempo zero”, ou seja, garantir a seguranca digital por um segredo não funciona na Internet. A seguranca tem que ser por mecanismo, por política, e não por obscuridade. Um exemplo triste disso era a senha “Microsoft Barney” que vinha oculta no código compilado do programa de Planilhas Excel. Nos anos do DOS e dos usuários desconectados, o segredo jamais vazou. Mas na Internet alguem descobriu e divulgou a senha que era capaz de abrir todos os documentos Excel, mesmo os codificados com a “protecão” da senha Excel. Esse tipo de prática era muito comúm nos anos 80 e 90.
Mas, como vimos no Iraque, os George Bush dos anos 80 conseguiam manter em segredo coisas que não são mais possíveis esconder pelos George Bush dos anos 2000. O mundo mudou, e o OS/2 ficou para trás.
O Technorati exige que eu mostre que este é meu blog! Para isso é preciso postar aquí um link para eles com um digest criptográrico único. Quando o robô deles ver este link saberá que realmente este blog pertence a mim.
Então lá vai o link que mandaram eu colocar aquí: Technorati Profile
Semana passada uma notícia chamou a atenção : um cabo de dados submarino rompeu-se e interrompeu a conexão com a Internet de diversos países do Oriente Médio e Asia. Ontem a empresa responsável pelo cabo anunciou que a causa do rompimento teria sido uma “âncora de 5.5 toneladas abandonada no local”. A notícia não fornece detalhes quaisquer sobre o rompimento e não esclarece boatos de que teriam sido diversos cabos rompidos.
A falta de informação sobre o acontecido e o fato de Israel e o Iraque não terem sido afetados tem levantado teorias da conspiração nos fóruns da internet. Pode ter sido um ataque terrorista? Um ato de vandalismo? As câmeras de segurança do Egito não registraram embarcações nas cercanias do local na data do rompimento(23 de Janeiro). E o incidente levou 7 dias para ser noticiado na imprensa, o que aumenta ainda mais o mistério.
Um especialista citado na matéria afirma que o acontecimento é muito comúm, e que normalmente não recebe muita atenção da imprensa. Acontece que desta vez, supostamente, foram diversos cabos rompidos e a interrupção em países de enorme população chegou a mais de 60%.
Para saber mais sobre os cabos submarinos, confira alguns links que separei sobre o assunto.
A Wikipedia traz uma interessante cobertura do acontecimento e você pode conferir clicando neste link(por enquanto não há tradução).
Clique aquí para conferir uma foto em alta resolução de um antigo cabo submarino da época da II Guerra Mundial.