É frequentemente o caso que o sucesso gera controvérsia, particularmente na indústria tecnológica e especialmente no que diz respeito ao software. Dada a quantidade de compartilhamento e reutilização de código que tem ocorrido desde o início da própria indústria de tecnologia, não é mais incomum ouvir sobre ações legais sendo tomadas em torno de violação de direitos autorais ou questões de licenciamento.
Um dos primeiros e mais importantes desses casos foi uma ação judicial movida pela Caldera Inc. contra a Microsoft em 1996, por suposta má utilização (ou cópia) de partes do sistema operacional CP/M no MS-DOS. Caldera tinha adquirido a Digital Research Inc. (DRI) por meio da Novell Inc., e com ela os direitos à CP/M que foi desenvolvida pelo fundador da DRI, Gary Kidall, em 1974. A ação antitruste privada foi resolvida fora dos tribunais em 2000 com a Microsoft pagando cerca de US$275 milhões em danos.
Qual é a carne?
$275 milhões, mesmo pelos padrões de 2000, é uma ninharia relativa para o que se tornou a espinha dorsal (ou pelo menos o ponto de pulo) do império Microsoft. O MS-DOS formaria a base para o Windows 95 e 98 que ajudou a cimentar o domínio da Microsoft no empreendimento e eventualmente no datacenter, enquanto o CP/M (mais tarde comercializado como DR-DOS) foi relegado aos anais da história da tecnologia com seu último lançamento vindo cerca de 33 anos atrás.
O ponto de discórdia é que, na época da suposta cópia do código fonte, comandos e chamadas de sistema, DRI e CP/M possuíam aproximadamente 20% do mercado, o que poderia ter crescido potencialmente para o DOS e versões subseqüentes do Windows, depois de serem licenciadas para a IBM em 1981. Como tal, circularam rumores sobre as verdadeiras origens do MS-DOS, que alguns afirmam ser o produto direto de um clone não autorizado do CP/M, desde então. Alguns mitos chegam ao ponto de sugerir que existe um comando secreto dentro do MS-DOS que, quando executado, imprime algo por meio de: COPYRIGHT (C) GARY A. KILDALL JUNE, 1975 *.
Fora dos defensores inflexíveis, apaixonados e opinantes de ambos os lados do argumento, estes rumores têm continuado por mais de 30 anos por causa das limitações no campo da medicina legal de software. A perícia de software (ou detecção de plágio de software), é uma disciplina amplamente empregada em casos como o da Microsoft e Caldera, trata da análise de código fonte e binários para determinar questões de violação de propriedade intelectual. Entretanto, durante a maior parte de sua existência, inclusive na época em que a Caldera entrou com o processo contra a Microsoft, a perícia em software tipicamente contava com acadêmicos e consultores de software comparando manualmente enormes quantidades de código em diferentes programas em busca de provas de cópia, e depois compartilhando suas descobertas com um tribunal como testemunhas especializadas. Como o sistema legal americano como um todo, o processo era falível, demorado e caro.
Coincidentemente, porém, por volta da época do litígio Microsoft/Caldera, Bob Zeidman, um engenheiro elétrico por educação e um desenvolvedor de software por comércio, começou a desenvolver um programa utilitário para otimizar esses métodos. Ao longo dos anos, esse simples programa utilitário evoluiu para o CodeSuite, um conjunto de ferramentas para comparar código fonte e executáveis que se tornou a base em casos de litígio IP.
Cinco regras do CodeSuite & DOS v. CP/M
O conjunto de ferramentas CodeSuite suporta cerca de 40 idiomas, cada um dos quais contém um analisador ou arquivo de definição único que é usado quando um conjunto de código está sendo revisto. O código a ser testado é então dividido em segmentos que são analisados separadamente para que alterações em certos elementos do código não disfarcem o plágio em todo um corpo de trabalho. Estes segmentos são:
- Declarações, comentários e strings
- Identificadores
- Sequências de instrução
Após estes três segmentos serem analisados é produzida uma pontuação de correlação normalizada, que é fortemente ponderada contra a cópia direta. Por exemplo, se um algoritmo copiado compõe 10% de uma amostra de código sendo analisada, o CodeSuite retornaria uma pontuação de “100” ao contrário de outras ferramentas que poderiam relatar um “10%” ou “.1”, o que pode ser enganoso quando o IP principal está em jogo. A pontuação de correlação do CodeSuite então direciona os analistas para áreas de cópia potencial para revisão posterior.
No entanto, é importante notar que a pontuação de correlação não é um julgamento conclusivo sobre violação ou roubo em e de si mesmo. Ao contrário, é o ponto de partida para os analistas reverem códigos altamente correlacionados com mais profundidade seguindo um procedimento bem definido para determinar se o software foi tomado de forma nefasta (Figura 1). Este procedimento considera
- Algoritmos comuns – Muitos algoritmos fundamentais são ensinados nas escolas para operações básicas, que poderiam aparecer como cópia
- Identificadores comuns – Termos comuns de indústria e programação (como “índice”, “contagem” e “matriz”), bem como linguagem legível por humanos (para comentários) podem aparecer como cópia
- Autor comum – Se o mesmo autor escreveu programas em duas empresas diferentes, eles irão invariavelmente usar o mesmo estilo de codificação fundamental
- Geração automática de código – Se dois programas usam a mesma ferramenta ou uma ferramenta similar para gerar código automaticamente, provavelmente parecerá a mesma
- Código de terceiros – Código, particularmente código de código aberto para operações básicas, aparecerá como plágio, um fato que hoje é particularmente relevante
Recentemente, e por sua própria vontade, Zeidman começou a aplicar as ferramentas CodeSuite e este procedimento ao MS-DOS e ao CP/M para determinar a extensão do alegado plágio. Durante sua avaliação, ele comparou aspectos dos dois programas que estiveram na raiz da controvérsia, a saber, o código fonte, linhas de comando e chamadas de sistema.
Para começar, Zeidman iniciou sua comparação de código limpando o CP/M, removendo tudo que não era código fonte, reformatando o código, rodando comentários como instruções e instruções como comentários, e procurando por identificadores incomuns, entre outras coisas. Ele então procedeu a pesquisas globais tanto no CP/M quanto no MS-DOS por “copyright”, nomes de empresas, nomes de autores e iniciais, e outros termos de relevância.
Interessantemente, no MS-DOS, o termo CP/M foi encontrado. No entanto, após algumas pesquisas Zeidman descobriu que os primeiros programas DOS liam de fato os arquivos CP/M, o que não é surpreendente dada a presença precoce do CP/M no mercado (Figura 2). Comentários, strings e identificadores correspondentes também foram descobertos, mas com freqüência mínima e os termos eram suficientemente gerais para se enquadrar na categoria de “Nomes de Identificadores Comuns”, como mencionado anteriormente (Figura 3). Com relação ao código fonte, a conclusão foi que nenhuma cópia havia ocorrido.
Again, para as interfaces de linha de comando foram encontradas altas correlações, mas como mostrado na Figura 4, estas também se enquadram no guarda-chuva de “identificadores comuns” que abrangem vários sistemas operacionais.
A maior possibilidade de violação de direitos autorais veio nas chamadas de sistema, onde, como mostrado na Figura 5, a numeração das chamadas é quase idêntica entre os programas. Por exemplo, tanto no MS-DOS quanto no CP/M, 15 e 16 são as chamadas para abrir e fechar um arquivo, respectivamente. Aqui chegamos a uma área cinza em que, enquanto as chamadas de sistema foram implementadas e usadas diferentemente em cada programa, as semelhanças são inegáveis. Dito isto, no entanto, este é provavelmente um caso de a Microsoft não reinventar a roda e ficar com as chamadas reconhecíveis do dia. Em termos de direitos autorais, isto é referido como uso justo. Alguém comprou o MS-DOS como resultado das chamadas do sistema CP/M? Provavelmente não.
Oh, e Zeidman não encontrou nenhum comando secreto no MS-DOS que imprime um copyright Kildall.
Então porque é que a Microsoft se conformou?
As conclusões acima revelam poucas ou nenhumas provas significativas de violação de copyright, então porque é que a Microsoft cede?
Como mencionado, $275 milhões foi e é uma ninharia relativa para a Microsoft, e após quase cinco anos de litígio, mais importante do que honorários advocatícios ou egos machucados foi a reputação da empresa no mercado e na marca. Ao invés de ficarem presos nas ervas daninhas por causa de uma controvérsia que poderia ter saído do controle e levantado questões públicas sobre a integridade da Microsoft, eles mantiveram a cabeça nas nuvens, que é exatamente onde eles se encontram hoje.
Como para as descobertas do CodeSuite, Zeidman os apresentou no início deste mês no Vintage Computer Festival que aconteceu no Computer History Museum em Mountain View, CA. Ele está confiante o suficiente em suas descobertas que ele ofereceu uma recompensa de $100.000 para qualquer um que possa refutar suas descobertas de que a Microsoft não copiou o código fonte do CP/M, e um adicional de $100.000 para qualquer um que possa encontrar a misteriosa função secreta de Kildall.
Até que alguém o faça, eu acho que é hora de colocar esses rumores para dormir.