Presentazione del corso - A.A. 2003-2004 Prof. Marco Lapegna • gruppo 1 - cognomi A Co • tel. 081 675623 • studio 155 DMA (VI liv.) • http://www.docenti.unina.it/marco.lapegna Avviso importante Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 2 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 1 Laboratorio di Sistemi Operativi – I parte Fornire metodologie e strumenti per lo sviluppo di applicazioni in ambiente UNIX, fornendo i fondamenti delle interfacce di programmazione standard e delle system call a UNIX Rapporto teoria/pratica = 1:2 • riconosciuti 8 crediti • borsa di studio finale 500 Euro • iscriversi elettronicamente sul sito http://www.unina.it e leggere bene il bando • scadenza bando OGGI ALLE 17.00 Bibliografia Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 4 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 3 Obiettivi del corso • corsi di base ICT universita’ – regione campania Sistemista LINUX • Kerninghan , Ritchie – Linguaggio C – Jackson libri • McGilton , Morgan – il sistema operativo UNIX – McGraw Hill • Stevens – Advanced programming in the Unix environment – Addison Wesley • Programmazione + lab. A e B • Architettura degli elab. + lab. A e B • conoscenza del linguaggio C Ma soprattutto … • seguire i corsi Esame Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 6 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 5 Prerequisiti consigliati Inviare una e-mail con • subject: LSO: ISCRIZIONE • testo: nome , cognome , matricola All’indirizzo [email protected] Orale congiunto con il corso di Sistemi Operativi Voto: – prova pratica LSO – scritto SO – orale SO + LSO 1 voto 9 crediti RICHIESTE di cambio di gruppo Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 8 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 7 Iscrizione al corso Prova di laboratorio Inviare una e-mail entro il 23/3 • subject: LSO: CAMBIO GRUPPO • testo: nome , cognome , matricola dal gruppo x al gruppo y All’indirizzo [email protected] Se il saldo tra gli studenti uscenti e quelli entranti e’ minore del 10% del numero di iscritti, i cambi saranno accettati e comunicati via e-mail Chi ha mai usato un computer senza sistema operativo? Un sistema operativo e’ un software che agisce da intermendiario tra utente e hardware Compiti di un sistema operativo Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 10 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 9 Cosa e’ un sistema operativo Software applicativo Sistema operativo hardware Strumento indispensabile nella risoluzione di problemi reali con il calcolatore Cosa fa un sistema operativo Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 12 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 11 Ruolo del sistema operativo • permettere l’esecuzione dei programmi degli utenti • rendere semplice l’uso del calcolatore • permettere un uso efficiente dell’hardware Tutti i sistemi operativi forniscono servizi Esempi: • Eseguire un programma, • Aprire un file, • Allocare la memoria … Shell Dopo la fase di login si interagisce con un interprete dei comandi (shell) shell Una shell è un interprete che accetta l'input dell'utente ed esegue i comandi. kernel Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 14 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 13 Fase di login Classi di comandi di Unix Tra le shell più utilizzate ci sono: •La Bourne shell, /bin/sh •La C shell, /bin/csh •La Korn shell, /bin/ksh •La Basic shell, /bin/bash Ciascun utente ha una shell che viene attivata di default. Formato dei comandi Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 16 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 15 >> comando [ argomento ...] ! Esempio >> ls -l –F file1 file2 file3 Forme equivalenti: >> ls -F -l file1 file2 file3 >> ls -lF file1 file2 file3 >> ls -Fl file1 file2 file3 Sezioni del manuale " #$ & ' % ( % man ) * ) + ! Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 18 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 17 Comando man >> man [ opzione...] titolo... Visualizza le pagine del manuale specificate mediante i suoi parametri -s permette di specificare la sezione 7 6 5 3 2 1 0 - Contenuti 4 / / , ( . + ( / , esempio Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 20 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 19 Il comando man Sezione %man %manwho who .... .... %man %man-s -s22kill kill .... .... %man %man-s -s22intro intro Note: • Se il numero di sezione non è specificato, viene selezionata la prima occorrenza • Ogni sezione o sottosezione inizia con una pagina chiamata intro man(1) man(1) NAME NAME man man- -format formatand anddisplay displaythe theon-line on-linemanual manualpages pages manpath manpath- -determine determineuser's user'ssearch searchpath pathfor forman manpages pages SYNOPSIS SYNOPSIS man man [-acdfFhkKtwW] [-acdfFhkKtwW] [-m [-m system] system] [-p [-p string] string] [-C [-C conconfig_file] fig_file][-M [-Mpath] path][-P [-Ppager] pager][-S [-Ssection_list] section_list][section] [section] name name...... DESCRIPTION DESCRIPTION man man formats formats and anddisplays displaysthe theon-line on-linemanual manualpages. pages. This This version versionknows knowsabout aboutthe theMANPATH MANPATHand and(MAN)PAGER (MAN)PAGERenvironment environment variables, variables,so soyou youcan canhave haveyour yourown ownset(s) set(s)of ofpersonal personalman man pages pagesand andchoose choosewhatever whateverprogram programyou youlike liketo todisplay display the the formatted formatted pages. pages. <omissis> <omissis> Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 22 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 21 % %man manman man man(1) man(1) OPTIONS OPTIONS -C -C config_file config_file Specify Specify the the man.conf man.conf file fileto touse; use;the thedefault defaultisis /etc/man.config. /etc/man.config. (See (Seeman.conf(5).) man.conf(5).) <omissis> <omissis> OPERANDS OPERANDS The Thefollowing followingoperand operandisissupported: supported: name name AAkeyword keywordor orthe thename nameof ofaastandard standardutility. utility. USAGE USAGE Manual ManualPage PageSections Sections Entries Entriesin inthe thereference referencemanuals manuals are are organized organized into into secsections. tions. AA section section name name consists consistsof ofaamajor majorsection sectionname, name, typically typicallyaasingle singledigit, digit,optionally optionallyfollowed followedby by aa subsecsubsection tion name, name, typically typically one one or or more moreletters. letters. <omissis> <omissis> <omissis> <omissis> EXIT EXITSTATUS STATUS The Thefollowing followingexit exitvalues valuesare arereturned: returned: 00 >0 >0 Successful Successfulcompletion. completion. An Anerror erroroccurred. occurred. FILES FILES /usr/share/man /usr/share/man root rootof ofthe thestandard standardmanual manual page pagedirectory directorysubtree subtree <omissis> <omissis> SEE SEEALSO ALSO apropos(1), apropos(1), cat(1), cat(1), col(1), col(1), eqn(1), eqn(1), more(1), more(1), nroff(1), nroff(1), refer(1), refer(1), tbl(1), tbl(1), troff(1), troff(1), vgrind(1), vgrind(1), whatis(1), whatis(1), catman(1M), catman(1M),attributes(5), attributes(5),environ(5), environ(5),eqnchar(5), eqnchar(5),man(5) man(5) Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 24 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 23 Gestione delle directory ENVIRONMENT ENVIRONMENT See Seeenviron(5) environ(5)for fordescriptions descriptionsof ofthe thefollowing followingenvironment environment 8 pwd cd $ ls du 8 mkdir rmdir ln … 8 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 27 9 8 %pwd %pwd /usr /usr %cd %cd %pwd %pwd /usr/lapegna /usr/lapegna % % 9 $ Esempio: % %pwd pwd lapegna /usr/lapegna /usr/lapegna % % %cd %cd/usr /usr lapegna Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 26 pwd Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 28 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 25 Il comando pwd Il comando cd esempio cd [ directory] 9 $ 9 9 8 $ ) 8 ) % Il comando ls ls [ options][ directory...] 9 ! % 9 9 esempio $ -s ! : -t ! ! -1 . -F -R ; $ : -i < •••• Il comando du ( 99 : -a 9 Esempio % %lsls-a -a ...cshrc .cshrc.mailrc .mailrcdir1 dir1 .....login .login.sh_history .sh_historyfile1 file1 9! Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 32 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 31 I file nascosti % % % %lsls dir1 dir1file1 file1 % %lsls-s -s total total4422 dir1 dir122file1 file1 % %lsls-t-t file1 file1dir1 dir1 % %lsls-1 -1 dir1 dir1 file1 file1 % %lsls-F -F dir1/ dir1/file1 file1 % %lsls-R -R dir1 dir1file1 file1 ./dir1: ./dir1: file1 file1file2 file2file3 file3file4 file4 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 30 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 29 Opzioni del comando ls du [ options][ name...] 9 8 9 $ ! name -s ) % Il comando mkdir mkdir directory... Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 34 % %du du 22./dir1 ./dir1 22./dir2 ./dir2 14 14.. % %du du-s -s.... 198812 198812.... % % 9 8 9 . % % mkdir mkdir dir1 dir1 dir2 dir2 % %lsls dir1 dir1dir2 dir2 % % Il comando ln rmdir directory ln name1 name2 9 9 . Esempio: . % %rmdir rmdirdir dir rmdir: rmdir:dir: dir:Directory Directorynot notempty empty % %ls lsdir dir aa % %rm rmdir/a dir/a % %rmdir rmdir dir dir % % . Esempio Il comando rmdir Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 36 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 35 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 33 esempio 9 89 ! name1% $ Esempio % %ln ln bb dd % % 8! name2 = Numero di link ln name1 name2 • name2 ) % name2/name1 Esempio % %ln lnbbcc % % ) Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 38 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 37 Il comando ln (cont.) % % mkdir mkdir dir dir % %touch touchfile file % %lsls-l-l total total22 drwxr-sr-x drwxr-sr-x22lapegna lapegnastaff staff 512 512Mar Mar11 11 19:40 19:40 dir dir -rw-r--r--rw-r--r-- 11lapegna lapegnastaff staff 00Mar Mar 11 1119:40 19:40file file % %ln lnfile filenuovo nuovo % %lsls-i-i 199742 199742dir dir 51204 51204file file51204 51204nuovo nuovo : : $ Esempio ? 8 ls -l Esempio Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 40 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 39 esempio > % %lsls-l-l total total22 drwxr-sr-x drwxr-sr-x22 mariog mariog staff staff 512 512Mar Mar11 11 19:40 19:40 dir dir -rw-r--r--rw-r--r-- 22 mariog mariogstaff staff 00Mar Mar 11 1119:40 19:40 file file -rw-r--r--rw-r--r-- 22 mariog mariogstaff staff 00Mar Mar 11 1119:40 19:40nuovo nuovo % %ln lnfile filedir dir % %lsls-l-ldir dir total total00 -rw-r--r--rw-r--r-- 33 mariog mariogstaff staff 00Mar Mar 11 1119:40 19:40file file % %ln lndir dir nuovissimo nuovissimo ln: ln:dir dirisis aadirectory directory % % 1 Link simbolici @ 8 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 42 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 41 Note $ $ A ) 8 ( 8 B $ Link simbolici % %lslsdir dir file1 file1file2 file2 % %ln ln-s -sdir dirnuovadir nuovadir % %lslsnuovadir nuovadir file1 file1file2 file2 Esempio Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 44 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 43 dir dir dir dirnuovadir nuovadir ? 8 8 $ C name2 $ 8 $ name1! Link simbolici % %lsls % %lsls ln -s name1 name2 % %lsls-l-l total total44 drwxr-sr-x drwxr-sr-x22 mariog mariog staff staff 512 512Mar Mar11 11 19:24 19:24 dir dir lrwxrwxrwx lrwxrwxrwx11 mariog mariog staff staff 33Mar Mar11 11 19:24 19:24 nuovadir nuovadir -> ->dir dir % % Esempio 1 m cp rm : touch . find ... Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 46 mv Il comando mv mv [ options] name...target 9 9 name target name target target Il comando mv Il comando mv % %lsls % %lsls file1 file1file2 file2targetdir targetdir % % mv mv file1 file1file2 file2targetdir targetdir % %lsls targetdir targetdir % %lslstargetdir targetdir file1 file1file2 file2 % % mv mv targetdir/file1 targetdir/file1targetdir/file2 targetdir/file2.. % %lsls file1 file1file2 file2targetdir targetdir Esempio Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 48 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 47 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 45 Gestione dei file % name file1 file1file2 file2file3 file3targetfile targetfile % % mv mv file1 file1targetfile targetfile % %lsls file2 file2file3 file3targetfile targetfile % % mv mv file2 file2file3 file3targetfile targetfile mv: mv:Target Targettargetfile targetfile must mustbe be aa directory directory Esempio Usage: Usage: mv mv [-f] [-f][-i] [-i]f1 f1f2 f2 mv mv [-f] [-f][-i] [-i]f1 f1... ...fn fnd1 d1 mv mv [-f] [-f][-i] [-i]d1 d1d2 d2 1 Il comando cp % %lsls file1 file1file2 file2 % % mv mv file1 file1file2 file2target target mv: mv:target target not notfound found % % mv mv file1 file1target target % %cat cattarget target Esempio contenuto contenutodi difile1 file1 % % Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 50 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 49 Il comando mv 9 ) % D E F -r B 9 mv% name Esempio touch [ options][ time] filename... rm [-r] name 9 9 % %lsls file1 file1file2 file2targetdir targetdir % %cp cpfile1 file1file2 file2targetdir targetdir % %lsls..targetdir targetdir .:.: file1 file1file2 file2targetdir targetdir targetdir: targetdir: file1 file1file2 file2 % %cd cd targetdir targetdir % %lsls file1 file1file2 file2 % %cp cpfile1 file1targetfile targetfile % %lsls file1 file1 file2 file2 targetfile targetfile % % Il comando touch % G $ Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 52 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 51 Il comando rm cp [ options][ name...] target D D -am! -a! ) time D -m! % D % Esempio: % %touch touch 01281738 01281738file1 file1 % %lsls-l-l total total00 ----r--r-----r--r--11 mariog mariog staff staff 00Jan Jan28 28 17:38 17:38 file1 file1 1 Metacaratteri $ $ % %lsls Esempio: gianni giannigiorgio giorgio laura laura mario mario % %rm rmg* g* % %lsls laura laura mario mario % %rm rm** % % Es. rm file? Es. rm file* B $ [...] ! ! [] Es. rm file[123] rm file[a-z] ( ) N.B. 99 % J K $ pathnameE!% expression , % % % % % . % % = I % 8% E! Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 56 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 55 I B Esempio find pathname ... [ expression] % H * Il comando find % B ? Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 54 Marco Lapegna – Lab. di Sistemi Operativi I - Introduzione - 53 4 Metacaratteri 8 ! I ) a.out 0 find . -name a.out -atime +7 -exec rm {} \; . -name a.out 0 -atime +7 -exec rm {} \; rm J* ! 1