Resenha: The Linux Programming Interface

Em 10/01/2011, em Resenhas, por Sergio Prado

tlpi(2) Resenha: The Linux Programming InterfaceRecen­te­mente recebi em mãos uma cópia do livro “The Linux Pro­gram­ming Inter­face”, de Michael Ker­risk. Con­fesso que fiquei pos­i­ti­va­mente sur­preso com a qual­i­dade e o con­teúdo do livro, que ape­sar de estar ainda em sua primeira edição, pub­li­cado em 2010, me parece a décima, pelo vol­ume de infor­mações que encon­tramos nele.

O obje­tivo prin­ci­pal do livro é descr­ever toda a inter­face de pro­gra­mação (API) do Linux, chamadas do sis­tema, bib­liote­cas e out­ras inter­faces de baixo nível. Quer alguém mel­hor para escr­ever sobre a API do Linux do que Michael Ker­risk, o respon­sável pelo pro­jeto man-pages do Linux?

Desde o bons “Advanced Pro­gram­ming in the UNIX Envi­ron­ment” e  “The Art of UNIX Pro­gram­ming”, eu não via um livro tão com­pleto. Repito, com­pleto mesmo. O livro é uma ver­dadeira bíblia. São 1.506 pági­nas divi­di­das em 64 capí­tu­los e 6 apêndices, com tudo o que se pode imag­i­nar sobre a inter­face de pro­gra­mação Linux.

Os primeiros capí­tu­los começam pelo histórico do Linux e con­ceitos bási­cos de pro­gra­mação para ambi­entes UNIX, incluindo proces­sos, alo­cação de memória e sis­temas de arquivo. Alguns capí­tu­los são ded­i­ca­dos à comu­ni­cação entre proces­sos (IPC), threads, pipes, fifos, mes­sage queues, semá­foros, incluindo pro­gra­mação segura; e depois pas­sando para con­ceitos mais avança­dos como memória com­par­til­hada, memória vir­tual, ter­mi­nais e pseudoter­mi­nais.  Além de dedicar alguns capí­tu­los para con­ceitos de socket e pro­gra­mação em redes.

Todos os capí­tu­los con­tém exer­cí­cios para praticar e fixar alguns conceitos.

Enfim, se hoje eu tivesse que escol­her ape­nas um livro sobre pro­gra­mação Linux para levar em qual­quer lugar, “The Linux Pro­gram­ming Inter­face” seria o livro. Recomendo para qual­quer um que quiser apren­der ou se apro­fun­dar na API do Linux.

Um abraço,

Ser­gio Prado

VN:F [1.9.17_1161]
Rat­ing: 6.3/10 (7 votes cast)
Resenha: The Linux Pro­gram­ming Inter­face, 6.3 out of 10 based on 7 ratings

Posts rela­ciona­dos:

  1. Resenha: Embed­ded Soft­ware The Works
  2. Vídeo: Intro­dução à inter­face usb
