Uma das partes mais polêmicas do projeto do Nexus 1600 foi o desenvolvimento de um sistema operacional compatível com o MS-DOS, o SISNE (SIStema do NExus). Muitas pessoas não acreditavam (e não acreditam) que o SISNE foi desenvolvido pela Scopus. O eu dizia na época era: "foi desenvolvido sim, e temos os bugs para provar...".
Texto no livreto "Scopus 30 anos" |
Um ponto fraco da reserva de mercado era o software, com a pirataria correndo solta. Mesmo entre os apoiadores da política de reserva existia uma ênfase no hardware, a preocupação com o número de máquinas produzidas e a visão do software como sendo uma atividade secundária que podia ficar para uma segunda etapa. Foi uma surpresa o governo ser convencido a estabelecer uma regra obrigando os micros de 16 bits a serem comercializados com sistema operacional desenvolvido no Brasil (spoiler: esta regra não deu o resultado esperado).
Não que desenvolver um sistema operacional seja uma tarefa impossível. É parte do nosso complexo de vira-latas achar que certas coisas só pode se feitas por empresas estrangeiras.
O MS-DOS 1.x, em particular, não era um sistema complexo. Conforme relatado em vários lugares (aqui por exemplo), o desenvolvimento inicial foi feito por uma pessoa (Tim Paterson) em seis semanas. A interface de programação era baseada no CP/M-80, com cerca de duas dúzias de funções. A maior parte do "núcleo" era a manipulação do sistema de arquivos que se baseava na FAT, criada pela Microsoft para o Standalone Disk BASIC. Suportando apenas disquetes com baixa capacidade, a FAT ocupava apenas 512 bytes e podia ser mantida continuamente na memória.
Além do núcleo, o MS DOS 1.x incluía o interpretador de comando (COMMAND, que implementava internamente os comandos DIR, DEL, COPY, TYPE, RENAME, PAUSE e REM) e os utilitários CHKDSK, DISKCOMP, DISKCOPY, FORMAT, MODE e SYS.
O grande trunfo da Scopus para desenvolver o SISNE era usar uma linguagem de alto nível ao invés de Assembly. A oferta de linguagens neste tempo não era muito grande e acabou sendo escolhido um compilador de PASCAL comercializado pela IBM para a primeira versão do SISNE. Este compilador se mostrou bem adequado, pelo menos em termos de facilidade em programar e estabilidade. É claro que o resultado ficou bem maior que o MS-DOS, mas o Nexus vinha com incríveis 256K bytes na placa de sistema...
Para fazer o SISNE no prazo necessário foi feita uma grande força tarefa. Não lembro mais os detalhes, mas acho que foram duas ou três pessoas fazendo o núcleo (eu uma delas), um pessoa fazendo o COMMAND (sem o COPY, que foi transformado em utilitário externo) e mais duas ou três pessoas para fazer os utilitários (incluindo o COPY).
O SISNE funcionava e (até onde me lembro) não tinha muitos problemas de compatibilidade. O problema mesmo eram os bugs. Nos meses seguintes eu tive bastante trabalho tentando resolvê-los e tive a desilusão de descobrir que um dos desenvolvedores era bem fraco (e isto era bastante conhecido, só eu na minha inocência não sabia).
Em um post futuro eu vou falar sobre a segunda versão do SISNE. Mas eu acho que aqui é um bom ponto para avançar alguns anos, para depois que eu já tinha saído da Scopus e o SISNE estava na versão 3, quando a Scopus foi acusada de ter copiado o MS DOS, com direito a matéria na Veja. Eu procurei a Scopus para saber os detalhes e, na verdade, a situação era boba. O trecho de código que sai estampado na Veja (e em outros lugares) era parte do utilitário SUBST. Este utilitário, pouco usado, permitia converter acessos a uma unidade de disco para outra (para poder rodar aplicativos que tivessem a unidade fixa no código). A lógica deste utilitário é simples: ele intercepta as chamadas ao DOS e troca a letra da unidade na entrada e destroca na volta. A única complicação é que os locais onde pode estar a unidade variam conforme a função. O desenvolvedor da versão Scopus, preocupado com compatibilidade, disassemblou o utilitário original e anotou os passos feitos (basicamente testar um a um os códigos de função e fazer os ajustes conforme ele). Na hora de programar, ele seguiu diretamente estas anotações e acabou fazendo os mesmos testes na mesma ordem... O curioso é que eu acho que dificilmente faria isso pois a minha arrogância juvenil me faria inventar um forma "mais eficiente" de fazer a mesma coisa. Provavelmente usaria uma tabela, que é o que foi feito pela Scopus para gerar uma versão diferente. Mas neste ponto a reserva de mercado já estava no fim e pouco tempo depois a Microsoft foi autorizada a comercializar o MS DOS 3.3 porque as versões nacionais só seriam compatíveis dom a versão 3.2 (ou outra besteira parecida).
Um comentário:
Lembro de ter instalado uma versão do SISNE em um cliente. Nesta época eu ainda não entendia ou conhecia muito bem estes detalhes sobre sistemas operacionais, mas lembro que o aplicativo que seria utilizador não era 100% compatível com o SISNE. Depois o micro foi reformatado e instalado um MS-DOS.
Parabéns pelos artigos, resgatando os bastidores da informática no Brasil. Não vejo a hora de chegar na "parte 876" (rs!).
Postar um comentário