Os novos motores que movem nossas máquinas

Sistemas operacionais novos para micros clássicos

Ricardo Jurczyk Pinheiro (ricardojpinheiro@gmail.com)

O que você não verá nessa palestra:

  • Alguém jogando qualquer coisa.
  • Alguém rotulando os micros clássicos como "velhos".
  • Alguém distribuindo cópias piratas de jogos novos.
  • Algum "port" impossível (não, não dá pra ter Windows 10 em um ZX-81, gente, nem tente).

Mas o que você verá nessa palestra:

  • Software!
  • Sistemas operacionais!
  • Uns projetos realmente impressionantes.
  • E um sujeito falando besteira (eu).

Primeiro... O que é um sistema operacional?

E o shell? É de por no tanque do carro?

As partes do sistema operacional

  • Um núcleo do sistema, ou kernel.
  • Um conjunto de bibliotecas para acesso ao kernel.
  • Um conjunto de utilitários para interagir com a máquina.

Interfaces homem-máquina

  • Linha de comando (CLI).
  • Interface gráfica (GUI).
  • Orientada a menus (MDI).
  • Baseada em formulários (FBI).
  • Linguagem natural (NLI).

Foco da palestra

E quais sistemas eu não vou falar?

  • CP/M (Z80).
  • GEOS (C64 e Apple II).
  • GEM (IBM-PC).
  • Ease, HALNOTE, HD-MENU, LIKE, MSX VIEW, MSX Windows 95... (MSX).
  • Enfim, qualquer sistema que:
    • Tenha sido descontinuado há muito tempo.
    • Não seja um sistema operacional ou um ambiente gráfico, mas apenas um carregador de programas.
  • O foco da palestra é nos sistemas novos, sejam quais forem as suas interfaces.

Sistemas antigos ainda em desenvolvimento para micros clássicos

AmigaOS

  • A primeira versão é de 1985.
  • Antes era feito pela Commodore International (até a versão 3.1).
  • As versões 3.5 e 3.9 foram feitas pela Haage & Partner.
    • Essas versões ainda podiam ser instaladas em um Amiga "clássico" (OCS, ECS ou AGA).
  • As versões 4.0 e 4.1 foram feiras pela Hyperion Entertainment, focado na arquitetura PowerPC.
  • https://www.amigaos.net/
  • Exige um equipamento com processador PowerPC, como:
    • Computador AmigaOne.
    • Aceleradoras Blizzard e CyberStorm PPC (para os Amigas clássicos).
    • Placa Pegasos II.
    • entre outros.
  • Atual versão é a 4.1 final, de 2016.
  • Preço: 29,95 euros.
  • E pra quem não lembra... Workbench é a interface gráfica. O AmigaOS tem uma interface de linha de comando, mas ninguém se importa com ela.

FreeDOS

  • Iniciado em 1994, quando a Microsoft anunciou o fim do MS-DOS.
  • A maior parte foi feita do zero.
  • Versão 1.0 lançada em 03/09/2006.
  • Versão atual: 1.2, lançada em 2016.
  • Já se chamou Free-DOS e PD-DOS.
  • Código aberto (GPL).  
  • Não tem interface gráfica.
  • Roda em qualquer computador padrão IBM-PC.
  • Dá boot a partir de disquete, HD, CD, pendrive...
  • Foco em compatibilidade.
  • http://www.freedos.org

OpenGEM e Ozone

NetBSD

Mas é claro que roda NetBSD!

  • Última versão é a 9.0, lançada em 2020.
  • Há ports para:
    • X68000 (Sharp) - desde 1993.
    • RiscPC (Acorn) - desde 1994.
    • Amiga (Commodore).
    • BeBox (Be) - experimental.
    • EPOC PDA (Psion).
    • Macintosh (68k e PowerPC).
    • NeXT.
    • Silicon Graphics.
    • Videogames (Play 1, Dreamcast, etc).
  • http://www.netbsd.org

GNU/Linux

  • Tem ports para:
    • FM-Towns - várias distribuições, como Debian e Gentoo.
    • Amiga - teve gente rodando o kernel 4.10!
    • RiscPC - não é mais suportado.
    • NEC PC-9801 (Linux/98) - sem atualizações há muitos anos.
    • Macintosh (68k e PowerPC).
    • Playstation 1 - PSXLinux, ou Runix.
    • Tem pra PS2 também, mas foi largado no tempo e no espaço.
  • https://www.linuxfoundation.org

