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!

Made with Slides.com