Fundamentos da Programação em Baixo Nível
Find a file
2025-05-28 10:06:01 -03:00
curso conteúdo da aula 0 2025-05-28 10:03:55 -03:00
docs documentação do nasm 2025-05-28 10:04:29 -03:00
LICENSE Initial commit 2025-05-13 01:05:54 -03:00
README.org link da aula 0 2025-05-28 10:06:01 -03:00

Fundamentos da Programação em Baixo Nível

O que vamos aprender

  • Noções de arquiteturas de computadores.
  • O que são programas para o sistema operacional.
  • O que são instruções de CPU.
  • Como a CPU executa instruções.
  • Como o GNU/Linux executa programas.
  • Como a memória é estruturada para executar programas.
  • Como montar programas com o NASM (The Netwide Assembler).
  • Como tornar programas em assembly executáveis.
  • O que são chamadas de sistema.
  • Como escrever programas para a linha de comandos.
  • Como abrir arquivos para leitura e escrita.
  • Como utilizar a biblioteca C padrão (glibc).
  • Como criar bibliotecas para uso em Assembly.
  • Como implementar funções para uso em C.
  • Como utilizar o GNU Debugger (GDB) para inspecionar dados na CPU e na memória.

Como vamos aprender

  • Serão 3 aulas online e ao vivo semanais por 6 semanas (via Jitsi).
  • Cada aula consistirá de uma apresentação em vídeo, discussões e demonstrações práticas.
  • Tópicos em vídeo gravados e publicados previamente no Youtube (acesso público).
  • Anotações, exercícios e exemplos neste repositório (acesso público).

O curso em si é o que acontece nas aulas ao vivo por videoconferência. Todo o conteúdo em vídeo e textos é público e estará disponível, para quem quiser estudar por conta própria, sob os termos da licença Creative Commons BY-SA 4.0.

Requisitos

  • Noções básicas de programação em C (prepare-se aqui).
  • Noções básicas de operação do GNU/Linux pelo terminal.
  • Uma instalação do GNU/Linux (pode ser em máquina virtual).
  • Muita curiosidade e vontade de aprender.

Conteúdo e carga horária

  • 18 aulas de até 2 horas.
  • Total aproximado de 35 horas.
Data Tópico
30/06 0. Introdução à linguagem Assembly (NASM)
02/07 1. Arquitetura de computadores
04/07 2. Linguagens de montagem e a compilação
07/07 3. O formato binário ELF64
09/07 4. Mapeamento de memória no Linux
11/07 5. Pilha de hardware e pilha de memória
14/07 6. Vetor de argumentos de linha de comando
16/07 7. Vetor de ambiente
18/07 8. Fluxos de dados padrão
21/07 9. Chamadas de sistema
23/07 10. Conversão de caracteres para inteiros
25/07 11. Conversão de inteiros para caracteres
28/07 12. Sub-rotinas
30/07 13. Macros e bibliotecas
01/08 14. Abertura de arquivos para leitura
04/08 15. Abertura de arquivos para escrita
06/08 16. Utilizando funções da GLibc
08/08 17. Implementando funções para uso em C

As datas e tópicos podem mudar de acordo com o decorrer do curso!

Certificado de conclusão

Ao final do curso, será fornecido um certificado de conclusão mediante a apresentação de um projeto final.

Inscrições antecipadas (até 13/06/2025)

  • Inscrição individual: R$220,00 (desconto de R$80,00)
  • Grupos e doações: R$180,00/pessoa (mínimo de 3 inscrições)

Como se inscrever

1. Realize o pagamento pela forma escolhida

2. Envie um e-mail com seus dados

Destinatário: cursos@blauaraujo.com

Informações (obrigatórias):

  • Comprovante de pagamento
  • Nome completo de cada pessoa inscrita
  • E-mail de contato de cada pessoa inscrita
  • CPF/CNPJ de quem está realizando o pagamento
  • Endereço postal completo com CEP de quem está realizando o pagamento

No caso de doações e grupos, incluir:

  • Nome completo de quem está realizando o pagamento
  • E-mail de contato de quem está realizando o pagamento

Esses dados são necessários para a emissão da nota fiscal em nome de quem realiza o pagamento.

3. Aguarde a resposta

Seu e-mail será respondido em até 24h para confirmar sua inscrição e dar algumas informações sobre o início das aulas. Você também receberá a nota fiscal eletrônica no e-mail informado.

Outras informações e casos especiais

Envie um e-mail para cursos@blauaraujo.com ou me procure no Telegram.