Novas versões de sistemas operacionais de micros clássicos

MSX-DOS 2

  • Em 2017, o usuário finlandês NYYRIKKI liberou a versão 2.40 do MSX-DOS 2, com algumas mudanças.
    • Tirou mensagens de erro em japonês;
    • Enxugou e reorganizou o código;

    • Reduziu a memória reservada para o TPA;

    • Entre algumas outras;

    • Ele não é um concorrente para o Nextor.

  • Executável diminuiu 47% do tamanho.
  • Fez tudo sem ter acesso ao código-fonte (Assembly!).
  • https://www.msx.org/news/en/new-version-of-msxdos2sys
  •  A versão original, ProDOS 8, foi distribuída entre 1983 a 1993.
  • ProDOS 16 foi feito para o Apple IIgs e substituído pelo GS/OS - usa o mesmo sistema de arquivos do ProDOS.
  • Última versão oficial: 2.0.3, de 1993.
  • Em 2016, saiu a versão 2.4, e em 2018, a 2.4.2, com correções de bugs.
  • Obra e graça do programador J. B. Brooks.
  • Várias melhorias, de tamanho menor até melhorias no desempenho.
  • https://archive.org/details/ProDOS_2_4

Herdeiros de sistemas operacionais clássicos

MagiC

  • Compatível com o TOS, do Atari ST, e parcialmente compatível com o MultiTOS e o MiNT.
  • Multitarefa preemptiva, nomes longos, FAT 32 e mais rápido do que o MiNT.
  • Feito para o Atari ST, mas tem versões para Mac e PC.
  • Comercial anteriormente, agora é código aberto, desde 2018.
  • Última versão: 6.2 (2018).
  • https://en.wikipedia.org/wiki/MagiC

Nextor

  • Obra do programador espanhol Nestor Soriano, é um sistema operacional para MSX que é o sucessor do MSX-DOS 2.
  • Tem várias melhorias, como suporte pleno a FAT 16, um particionador interno, boot em modo MSX-DOS 1, funciona em qualquer MSX, suporte para montar imagens de disco, melhoria no sistema de criação de drivers, o Disk-BASIC 3.0...
  • Código aberto, numa licença... Diferente.
  • Versão atual: 2.1 (2020).
  • https://www.konamiman.com/msx/msx-e.html#nextor
  • Baseado no OS-9, que foi criado em 1979 para arquiteturas baseadas no Motorola 6809.
    • Tandy CoCo, Dragon e outros.
  • Multitarefa, multiusuário, tempo real, baseado em processos, livre, Unix-like.
  • Até 2 Mb de RAM e partições de até 4 Gb.
  • Suporte a muito hardware feito para o CoCo.
  • Interface gráfica: Multivue.
  • Versão atual: 3.02.08 (2008).
  • http://www.nitros9.org
  • Monotarefa, atributos para arquivos, sistema de arquivos semelhante ao FAT 16, entre outros.
  • Semelhante ao MS-DOS:
    • Kernel, bibliotecas, drivers, um shell (COMMAND.COM) e utilitários.
  • Desenvolvido pela ICD, de 1987 a 1993. Depois pela FTE e agora pela DLT.
  • Era comercial, agora é freeware.
  • Código fechado.
  • Versão atual: 4.49 (2020).
  • http://spartadosx.com

Sistemas operacionais NOVOS (sem interface gráfica)

CP/Mish

  • Uma recriação do CP/M em código aberto.
  • Módulos em código aberto que substituem:
    • A BDOS - é substituída pela ZSDOS.
    • O CCP - é substituído pelo ZCPR1.
    • BIOS de código aberto para as máquinas suportadas.
  • Ferramentas semelhantes às já existentes:
  • Suporte ao Amstrad NC200, o Kaypro II e máquinas de escrever da Brother (LW-30 e WP-2450DS).
  • http://cowlark.com/cpmish/

