Introduzione ai sistemi operativi Unix e Linux

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Altre Istruzioni di I/O
Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II
LINGUAGGIO DI PROGRAMMAZIONE C
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Introduzione a Windows.
Stringhe di caratteri In linguaggio C.
Da Unix a Linux Alessio Coraci V Dp.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
Introduzione a Linux Dr. Giovanni Stracquadnio
Giuseppe Fabio Fortugno.
Programmazione Procedurale in Linguaggio C++
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Corso Linux Base 2. Uso del Sistema. © Corso Linux Base - Uso del Sistema Logging In (1) Una volta partito il sistema lutente esegue la procedura.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Guida Linux Molto rapida…. Due parole sullambiente grafico Potete usare: KDE o GNOME Si sceglie prima di mettere la password. Questione di gusti…
Laboratorio 1: Usare Linux. File system Il file system è la componente del sistema operativo che si occupa della gestione di file e cartelle Con laccount.
Struttura dei sistemi operativi (panoramica)
Unalternativa a Microsoft Office OpenOffice Author Kristian Reale Rev by Kristian Reale Liberamente distribuibile secondo i termini della licenza.
I Thread.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
Uso di Linux.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I File.
Espressioni condizionali
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Ambienti di programmazione Stefano Cagnoni e Monica Mordonini.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Programmazione in Java
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
Corso Linux Base 2. Uso del Sistema. © Corso Linux Base - Uso del Sistema Logging In (1) Una volta partito il sistema lutente esegue la procedura.
Creazione progetto in C++/DEV
Il linguaggio di programmazione C; Il Sistema Operativo Linux installato, con relativo utilizzo della shell bash attraverso i principali comandi standard.
Il Sistema Operativo (1)
Il Sistema Operativo: il File System
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
STAGE INVERNALE 2005 GESTIONE DI SISTEMI DI SICUREZZA INFORMATICA. A CURA DI: MARIO MASCIARELLI STUDENTI: DAMIANO PITOLLI FABIO NARDELLA.
Unix (Linux-Mac OS) Alcuni comandi. cd change working directory cd [DIRECTORY] cd entra nella directory specificata. Se non è fornita alcuna directory.
Star Office è una suite di software di produttività personale commercializzata da Sun Microsystems. StarOffice nasce come software commerciale sviluppato.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
I FILE I File sono l’ unità base di informazione nell’interazione tra utente e sistema operativo I File sono l’ unità base di informazione nell’interazione.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Basi di Unix: introduzione Kernel il fulcro del sistema. Comunica con l’hardware (processore, memoria, disco fisso) Shell interfaccia tra l’utente e il.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
Operatori di incremento e decremento
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Esempi di Sistemi Operativi: DOS Nel file system di DOS i path names hanno la seguente forma C:\TEMP\DirA\DirB\elab.pdf Si utilizzano due nomi speciali.
1 Laboratorio di Programmazione di Sistema - C Susanna Pelagatti Ricevimento: Me ,
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
COMPONENTI DI UN SISTEMA INFORMATICO HardwareSoftware Parte fisicaComponenti logiche Componenti fisiche (elettroniche e meccaniche) di un computer Istruzioni.
Transcript della presentazione:

Introduzione ai sistemi operativi Unix e Linux Alessandro De Salvo <Alessandro.DeSalvo@roma1.infn.it> Corso di Laboratorio di Calcolo 2005

Il sistema operativo Unix UNIX nasce il 1-1-1971 dalle ceneri di un progetto di sistema operativo (Multics) iniziato nel 1965 nei Bell Laboratories in collaborazione con MIT, AT&T e General Electric Multi-utente Multi-processore Struttura di memorizzazione dati (file system) gerarchica Semplice e chiara interfaccia utente Architettura trasparente e invisibile all’utente Completo ambiente di programmazione L’intero sistema occupava 16K di memoria! Facile portabilità su piattaforme hardware diverse grazie alla riscrittura in linguaggio C nel 1973 Sistema operativo “a strati” (layered OS) Kernel: interazione con l’hardware del computer User: interazione con il kernel Il nuovo sistema operativo viene presentato nel 1974 sotto l’egida dell’AT&T e adottato in maggioranza da università ed entità commerciali

