Il sistema Linux: principi di progettazione

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
1 Introduzione ai calcolatori Parte II Software di base.
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
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.
Il Sistema Operativo.
Corso di SISTEMI OPERATIVI Dipartimento di Informatica e Scienze dellInformazione 1 Sistemi Operativi I- Laboratorio-a.a. 2003/2004 a cura di Stefano Bencetti.
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
File system Casi di studio (3).
Introduzione a Linux Dr. Giovanni Stracquadnio
Shell Scripting. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure contenuti.
Giuseppe Fabio Fortugno.
Strutture dei Sistemi Operativi
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
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.
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)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Uso di Linux.
Laboratorio di Informatica
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
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.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Sistemi Operativi - Shell 1 Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati 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.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
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.
1 Installazione da rete Introduzione Configurazione del server NFS Cosa serve sul client Configurazione kickstart.
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.
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.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Shell dei comandi – ! Bash &/o Tcsh !
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Il Sistema Operativo (1)
Lezione 1 Approccio al sistema operativo : la distribuzione Knoppix Live Cd Knoppix 3.6 Interfacce a caratteri e grafica: console e windows manager File.
Sistema Operativo (Software di base)
Script di shell (bash).
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.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
Basi di Unix: introduzione Kernel il fulcro del sistema. Comunica con l’hardware (processore, memoria, disco fisso) Shell interfaccia tra l’utente e il.
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 File System ed Input/Output UNIX Caratteristiche del FS Unix Implementazione Il file system di Linux Organizzazione dell’ I/O.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1.1 Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2010/2011 Prof. Luca Ferrari.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Il sistema operativo UNIX Presentazione realizzata da: Deri Claudio,Granata Luca,Brunetti Enrico.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
I sistemi operativi Funzioni principali e caratteristiche.
Struttura del Computer
Orientamento. Il Kernel Il Kernel è un programma scritto in linguaggio vicino all'hardware che ha il compito di fornire ai processi in esecuzione sul.
Transcript della presentazione:

Il sistema Linux: principi di progettazione Linux è un sistema multiutente, multitasking dotato di una serie completa di strumenti compatibili con UNIX. Il suo file system concorda con la tradizionale semantica UNIX, e implementa completamente il modello standard di networking di UNIX. I principali obiettivi della progettazione sono la velocità, l’efficienza, la flessibilità e la standardizzazione. Linux è progettato per essere conforme ai documenti POSIX più importanti; alcune distribuzioni di Linux hanno ottenuto la certificazione ufficiale POSIX. L’interfaccia di programmazione di Linux concorda con la semantica UNIX di SVR4, piuttosto che con i dettami della BSD.

I livelli di un sistema UNIX User Interface

Componenti di un sistema UNIX Come la maggior parte delle implementazioni di UNIX, Linux è composto da tre blocchi di codice principali: Programmi di utilità standard Libreria standard Kernel I programmi di utilità standard realizzano specifici compiti di gestione. Shell Comandi per la gestione di files e cartelle Filtri Compilatori Editors Comandi per l’amministrazione del sistema …

La shell di un sistema UNIX I sistemi UNIX hanno una Graphical User Interface (Linux usa KDE, GNOME …), ma i programmatori preferiscono scrivere direttamente i comandi. Shell: il processo utente che esegue i programmi (interprete dei comandi). L’utente digita i comandi. La shell legge i comandi (li legge dallo standard input) e li traduce al sistema operativo. Si possono eseguire programmi esterni (es. netscape) o comandi interni alla shell (es. cd). Sono disponibili vari tipi diversi di shell: Bourne shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh), Bourne Again shell (bash). L’amministratore del sistema fornisce all’utente una shell di default, ma l’utente può cambiare tipo di shell.

La shell di un sistema UNIX Esempi di comandi: $ cd /usr/src/linux $ more COPYING $ cp file1 file2 $ head –20 file $ head 20 file $ ls *.c $ ls [abc]* $ sort < file1 > file2 Stringhe di comandi multipli in uno script di shell: $ sort < file1 > file2; head –30 < file2 ; rm temp $ sort < file | head –30 $ grep org CREDITS | sort | head –20 | tail –5 > file

La shell è qualcosa di più ... La shell è programmabile, cioè è possibile realizzare degli scripts di shell. Uno shell script è un file contenente una sequenza di comandi indirizzati al sistema operativo che facilita l’esecuzione ripetuta dei comandi contenuti senza bisogno che siano faticosamente riscritti ogni volta che devono essere eseguiti. Se c’è una ben precisa lista ordinata di comandi del sistema operativo che l’utente deve eseguire ripetutamente, ad esempio, subito dopo ogni login o subito prima di ogni logout, allora la maggior parte dei sistemi operativi ha la possibilità di registrare la lista dei comandi in un file, che poi può essere eseguito automaticamente ad ogni login o logout, oppure può essere invocato dall’utente tramite l’esecuzione di un singolo comando che dà luogo all’esecuzione dell’intero contenuto del file, il quale può contenere tanto un solo comando del sistema operativo quanto migliaia.

Gli scripts di shell Esempio: #!/bin/csh clear echo Menuset stop=1 while ($stop>0) cat << ENDOFMENU 1: stampa data 2: stampa la directory corrente 3: esci ENDOFMENU echo -n Scegli il comando set reply=$< switch ($reply) case 1 : date breaksw case 2 : pwd case 3 : set stop=0 default: echo scelta sbagliata riprova breaksw endsw end exit 0

