Il sistema operativo / Linux



Documenti analoghi
NOZIONI BASE PER ESERCITAZIONI

Laboratorio di Programmazione

Laboratorio di Alfabetizzazione Informatica - Esame 20 settembre 2013.

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Informatica pratica. File e cartelle

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Funzioni in C. Violetta Lonati

Mac Application Manager 1.3 (SOLO PER TIGER)

I.C. ALDO MORO - CAROSINO a.s REGOLAMENTO DI UTILIZZO DEL LABORATORIO DI INFORMATICA

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato Finestra attiva o nuovo documento

INDICE PROGRAMMA CORSO

Il web server Apache Lezione n. 3. Introduzione

Innanzitutto andiamo sul sito ed eseguiamo il download del programma cliccando su Download Dropbox.

Codifica: dal diagramma a blocchi al linguaggio C++

3. Installare Wamp Server

MANUALE EDICOLA 04.05

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Prova di Laboratorio di Programmazione

Sistemi Web! per il turismo! - lezione 3 -

Informatica per le discipline umanistiche 2 lezione 14

COSTER. Import/Export su SWC701. SwcImportExport

IL MIO PRIMO SITO: NEWS

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Uso del Computer e Gestione dei File. Uso del Computer e Gestione dei File. Federica Ricca

Programmare in Java. Olga Scotti

Ambulatorio Virtuale Medinformatica Sistema On Line per richiedere Appuntamenti e Ricette

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Come gestire le directory con R

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

GUIDA ALLE SOLUZIONI

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Informatica. appunti dalle lezioni del 20/09/2011 e del 27/09/2011

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Pulire IM. Non tutti sanno che solo una corretta e regolare pulizia nelle cartelle di IM, assicura un funzionamento longevo del programma

Dispensa di Informatica I.1

Josef Vitanostra INFORMATICA PARTHENOPE

Esercitazione 1 primi passi e uso dei file

INFORMATICA 1 L. Mezzalira

Creazione e gestione file e cartelle. Le finestre e l organizzazione dati

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Leggere un messaggio. Copyright 2009 Apogeo

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA

AD HOC Servizi alla Persona

STAMPA UNIONE DI WORD

Corso di Informatica

Introduzione. Informatica B. Daniele Loiacono

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

L archiviazione della posta elettronica può aiutarci a recuperare spazio senza costringerci a cestinare documenti importanti

Linguaggi di programmazione

Sistema operativo: Gestione della memoria

Il computer: un grande amico!

Guida alla compilazione on-line della domanda di Dote Scuola

Il calendario di Windows Vista

Corso base di informatica

STAMPA DI UNA PAGINA SEMPLICE

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

Olga Scotti. Basi di Informatica. File e cartelle

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

Introduzione a Dev-C++

Informatica 1 Lezione 1

1) Come si crea una cartella? Menù File/Nuovo/Cartella Menù File/ Nuova cartella Menù Visualizza/Cartella

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Windows. Cos è I componenti principali Le funzioni essenziali. 1

Formattazione. ü Introduzione

ROM Upgrade Utility (RUU) Prima dell aggiornamento fare attenzione se

Ing. Paolo Domenici PREFAZIONE

Organizzazione di Sistemi Operativi e Reti

Documenti utili. La presentazione delle ricevute bancarie

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Word processor funzione Stampa Unione

Guida al backup e aggiornamento del programma MIDAP

GaraviniSoftware srl MANUALE IVA. Aggiungere un Codice IVA

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

Il programmatore che c e in noi Lezione 12 Statements

EW1051 Lettore di schede USB

Il Software. Il software del PC. Il BIOS

Alfabetizzazione Informatica. Prof. Giuseppe Patti

V989 Brush ITA Tutorial.docx 必 看 刷 机 教 程 _.doc

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

Dispense di Informatica per l ITG Valadier

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

LA MOLTIPLICAZIONE IN CLASSE SECONDA

IRSplit. Istruzioni d uso 07/10-01 PC

PORTALE CLIENTI Manuale utente

SOMMARIO... 3 INTRODUZIONE...

Laboratorio di Alfabetizzazione Informatica - Esame 8 luglio Turno 3.

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

file:///c:/formazione/photoshop-webmaster-uffici/doc/guida-winzip.htm Guida a Winzip


Gestione File e Cartelle

DESKTOP Internal Drive. Guida all installazione

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

Si aprirà una schermata dove verranno proposte le gare assegnate

Manuale Operativo per la firma digitale

Transcript:

