Assembly no Linux/Assembly no Linux

Aquele tempo do MSX e dos DOS, em que muitas pessoas se divertiam com livros do tipo "Aprofundando-se no MSX", e outros semelhantes para DOS, como os de "Turbo C", estão reeditados no presente. Para quem não lembra, eram livros que ensinavam a fazer relógios no canto da tela, descobrindo pequenos macetes nos respectivos sistemas, enfim, obras que faziam a alegria de quem gostava de se aprofundar além do que era tradicionalmente oferecido pelo fabricante, e o que podíamos encontrar na literatura disponível. Hoje, este tempo está de volta.

O Linux, e não só ele, mas também o freeBSD e outros da família BSD, nos oferece igual, se não maior, potencial para fuçadores natos, Estas plataformas se tornaram famosas tanto em grandes servidores como em sistemas embutidos (embedded systems), que povoam as prateleiras com aparelhos modernos dotados de inteligência e conectividade.

Um certo background se torna indispensável para os primeiros passos. Aqueles que já programam em linguagem C para Unix sentirão mais facilidade, e também aqueles que programaram por muito tempo no ambiente DOS vão reconhecer as semelhanças e fazer as devidas adaptações. Mas o importante é a vontade de se aprofundar além do que está descrito por aí.

Este artigo visa traçar um paralelo com o que encontrávamos na literatura citada acima, e como "portar" este raciocínio para o Linux. Claro que, pelas características do sistema, não será possível usar um exemplo do tipo do "relógio", pois além de ser trabalhoso, acabaria por fugir da natureza deste artigo, que é introdutório. Mas a intenção de buscar os conceitos semelhantes será levada a cabo com explicações sobre como se comportam as interfaces disponíveis.