Desenvolvendo em ambientes Unix

Click here to load reader

  • date post

    25-Jul-2015
  • Category

    Technology

  • view

    918
  • download

    3

Embed Size (px)

Transcript of Desenvolvendo em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Conceitos bsicos para desenvolvimento de sistemas

    em ambiente Linux

    Alexandre Mulatinho

    E-mail: [email protected]

    Mulatinho's Weblog

    http://alex.mulatinho.net

    Twitter: @alexmulatinho

    11 de junho de 2014

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Antes de mais nada...

    A quem se

    destina estes

    slides?

    Iniciantes no mundo Unix/Linux.

    Prossionais em busca de mais

    conhecimento em desenvolvimento

    utilizando ferramentas livres.

    Quem quer aprender o bsico sobre:

    a linguagem C,

    desenvolvimento,

    controle de verses e

    debug em sistemas Unix.

    Entusiastas do uso de software livre!

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Agenda

    Conceitos Bsicos

    Ferramentas importantes

    Um pouco de histria

    Uma rpida introduo ao C

    Desenvolvendo programas

    Utilizando controle de verses

    Utilizando o autotools

    Debugando seu cdigo

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Conceitos Bsicos

    O que um programa?

    Uma srie de instrues utilizando uma linguagem de

    programao dentro de uma mquina capaz de interpret-las e

    process-las com um objetivo especco.

    Como ele feito?

    No nal um programa constitudo de "0"s e "1"s e s

    entendido pelo computador, seria invivel desenvolvermos algo

    assim e por isso foram denidas palavras por programadores

    que contendo uma lgica adequada constroem um programa

    de computador.

    Quais ferramentas utilizo para desenvolv-lo?

    Basicamente voc precisa de trs coisas: um editor para

    construir o seu cdigo, um compilador que transformar o seu

    cdigo em um objeto entendido pela arquitetura do seu

    computador e um linker que ir unir todos os objetos em um

    nico binrio entendido pelo seu sistema operacional.

    Alexandre Mulatinho E-mail: [email protected]o.net Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Conceitos Bsicos

    Ento agora que j sabemos o que um programa de computador

    devemos denir que tipos de programa existem e para qu

    propsito eles foram criados, tendo como base estas armaes

    podemos classicar os programas em dois tipos:

    Software de sistema: so programas de computadores crticos

    e que trabalham entre a camada de hardware e software, eles

    so utilizados pelo usurio constantemente, embora usurios

    leigos no tenham cincia disso pois necessrio que os

    softwares de aplicativo faam a ponte entre eles.

    Exemplos: Firmwares, RTOS, drivers de dispositivos.

    Software aplicativo: esses so os nossos softwares do dia a dia,

    que todo o usurio gosta de usar e hoje devido a necessidade

    de tecnologia ns seres humanos no vivemos sem eles.

    Exemplos: VIM, AWK, Firefox, Eclipse, Java, C,

    Nesta apresentao iremos focar apenas no segundo tipo.

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Conceitos Bsicos

    Ento agora que j sabemos o que um programa de computador

    devemos denir que tipos de programa existem e para qu

    propsito eles foram criados, tendo como base estas armaes

    podemos classicar os programas em dois tipos:

    Software de sistema: so programas de computadores crticos

    e que trabalham entre a camada de hardware e software, eles

    so utilizados pelo usurio constantemente, embora usurios

    leigos no tenham cincia disso pois necessrio que os

    softwares de aplicativo faam a ponte entre eles.

    Exemplos: Firmwares, RTOS, drivers de dispositivos.

    Software aplicativo: esses so os nossos softwares do dia a dia,

    que todo o usurio gosta de usar e hoje devido a necessidade

    de tecnologia ns seres humanos no vivemos sem eles.

    Exemplos: VIM, AWK, Firefox, Eclipse, Java, C,

    Nesta apresentao iremos focar apenas no segundo tipo.

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Conceitos Bsicos

    Ento agora que j sabemos o que um programa de computador

    devemos denir que tipos de programa existem e para qu

    propsito eles foram criados, tendo como base estas armaes

    podemos classicar os programas em dois tipos:

    Software de sistema: so programas de computadores crticos

    e que trabalham entre a camada de hardware e software, eles

    so utilizados pelo usurio constantemente, embora usurios

    leigos no tenham cincia disso pois necessrio que os

    softwares de aplicativo faam a ponte entre eles.

    Exemplos: Firmwares, RTOS, drivers de dispositivos.

    Software aplicativo: esses so os nossos softwares do dia a dia,

    que todo o usurio gosta de usar e hoje devido a necessidade

    de tecnologia ns seres humanos no vivemos sem eles.

    Exemplos: VIM, AWK, Firefox, Eclipse, Java, C,

    Nesta apresentao iremos focar apenas no segundo tipo.

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Agenda

    Conceitos Bsicos

    Ferramentas importantes

    Um pouco de histria

    Uma rpida introduo ao C

    Desenvolvendo programas

    Utilizando controle de verses

    Utilizando o autotools

    Debugando seu cdigo

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Ferramentas importantes

    Para que voc seja eciente desenvolvendo uma aplicao voc

    deve obter algumas ferramentas que sero teis durante todo o

    processo, algumas delas vamos discutir mais a frente, outras no,

    eis aqui algumas delas:

    Editor de texto Aqui vale a pena perder algumas horas escolhendo

    um editor que mais se adeque ao seu estilo, hoje em

    dia com a febre dos IDEs difcil encontrar quem

    consiga programar sem um deles, aqui particularmente

    eu utilizo o VIM e algumas vezes o Geany.

    Compilador Para que seu cdigo depois de editado se transforme

    em um binrio e voc possa execut-lo crtico

    escolher o compilador adequado, infelizmente muitas

    vezes aqui voc no ter opo, principalmente se

    estiver trabalhando com sistemas embarcados.

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Ferramentas importantes

    Controle de verso Muitas vezes iniciantes de programao ou at

    programadores experientes ignoram o fato de que

    devem ter controle sobre suas verses de

    desenvolvimento, quando percebem que isto muito

    importante j esto com o projeto todo bagunado e

    muito pior corrigir depois.

    Diagnstico Muito teis para analisar os binrios como os

    debuggers, aqui tambm se encaixariam ferramentas

    de trace como o strace, ltrace.

    Auxiliares Ferramentas de auxlio como o autotools que geram

    para voc scripts de congurao, compilao, etc.

    so cruciais para fazer voc no perder tempo com

    rotinas mecnicas.

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvimento em ambientes Unix

  • ht

    t

    p

    :

    /

    /

    a

    l

    e

    x

    .

    m

    u

    l

    a

    t

    i

    n

    h

    o

    .

    n

    e

    t

    Ferramentas importantes

    Editores de texto

    VIM, LaTeX, Eclipse, Geany, Emacs, MS Visual C++, etc.

    Compiladores

    GCC, Visual C++, TinyC, LLVM-Clang, etc.

    Controles de Verso

    Git, Subversion, Mercurial, CVS, etc.

    Diagnstico

    GDB, binutils, strace, ltrace, etc.

    Auxiliares

    Autoconf, Automake, Scripts Shell ou Batch, QMake, etc.

    Alexandre Mulatinho E-mail: [email protected] Introduo ao desenvolvime