curso | ||
docs | ||
LICENSE | ||
README.org |
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
- Somente à vista no PIX: cursos@blauaraujo.com
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.