Non lasciate l unica copia del programma sul PC in cui lavorate, non è detto che lo possiate riutilizzare durante la lezione successiva. Il sistema operativo / Linux Create una directory (ad es. chiamandola con il vostro cognome) e salvate al suo interno i file che preparerete. Non chiamate i file dei programmi tutti con lo stesso nome (pippo.c / test.c / prova.c / ) I computer potrebbero bloccarsi: salvate SPESSO il file con il codice C. Alla fine della lezione COPIATE i file che avete preparato su di un floppy o su una memoria USB (oppure spediteveli per posta elettronica) Come faccio a spostare i documenti che ho creato su floppy/memoria USB? 1 Dal desktop del PC individuo la cartella che contiene il file, lo seleziono e lo copio all interno della cartella che si trova nel floppy o nella memoria USB (dopo averla montata)

Il sistema operativo / Linux 2 Utilizzando il comando df individuo quali siano i dispositivi di memorizzazione attualmente disponibili e capisco quale sia la directory in cui sia disponibile il loro contenuto. Di norma, il contenuto del floppy è disponibile all interno della directory /mnt/floppy mentre il contenuto della memoria USB è disponibile all interno della directory /mnt/usb oppure, nel caso ci siano più porte USB disponibili, nella directory /mnt/usb/1!! Per chi ha scelto il metodo 1, utilizzare l opzione smonta prima di scollegare il dispositivo Per chi ha scelto il metodo 2, dare il comando umount /mnt/floppy nel caso si stia usando il dischetto umount /mnt/usb nel caso si stia usando la memoria USB

Perché devo montare/smontare la chiavetta USB ed i floppy? Il sistema operativo / Linux memorizzazione di dati da parte dell utente / software / alto livello? periferica di archiviazione / hardware / basso livello I dispositivi hardware non sono direttamente accessibili all utente, il sistema operativo ne permette l accesso all utente mediante dei collegamenti ai dispositivi hardware che vengono visti dall utente come dei file. -> diamo un occhiata alla directory /dev (ove dev sta per device) utente dispositivo software (file) buffer di MEMORIA dispositivo hardware (ad es. memoria USB) rientrano nella categoria block devices supportano RA

Il compilatore, gcc (GNU C Compiler) http://gcc.gnu.org/ Perché ci serve un compilatore? Il compilatore serve in quanto il C è un linguaggio compilato e non interpretato; il C inoltre è un linguaggio imperativo. Ci serviamo del compilatore per passare dal file di testo (linguaggio C / comprensibile all utente) a programma eseguibile (linguaggio macchina/comprensibile al processore). Ci sono livelli di linguaggio intermedi? Sì! Codice C, linguaggio comprensibile con un lessico, sintassi e semantica int i = 5; i = i + 3; Assembly (linguaggio mnemonico a basso livello) compilatore Linguaggio macchina (codice binario) 0101011000101001001010

Quali sono le operazioni svolte dal compilatore per tradurre il codice in un file eseguibile? Riconduciamoci prima ad un esempio semplice: vogliamo un programma che funzioni sulla macchina cuoco e che ricevendo in input degli ingredienti ci produca come output una torta. Listato del codice Pasta al forno - 5 hg di pasta corta - 300 g di sugo al ragù - 200 g di besciamella - parmigiano - burro Cuocere la pasta in acqua salata (tenendola al dente); scolare e condire con il sugo. Disporre poi in una teglia precedentemente imburrata e ricoprire con la besciamella e parmigiano a piacere. Passare in forno a 180 o C fino a raggiungere la doratura desiderata. Come variante, al posto del ragù usare il sugo con i funghi. Cosa dovrà poi fare il programma? allocazione delle risorse salare l acqua e farla bollire cuocere la pasta condire la pasta accendere il forno / T = 180 o C prendere la teglia e imburrarla riempirla di pasta ricoprire con besciamella aggiungere parmigiano infornare il tutto controllare il livello di cottura estrarre a cottura ultimata commento (ovvero testo non funzionale alla produzione di questo specifico output)

Cosa dovrà poi fare il programma? Cosa sa fare la macchina? allocazione delle risorse salare l acqua farla bollire e cuocere la pasta condire la pasta prendere la teglia e imburrarla riempirla di pasta ricoprire con besciamella aggiungere parmigiano infornare il tutto controllare il livello di cottura estrarre a cottura ultimata NO -> il cuoco rimane in cucina NO -> serve libreria esterna per uso di pentole e fornello NO -> serve libreria esterna per uso del forno e cottura Il programma finale (che è in grado di produrre come output la pasta al forno) risulta quindi l insieme di: allocazione delle risorse, operazioni svolgibili direttamente dalla macchina che lo dovrà eseguire, operazioni svolgibili dalla macchina mediante l ausilio di funzionalità esterne alla macchina stessa.

