quinta-feira, dezembro 10, 2020

Memórias dos Anos 80: A versão 2 do SISNE

Como já mencionei antes, após o lançamento da versão 1 do SISNE e do Nexus 1600 a Scopus ficou sem saber para onde ia. Para mim foi uma surpresa quando decidiram ir em frente com a versão 2 do SISNE.


A versão 2 do DOS

A versão 1 do DOS era bastante restrita. A "API" era inspirada no CP/M-80, com o acesso aos arquivos (organizados em um diretório único) sendo controlado por estruturas dentro da memória do programa (as FCBs). Obviamente o diretório único não era apropriado para HDs. A inspiração para a nova estrutura veio do UNIX (o Linux, ainda mais fortemente inspirado no UNIX, só seria lançado uma década depois). É bom lembrar que a Microsoft distribuía uma versão do UNIX, o XENIX. Inclusive via o XENIX como o futuro dos sistemas operacionais para o PC.

O DOS 2 mantinha as funções do DOS 1 por compatibilidade, mas acrescentava duas dúzias de novas funções. A maioria delas era para acesso a arquivos e diretórios, com um API semelhante ao UNIX. Internamente as funções antigas eram convertidas com as novas. As aplicações rapidamente migraram para usar as novas funções e poder tirar maior proveito da estrutura em árvore dos diretórios.

Uma dificuldade boba acabou tendo um efeito duradouro. O CP/M-80 não era muito restrito quanto as caracteres que podiam ser usados nos nomes dos arquivo, o que complicava distinguir nomes de arquivos de opções de controle. O utilitário PIP usava '[' para indicar opções! Na versão 1 do DOS o caracter '/' foi usado para indicar opções (possivelmente porque '-' podia ser usado no nome do arquivo). Daí não dava usar o '/' como separador de diretórios no DOS 2 e o jeito foi usar o '\'. Existiam funções do DOS 2 para mudar estes caracteres, mas todo mundo se acostumou rapidamente com a barra invertida.

Quem quiser se divertir, a Microsoft disponibilizou os fontes do MS DOS 2.0 no github.

A versão 2 do SISNE

O objetivo da versão 2 do SISNE era ser compatível com o DOS 2 e este objetivo permaneceu mesmo quando o DOS 3 foi lançado durante o projeto (lembrando, as primeiras versão do DOS 3 não traziam grandes diferenças para usuários e programadores).

A equipe montada para o projeto foi menor. Não lembro muito dos detalhes, mas o núcleo foi feito por três pessoas. Apesar de ser o mais novo dos três, eu fui nomeado o líder... O prazo foi de 9 meses e foi cumprido.

Dadas as diferenças entre a versão 1 e 2 foi decidido reescrever todo o código. A versão 1 tinha sido feita em um dialeto de Pascal, a versão 2 foi escrita em C, que começava a se espalhar para fora do mundo UNIX. O compilador foi o Lattice C (não lembro se versão 1 ou 2).

Desde o começo do projeto já pensando em sair da Scopus. Eu estava convencido que uma empresa de hardware não era o melhor ambiente para um desenvolvedor de software (e continuo achando isso). Pouco tempo após a finalização do Sisne 2 eu fui para o meu segundo emprego.

O relato das aventuras na nova empresa começam no ano que vem, as memórias vão tirar uma folga de Boas Festas.


5 comentários:

Anônimo disse...

Estava ansioso por suas memórias também sobre o Nexus 2600 mas pelo jeito não deu tempo...Tenho uma placa mãe de Nexus 2600, acho ela linda e também conheci pessoalmente um dos engenheiros que participaram do projeto. Então Boas Festas a você e família e até o próximo ano.

Daniel Quadros disse...

Eu falei um pouco sobre o Nexus 2600 no post anterior. Foi um projeto principalmente de hardware e sem muito alvoroço na empresa, mas o resultado foi muito bom.

Antonio Ring disse...

A Scopus tinha um time maravilhoso na primeira metade dos anos 80 e assim como em “The Soul of a New Machine” criamos algo incrível e não reproduzível, a não ser por aquelas pessoas. Cada projeto realizado com carinho e competências únicas nos levaram a inúmeros “golden moments”. Quem fez parte daquele time nunca esquece.

Abrantes disse...

O livro O crime de Prometeu de Marcos Dantas diz que o projeto Sisne foi coordenada pela engenheira Graça Bressan. Esta correta esta informação ? A Microsoft chegou a mover um processo judicial de violação de direito autoral ou nao chegou a faze-lo ? Abrantes(otimistarj@gmail.com)

Daniel Quadros disse...

Abrantes, se a memória não falha (os anos 80 foram muito loucos!) a Graça entrou na Scopus depois da versão 1 do Sisne ser finalizada. Ela foi uma das três pessoas que participaram do desenvolvimento do núcleo da versão 2 (as outras duas foram eu e Sebatião Barreto), a coordenação deste projeto foi minha. Eu saí da Scopus pouco depois e não acompanhei as evoluções do Sisne, mas seria natural a Graça assumir a coordenação dada a sua experiência e competência. O que eu soube sobre reclamações da Microsoft foi o que falei no post sobre a versão 1 do Sisne, onde as semelhanças de código estava num utilitário. Me surpreenderia grandes semelhanças no núcleo, pois o Sisne foi desenvolvido em Pascal (versão 1) e C (versão 2 em diante) enquanto o MS DOS foi escrito em Assembler.