Dar ao aluno uma visão geral do sistema ao qual o software de aplicação é executado em sistemas embarcados que apresentam sistemas operacionais. Apresentar técnicas de programação eficazes ao alcance dos alunos de engenharia elétrica, possibilitando um conhecimento facilitador no desenvolvimento de softwares em sistemas embarcados. Apresentar ferramentas de desenvolvimento de software e seus conceitos fundamentais para um desenvolvimento mais eficiente e consistente.
• Conceitos básicos de sistemas operacionais. • Tipos de núcleos (kernel). • Conceitos básicos de programação orientada a objetos. • Conceitos básicos de programação funcional. • Ferramentas de auxílio ao do processo de produção e testes de software. • Ferramentas para o desenvolvimento de software colaborativo: controle deversões distribuída.
• Conceitos básicos de sistemas operacionais: as funções mínimas de um sistema operacional: abstração da camada de hardware, IPC, MM e TM; • Kernel monolítico vs microkernel (Torvalds vs Tanenbaum); kernel premptivo e não preemptivo. • Inicialização system-V e systemd • Sistema de arquivos, dispositivos mapeados em arquivos, interfaces por sockets • Ferramentas para o desenvolvimento de software colaborativo: controle de versões distribuída (git) • Ferramentas de auxílio ao processo de produção de software: ◦ compilação por dependências; ◦ depuração; ◦ profiling; linking; etc.
Bil Lewis, Dan LaLiberte, R. Stallman. “Emacs LISP Reference Manual”, Free Software Foundation, Boston 2022. Luiciano Ramalho, “Python Fluente”, Novatec Editora, 2015. Mauricio Ayala-Rincón, Flávio Leonardo Cavalcanti De Moura, “Fundamentos da Programação Lógica e Funcional”, Editora UnB; 1a edição, 2014. Richard E. Silverman. “Git: Guia Prático”, Novatec Editora; 1a Edição (5 abril 2019). Edmund Weitz. “Common Lisp Recipes: A Problem-Solution Approach”, Apress; 1st ed. Edição (1 janeiro 2016). Paul Graham. “On LISP: Advanced Techniques for Common LISP”. Pearson (9 setembro 1993). Harley Hahn . “Harley Hahn's Emacs Field Guide”. Apress; 1a Edição (21 dezembro 2015) Steven F. Lott, “Modern Python Cookbook”, Packt Publishing; 2o edição, 2020. Complementar: Michael Kerrisk, “The Linux Programming Interface: A Linux and UNIX System Programming Handbook”. No Starch Press; 1a Edição (27 outubro 2010). Paul Deitel, Harvey Deitel. “C: Como Programar”, Pearson Universidades; 6a Edição (25 junho 2011). Joel Murach, Mary Delamater. “Murach's C++ Programming”, Mike Murach and Associates, Inc. (28 setembro 2018).