Desenvolvendo em ambientes Unix
date post
25-Jul-2015Category
Technology
view
918download
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