FUZIX

  • Um UNIX para micros clássicos.
  • Because Small Is Beautiful.
  • Multiprocessos, memória virtual, nomes de arquivos com até 30 caracteres,
  • Baseado no UZI (de Douglas Braun), no UZIX (de Adriano Cunha) e vários outros elementos.
  • Ports para arquiteturas 6303, 6502, 65C816, 68000, 6803, 6809, 8080, 8085, 8086, MSP430 e Z80/Z180.
  • Imagens para Amstrad NC200, Memotech MTX512, Sam Coupé, TRS80 Model 4, ZX Spectrum +3...
  • Projeto iniciado por Alan Cox, conhecido programador do kernel Linux.
  • Versão atual: 0.4pre1 (2020).
  • http://www.fuzix.org/

FUZIX em algumas máquinas

CoCo 3

Memotech MTX512

MSX

ZX-Spectrum

Z80-SIM

Z80-MBC2

HTML5

GeckOS

  • Microkernel, multitarefa preemptiva (bem limitada), multithread, suporte a TCP/IP via porta serial... Muitas funções vindas do Unix.
  • Suporte nativo ao Commodore PET, Commodore 64 e ao CS/A65.
  • Dizem que é facilmente portável para outras arquiteturas baseadas em 6502.
  • Binário compatível com o LUnix.
  • Versão: 2.0.9 (2013).
  • http://www.6502.org/users/andre/osa/index.html
  • "Little Unix".
  • Multitarefa preemptiva, TCP/IP via serial, alocação dinâmica de memória, consoles virtuais...
  • Código aberto, escrito em Assembly.
  • Contém um servidor Web, clientes para telnet, POP3 e FTP.
  • Funciona como cliente ou servidor.
  • Commodore 64 e 128.
  • Versão 0.21 (2004). Abandonado?
  • http://lng.sourceforge.net/

Outros sistemas operacionais para Commodore 64.

Além do GeckOS e do LUnix, temos:

WheelsOS, WiNGS OS, ACE OS, Asterix OS, DOS/65 OS, Commodore DOS...

Temos ainda o TopDesk (gerenciador de arquivos do GEOS) e um megapatch pro GEM.

MiNT

  • MiNT is Now TOS.
  • Alternativa para o TOS e o MagiC.
  • Usa o sistema de arquivos do MINIX.
  • Suporte às workstations Atari TT.
  • O autor (Eric Smith) trabalhou para a Atari!
  • Lançado como o kernel do MultiTOS, usado nos Atari Falcon.
  • Depois da saída da Atari do mercado, continuou como código aberto.
  • Empacotado em distribuições.
  • Última versão: 1.18.0 (2013).
  • https://freemint.github.io/
  • Sistema operacional padrão Unix, para MSX, baseado no UZI, de Douglas Braun (assim como o FUZIX).
  • Implementa quase todas as funções da 7a edição do UNIX da AT&T.
  • Até 4 Mb de Mapper, suporte experimental para placas de rede (TCP/IP), entre outros recursos.
  • O desenvolvimento foi quase todo feito pelo brasileiro Adriano Cunha.
  • Infelizmente hoje é um projeto abandonado.
  • http://uzix.sf.net

Sistemas operacionais NOVOS (com interface gráfica)

Antes... Por que é tão difícil fazer uma interface gráfica para os micros clássicos?

  • Muitos elementos gráficos (widgets) que precisam ser desenvolvidos. Entre eles, temos janelas, ícones, menus e ponteiros.
  • Estabelecer relações entre esses elementos gráficos e o ambiente em si. Aí temos o uso de conceitos como orientação a objetos, que são pesados.
  • Estrutura "por baixo", como gerenciador de janelas, servidor de telas, etc.
  • E tudo isso tem que rodar em um microcomputador com uma capacidade de processamento mínima, se comparada à atual!
  • Proposta de ser um sistema operacional moderno e completo.
  • Meta: 100% compatível com o AmigaOS.
  • Ports para PowerPC, x86, ARM (Raspberry Pi) e 680x0 (Amiga 1200).
  • Código aberto, numa licença própria.
  • Lançado em distribuições como a AspireOS.
  • Última versão: 2.2.7 (2019).
  • https://aros.sf.net