Tags:  
  • http://www.sumicity.com.br Jovino Gonçalves

    Salve! Ser­gio, blz? Seu blog e seus arti­gos são show! Uso GNU/Linux desde 1999, minha primeira dis­tro foi o conec­tiva linux 3.0 guarani. Vivi todos esses anos como um entu­si­asta e amante de Soft­ware livre e Código aberto lendo muitos how­tos e seguindo a comu­nidade. Tra­balho com redes e gostaria muito de saber como começar a desen­volver ambi­entes linux embar­cado. Esse sem dúvida é o ano do ker­nel do linux, pode ser que nos desk­tops e para usuários final esta­mos longe ainda, mas para esse mer­cado ainda não me inter­esso. Você teria algum roteiro de estudo para preencher vagas como estas:
    http://apps.facebook.com/workforus/tab/view?job_id=103437&ref_id=94786&page_id=123874067680100
    A padtec gan­hou o leilão da tel­e­bras e eles irão acel­erar o desen­volvi­mento aqui no Brasil. Viva! :)

    VA:F [1.9.17_1161]
    Rating: 0.0/5 (0 votes cast)
    • http://www.sergioprado.org ser­gio­prado

      Olá Jovino!

      Des­culpe a demora na resposta. Sua men­sagem caiu na caixa de spam do Word­Press (?) e desco­bri isso agora… :)

      Sou um usuário Linux um pouco mais recente que você, mas com­par­til­hamos da mesma paixão! :)

      Estou tra­bal­hando em um artigo sobre como se tornar um desen­volve­dor de linux embar­cado, que dev­erá respon­der algu­mas das suas perguntas.

      Dev­erá sair nos próx­i­mos dias… Con­tinue acom­pan­hando o blog!

      Um abraço!

      VA:F [1.9.17_1161]
      Rating: 0.0/5 (0 votes cast)
  • http://www.oengenheiro.com.br Daniel Grillo

    Olá Sér­gio,
    Desculpe-me se for uma per­gunta meio básica, mas qual seria a van­tagem de apren­der ou se apro­fun­dar na API do Linux, prin­ci­pal­mente no Brasil?
    Out­ras per­gun­tas:
    É uma boa inve­stir nisso para quem está começando na área?
    Que tipo de demanda atende o profis­sional espe­cial­izado nisso?
    Obrigado

    VA:F [1.9.17_1161]
    Rating: 0.0/5 (0 votes cast)
  • http://www.sergioprado.org ser­gio­prado

    Olá Daniel,

    Ótima per­gunta! É claro que não podemos com­parar os mer­ca­dos da Europa e dos EUA com o Brasil (ainda). Mas vejo nos últi­mos anos uma demanda cres­cente de pro­je­tos com Linux em ter­ras tupiniquins.

    Nos últi­mos 4 anos tenho tra­bal­hado com Linux embar­cado. Todos os meses são divul­gadas opor­tu­nidades nesta área no grupo sis_embarcados (bas­ca­mente ARM + Linux embar­cado). Muitas dessas deman­das demoram para ser atendidas.

    Ou seja, temos um mer­cado emer­gente, e pouca gente ainda com­pe­tente no assunto. Quem con­seguir uma boa for­mação + expe­ri­en­cia nessa área terá um difer­en­cial forte no mercado.

    Abraços!

    VA:F [1.9.17_1161]
    Rating: 0.0/5 (0 votes cast)
  • Marcelo Jo

    Olá Sér­gio!
    Estava relendo esse post pois estou a procura de um livro pra poder apren­der a pro­gra­mar no linux. Esse livro seria mais para soft­ware de baixo nivel, dig­amos device dri­vers ou pra desen­volver aplica­tivos mesmo?
    Fazendo a per­gunta ao con­trário, esse livro seria indi­cado pra que tipo de pro­gra­mador e quais tipos de programas?

    VA:F [1.9.17_1161]
    Rating: 0.0/5 (0 votes cast)
  • Marcelo Jo

    Olá Sér­gio!
    Estava relendo esse post pois estou a procura de um livro pra poder apren­der a pro­gra­mar no linux. Esse livro seria mais para soft­ware de baixo nivel, dig­amos device dri­vers ou pra desen­volver aplica­tivos mesmo?
    Fazendo a per­gunta ao con­trário, esse livro seria indi­cado pra que tipo de pro­gra­mador e quais tipos de programas?

    VA:F [1.9.17_1161]
    Rating: 0.0/5 (0 votes cast)
    • http://sergioprado.org/ Ser­gio Prado

      Olá Marcelo!

      Este é “O LIVRO” para desen­volvi­mento de apli­cações para Linux. Ele con­tém uma descrição bem legal de toda a API de um sis­tema GNU/Linux.  É o livro ideal para o desen­volve­dor de apli­cações Linux (seja um sis­tema embar­cado ou não).

      Um abraço.

      VA:F [1.9.17_1161]
      Rating: 0.0/5 (0 votes cast)