Seminari 1
Unix I
-Introducció al sistema operatiu UNIX-

Bioinformàtica - 1er trimestre curs 2012/2013 - UPF


Nota Històrica sobre el UNIX

El sistema operatiu -SO (operating system -OS) és una colecció de programes que permeten l'ús i manipulació dels diferents dispositius físics que integren un ordinador. Per exemple, el Microsoft Windows és un sistema operatiu, mentre que el Microsoft Word no ho és.

El sistema operatiu UNIX (Ritchie and Thompson, 1974; Kernighan and Pike, 1984) va néixer com a resultat d'un projecte de recerca dut a terme per un petit grup de gent a Bell-Labs començant a l'any 1969. Aquest grup de gent ja havia fet altres intents de desenvolupament d'un sistema operatiu al llarg dels anys 60, com ara el ''Multics'', però la primera versió de UNIX no va sortir fins que van desenvolupar el llenguatge de programació B, que va ser utilitzat per programar el sistema operatiu UNIX. El llenguatge B va ser el precursor del conegut llenguatge de programació C (Kernighan and Ritchie, 1978)

Image ritchie   Image thompson   Image kernighan   Image pike   Image torvalds    
Dennis Ritchie   Ken Thompson   Brian Kernighan   Rob Pike   Linux Torvalds    

Hi ha moltes variants del sistema UNIX, be fetes per diverses companyies privades, o be fetes a l'àmbit acadèmic, com ara el Linux què es un dels sistemes UNIX mes àmpliament emprats en l'actualitat, i que va ser concebit per en Linus Torvalds, quan encara era un estudiant a la Facultat d'Informàtica de la Universitat de Helsinki, a Finlàndia.

El conglomerat de programes que formen el UNIX es pot dividir en les següents capes:


\includegraphics{unixlayers}


Referències


Ritchie, D.M., and Thompson, K. (1974). The UNIX time-sharing system. Communications of the ACM, 17(7):365-375.


Kernighan, B.W., and Ritchie, D.M. (1978). The C Programming Language. Prentice-Hall.


Kernighan, B.W., and Pike, R., (1984). The UNIX Programming Environment. Prentice-Hall.


Autoaprenentatge del sistema operatiu UNIX

La millor forma d'apendre Unix es fent-lo anar. Per tal de que pogueu treballar amb Unix al vostre ordinador us podeu baixar d'internet la distribució Unix/Linux d'Ubuntu de la següent adreça web: http://www.ubuntu.com. Veureu que us podeu baixar o bé una imatge de CD de la distribucio estàndard o una imatge per a llapis de memòria de la distribució netbook. Haureu de reiniciar l'ordinador amb aquest CD o llàpis de memoria a l'ordinador, assegurar-vos que l'ordinador cerca aquest dispositiu abans que el disc dur, i aleshores s'iniciara l'Ubuntu que es un sistema operatiu Unix. Un cop iniciat ja hi podeu treballar però tambe podeu escollir instal.lar Ubuntu al vostre ordinador. Aquesta opció, però, requerirà reparticionar el vostre disc dur si voleu conservar el sistema operatiu que tingueu actualment.

Podem trobar un petit manual en català sobre el sistema UNIX a la seguent pàgina de la Universitat de Barcelona.

Els coneixements sobre el funcionament del UNIX que necessitarem durant el curs de bioinformàtica són pràcticament els que apareixen al capítol 5 del llibre:


Gibas, C. and Jambeck, P. (2001) Developing Bioinformatics Computer Skills. O'Reilly & Associates .


El qual podeu trobar tambe disponible a la biblioteca en el format habitual i també electrònic (tenint configurat el proxy de la universitat) seguint aquest enllaç.


En el següent enllaç trobareu un manual més complert escrit a la Universitat d'Edinburg per apendre a treballar amb el sistema operatiu Unix, conté bastants exemples i exercicis que us poden ser molt útils.


El sistema de fitxers de UNIX

Un component fonamental de qualsevol sistema operatiu és el sistema de fitxers que utilitza per emmagatzemar la informació. El sistema de fitxers ve a ser la forma en què el sistema operatiu organitza els nostres (i els seus) fitxers. Els sistemes operatius com MacOs o Windows ens proporcionen una interfície gràfica d'aquesta organització de forma que podem manipular fitxers utilitzant únicament el ratolí.

