Você pode encontrar o artigo Dynamic Linking no Linux e Windows Caminhos de pesquisa da biblioteca compartilhada explica como as bibliotecas são encontradas. Também Bibliotecas estáticas, compartilhadas dinâmicas e carregáveis do Linux é muito bom. Uma coisa boa sobre as bibliotecas Linux é que elas têm melhor suporte para versionamento e possuem várias versões de uma biblioteca ao redor do que o Windows (AFAIK, eu não faço o Windows). Veja Versionamento de Interface de Biblioteca no Solaris e Linux para isso. Estes artigos devem realmente te cobrir com bibliotecas.
O GDB é muito poderoso, uma boa introdução é provavelmente o Tutorial do gdb do RMS . Você pode querer ler os pontos de interrupção condicionais. Para equivalentes a __asm(int 3)
, consulte a pergunta Defina o ponto de interrupção em código C ou C ++ programaticamente para o gdb no Linux .
O livro Advanced Unix Programming de Marc Rochkind é uma leitura obrigatória, IMHO. Tem muitos exemplos e abrange todos os tópicos do POSIX / SUS de uma maneira muito bem explicada. É o melhor livro sobre esse tópico que eu li até agora.
Mas para tornar sua vida mais fácil, eu realmente recomendo usar uma API de alto nível que abstraia as coisas para você, como o Qt. Também torna a escrita multi-plataforma muito mais fácil.
Fazer o Linux From Scratch ajuda você a entender como um sistema Linux é composto, mas acho que não melhora muito seu conhecimento sobre isso do ponto de vista de um desenvolvedor. Isso deixa você mais confortável com o Linux, já que você aprende quais partes existem em um ambiente Linux (e em parte também por que ). Um Linux não será uma grande caixa preta para você depois de trabalhar com o Linux From Scratch.