Programmi di utilità UNIX Alcuni dei più comuni programmi di utilità di UNIX richiesti dallo standard POSIX.

La libreria standard Una chiamata di sistema (o system call) è il metodo che il processo utente usa per richiedere un’azione al SO. I programmi realizzano le chiamate di sistema per mezzo delle trap. Istruzioni trap: Passa dalla modalità utente alla modalità kernel. Controlla la correttezza dei parametri della chiamata. I comandi sono eseguiti come se fossero direttamente invocati dal sistema operativo. Torna in modalità utente. Poichè è impossibile scrivere una trap in C, viene fornita una libreria standard con una procedura per ogni system call. Queste procedure sono scritte in assembler e vengono richiamate utilizzando codice scritto in C. Ad esempio, un programma C per realizzare la chiamata di sistema read, si appoggia sulla procedura read della libreria standard. Pertanto, la standard library definisce un insieme standard di funzioni tramite le quali le applicazioni interagiscono col kernel; tale insieme di funzioni implementa gran parte delle funzionalità del sistema operativo che così non hanno bisogno di essere richiamate direttamente dal kernel. POSIX stabilisce quali sono le procedure delle librerie che il sistema deve fornire, i loro parametri e i loro compiti.

Il Kernel Il kernel è responsabile del mantenimento della visione astratta del sistema operativo. Fornisce le principali funzioni della macchina virtuale (system calls, interrupt e traps). Struttura approssimativa di un generico kernel UNIX.

Il Kernel Il kernel di Linux utilizza un modello monolitico. Non si serve del “più nuovo” modello client-server (cioè micro-kernel). La principale ragione di questa scelta è il miglioramento delle prestazioni. Il codice del kernel viene eseguito in modalità kernel con pieno accesso a tutte le risorse fisiche del calcolatore. Tutto il codice del kernel e i dati sono contenuti in un unico indirizzo di memoria. Sebbene il kernel venga eseguito come un singolo processo con un singolo indirizzo, il kernel di Linux usa la modularità.

File System I files di Linux sono organizzati secondo una gerarchia di etichette, generalmente nota come una struttura a directories. I files referenziati da queste etichette possono essere di tre tipi: Files ordinari, contenenti una sequenza di bytes che generalmente corrispondono a codice (programmi) o a dati. Files directory, che sono immagazzinati su disco in un formato speciale e costituiscono l’ossatura del file system. Files speciali, che corrispondono a periferiche quali stampanti o dischi. Agli utenti, il file system di Linux appare come un albero di directories gerarchico soddisfacente la semantica UNIX.

File System / è la directory root; punto di riferimento per tutte le directories. Ogni file possiede un pathname non ambiguo: /home/user1/papers.

Alcune directories che si trovano nei sistemi UNIX /bin Programmi di sistema essenziali per Linux. /boot Tutti i files richiesti per avviare Linux. /dev Tutti i devices hanno qui i propri files corrispondenti. /etc Tutti i files di configurazione per il diverso software sono immagazzinati qui. E’ quantomai opportuno non mettersi a giocare con questa cartella! /home Tutti gli utenti avranno una directory personale in questa directory. Se la tua id è rossi, la tua directory personale (detta home) sarà probabilmente /home/rossi. /lib Le librerie richieste dalle applicazioni di sistema. (Esattamente come DLL in Windows). /lost+found Quando il controllo del disco trova files che sono danneggiati o che non sono legati ad alcuna directory, essi vengono ripristinati in questa directory. Questi danni sono in gran parte dovuti a uno shutdown non corretto.

Alcune directories che si trovano nei sistemi UNIX /mnt La directory in cui periferiche e altri file systems vengono montati. /opt La directory in cui è installato software aggiuntivo (optional). /proc proc alloggia uno pseudo-file system. Il suo contenuto in realtà non esiste in alcuna parte del disco, ed è reso disponibile solo quando si entra in questa directory e si consulta qualche file. /root La home per l’amministratore: root. /sbin La directory contenente i programmi dell’ammini-stratore di sistema. /tmp La directory in cui i files temporanei vengono creati e conservati. Tutti gli utenti possono salvare files qui. /usr Tutto ciò che è collegato agli utenti. /var Files il cui contenuto varia frequentemente si trovano in questa directory.

Alcune directories che si trovano nei sistemi UNIX /usr Tutto ciò che è collegato agli utenti. /usr/bin Contiene programmi degli utenti. /usr/include I files di intestazione richiesti dai programmi per la compilazione. /usr/lib Le librerie richieste dalle applicazioni dell’utente. /usr/local Files specifici di questa particolare macchina. /usr/sbin I programmi dell’utente amministratore. /usr/share Informazioni che possono essere condivise dalla maggior parte degli utenti. /usr/src Il codice sorgente per il kernel di Linux. /usr/X11R6 Files necessari per il sistema X Window. /var Files il cui contenuto varia frequentemente si trovano in questa directory. /var/log I log-files del sistema. /var/spool Directories per mail, news, stampe e altro.

Montare un file system Prima del montaggio Dopo il montaggio Separate file systems After mounting Prima del montaggio Dopo il montaggio