Malgrat que això també és possible en l'entorn gràfic del Unix, ens interessarà (pel proposit de l'assignatura de bioinformàtica) treballar amb el sistema de fitxers del Unix en un entorn de texte on hi haurem d'escriure les ordres específiques que ens permetran manipular els fitxers. Per poder treballar d'aquesta forma cal entendre be l'organització del sistema de fitxers del Unix que ens la podem imaginar en forma d'arbre de la seguent forma:


Image sfitxers

En el sistema de fitxers de unix tenim dos tipus principals de fitxers: els directoris (o carpetes) i els fitxers (normals) amb informació. Tant els directoris com els fitxers normals tenen un nom associat que és el que utilitzem per manipular-los. És important saber que si el nom d'un fitxer comença amb un punt '.' aquest fitxer és ocult i haurem d'utilitzar una opció determinada d'una comanda per poder veure'l. Dos casos especials de fitxers ocults son els fitxers '.' i '..' que son de fet directoris i es troben sempre dins de qualsevol altre directori. El directori '.' serveix per referir-se al directori que el conté i el '..' serveix per referir-se al directori anterior en la jerarquia del sistema de fitxers.


Comandes bàsiques de UNIX

Les comandes bàsiques del Unix que ens interessen tenen a veure amb com podem examinar el sistema de fitxers i com hi podem manipular els fitxers que s'hi troben. Qualsevol comanda del Unix, tingui a veure amb el sistema de fitxers o no, s'ha d'escriure mitjançant un programa que s'anomena shell.

El shell és el programa del UNIX que s'executa en una finestra què es coneix com a terminal i la única cosa que fa inicialment és esperar que introduïm comandes a continuació un símbol determinat que ens mostra dins la finestra, i que sol ser el símbol del dòlar '$'. Un cop em escrit la comanda, premem la tecla coneguda com ''enter'' or ''return'' i el shell intentarà executar la comanda.

Les comandes del UNIX s'utilitzen escrivint la paraula concreta que les executa seguida, si és necessari, de l'especificació d'un o més parámetres, com ara:

      $ ls -l

En general les comandes del Unix segueixen el format:

      $ comanda [llista d'opcions] [llista d'arguments]

on els claudàtors indiquen opcionalitat, es a dir, que no sempre serà necessari escriure opcions o arguments, això dependrà de la comanda. És important tenir en compte que el shell differencia entre majúscules i minúscules de forma que, per exemple, si hi escriviu LS us donara un error donat que, per al shell, no te res a veure amb la comanda de llistar fitxers ls, ni tampoc hi ha cap altra comanda que sigui LS.

Les primeres comandes amb les que us heu de familiaritzar són:


Exercicis

IMPORTANT: de cara als exercicis que hi ha a continuació així com de cara a tota la feina que anirem fent al llarg de les pràctiques es convenient que abans de començar els exercicis us feu un directori (una carpeta) amb el nom de la pràctica (per exemple, P1) i hi treballeu dins d'aquest directori emmagatzemant-hi dins tots els fitxers relacionats amb la pràctica.

  1. utilitzant la comanda man esbrineu quina opcio de la comanda ls ens permet veure els fitxers ocults.
  2. utilitzant la comanda man averigueu i escriviu en un paper per vosaltres que fan les comandes rmdir, cp, mv, cat i rm.
  3. utilitzant les comandes corresponents construiu un arbre de directoris amb un primer subdirectori genomes. Dins de genomes feu dos subdirectoris amb els noms de human i mouse. Dins de human copieu els subdirectoris i fitxers que s'hi troben a
            /cursos/BI/practiques/P1/genomes/human
    
    dins l'aula d'ordinadors de la facultat. Alternativament baixeu-vos el fitxer empaquetat genomes.tar, emmagatzemeu-lo com ara en el vostre directori home i desempaqueteu-lo des del shell amb la ordre:
            $ tar xf genomes.tar
    
    que us crearà la carpeta genomes/human referida anteriorment.

    Un cop copiats reproduiu la mateixa estructura de subdirectoris i fitxers que penja de human dins de mouse renombrant els fitxers human_gene1.fa a mouse_gene1.fa (el mateix per gene2) i human_protein1.fa a mouse_protein1.fa (el mateix per protein2). Recomanació: comenceu per fer-vos un dibuix amb un esquema de l'arbre de directoris i fitxers que penja de /cursos/BI/practiques/P1/genomes.

  4. hi ha alguna opció a la comanda cp que ens permetria haver copiat l'estructura de subdirectoris d'un sol cop?
  5. de quines dues formes diferents es poden canviar els noms als fitxers?
  6. com es pot esborrar tota una estructura de subdirectoris d'un sol cop? (mireu el manual de la comanda )