Atari8

  • Multitarefa preemptiva (até 16 processos).
  • Sistema de arquivos compatível com FAT 12, 16 e 32.
  • Conjunto de widgets e fontes - com efeitos!
  • Uso de mouse e teclado.
  • Gerenciador de arquivos.
  • API e documentação para programadores.
  • Funciona em um Atari XL com 64 Kb.
  • Visualmente parecido com o GEOS, do C64, e com o SymbOS.
  • Disponível em ROM.
  • Última versão: Desconhecido (2019).
  • https://atari8.co.uk/gui/
  • Meta: Fazer com que o C64 sinta-se rápido e útil no mundo moderno de hoje.
  • Suporte a teclado e mouse.
  • Gerenciamento híbrido de memória.
  • API pronta, com toolkit orientado a objetos.
  • Caixas de diálogo padronizadas.
  • Área de transferência.
  • Suporte a hardware mais novo.
  • Última versão: desconhecido (2020).
  • http://c64os.com
  • Começou como um sistema para VIC-20, C64 e Apple II.
  • Hoje se declara o sistema de código aberto para a IoT.
  • Multitarefa, sistema de arquivos próprio, suporte a TCP/IP e IPv6.
  • Clientes Web, IRC, e-mail, FTP, twitter, além de servidor Web.
  • O sistema precisa de 30 Kb de RAM (com interface gráfica inclusa!).
  • Última versão (NG): 3.0 (2015).
  • http://www.contiki-os.org
  • Substituto em código aberto para o TOS, do Atari ST, com maior suporte a hardware do que o Atari TOS.
  • Monotarefa.
  • A interface gráfica padrão é o GEM.
  • Pode ser gravado em ROM, ser executado a partir de um disquete ou como um programa.
  • Dá pra todar ele nos clones do Atari ST (como a FireBee) e no Amiga...
  • Última versão: 0.9.12 (2019).
  • http://emutos.sf.net/

FutureOS

  • Sistema focado no Amstrad: 6128, 6128Plus, CPC TREX.
  • Para rodar no 464, precisa de 512 Kb de RAM.
  • Escrito em Assembly Z80 - é rápido.
  • Desenvolvimento começou em 1989.
  • Multi-linguagem.
  • Gerenciamento dinâmico de memória (suporte até 8 Mb), executáveis de até 4 Mb, e arquivos de até 16 Mb.
  • Última versão: Agosto de 2019.
  • http://www.cpcwiki.eu/index.php/FutureOS
  • Microkernel, multitarefa preemptiva.
  • Iniciado em 1999.
  • Foco em arquiteturas PowerPC (AmigaOne, Power Macs, placas como a SAM 460 e a Pegasos).
  • Pode executar qualquer programa feito para Amiga (OCS, ECS ou AGA).
  • Licença comercial com partes em código aberto.
  • Última versão: 3.13 (2020).
  • Preço: 79 euros.
  • https://www.morphos-team.net/
  • Microkernel, multitarefa preemptiva, aceita discos de até 128 Gb, GUI orientada a objetos, gerência de memória.
  • Versões para Amstrad CPC, MSX 2 e superiores, Amstrad PCW, Enterprise 64/128, CPC-TREX e o C-One.
  • Freeware, escrito em Assembly.
  • Desenvolvimento iniciado em 2000.
  • Em 2020 foi lançado o Quigs, uma ferramenta para ajudar a fazer programas para o SymbOS.
  • Última versão: 3.0 (2017).
  • http://www.symbos.de/

Em diferentes plataformas.

Algumas conclusões

Me surpreendi com a quantidade de projetos - são dezenas!

Muitos recursos novos (microkernel, multirarefa preemptiva, simulação de MMU, etc) implementados.

Faltam desenvolvedores para os projetos de código aberto.

Faltam ainda mais gente disposta a documentar, escrever bibliotecas e organizar o caos.

Fim? Ainda não.

Perguntas!

Os novos motores que movem nossas máquinas (Sistemas operacionais novos para micros clássicos)

By Ricardo Jurczyk Pinheiro

Os novos motores que movem nossas máquinas (Sistemas operacionais novos para micros clássicos)

Palestra proferida na RetroRio 2020, em 15/08/2020.

  • 316