Introdução

O TinyRetroPad é um projeto de código aberto que reproduz o comportamento básico do Bloco de Notas do Windows XP, mas com uma redução impressionante de tamanho. O projeto foi desenvolvido por Dave Plummer, um ex-desenvolvedor da Microsoft, e está disponível no repositório GitHub PlummersSoftwareLLC/TinyRetroPad.

Ex-desenvolvedor da Microsoft cria clone do Bloco de Notas sem recursos de IA e com apenas 2,5 KB

Tamanho do Executável

O TinyRetroPad é cerca de 100 vezes menor que a versão mais recente do Bloco de Notas do Windows 11. Com apenas 2,5 KB de tamanho, é um exemplo extremo de otimização de código.

Código e Otimizações

Código Original

O TinyRetroPad é um projeto de código aberto, disponível no repositório GitHub. O código original é bastante detalhado, como pode ser visto neste arquivo: [agents.md](https://github.com/PlummersSoftwareLLC/TinyRetroPad/blob/main/agents.md).

Executável

O executável do TinyRetroPad é o arquivo trpad.exe, que pode ser encontrado neste link: [commit](https://github.com/PlummersSoftwareLLC/TinyRetroPad/blob/main/trpad.exe).

Erros de Otimização

Apesar de ser um projeto de tamanho reduzido, ainda há erros de otimização óbvios no código. Por exemplo, o uso da instrução scasb com o prefixo repne poderia reduzir drasticamente o tamanho do executável.

Otimizações Possíveis

Se o TinyRetroPad fosse escrito em C e compilado com flags de otimização para tamanho (-Os), o tamanho do executável poderia ser reduzido ainda mais. No entanto, o GCC não comete erros óbvios como o TinyRetroPad.

Estrutura do Executável

A maior parte do tamanho do executável do TinyRetroPad vem da estrutura do PE32/PE32+, que é uma parte essencial da arquitetura do Windows.

Otimizações Práticas

Para reduzir o tamanho do executável, é possível estruturá-lo manualmente ao invés de deixar o linker fazer isso. Um exemplo de um hello world de tamanho reduzido é mostrado neste post: [link](https://example.com/hello-world-reduced).

Features e Plugins

Embora o TinyRetroPad seja simples, ele ainda oferece algumas funcionalidades, como contagem de caracteres e linhas, e suporte para arquivos Markdown. Essas funcionalidades podem ser implementadas como plugins opcionais.

Conclusão

O TinyRetroPad é um exemplo notável de otimização de código, demonstrando como é possível criar um programa extremamente simples e eficiente. Embora seja um projeto de tamanho reduzido, ele ainda oferece uma funcionalidade básica que é suficiente para muitos usuários.

Tags

  • Bloco de Notas
  • Otimização de Código
  • GitHub
  • Executável
  • Windows XP
  • Linux
  • Assembly
  • C
  • MinGW
  • Otimizações de Tamanho
  • Plugins
  • Funcionalidades
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do PE32/PE32+
  • GitHub
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimizações Práticas
  • Estrutura do Executável
  • Otimiza
Bloco Cria Desenvolvedor Microsoft Notas