MD Bringa Comahue 2012 1 Introduccion a Linux ByE Millan

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