Upload
syd-barrett
View
215
Download
0
Embed Size (px)
Citation preview
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
1/28
Contenidos
Introducción a Linux Características generales
Comandos básicos
Utilidades
Compilación de código
Lenguajes de scripting
Cálculo en paralelo
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
2/28
Introducción a Linux
Linux es un sistema operativo basado en UNIX.
Linux es el kernel del sistema operativo una capa de so!t"areubicada entre el #ard"are $ los programas de los usuarios.
%esarrollado por Linus &orvalds a partir de '(('.
)u$ estable
)u$ utili*ado en el ámbito educativo en investigación $empresas.
+s distribuido bajo la licencia ,NU es -gratis se puede utili*ar$ distribuir sin pagar licencias.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
3/28
Introducción a Linux
Los programas solicitan servicios del sistema a trav/sde -llamadas al sistema
+l usuario interactua con el sistema a trav/s del
interprete de comandos o s#ell.
+l s#ell mas utili*ado es bas# 01ourne 2gain 3#ell0.
Linux es un sistema multitarea $ multiusuario
Los programas de un usuario están protegidos delresto de los usuarios del sistema.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
4/28
Características
Los arc#ivos están guardados en una estructura de árbol jerár4uica de directorios $ subdirectorios. 3iendo 5 la raí* delárbol 6root7.
2tajos para directorios8
. representa el directorio actual
.. representa el directorio padre9 representa el directorio #ome del usuario
2rc#ivos ocultos comien*an con un punto -.
.bas#rc .vimrc .mo*illa5
Los arc#ivos tienen permisos de acceso6dr"xr::r::7&ipo de arc#ivo ; due
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
5/28
Características
Linux con la a$uda del s#ell es mu$ !lexibleLa ma$oría de los comandos tienen muc#as opcionesLinux #ace distinción entre ma$>sculas $ min>sculas
+s posible cambiar el nombre de un comando o de!inir un set deopciones para cada uno de ellos 6alias7. +jemplos8
alias mexec -5#ome5emmanuel5openmpi5bin5mpiexec alias cp -cp :?dp
Completar comandos8less arc#ivo@no A 0tab0$ el s#ell lo traduce a8less arc#ivo@nombre@largo
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
6/28
Comandos básicos 0man0 muestra el manual de un comando dado.
0cd0 para cambiar de directorio.
0cp0 para copiar arc#ivos $ directorios.
0rm0 para eliminar.
0ls0 para listar el contenido de un directorio.
0mv0 para mover o renombrar arc#ivos.
0mkdir0 para crear un directorio.
0ln0 para crear un link de un arc#ivo o directorio.
0pass"d0 para cambiar la contrase
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
7/28
Ejemplos de comandos cd 5#ome5emmanuel
cp mi@arc#ivo 5#ome5emmanuel5tmp
cp :?dp 5#ome5emmanuel 5mnt5memor$
rm :r! 5#ome5emmanuel5tmp
ls 5usr5local5bin mv mi@arc#ivo mi@arc#ivo.tmp
mv mi@arc#ivo.tmp 5tmp
mkdir 5#ome5emmanuel5bck
ln mi@ejecutable 5usr5local5bin
c#mod aAx mi@ejecutable
less 5#ome5emmanuel5mi@arc#ivo
ps ax
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
8/28
Utilidades: more y find
cat more $ less se utili*an para listar elcontenido de un arc#ivo de texto.
cat arc#ivo' arc#ivoB arc#ivo@completo
!ind busca en el directorio especi!icado unarc#ivo seg>n su nombre !ec#a tama
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
9/28
Utilidades: grep y tar
grep busca una determinada cadena en un arc#ivo oen la salida de un comando.
ps ax ; grep openmpi 6busca en los procesos4ue están ejecutandose el proceso openmpi7
grep -run in.melt 6busca la palabra -run en elarc#ivo in.melt7
tar en conjunto con g*ip o b*ipB sirven paracomprimir5descomprimir arc#ivos.
tar *cv! comp.tar.g* arc#ivo' arc#ivoB ... tar *cv! compB.tar.g* .5
tar xv! compJ.tar.g* 6descomprimir7
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
10/28
Utilidades: sed
3ed es un editor o !iltro. &rabaja sobre todoel contenido de un arc#ivo borrandoinsertando agregando lineas oreempla*ando una cadena etc.
sed :e 0''Ed0 sample.txt 6borra lasprimeras die* lineas7
sed s5Kuan5ablo5g in!ile out!ile6reempla*a todas las ocurrencias de Kuan
por ablo7
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
11/28
Utilidades: aw●
La !unción básica de a"k es buscar lineas enarc#ivos 4ue contienen un cierto patrón. 2"k reali*auna tarea especí!ica sobre las lineas encontradas.
● +jemplos8
●
Mrdena las lineas de un arc#ivo8– a"k :O8 0F print ' G0 5etc5pass"d ; sort
● Imprime solo las lineas pares8
– a"k 0N? P B == E0 data
● 3uma la columna n>mero Q del comando ls :l
– ls :l ; a"k 0F 3U) A= QG
+N% F print 3U) G0
?e!erencia8 #ttp855""".gnu.org5so!t"are5ga"k5manual5ga"k.#tml
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
12/28
Utilidades: aw :r":r::r:: ' arnold user '(JJ Nov R 'J8EQ )ake!ile
:r":r::r:: ' arnold user 'ESE( Nov R 'J8EJ a"k.#
:r":r::r:: ' arnold user (SJ 2pr 'J 'B8'T a"k.tab.#
:r":r::r:: ' arnold user J'SD( Kun 'Q 'B8BE a"kgram.$
:r":r::r:: ' arnold user BBT'T Nov R 'J8EJ a"k'.c :r":r::r:: ' arnold user JRTQQ Nov R 'J8EJ a"kB.c
3uma el tama
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
13/28
Utilidades: gnuplot●
Utilidad de linea de comandos para gra!icar. 3e ejecutacon el comando gnuplot.
Ejemplo8
gnuplot> set terminal “png”
gnuplot> set output “salida.png”
gnuplot> splot “dump.col.0” using 2:3:4
,uarda en un arc#ivo de imagen png el grá!ico J%utili*ando las columnas B J $ T del arc#ivo de entrada.
Documentación:
#ttp855"""[email protected]!
#ttp855p#$sicspmb.uk*n.ac.*a5index.p#p5,nuplot@tutorial
#ttp855""".duke.edu59#pgavin5gnuplot.#tml
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
14/28
Utilidades: ss! y scp
La !orma de acceder de !orma remota a una má4uina mascom>nmente utili*ada es a trav/s del comando ss#. 3intaxis8
ss# VusernameWVip ; #ostnameW
+jemplo
ss# emmanuel""".miservidor.com.arara copiar arc#ivos #acia o desde una má4uina remota se puedeutili*ar el comando scp8
scp :r emmanuel""".miservidor.com.ar85#ome5emmanuel5lammps 5tmp
scp :r 5tmp5lammps5examples emmanuel""".miservidor.com.ar85#ome5emmanuel5tmp
Los comandos ss# $ scp están incluidos por de!ecto en la ma$oría delas distribuciones Linux en el caso de "indo"s se puede utili*ar utt$para acceder a trav/s de ss# a un servidor remoto.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
15/28
Ejecución de comandos
+xisten diversos operadores 4ue a$udan en la ejecuciónde comandos en la consola. or ejemplo8 pipesredirección Y punto $ coma.
pipes ps ax | grep “lmp_openmpi” la salida delcomando ps se envía al comando grep como entrada.
Y se puede agregar al !inal de la ejecución de uncomando para 4ue el comando sea ejecutado enbackground.
H se utili*a para colocar comandos encadenados cuando
termina el primer comando se ejecuta el segundo. YY se utili*a para colocar comandos encadenados solo
si termina de !orma exitosa el primer comando se
ejecuta el segundo.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
16/28
Ejecución de comandos
- comando arc#ivo la salida 6stdout7 del comando seredirecciona al arc#ivo dado sobreescribiendo sucontenido.
-comando arc#ivo como el comando de arriba peroconcatena el contenido del arc#ivo con la salida del
comando. B arc#ivo $ B arc#ivo8 igual 4ue los de arriba pero
solo guarda los errores 4ue el comando puede #aberproducido 6stderr7.
comando Z arc#ivo8 el contenido del arc#ivo es tomadocomo entrada del comando 6stdin7.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
17/28
Estructura jerár"uica dedirectorios
Las distribuciones de ,NU5Linux poseen una estructura dedirectorios especial. 2 continuación se detallan los directoriosmas importantes8
5etc8 arc#ivos de con!iguración
5#ome8 directorio 4ue contiene los directorios de cada
usuario del sistema 5opt8 directorio de instalación de aplicaciones
5usr5bin 5bin 5usr5local5bin8 directorios donde se ubicanarc#ivos ejecutables
5root8 directorio #ome del usuario root 5usr5lib 5lib 5usr5local5lib8 directorios donde se guardan
las librerías
5tmp8 directorio para guardar arc#ivos temporales.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
18/28
#ariables de entorno3on variables 4ue tienen valores especiales algunas soncreadas $ mantenidas por el sistema otras son de!inidas por elusuario.
ara ver las variables $ sus valores ejecutar el comando env oexport.
or ejemplo8 la variable 2&[ contiene los directorios en loscuales el s#ell buscará los arc#ivos ejecutables 4ue están en elsistema. La variable [M)+ contiene el directorio #ome delusuario.
ara ver el valor de una variable se puede ejecutar8 ec#o
2&[.2lgunas aplicaciones re4uieren la de!inición de variables deentorno para poder !uncionar por ejemplo para indicar dondeesta ubicado el directorio con las librerías de dic#a aplicación.
export K2\2@2&[=5opt5jre5 6de!ine una variable7
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
19/28
Compilación de código
,eneralmente se utili*an tres comandos para compilarun código !uente en un programa ejecutable configure,make make install
.5con!igure
+jecuta el script configure 4ue se encuentra en eldirectorio actual. +l script básicamente c#e4uea 4ue elso!t"are necesario para compilar el código estapresente en el sistema de no ser así devolverá unmensaje de error indicando 4ue librería o programa !altapara poder agregarlo $ continuar con la compilación. 2l
!inali*ar crea el arc#ivo )ake!ile 4ue luego utili*a elcomando make.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
20/28
Compilación de código
makeLee el arc#ivo )ake!ile ubicado en el directorio desdedonde se ejecuta. +l arc#ivo )ake!ile indica la secuenciaen la cual se deben compilar los componentes delso!t"are.
+l arc#ivo )ake!ile tiene muc#as eti4uetas como porejemplo clean 6borra arc#ivos compilados $ de objeto7install test 6ejecuta las pruebas incluidas en el programapara veri!icar su correcto !uncionamiento7. Cada eti4uetareali*a una tarea distinta sobre el código
1ásicamente make compila el código !uente delprograma $ genera los arc#ivos ejecutables para poderutili*ar el programa.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
21/28
Compilación de código
make installLa eti4ueta install del comando make se encarga decopiar los arc#ivos ejecutables documentación librerías$ todos los arc#ivos necesarios para 4ue se ejecute laaplicación en los directorios del sistema por ejemplo
5usr5bin 5usr5man 5usr5lib etc.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
22/28
Lenguajes de $cripting
+xisten muc#os lenguajes de scripting son mu$>tiles para reali*ar tareas en las 4ue se necesitadesarrollar rápido $ resolver problemas de !ormasencilla no tienen gran velocidad deprocesamiento pero su sintaxis simple #ace 4ue
sean ampliamente utili*ados. +jemplos8 1as#$t#on erl ?ub$ etc.
+n general $t#on erl $ ?ub$ o!recen lasmismas características cambia su sintaxis. 1as#
por otro lado no o!rece las mismas características4ue el resto de los lenguajes de scripting peroesta incluido por de!ecto en todas lasdistribuciones de ,NU5Linux.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
23/28
Lenguajes de $cripting: %as!# Slackware /etc/rc.d/rc.M script
# Imprime en pantallaec#o ,oing multiuser...
# Si el comando ldconfig existe y es ejecutale! imprimir en pantalla y ejecutar el comando"
i! V :x 5sbin5ldcon!ig WH t#en
ec#o Updating s#ared librar$ links8 5sbin5ldcon!ig Y
5sbin5ldcon!ig Y
!i
# onfigura tiempo en el cual poner monitor en negro y luego apagarlo.
5bin5setterm :blank 'Q :po"ersave po"erdo"n :po"erdo"n DE
# onfigura el nomre de la m$%uina! si el arc&i'o ()S*+,ME existe lo toma de a&i!
# sino! crea el arc&i'o y coloca un nomre por defecto! darkstar.
i! V :r 5etc5[M3&N2)+ WH t#en 5bin5#ostname 6cat 5etc5[M3&N2)+ ; cut :!' :d .7
else
ec#o darkstar.example.net 5etc5[M3&N2)+
5bin5#ostname darkstar
!i
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
24/28
Cálculo paralelo
+xisten varias alternativas para reali*arcalculo en paralelo dependiendo del#ard"are disponible $ los re4uerimientos delso!t"are. 2lgunas opciones son8 )I
6Mpen)I o )IC[7 Mpen) ,:,U6CU%25MpenCL7.
+n las siguientes slides se presenta cadaunas de estas opciones.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
25/28
&'I)I 6)essage assing Inter!ace Inter!a* de aso de)ensajes7 es un estándar 4ue de!ine la sintaxis $ la semánticade las !unciones contenidas en una biblioteca de paso demensajes diseltiples procesadores.
+n otras palabras es una librería 4ue permite el pasaje de
mensajes entre computadoras para ejecutar un mismo programadividiendo las tareas a reali*ar entre los distintos procesadores.
%ebe 4uedar claro 4ue el programa tiene 4ue estar desarrolladoutili*ando esta librería de no ser así no se puede ejecutar enparalelo una aplicación 4ue no #a sido desarrollada teniendo en
cuenta esto.
Las implementaciones de esta librería mas utili*adas sonMpen)I $ )IC[.
!ef: "ttp:##es.$ikipedia.org#$iki#%nterfa&_de_'aso_de_(ensa)es
"ttp:##$$$.open*mpi.org#
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
26/28
&'I2plicaciones como L2))3 ,romacs namd etc utili*an )Ipara dividir calculo en procesadores de un cluster o de una
"orkstation.
or ejemplo para ejecutar L2))3 en 'E procesadores de uncluster se ejecuta la siguiente linea8
+ mpirun *np 0 *mac"inefile mac"ines #"ome#emmanuel#lammps#src#lmp_openmpi - in.melt >salida.log
+ste comando lee el arc#ivo mac"ines 4ue contiene el listado decomputadoras en donde se debe ejecutar L2))3 6por n>mero
de I o nombre de má4uina una por linea7 luego el ejecutable4ue tiene 4ue llamar 4ue arc#ivo de entrada debe leer elejecutable 6in.melt7 $ para !inali*ar en 4ue arc#ivo debe guardarla salida del comando.
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
27/28
(pen&'Mpen) es una inter!a* de programación de aplicaciones 62I7 para la
programación multiproceso de memoria compartida en m>ltiplesplata!ormas. ermite altiples n>cleos nuestroprograma se ejecute de !orma paralela en todos los n>cleos disponibles
$ compartan la memoria del sistema. +l compilador ,CC inclu$e lalibrería.
Ejemplo8
pragma omp for for/int n01 n-01 n
c5n6 a5n6 75n6 8
&utoriales8#ttp855bis4"it.iki.!i5stor$5#o"to5openmp5#ttps855computing.llnl.gov5tutorials5open)5
?e!erencia8 #ttp855es."ikipedia.org5"iki5Mpen) : #ttp855openmp.org5"p5
8/16/2019 MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan
28/28
)'U: CU*+ , (penCLUn nuevo paradigma de programación se #a #ec#o popular enlos >ltimos Q a