Linguagem Go utilizada para rodar Diablo no Dreamcast

Go runtime for Dreamcast using gccgo and KOS

Linguagem Go utilizada para rodar Diablo no Dreamcast


 O Gerente de engenharia de software da Red Hat, Panagiotis Georgiadis escreveu eu seu perfil no X:
"Eu tornei possível escrever código golang para o Sega Dreamcast. Sim, o console de 1999. Sim, Go de verdade com gorotines e channels. Aqui está uma intro de Diablo rodando no hardware real." 


 Panagiotis descreve que Golang para Dreamcast fornece as mesmas características (garbage collection, goroutines, channels e as funções do core runtime) mas que substituiu o runtime padrão do Go por um uma implementação mínima (o libgodc) projetada especificamente para o Dreamcast de acordo com as especiações: e sem sistema operacional¹.

Limitações

 Panagiotis disponibilizou uma documentação sobre as limitações da biblioteca libgodc que é essencial entender para escrever programas Go para Dreamcast.


 Algumas de suas limitações estão relacionadas no total de memória RAM (apenas 16MB de RAM sendo distribuídos para o KOS, seus drivers e malloc; GC; pilhas; seu código. Ele não possui memória virtual, não possui swap, e não possui segunda chance e caso ocorra de ultrapassar esse limite, o jogo crasha), o processador ser single-core SH-4 operando a 200MHz; os tempos de pausa que o garbage collection podem levar cada frame leve 16.6ms ou até causar stutter; pilhas fixas a 64k; sem Parallelismo (M:1); é Cooperative e não preemptive; alguns recursos não implementados ou algumas implementações limitadas. Há mias detalhes sobre limitações que podem ser lidos aqui, mas apesar destas diferenças, podemos escrever código go normal, as rotinas go funcionam, channels, mapas, slices, interfaces funcionam.

 O Go runtime para Dreamcast depende do gccgo e do KOS (KallistiOS).



 O Go para Dreamcast está disponível sob a clausula 3 BSD porém, algumas partes estão sob outras licenças como o brkout (que é um port Go do jogo original desenvolvido por Jim Ursetto) que está sob GPLv2.

 Eu como um apaixonado por Dreamcast fico muito feliz de ver a galera de Linux envolvida com o console.


¹Apesar de se ver escruto no Dreamcast Windows CE, O Dreamcast não possui sistema operacional instalado nele e sim em sua mídia.


Comente com o Facebook:

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (6) A.I (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (34) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (18) canonical (1) canto do Diego Lins (2) certificações Linux (7) Código Fonte (53) comandos (33) comp (1) compressores (9) consoles (1) container (8) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (14) Debian (31) desempenho (2) desenvolvimento (102) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (91) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (4) diocast (1) dioliunx (3) distribuições Linux (14) Docker (13) DragonflyBSD (24) driver (2) dropbear (3) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (11) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (21) Funtoo Linux (13) games (95) garbage collector (1) gerenciadores de pacotes (4) glaucus (8) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (13) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (39) kde (1) kernel (141) lançamento (64) leis (1) LFCS (1) libs (2) licenças (10) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (4) lkgr (1) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (180) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (10) nimlang (2) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) ONLYOFFICE (5) open source (85) OpenBSD (8) OpenShift (1) oracle (1) os vários sabores de Linux (46) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (3) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (71) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (16) Sega (1) Sega Saturn (1) segurança digital (27) servidor web (2) servidores (3) shell (11) shell script (8) sistema operacional (25) skarnet (2) smartphones (3) Software livre e de código aberto (150) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (7) systemd (9) terminal (90) terminal de comandos (21) toca do tux (1) toybox (30) tutorial (6) Tux (3) ubuntu (1) unboxing (7) UNIX (17) UNIX Toolbox (13) vartroy (1) vga (1) virtualização (3) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (16) zsh (3)