#+title: Fundamentos da Programação em Baixo Nível #+subtitle: C e Assembly (NASM) x86_64 para GNU/Linux #+author: Blau Araujo #+email: cursos@blauaraujo.com #+options: toc:nil * 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). #+begin_quote 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 [[https://bolha.dev/blau_araujo/pbn/src/branch/main/LICENSE][Creative Commons BY-SA 4.0]]. #+end_quote * Requisitos - Noções básicas de programação em C (prepare-se [[https://www.youtube.com/playlist?list=PLXoSGejyuQGrDX08GVrQHAhh4j3KJ4iYN][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. [[curso/aula-00.org][Introdução à linguagem Assembly (NASM)]] | | 02/07 | 1. [[curso/aula-01.org][Arquitetura de computadores]] | | 04/07 | 2. [[curso/aula-02.org][Linguagens de montagem e a compilação]] | | 07/07 | 3. [[curso/aula-03.org][O formato binário ELF64]] | | 09/07 | 4. [[curso/aula-04.org][Mapeamento de memória no Linux]] | | 11/07 | 5. [[curso/aula-05.org][Pilha de hardware e pilha de memória]] | | 14/07 | 6. [[curso/aula-06.org][Vetor de argumentos de linha de comando]] | | 16/07 | 7. [[curso/aula-07.org][Vetor de ambiente]] | | 18/07 | 8. [[curso/aula-08.org][Fluxos de dados]] | | 21/07 | 9. Conversão de caracteres para números | | 23/07 | 10. Conversão de números para caracteres | | 25/07 | 11. Conversão de bases de numeração | | 28/07 | 12. Bibliotecas de macros e sub-rotinas | | 30/07 | 13. Bibliotecas compartilhadas | | 01/08 | 14. Abertura de arquivos para leitura | | 04/08 | 15. Abertura de arquivos para escrita | | 06/08 | 16. Abertura de arquivos para leitura e escrita | | 08/08 | 17. Mapeamento de arquivos | #+begin_quote As datas e tópicos podem mudar de acordo com o decorrer do curso! #+end_quote * Certificado de conclusão Ao final do curso, será fornecido um certificado de conclusão mediante a apresentação de um projeto final. #+begin_export html #+end_export * 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 [[https://t.me/blau_araujo][Telegram]].