134 lines
5.1 KiB
Org Mode
134 lines
5.1 KiB
Org Mode
#+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 e forma de pagamento
|
|
|
|
- *Inscrições:* até 27 de junho de 2025
|
|
- *Valor parcelado:* R$300,00 (em até 6x sem juros)
|
|
- *À vista no PIX:* R$270,00 (10% de desconto)
|
|
|
|
#+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]].
|
|
|