A necessidade de compartilhar arquivos e impressoras motivou o aparecimento das primeiras redes de computadores (ainda na década de 70) e continua sendo uma necessidade comum. Mesmo para fazer um simples backup armazenado remotamente, é necessário configurar algum tipo de compartilhamento de arquivos.
Existem diversas formas de disponibilizar arquivos através da rede, incluindo o NFS, o FTP, o SFTP e até mesmo um servidor web, que pode ser usado para compartilhar a pasta contendo os arquivos e aceitar uploads através de um script em PHP, por exemplo. Entretanto, quando falamos em redes locais, o protocolo mais usado é o CIFS (Common Internet File System), que é o protocolo usado para compartilhar arquivos e impressoras em redes Microsoft.
O nome “CIFS” pode soar estranho à primeira vista, mas ele nada mais é do que a mais nova versão do protocolo SMB, usada a partir do Windows 2000. A história do SMB e do CIFS começa em 1984, quando a IBM criou o protocolo NetBIOS (Network Basic Input Output), um protocolo para troca de mensagens entre micros PC ligados em rede, originalmente desenvolvido para servir como uma extensão do BIOS da placa-mãe, oferecendo recursos de rede. Em 1985, o protocolo foi expandido, dando origem ao protocolo NetBEUI, que foi durante muito tempo o principal protocolo usado em redes locais, antes da popularização do TCP/IP.
O SMB (Server Message Block) veio mais tarde, junto com o Windows 3.11. O protocolo SMB governa o compartilhamento de arquivos e impressoras em redes Microsoft, incluindo a navegação na rede, o estabelecimento de conexões e a transferência de dados. Ele utiliza o NetBIOS para a troca de mensagens entre os hosts e inclui uma versão atualizada do protocolo, que roda sobre o TCP/IP.
Acessando as propriedades do protocolo TCP/IP dentro das configurações de rede de uma máquina com o Windows XP, você pode ver que ele (NetBIOS) continua presente, com o objetivo de manter compatibilidade com as versões anteriores do Windows:
O problema com o NetBIOS é que ele depende do uso intensivo de pacotes de broadcast e de pacotes UDP. O CIFS é a evolução natural do SMB, que inclui diversos novos recursos, abandona o uso do NetBIOS e passa a utilizar uma única porta TCP (445) no lugar das três portas (137 UDP, 138 UDP e 139 TCP) utilizadas pelo SMB.
O Samba é justamente uma implementação das mesmas funções para sistemas Unix, incluindo não apenas o Linux, mas também o BSD, Solaris, OS X e outros primos. Ele começou como uma implementação do protocolo SMB e foi então sucessivamente expandido e atualizado, de forma a incorporar suporte ao CIFS e a se manter atualizado em relação aos recursos oferecidos pelas versões mais recentes do Windows.
O projeto nasceu no final de 1991, de forma acidental. Andrew Tridgell, um australiano que na época era estudante do curso de PhD em ciências da computação da Universidade Nacional da Austrália. Ele precisava rodar um software da DEC (que na época era uma das gigantes no ramo de tecnologia) chamado “eXcursion”, que trabalhava em conjunto com o Patchworks, um software de compartilhamento de arquivos. O Patchworks era um software proprietário, que utilizava um protocolo obscuro, sobre o qual não existiam muitas informações disponíveis.
Como todo bom hacker, ele decidiu estudar o protocolo e assim desenvolver um servidor que pudesse rodar em seu PC. Ele desenvolveu então um pequeno programa, chamado clockspy, que era capaz de examinar o tráfego da rede, capturando as mensagens enviadas pelo cliente e as respostas do servidor. Com isso, ele foi rapidamente capaz de implementar o suporte às principais chamadas e a desenvolver um programa servidor, que era capaz de conversar com os clientes rodando o Patchworks. O objetivo desta primeira versão era apenas resolver um problema doméstico: interligar um micro PC rodando o MS-DOS ao servidor rodando o Solaris.
Depois de algum tempo, Andrew recebeu um e-mail contando que o programa também funcionava em conjunto com o LanManager da Microsoft, permitindo compartilhar arquivos de um servidor Unix com máquinas rodando o MS-DOS. O protocolo obscuro usado pelo Patchworks se revelou uma implementação do protocolo SMB, que havia sido desenvolvida internamente pela DEC. Nasceu assim, acidentalmente, o um dos aplicativos open-source mais importantes da atualidade.
Pouco depois, em janeiro de 1992, ele disponibilizou o “Server 0.1” no servidor da Universidade, que foi rapidamente seguido por uma versão aprimorada, o “Server 0.5”. Este arquivo ainda pode ser encontrado em alguns dos FTPs do http://samba.org, com o nome “server-0.5”.
Esta versão inicial rodava sobre o MS-DOS. Depois de um longo período de hibernação, o software foi portado para o Linux, dando origem à versão seguinte (1.5), que foi lançada apenas em dezembro de 1993 e passou a se chamar “smbserver”. O nome continuou sendo usado até abril de 2004, quando foi finalmente adotado o nome definitivo.
O nome “Samba” surgiu a partir de uma simples busca dentro do dicionário Ispell por palavras que possuíssem as letras S, M e B, de “Server Message Blocks”, posicionadas nessa ordem. A busca retornou apenas as palavras “salmonberry”, “samba”, “sawtimber” e “scramble”, de forma que a escolha do nome acabou sendo óbvia. Uma curiosidade é que não existiu um “Samba 1.0”, pois a primeira versão a utilizar o nome “Samba” foi a 1.6.05, que foi a sucessora imediata do “smbserver 1.6.4”.
O projeto começou a se tornar popular a partir da versão 1.6.09 (lançada pouco depois), que foi a primeira a trazer suporte ao controle de acesso com base nos logins de usuário (assim como o Windows NT), enquanto as versões anteriores suportavam apenas o controle de acesso com base no compartilhamento (assim como no Windows 3.11 e 95), onde a única opção de segurança era usar uma senha de acesso para os compartilhamentos. A partir daí, o projeto não parou de crescer, atraindo um número crescente de usuários e desenvolvedores, até se transformar no monstro sagrado que é hoje.
Estes dois links contam um pouco mais sobre a história do Samba, desde as primeiras versões:
http://www.samba.org/samba/docs/10years.html
http://www.rxn.com/services/faq/smb/samba.history.txt
Em 1994 a Microsoft liberou as especificações do SMB e do NetBIOS, o que permitiu que o desenvolvimento do Samba desse um grande salto, tanto em recursos quanto em compatibilidade, passando a acompanhar os novos recursos adicionados ao protocolo da Microsoft, que mais tarde novamente deixou de ser aberto.
Hoje, além de ser quase 100% compatível com os recursos de rede do Windows 98, NT, 2000 e XP, o Samba é reconhecido por ser mais rápido que o próprio Windows na tarefa de servidor de arquivos.
Um dos pontos fortes do Samba é que o projeto foi todo desenvolvido sem precisar incorrer em qualquer violação de patentes. Todas as chamadas (com exceção das que a Microsoft tornou públicas em 1994) foram implementadas monitorando as transmissões de dados através da rede, processo que os desenvolvedores chamam de “French Cafe technique”. Dentro da analogia, seria como aprender francês sentando-se em um café e passando a prestar atenção nas conversas, aprendendo a partir daí novas palavras, expressões e situações onde elas podem ou não serem usadas. É um trabalho bastante detalhista e tedioso, que demanda um grande esforço e resulta em avanços graduais, mas, se executado por anos a fio, como no caso do Samba (que começou a ser desenvolvido em 1991), resulta em conquistas surpreendentes.
Isso torna o Samba virtualmente invulnerável a ações legais relacionadas a quebras de patentes ou problemas similares, já que o software é inteiramente baseado em observação e no uso de especificações públicas.
Uma curiosidade é que a existência do Samba permitiu que a Microsoft conseguisse colocar PCs rodando Windows em muitos nichos onde só entravam Workstations Unix, já que com o Samba os servidores Unix existentes passaram a ser compatíveis com as máquinas Windows. Ou seja: até certo ponto, o desenvolvimento do Samba foi vantajoso até mesmo para a Microsoft.
Quase tudo que você pode fazer usando um servidor Windows, pode ser feito também através do Samba, com uma excelente segurança, confiabilidade e com um desempenho em muitas situações bastante superior ao de um servidor Windows com a mesma configuração.
O Samba é uma solução bastante completa e flexível para uso em redes locais, pois oferece um grande volume de opções de configuração e é compatível com todas as versões do Windows; do 3.11 ao Vista. Além de compartilhar arquivos, ele permite também compartilhar impressoras e centralizar a autenticação dos usuários, atendendo tanto a clientes Windows, quanto a clientes Linux.
Para os clientes Windows, o servidor Samba aparece no ambiente de redes exibindo os compartilhamentos disponíveis, exatamente da mesma forma que um servidor Windows:
Os compartilhamentos podem ser acessados da forma tradicional e inclusive mapeados. No caso dos compartilhamentos de impressoras, é possível inclusive utilizar o Point-and-Print, onde os clientes obtém os drivers de impressão diretamente a partir do servidor e a impressora fica disponível com apenas dois cliques.
Além de compartilhar arquivos e impressoras, o servidor Samba pode atuar como um PDC, autenticando os usuários da rede. Existem também diversas opções de segurança, que permitem restringir o acesso aos compartilhamentos.
Naturalmente, o servidor pode ser acessado de forma simples também nos clientes Linux da rede. As versões recentes do Konqueror e do Nautilus incorporam plugins que permitem acessar os compartilhamentos de forma bastante prática (experimente digitar smb://endereço_do_servidor na barra de endereços do Konqueror) e existem também clientes especializados, como o Smb4k:
Deixe seu comentário