Il sistema operativo Unix (2) Vari tipi di Unix (Unix Flavors) Sistemi Operativi a pagamento AIX (IBM)  AIX 5L (Linux) BeOS Digital Unix (Compaq) HP-UX (Hewlett Packard) IRIX (Silicon Graphics) MacOS X (Apple) Solaris (Sun Microsystems) Sistemi Operativi non a pagamento Linux FreeBSD Sistemi Operativi real-time (sistemi che reagiscono in modo temporalmente prevedibile a stimoli esterni imprevedibili) LynxOS QNX

L’architettura di Unix Programmi Utente (eseguibili, shell, …) Programmi Interfaccia per le chiamate di sistema (System Call Interface) Gestione filesystem Gestione memoria Gestione processi Servizi di rete (sockets) Kernel Drivers filesystems TCP/IP drivers Driver IDE Driver SCSI Driver FDD Drivers schede di rete Hardware Hardware

Linux Linus Torvalds, studente dell’università di Helsinki, inizia per hobby nel 1991 la scrittura di un’estensione del mini S.O. UNIX di nome Minix Nel 1994 la prima versione del kernel di Linux vede la luce Linux è sviluppato secondo la licenza GNU General Public License (GPL) e tutto il codice sorgente è distribuito gratuitamente al pubblico Le performances e la versatilità di Linux lo hanno fatto diventare ben presto un sistema operativo di grande diffusione Linux ha introdotto l’idea di OpenSource Accesso al codice sorgente Redistribuzione gratuita del codice e dei programmi compilati Permesso di effettuare modifiche Preservazione dell’integrità del codice sorgente dell’autore

OpenSource Apertura del codice Stabilità Adattabilità Qualità Avere a disposizione il codice sorgente agevola la risoluzione di problemi Stabilità Dal momento che l’OpenSource può contare su una grande comunità di sviluppatori e che tutto il codice sorgente sviluppato deve rimanere pubblico, il software Open Source è generalmente più stabile del software commerciale Adattabilità Il codice OpenSource è strettamente collegato con delle regole standard (Open Standards) e quindi è facilmente adattabile ad ogni altra applicazione OpenSource Qualità I prodotti OpenSource possono essere testati da una grande comunità, che è anche potenzialmente una comunità di sviluppatori Innovazione Ciò che spinge l’OpenSource è la competizione e la possibilità di contribuire comunemente allo sviluppo di un prodotto Costo La maggior parte del software OpenSource è gratis (ma non lo è necessariamente)

Come lavorare in ambiente UNIX Parte II Come lavorare in ambiente UNIX

Accesso al sistema Ogni utente è identificato da una coppia di informazioni Nome dell’utenza (username), pubblica Parola-chiave (password), segreta L’utente accede al sistema fornendo username e password Login: accesso al sistema (da remoto) telnet <nome del computer> Logout: uscita dal sistema exit Più utenti possono lavorare contemporaneamente sulla stessa macchina

Directories e Home Directory La struttura di memorizzazione dati presente nei dischi (filesystem) è una struttura ad albero, in cui i nodi sono directories e le foglie sono directories o files Dopo la login il sistema operativo posiziona ogni utente nella propria directory (home directory) Privilegi di lettura/scrittura solo dei files creati dall’utente Possibilità di protezione da lettura/scrittura/cancellazione da parti di altri utenti I files di sistema possono essere modificati soltanto dal super-utente (root), il solo abilitato al completo controllo della macchina / /usr /boot /home /tmp /home/user1 /home/user2 /home/user3 /home/user4

Interazione con il sistema Riga di comando (case sensitive) Esecuzione di un programma, ad esempio il programma emacs emacs |RETURN| Spostamento all’inizio della riga |CTRL+A| Spostamento alla fine della riga |CTRL+E| Completamento del comando parzialmente digitato ema |TAB|  > emacs Copia/incolla testo Copia: selezionare il testo da copiare con il tasto sinistro del mouse Incolla: posizionarsi sul punto desiderato e premere il tasto centrale del mouse Una volta lanciato un programma dalla linea di comando il controllo ritornerà all’utente solo al termine dell’esecuzione del programma stesso Esecuzione di un programma e ritorno immediato del controllo (background mode) gzip pippo.txt & |RETURN|

Comandi base Operazioni comuni Lista dei files nella directory corrente ls |RETURN| Lista dei files il cui nome termina con .txt nella directory corrente ls *.txt |RETURN| Stampa della dimensione e delle proprietà dei files ls –l |RETURN| -rwxr-xr-x 1 desalvo xv 11890 Jun 4 2001 test -rw-r--r-- 1 desalvo xv 148 Jun 4 2001 test.c drwxr-xr-x 2 desalvo xv 4096 Jan 15 22:09 test-directory Stampa del nome della directory di lavoro corrente (full pathname) pwd |RETURN| Cambio di directory cd <nome directory> |RETURN| Ritorno alla directory al livello precedente cd .. |RETURN| Creazione di una nuova directory mkdir <nome directory> |RETURN| Rimozione di una directory vuota rmdir <nome directory> |RETURN|

Comandi base (2) Operazioni comuni (2) Spostamento o rinominazione di files mv <file originale> <nuovo file> |RETURN| Esempio di spostamento: mv pippo.txt txt_files/ Esempio di rinominazione: mv pippo.txt paperino.txt Cancellazione di uno o più files rm <nome file> |RETURN| rm pippo* |RETURN| Copia di un file cp pippo.txt paperino.txt |RETURN| Visualizzazione del contenuto di un file (browsing) more pippo.txt |RETURN| Creazione o modifica di un file di testo (editing) emacs pippo.txt |RETURN| Stampa di un file lpr -P<nome stampante> <nome file> |RETURN| Informazioni sull’uso di un comando man <comando> |RETURN|

Editor di testo Emacs Avvio del programma Uscita da Emacs emacs <nome file> |RETURN| Uscita da Emacs |CTRL-x| |CTRL-c| Salvataggio del file corrente senza uscire dal programma |CTRL-x| |CTRL-s| Cancellazione del contenuto della riga dal cursore in poi |CTRL-k| Annullamento dell’utima operazione (undo) |CTRL-x| u Ricerca di testo in avanti |CTRL-s| <testo da cercare> |RETURN| Ricerca di testo indietro |CTRL-r| <testo da cercare> |RETURN|

Compilazione ed esecuzione di un programma Compilazione di un programma in C gcc –o eseguibile eseguibile.c gcc –o eseguibile –lm eseguibile.c Esecuzione di un programma Dalla directory in cui è registrato l’eseguibile ./eseguibile Nome dell’eseguibile che andiamo a creare Nome del file contenente il codice sorgente da compilare Compilatore Istruzioni al compilatore per il link con la libreria delle funzioni matematiche (libm.a)

Semplice I/O con un programma C Streams Input stream (STDIN): canale di ingresso dei dati Output stream (STDOUT): canale d’uscita dei dati Error stream (STDERR): canale d’uscita dei messaggi di errore Stampa su STDOUT #include <stdio.h> int printf(const char *format, ...); Format string (stringa di caratteri) I caratteri che non iniziano per % vengono copiati direttamente nella stream di output Specificatori di conversione %d numero decimale intero %f numero decimale a virgola mobile %x numero esadecimale %o numero ottale %s stringa di caratteri %c singolo carattere

Esempio di programma in C Programma di test (hello.c) Compilazione del programma gcc –o hello hello.c Esecuzione del programma ./hello #include <stdio.h> int main() { /* Stampa della frase Hello World! */ printf (“Hello World!\n”); /* Uscita dal programma */ return (0); }

Esempio di programma in C (2) Conversione di un numero intero da notazione decimale a notazione ottale (octal.c) Compilazione ed esecuzione del programma gcc –o octal octal.c ./octal #include <stdio.h> int main() { /* definizione delle variabili */ int var1 = 0; /* Leggi il numero intero */ printf ("Inserisci un numero intero:\n"); scanf ("%d", &var1); printf ("Il numero %d in notazione ottale è %o\n", var1, var1); /* Uscita dal programma */ return (0); }

Esempio di programma in C (3) Utilizzo dei parametri di linea di comando (numeri.c) Compilazione ed esecuzione del programma gcc –o numeri numeri.c ./numeri 123 #include <stdio.h> int main(int argc, char **argv) { /* definizione delle variabili */ int var1 = 0; /* Stampa del primo numero immesso nella linea di comando */ if (argc > 1) { var1 = atoi(argv[1]); printf (“Il numero immesso è: %d\n”,var1); } /* Uscita dal programma */ return (0);

Esercitazione (1) Modificare il programma octal.c in modo da stampare il numero intero decimale in notazione esadecimale