Il compilatore deve rendere possibile l esecuzione del programma, ovvero deve: 1. eliminare i commenti (sono superflui per le operazioni da svolgere) 2. sostituire le etichette; ovvero parmigiano deve diventare 100 gr di parmigiano della marca ACME, pasta deve diventare 500 gr di fusilli della marca ACME 3. generare il codice eseguibile dalla macchina (prendi la scatola di pasta, aprila, togli la pasta dalla scatola, pesala,...) 4. collegare il codice legato all interazione con dispositivi o funzionalità esterne (accendi il forno, imposta la temperatura,...) 5. includere nel programma una parte in cui si richieda l allocazione delle risorse utili al funzionamento del programma (ovvero richiedere quanti e quali ingredienti debbano essere tutti disponibili nel momento in cui il programma verrà mandato in esecuzione) 6. unire il tutto e fare in modo che le varie istruzioni vengano concatenate in modo corretto (non devo mettere in forno la pasta prima di averla cotta...) Il sistema operativo deve rendere attuabile l esecuzione del programma, ovvero deve: 1. fare in modo che le risorse richieste vengano rese disponibili al momento dell inizio del programma (se manca la pasta, il programma non parte) 2. fare in modo che i dispositivi esterni e le funzionalità siano disponibili al momento dell esecuzione del programma (se manca il gas, il forno non si accende)

Il compilatore, gcc (GNU C Compiler) http://gcc.gnu.org/ 1. salviamo il programma in un file di testo avente estensione.c, ad esempio esempio.c 2. serviamoci del compilatore per passare dal file di testo (linguaggio C / comprensibile all utente) al programma eseguibile (linguaggio macchina/comprensibile al processore). gcc -o esempio -Wall esempio.c -o dopo questa opzione va indicato il nome del file (sta per output) in cui il compilatore salverà il file da lui prodotto (in questo caso esempio) -Wall W sta per warning, l opzione serve per attivare tutti (all) gli avvisi possibili NOTA! il file può avere un nome qualsiasi, non serve abbia un estensione particolare 3. mandiamo in esecuzione il file eseguibile./esempio Come mai dobbiamo anteporre./ al nome del file eseguibile? Per motivi di sicurezza il sistema operativo manda in esecuzione in modo automatico solo i file eseguibili che si trovano in un elenco prestabilito di directory. Tutti gli altri file si possono mandare in esecuzione a patto di specificarne esattamente la posizione.

4. controlliamo che il file eseguibile abbia i privilegi per poter essere mandato in esecuzione utilizziamo il comando ls -al dovremmo vedere che, mentre il file esempio.c possiede i privilegi rw-, il file esempio possiede tutti e tre i privilegi, rwx

Prima di iniziare a scrivere un programma Ordine! abituatevi a progettare il codice su un foglio di carta, anche se si tratta di poche righe o di qualcosa che ritenete essere banale. Fate in modo che l indentazione del codice rispecchi la sua struttura. Aggiungete dei commenti (con moderazione...) Una sintassi corretta ma priva di significato non produce un buon algoritmo (anzi, spesso si ottengono dei danni!). Il compilatore controlla la sintassi ed il lessico, purtroppo/per fortuna non controlla la semantica. Imparate dagli sbagli; se il compilatore genera un errore o un warning (la lingua del compilatore è l inglese!), ricordiamocene ed impariamo a riconoscerlo Fate dei test man mano che scrivete il codice, non aspettate di verificarne la funzionalità dopo aver scritto pagine e pagine. Ragionate!! Divertitevi!!

Cominciamo con un esempio semplice, cercando di seguire i passi della compilazione. Supponiamo che il codice venga salvato in un file che si chiama primo_test.c Prima di tutto verifichiamo la correttezza del codice mediante il compilatore gcc o primo_test Wall primo_test.c Se non vengono osservati errori, cerchiamo di analizzare quali sono i passaggi che ci portano dal codice C al file scritto in linguaggio binario. Verifichiamo il primo passo: l azione del preprocessore (punti 1 e 2 della ricetta della pasta al forno) gcc E primo_test.c Con questo comando mandiamo a video il risultato dell azione del preprocessore; con l operatore di redirezione possiamo anche mandare su file tale output gcc E primo_test.c > risultato_preprocessore Ora vediamo come è fatto un file scritto in assembly (punto 3 (in parte) della ricetta della pasta al forno) gcc S primo_test.c Otteniamo un file che si chiama primo_test.s -> visualizziamone il contenuto con un editor di testo Proviamo ora a dare un occhiata al file primo_test