Visão geral do curso
O curso Programação em Baixo Nível Descomplicada – aprendendo assembly x86-64 no GNU/Linux com 20 pequenos projetos é um treinamento em vídeo criado por Blau Araujo, do canal @debxp no YouTube, voltado para quem deseja compreender, na prática, como a CPU, a memória e o sistema operacional GNU/Linux trabalham para executar programas.
Em vez de se limitar a teoria, o curso guia o aprendizado por meio de 20 pequenos projetos em assembly x86-64, muitos deles reimplementando utilitários reais de linha de comando (como echo, cat, cp, wc, df), além de calculadoras, conversores e ferramentas de inspeção do sistema.
A proposta é levar o aluno da curiosidade pelo baixo nível até a capacidade de ler, escrever e depurar código em assembly x86-64 com confiança, usando GNU/Linux como plataforma principal.
Informações completas de conteúdo, datas, preço e acesso estão na página oficial do curso:
https://bolha.dev/blau_araujo/pbnd
Assista também o vídeo do Youtube no canal @debxp com informações sobre o curso:
Por que este curso de Assembly x86-64 vale atenção
Enfoque prático em baixo nível
O curso se diferencia por não tratar assembly como um tópico abstrato ou puramente acadêmico. Cada aula é estruturada em torno de um projeto concreto, que você compila, executa e depura em um sistema GNU/Linux real. Isso torna conceitos como:
• chamadas de sistema (syscalls),
• estrutura da memória virtual,
• pilha, heap e registradores,
• formatos binários (ELF),
• interação com o kernel
muito mais tangíveis.
Ao final, você não apenas entende “o que é assembly”, mas como o seu código de baixo nível conversa de fato com o sistema operacional.
Conexão direta com o dia a dia em Linux
Os projetos foram escolhidos com foco em quem vive no terminal. Ao reimplementar comandos clássicos (echo, cat, cp, head, tail, wc, df e outros), você aprende:
• parsing de argumentos,
• leitura e escrita em arquivos,
• manipulação de streams padrão,
• construção de CLIs em assembly,
• controle de erros no nível das instruções.
Isso é especialmente valioso para quem já usa GNU/Linux e quer entender o que se passa “por baixo” ao executar esses utilitários.
Relevância para cibersegurança, sistemas e performance
Dominar assembly x86-64 no GNU/Linux é um diferencial real em áreas como:
• cibersegurança e engenharia reversa, onde é necessário ler binários e seguir o fluxo de execução em nível de instrução;
• sistemas operacionais e kernel, que usam intensamente chamadas de sistema, manipulação de memória e controle de contexto;
• HPC e otimização de código, em que é essencial entender o impacto de determinadas instruções na performance;
• compiladores e runtimes, que geram exatamente esse tipo de código em x86-64.
O curso do Blau Araujo oferece a base prática para isso, com foco em projetos que espelham ferramentas reais de sistema.
Proposta do curso
A proposta central do curso é:
Dirigir o aprendizado dos fundamentos da programação em assembly x86-64 no GNU/Linux pelo desenvolvimento de 20 pequenos projetos didáticos.
Ou seja, cada conceito importante da linguagem e da plataforma é introduzido no contexto de um projeto funcional. A progressão é pensada para que você:
1. aprenda o básico de escrita e leitura em assembly,
2. pratique a construção de utilitários reais,
3. avance para trabalho com números e ponto flutuante,
4. chegue à inspeção de sistema de arquivos, dispositivos, memória e CPU.
Requisitos para acompanhar
Para aproveitar o curso com tranquilidade, é recomendado que você tenha:
• Noções básicas de programação imperativa procedural
Qualquer experiência prévia com C, Python, Go, Rust ou linguagens similares ajuda bastante.
• Noções básicas de uso do shell e de utilitários de linha de comando
Saber navegar no terminal, usar pipes, redirecionamentos e comandos básicos do GNU/Linux.
• Sistema operacional GNU/Linux
Pode ser instalado diretamente na máquina ou em máquina virtual.
• Persistência e vontade de aprender
Assembly exige atenção a detalhes; o curso ajuda a descomplicar, mas é um universo de baixo nível, e persistência faz diferença.
Se você já escreve pequenos scripts, usa o terminal com frequência e tem curiosidade sobre como o sistema funciona internamente, este curso encaixa bem no seu perfil.
Formato das aulas e recursos oferecidos
Estrutura em vídeo
• O curso é composto por 20 aulas em vídeo, cada uma focada no desenvolvimento de um pequeno projeto em assembly x86-64 (por vezes integrado com código em C).
• Dependendo do volume de conteúdo de cada lição, uma aula pode ser dividida em vários vídeos menores para facilitar acompanhamento.
• Os vídeos são publicados como “não listados” no YouTube, ou seja, não aparecem em buscas públicas; o acesso é feito somente por link, fornecido no repositório do curso.
Repositório exclusivo
Ao adquirir o curso, você passa a ter acesso permanente a um repositório privado em bolha.dev, com:
• links de todas as aulas em vídeo já publicadas;
• código-fonte dos programas desenvolvidos ao longo do curso;
• uma aba de issues, onde é possível:
• tirar dúvidas;
• discutir detalhes das aulas;
• comentar implementações e tópicos do conteúdo.
Essa combinação de vídeo + repositório + issues transforma o curso em um ambiente de estudo contínuo, com suporte textual e prático.
Notas importantes sobre formato e licenciamento
Há algumas instruções relevantes sobre como aproveitar melhor o material:
• Faça o download de todos os vídeos do curso
Como haverá mudanças futuras na forma de disponibilização pública, é recomendado guardar localmente as aulas.
• Clone o repositório do curso
Assim você tem o código-fonte e os materiais sempre à mão, mesmo que haja alterações no acesso remoto.
• Licença dos vídeos: Creative Commons BY-SA 4.0 Internacional
Isso significa que você pode:
• copiar, compartilhar e adaptar o conteúdo;
• desde que dê os devidos créditos;
• informe claramente alterações que fizer;
• mantenha o mesmo tipo de licença (BY-SA 4.0) em tudo que compartilhar.
Essa escolha de licença é rara em cursos comerciais e reflete uma postura alinhada com software livre e compartilhamento de conhecimento.
Cronograma de publicação
O curso tem um cronograma inicial de publicação definido:
• O primeiro vídeo será publicado na semana de 5 de outubro de 2026.
• Não há data precisa para a publicação da última aula, porque o número de vídeos por projeto pode variar.Ainda assim, você pode considerar um mínimo de:
• 20 semanas de publicação (cerca de 5 meses a partir de outubro de 2026).
Depois que todas as aulas forem publicadas:
• 3 meses após a última aula, os vídeos serão:
• cortados (editados) e
• publicados de forma periódica no YouTube apenas para membros do canal.
Em seguida:
• após a publicação dos cortes do Módulo 1 para membros,
• esses mesmos cortes começam gradualmente a ser liberados para todo o público.
Para quem adquire o curso, porém, o acesso aos vídeos completos e ao repositório é garantido desde o início, com a possibilidade de download e uso contínuo.
Para acompanhar datas, atualizações e detalhes do cronograma, acesse:
https://bolha.dev/blau_araujo/pbnd
Conteúdo detalhado do curso
O conteúdo está organizado em 4 módulos que constroem o aprendizado de forma progressiva.
Módulo 1 – Entrada e saída
Este módulo apresenta os conceitos básicos da linguagem assembly x86-64 e da plataforma GNU/Linux, sempre em projetos que trabalham com entrada e saída de dados.
1. Salve, simpatia!
Temas abordados:
• introdução ao assembly x86-64;
• chamadas de sistema (syscalls);
• como o código-fonte vira programa;
• formato ELF e objetos binários;
• passo a passo de como programas são executados;
• descritores de arquivo;
• escrita na saída padrão.
Este projeto constrói a base mental para entender o fluxo de um programa desde o código até a execução no sistema.
2. Qual é a sua graça?
Temas abordados:
• leitura da entrada padrão;
• dados não inicializados;
• tratamento de erros;
• integração com C;
• convenções de chamada (calling conventions);
• passagem de parâmetros e retorno de valores;
• visibilidade de símbolos.
Aqui você começa a combinar assembly com C, entender como funções se chamam mutuamente e como parâmetros são manejados pela pilha.
3. Um para você, um para mim
Temas abordados:
• estrutura da memória virtual;
• conteúdo inicial da pilha;
• argumentos de linha de comando e ambiente;
• decisão e repetição em baixo nível;
• uso de pipes e redirecionamentos;
• leitura de arquivos.
Este projeto aproxima o aluno da realidade de programas que interagem com o ambiente do shell e com o sistema de arquivos, lidando com controles de fluxo explícitos.
4. Jogo da adivinhação
Temas abordados:
• reutilização de código;
• validação de entrada de dados;
• tipos inteiros e seus limites;
• conversão de strings para inteiros e vice-versa;
• geração de números aleatórios;
• estilização da impressão de caracteres.
É uma aplicação lúdica que reforça manipulação de dados, conversões numéricas e controle de fluxo, conectando lógica de jogo com fundamentos de assembly.
Módulo 2 – Utilidades
Este módulo expande a prática do Módulo 1 com foco em reimplementação de utilitários clássicos do GNU/Linux em assembly x86-64. É uma forma de aprender construindo ferramentas que você já usa no dia a dia.
5. Comandos true e false
Temas abordados:
• reimplementação dos comandos true e false;
• decisões com base nos argumentos.
São comandos simples, ótimos para entender códigos de retorno e lógica binária de sucesso/erro em programas de shell.
6. Comando echo
Temas abordados:
• reimplementação do comando echo;
• lidar com múltiplas opções de linha de comando.
Você passa a manipular argumentos com mais flexibilidade, configurando saída textual e opções que alteram comportamento.
7. Comandos cat
Temas abordados:
• reimplementação do comando cat;
• construção de uma interface de linha de comandos (CLI);
• decidir o que fazer conforme o estado da entrada padrão;
• abertura de arquivos para leitura.
Este projeto reforça leitura de dados, fluxo por stdin, e manipulação de arquivos em baixo nível.
8. Comando cp
Temas abordados:
• reimplementação do comando cp;
• abertura de arquivos para escrita;
• verificação da existência de arquivos;
• prompt de confirmação.
Aqui o foco é escrita em arquivos, cópia de dados e interações mais ricas com o usuário via terminal.
9. Comandos head e tail
Temas abordados:
• reimplementação de head e tail;
• leitura por linhas e por quantidade de bytes.
Você aprofunda manipulação de buffers, contagem de linhas e slicing de dados, essenciais para trabalhar com streams.
10. Comando wc
Temas abordados:
• reimplementação do comando wc;
• contagem de linhas, palavras e bytes.
Este projeto explora análise simples de texto e estatísticas de arquivo, reforçando lógica de contagem e parsing.
11. Comando rev
Temas abordados:
• reimplementação do comando rev;
• inversão dos caracteres de cada linha lida.
É um exercício interessante em manipulação de strings e memória, invertendo sequências de caracteres.
12. Comando tac
Temas abordados:
• reimplementação do comando tac;
• inversão das linhas de um ou mais arquivos.
Complementa o rev, agora invertendo a ordem das linhas, ampliando seu repertório de manipulação de estruturas de dados.
Módulo 3 – Números
Neste módulo, o foco muda para números inteiros, ponto flutuante e outras bases de numeração, conectando operações matemáticas com o mundo real.
13. Conversão de bases
Temas abordados:
• conversão de strings numéricas em várias bases para inteiros;
• impressão de inteiros nas bases 2, 8 e 16.
É um projeto essencial para entender como o sistema lida internamente com diferentes representações numéricas e como isso aparece em ferramentas como debuggers e hexdumps.
14. Calculadora aritmética clicalc
Temas abordados:
• as cinco operações aritméticas com inteiros;
• representações de ponto flutuante;
• cálculos com ponto flutuante.
Você exercita tanto operações inteiras quanto decimais, entendendo as particularidades de cada tipo e possíveis armadilhas de precisão.
15. Calculadora lógica
Temas abordados:
• inclusão de operações lógicas bit a bit na calculadora;
• implementação do uso interativo.
Aqui entra o universo dos operadores bitwise, fundamentais para quem trabalha com protocolos, flags e otimizações de baixo nível.
16. Conversor de unidades de temperatura
Temas abordados:
• conversões entre Celsius, Fahrenheit e Kelvin;
• prática com números de ponto flutuante.
É um projeto mais aplicado, que combina matemática simples com manipulação de floats, reforçando o que foi visto na calculadora.
17. Bytes e bibytes
Temas abordados:
• representações “humanas” de quantidades de bytes;
• contagem decimal e por potências de base 2.
Você passa a entender melhor como sistemas expressam tamanhos de arquivos, discos e memória, em termos tanto decimais quanto binários (KB vs KiB, por exemplo).
Módulo 4 – Sistema
O último módulo foca em inspeção de sistema, abordando ambiente, CPU, memória, dispositivos de bloco e sistema de arquivos em projetos inspirados em utilitários conhecidos.
18. Informações (asfetch)
Temas abordados:
• reprodução simplificada de programas como neofetch;
• dados de ambiente exportados (usuário e host);
• extração de dados em formato de variáveis de shell (sistema operacional);
• extração de campos de texto (shell interativo padrão);
• informações do kernel;
• informações da CPU;
• tamanho e uso de memória.
Este projeto reúne diversos conceitos anteriores, consolidando leitura de arquivos especiais, parsing de texto e integração com o ambiente de sistema.
19. Dispositivos bloco (asblk)
Temas abordados:
• reprodução simplificada do utilitário lsblk.
Você aprende a consultar informações sobre dispositivos de bloco (como discos e partições), aproximando-se da forma como o sistema enxerga o armazenamento.
20. Uso do sistema de arquivos (asdf)
Temas abordados:
• reprodução simplificada do utilitário df.
Aqui o foco é relatório de uso do sistema de arquivos, conectando conceitos de blocos, inodes, tamanhos e percentuais de uso de disco.
Procedimento de aquisição e acesso
Investimento
Há uma promoção de pré-lançamento, válida até 30/09/2026:
• Mercado Pago ou PayPal: R$ 450,00
• Pagamento à vista no PIX: R$ 360,00 (20% de desconto)
Para quem quer garantir o melhor valor, o pagamento via PIX é a opção mais vantajosa nesse período.
Formas de pagamento
As opções disponíveis são:
• PIX
• Chave: [email protected]
• PayPal
• Utiliza o mesmo link usado para doações ao canal.
• Mercado Pago
• Com várias opções de parcelamento.
Isso dá flexibilidade para quem prefere pagamento à vista com desconto ou parcelado com gateways tradicionais.
Como obter acesso ao curso
Após efetuar o pagamento, o procedimento é:
1. Criar uma conta na git forge bolha.dev.
2. Enviar um e-mail para [email protected] com os seguintes dados (todos obrigatórios):
• nome completo;
• e-mail para contato;
• nome de login em bolha.dev (para acesso ao repositório);
• CPF ou CNPJ (para emissão de nota fiscal);
• comprovante de pagamento (em anexo).
Em resposta, o acesso ao repositório exclusivo será liberado, e você receberá o link direto para ele.
Para conferir os detalhes oficiais e acompanhar atualizações, acesse:
https://bolha.dev/blau_araujo/pbnd
Pontos fortes do curso
• Didática por projetos: aprender assembly desenvolvendo ferramentas concretas torna o conteúdo mais acessível e memorável.
• Forte alinhamento com GNU/Linux: ideal para quem já usa ou quer usar Linux como principal ambiente de desenvolvimento.
• Integração assembly + C: mostra como combinar linguagens de alto e baixo nível no mesmo projeto.
• Licença aberta (CC BY-SA 4.0): permite copiar, compartilhar e adaptar o conteúdo, mantendo créditos e licença.
• Foco em utilitários reais: reimplementar echo, cat, cp, wc, df etc. conecta o aprendizado com o que você usa todos os dias.
• Preparação para áreas avançadas: dá base prática para seguir em direção a segurança, kernel, HPC, compiladores e otimização de código.
Para quem este curso é indicado
• Pessoas que já possuem noções básicas de programação e querem “descer um nível” para entender como o código conversa com o hardware e com o sistema operacional.
• Usuários de GNU/Linux que desejam aprofundar o conhecimento além do uso de comandos prontos.
• Estudantes de Ciência da Computação, Engenharia de Software ou áreas afins que buscam base sólida em arquitetura de computadores e sistemas operacionais.
• Entusiastas de cibersegurança e engenharia reversa, que precisam ler e interpretar assembly x86-64 rotineiramente.
• Desenvolvedores interessados em performance, otimizações e entendimento de código gerado por compiladores.
Perguntas frequentes (FAQ)
É necessário já saber assembly para fazer o curso?
Não. O curso parte da introdução aos conceitos básicos de assembly x86-64 no Módulo 1 e avança gradualmente. O requisito é ter noções de programação imperativa e algum conforto com uso de terminal em GNU/Linux.
Posso acompanhar usando GNU/Linux em máquina virtual?
Sim. O curso explicitamente indica que o sistema operacional pode ser utilizado em máquina virtual, o que é uma excelente opção para quem está em Windows ou macOS.
O conteúdo em vídeo fica disponível para sempre?
Você terá acesso ao repositório com links para os vídeos não listados e é orientado a baixar todos os vídeos e clonar o repositório. Isso garante que você tenha o material localmente, independentemente de mudanças futuras na publicação pública de cortes no YouTube.
Posso compartilhar partes do curso com outras pessoas?
Sim, dentro dos termos da licença Creative Commons BY-SA 4.0:
• é permitido copiar, compartilhar e adaptar;
• desde que os créditos sejam mantidos;
• alterações sejam claramente indicadas;
• e a mesma licença BY-SA 4.0 seja aplicada ao que você compartilhar.
O curso é mais teórico ou prático?
O curso é fortemente prático, com foco em 20 projetos que resultam em programas funcionais. A teoria aparece sempre dentro do contexto do que está sendo implementado.
Como começar
Para quem quer colocar as mãos na massa com assembly x86-64 no GNU/Linux, com um foco claro em projetos reais e utilitários de sistema, o curso do Blau Araujo oferece um caminho estruturado e bem alinhado com a realidade de quem vive no terminal.
Veja todos os detalhes, condições de pré-lançamento, conteúdo completo e instruções de acesso diretamente na página oficial do curso: