+ All Categories
Home > Documents > Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una...

Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una...

Date post: 20-Jul-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
17
Linux Corso di Sistemi Operativi A cura di : Domenico Cotroneo Linux Programming Bible by John Goerzen Riferimenti The Linux Documentation Project: ftp://metalab.unc.edu/pub/Linux/docs/LDP/ “Rute Users Tutorial and Exposition”, Paul Sheer, March 28, 2000 http:/www.obsidian.co.za/rute/ Hardware (CPU, memory, disks,terminals...) Microprogramming Microprogramming Machine Language Machine Language Operating System Operating System Computer system Compilers Compilers Editors Editors Command Interpreter Command Interpreter Banking System Airline Reservation Web Browser hardware System Programs Application Programs
Transcript
Page 1: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

1

LinuxCorso di Sistemi Operativi

A cura di :Domenico Cotroneo

Linux Programming Bible

by John Goerzen

Riferimenti

The Linux Documentation Project:ftp://metalab.unc.edu/pub/Linux/docs/LDP/

“Rute Users Tutorial and Exposition”, Paul Sheer, March 28, 2000 http:/www.obsidian.co.za/rute/

Hardware(CPU, memory, disks,terminals...)

MicroprogrammingMicroprogramming

Machine LanguageMachine Language

Operating SystemOperating System

Computer system

CompilersCompilers EditorsEditors Command InterpreterCommand

Interpreter

BankingSystem

AirlineReservation

WebBrowser

hardware

System Programs

ApplicationPrograms

Page 2: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

2

Cos’è un sistema operativo?

Un programma (o un insieme diprogrammi) che gestisce le risorse di un calcolatore ...

… deve fornire ai processi un accesso SICURO e GARANTITO alle risorse

Classificazione dei S.O.

monoprogrammatimultiprogrammati

multitasking (permette alla CPU disvincolarsi dai tempi morti dovuti allalentezza delle periferiche);timesharing (fornisce all’utente unasensazione di immediatezza di risposta)

… monoutenti e multiutenti

Kernel

Il kernel di un sistema operativo è un piccolonucleo software che fornisce i servizi minimi necessari per l’implementazione delle funzionalità aggiuntive dello stesso.

Le funzionalità del filesystem o dei protocolli di comunicazione, ad esempio, sono implementate come processi client del kernel.

Page 3: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

3

Kernel: ...il numero di risorse presenti nel sistema, essendo

limitato, rende necessario un controllo sulle richiestemultiple di una stessa risorsa (ad es. un disco,un’interfaccia seriale, un’interfaccia di rete ecc…);

...è necessario controllare l’accesso, richiesto da parte di uno o più processi-utente, a risorse critiche o condivise(ad es. memorie condivise, code di messaggi, strutture dati di un processo ecc…).

Kernel: architettura tradizionale

Kernel: architettura attuale

Commonfacilities

Vnode/vfsinterface

Schedulerframework

execswitch

Virtualmemory

framework

blockdeviceswitch

STREAMS

networkdriver

ttydriver

time-sharing processes

real-time processes

NFSFFS

s5fs

RFS

elfcoffa.out

file mappings

device mappings

anonymous mappings

disk driver

tape driver

kernel

Page 4: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

4

Unix

…è un SO multiutente e multitasking (time-sharing)

…nato con l’obiettivo di sostituire i grossi e pesanti sistemi per la gestione di mainframe presenti alla fine degli anni 60.

PRORobustezza, Flessibilità, Portabilità, Multiutenza

CONTROConfigurazione complessa, interfaccia “shell-oriented”

Genealogia di Unix(semplificata)

Verso la fine degli anni 60 è in corso un progetto per l’implementazione del sistema MULTICS presso ilMIT. Questo sistema operativo è il precursore degli attuali sistemi a partizione di tempo dove vengono eseguiti più processi contemporaneamente.Questo sistema risulta già in fase di implementazione piuttosto complicato e complessomarappresenta un “punto di inizio”.

Verso la fine degli anni 60 è in corso un progetto per l’implementazione del sistema MULTICS presso ilMIT. Questo sistema operativo è il precursore degli attuali sistemi a partizione di tempo dove vengono eseguiti più processi contemporaneamente.Questo sistema risulta già in fase di implementazione piuttosto complicato e complessomarappresenta un “punto di inizio”.

Genealogia di Unix(semplificata)

Il team della AT&T che segue il progetto MULTICS presso il MIT decide di realizzare un sistema più semplice. Alcuni ricercatori iniziano a collaborare alla stesura di questo sistema. Il team acquista il sistemaPDP-7 della Digital e dopo non molto nasce il primorudimentale Unix. File system, scheduling e gestione del sistema sono innovativi. Il nuovo sistema risulta meno complessoe complicato del suo predecessore MULTICS.

Il team della AT&T che segue il progetto MULTICS presso il MIT decide di realizzare un sistema più semplice. Alcuni ricercatori iniziano a collaborare alla stesura di questo sistema. Il team acquista il sistemaPDP-7 della Digital e dopo non molto nasce il primorudimentale Unix. File system, scheduling e gestione del sistema sono innovativi. Il nuovo sistema risulta meno complessoe complicato del suo predecessore MULTICS.

Page 5: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

5

Genealogia di Unix(semplificata)

Il sistema Unix viene sviluppato anche per il diffusissimo PDP-11 della Digital e diventa il sistema per le piattaforme DEC. In questi anni inoltre nasce il linguaggio C. Nasce una prima implementazione UNICS (Uniplexed Information and Computing Service)Parallelamente nel mondo Universitario si inizia lo sviluppo di una versione di questo sistema, il BSD dal nome dell’Università di Berkeley.

Il sistema Unix viene sviluppato anche per il diffusissimo PDP-11 della Digital e diventa il sistema per le piattaforme DEC. In questi anni inoltre nasce il linguaggio C. Nasce una prima implementazione UNICS (Uniplexed Information and Computing Service)Parallelamente nel mondo Universitario si inizia lo sviluppo di una versione di questo sistema, il BSD dal nome dell’Università di Berkeley.

Genealogia di Unix(semplificata)

Ormai consolidata da tempo la divisione tra i sistemi Unix della At&T (System V release 3) e quello BSD, inizia con successo il porting del sistema sulla maggior parte degli elaboratori esistenti sul mercato. Inizia anche lo sviluppo di moduli per il supporto delle reti. Parallelamente prende piede il progetto ARPANET.Tutti i sistemi Unix rispondo a questa “iniziativa” includendo il supporto ai protocolli implementati nella rete mondiale TCP/IP).

Ormai consolidata da tempo la divisione tra i sistemi Unix della At&T (System V release 3) e quello BSD, inizia con successo il porting del sistema sulla maggior parte degli elaboratori esistenti sul mercato. Inizia anche lo sviluppo di moduli per il supporto delle reti. Parallelamente prende piede il progetto ARPANET.Tutti i sistemi Unix rispondo a questa “iniziativa” includendo il supporto ai protocolli implementati nella rete mondiale TCP/IP).

Genealogia di Unix(semplificata)

Nel mondo dei personal computer nasce XENIX. Il primo Unix per processori inferiori al 386. Questo sistema consente la diffusione di Unix nel mondo dei personal computer.Con la nascita di processori 386 e superiori arrivano anche nuovi sistemi quali SCO, Linux e FreeBSD.Il MIT implementa una interfaccia grafica windows per il sistema Unix (X-Window).

Nel mondo dei personal computer nasce XENIX. Il primo Unix per processori inferiori al 386. Questo sistema consente la diffusione di Unix nel mondo dei personal computer.Con la nascita di processori 386 e superiori arrivano anche nuovi sistemi quali SCO, Linux e FreeBSD.Il MIT implementa una interfaccia grafica windows per il sistema Unix (X-Window).

Page 6: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

6

UNIX Goals

Il sistema UNIX è stato progettato da programmatori per i programmatori Il sistema UNIX è stato progettato da programmatori per i programmatori

...un team di programmatori cooperanti per la realizzazione di un unico sistema...un team di programmatori cooperanti per la realizzazione di un unico sistema

Facilitare la cooperazione di utenti condividendo le informazioni...

...in modo, però, controllato

Facilitare la cooperazione di utenti condividendo le informazioni...

...in modo, però, controllato

UNIX Goals

Cosa vorrebbe un programmatore da un sistema operativo “developer-oriented”Cosa vorrebbe un programmatore da un sistema operativo “developer-oriented”

Un sistema operativo“semplice”“elegante”“consitente”

Un sistema operativo“semplice”“elegante”“consitente”

UNIX Goals

...un file dovrebbe sempre essere considerato come una collezione di byte, indipendentemente dal tipo di accesso (sequenziale, random, a chiave, remoto...)

...il comandols A* tutti i file che iniziano per A

e quindi ancherm A* tutti i file che iniziano per A

Page 7: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

7

UNIX Goals

...un numero elevato di piccoli programmi di utilità che possono essere combinati in infiniti modi al fine di fornire un servizio comunque complesso

Il principio base:

“Every program should do just one thing, and do it well”

Esempio : grep ard f > output

Layers in a UNIX system

Hardware(CPU, memory, disks,terminals...)

Hardware(CPU, memory, disks,terminals...)

Standard library(open, close, read,

write, fork...)

Standard library(open, close, read,

write, fork...)

UNIX OS(proc. Manag, mem manag, I/O...)

UNIX OS(proc. Manag, mem manag, I/O...)

Standard utility

programs(shell, editors, compilers...)

Standard utility

programs(shell, editors, compilers...)

UsersUsers

User interface

Library interface

System call interface

Linux

Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. Developed under the GNU General Public License

Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. Developed under the GNU General Public License

Page 8: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

8

Linux: la sua storia

La prima versione distribuibile fu sviluppata da Linus Torvalds (University of Helsinki in Finland)

…in collaborazione, via Internet, con un gruppo di esperti programmatori Unix

…sviluppato nell’ambito del progetto GNU (GNU è l’acronimo ricorsivo di “GNU's Not Unix”) alla “Free Software Foundation” in Cambridge.

Linux: la sua storia5-ott-1991

Linus annuncia la prima versione ufficiale di Linux (vers.0.02), in grado di eseguire la shell Bash (GNU Bourne Again Shell), il compilatore gcc (GNU C Compiler)

…successivamente verrano rilasciate le versioni0.03,0.10,0.95, 0.99 (marzo 1992) …

…fino alla vesione 2.2 (ott-nov 1999)

Rif: http://www.kernel.orghttp://www.li.org/li/linuxhistory.shtml

Linux: la sua storiaUna curiosità:

Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente la versione 1.0 di un software dovrebbe essere quella bug-free)

Uno dei maggiori punti di forza:Tutto il sistema operativo Linux è coperto dalla cosiddetta GNU General Public License (GPL). L’intero sistema operativo e’ considerato “free”

Page 9: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

9

Linux: Il concetto di “free software”

Così come definito da GNU-GPL, il concetto di free software è ben diverso da quello di “public domain”.

Public domain:…tutto il software senza diritti di autore

GPL software:…tutto il software protetto dai diritti di autore… che può essere distribuito gratis o a pagamento

Rif: http://www.gnu.org/fsf/fsf.html

Linux: le distribuzioni

Sebbene il sistema operativo Linux sia unico (un solo kernel) negli ultimi anni sono proliferate un certo numero di distribuzioni di installazioni Linux:

Linux: le distribuzioni

Page 10: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

10

Collegamento

…sfruttando il protocollo telnet è possibile collegarsi a qualsiasi sistema unix connesso ad Internet

E’ possibile collegarsi ad un sistema Unix in locale (login locale) oppure …

Login e passwordIl login prompt

furore login:Il login name

furore login: lromIl comando passwd

passwdIl file passwd

lrom:nHJ7Gj4oFG.w6:184:100:Luigi Romano:/home/sorrento/lrom:/bin/tcsh

I processi coinvoltiIl loginLa shell

Il loginOnce the kernel is loaded to memory, it is ready to carry out user requests. First, though, a user must log in and make a request. For a user to log in, however, the kernel must know who the user is and how to communicate with him. To do this, the kernel invokes two special programs, getty and login. The getty program displays a login prompt and continuously monitors the communication port for any type of input that it assumes is a user name.

Page 11: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

11

Shell: nessun utente “loggato”

UNIXKernelgetty

getty

getty

getty

LoggingWhen getty receives any input, it calls the login program.The login program establishes the identity of the user and validates his right to log in. The login program checks the password file.If the user fails to enter a valid password, the port is returned to the control of a getty. If the user enters a valid password, login passes control by invoking the program name found in the user's entry in the password file. This program might be a word processor or a spreadsheet, but it usually is a more generic program called a shell.

Shell: un utente loggato

UNIXKernelgetty

getty

getty

getty

Page 12: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

12

Collegamento

…sfruttando il protocollo telnet è possibile collegarsi a qualsiasi sistema unix connesso ad Internet

E’ possibile collegarsi ad un sistema Unix in locale (login locale) oppure …

Le funzionalità di una shell

Command line interpretation Program initiation Input-output redirection Pipeline connection Substitution of filenames Maintenance of variables Environment control Shell programming

UNIX shellQuando l’utente digita una linea di comando la shell ne estrae la prima parola interpretandola come un programma da eseguire.

Se il programma viene localizzato, la shell lo esegue (sospendosi fintanto che il programma non termina)

La shell non è altro che un programma utente ordinario, in grado di leggere e scrivere da un terminale ed eseguire dei programmi

Page 13: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

13

UNIX shellSpesso i comandi necessitano di alcuni parametri di ingresso che vengono passati sottoforma di stringhe

cp src dest

comando parametri

UNIX shellAlcuni parametri possono anche essere di tipo numerico (flag)

head -20 fileflag

...attenzione al segno ‘-’, anche questo comando è perfettamente lecito

head 20 filefile

Esecuzione dei programmiTutti i programmi che vengono eseguiti da una shell hanno automaticamente accesso a due file “speciali”:

standard input (per la lettura,)standard output (per la scrittura)standard error (scrittura di errori)

...in genere (default)standard input tastierastandard output videostandard error video

Page 14: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

14

Esecuzione dei programmiSolitamente i programmi Unix, per default, leggono dallo standard di input e scrivono sullo standard output.

sortlegge dei caratteri dalla tastiera finché non viene

digitata la combinazione dei tasti CTRL+D

ordina i caratteri letti

Stampa sullo schermo i caratteri ordinati

File system

...è quella parte del sistema operativo che si occupa della gestione logica dei file e della corrispondenza fra l’organizzazione logica e la struttura fisica.

File System: apertura di file

La system call open()Utilizzata da un processo per accedere ad un fileRestituisce un “descrittore” del file apertoLe successive operazioni di lettura e scrittura avvengono utilizzando tale descrittoreAll’attivazione di ogni processo, vengono resi disponibili tre descrittori di default:

0 per lo standard input (solitamente la tastiera)1 per lo standard output (il monitor)2 per lo standard error (ancora il monitor)

Page 15: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

15

File sytem: percorsi assoluti e relativi

Percorso assoluto: Indica come giungere al file partendo dalla directory radice

Es: /home/users/sprom/pippozzo.c

Percorso relativo:Fa riferimento alla directory corrente

Es: directory corrente= /home/users/sprom:

“cp pippozzo.c plutozzo.c” equivale a:“cp /home/users/sprom/pippozzo.c home/users/sprom/plutozzo.c”

File system: i link

Utilizzati per fare riferimento a file che appartengono ad altri utenti o che si trovano in directory differenti all’interno dell’albero dei file. Sono di due tipi:

Hard linkSoft link

Hard linkÈ semplicemente un nome alternativo per un file. Il file viene cancellato dal disco solo quando l’ultimo link viene rimosso

Soft linkè un piccolo file speciale che contiene un percorso

può puntare verso un file posto su un altro filesystem(magari anche un file system di rete montato da un'altra macchina)Non ha bisogno di puntare verso un file esistente

File system: i link

Page 16: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

16

File system: il comando mountConsente di agganciare il file system che si trova su di un dispositivo (disco floppy, cdrom, disco di un’altra macchina presente nella rete, etc.) all'albero dei file principale

/

home

sprom asergio

src etc mnt

/

pippo pluto

Hard disk floppy /

home

sprom asergio

src etc mnt

Hard disk

floppy

pippo pluto

Input/Output

Il problema dell’accesso ai dispositivi di I/O

TerminaliDischiStampantiDispositivi di rete…

Unix integra tutti i dispositivi all’interno del file sstem, sotto forma di file speciali

Ad ogni dispositivo è associato un nome di file in una specifica cartella (solitamente la cartella /dev)

Es: Stampante: /dev/lpTerminale: /dev/ttyScheda ethernet: /dev/eth0…

Input/Output: l’integrazione

Page 17: Linux - unina.itwpage.unina.it/fasolino/so/materiale/Linux2001.pdf · Linux: la sua storia Una curiosità: Non è mai uscita la versione 1.0 (i teorici ritengono che generalmente

17

Sono gestiti allo stesso modo di tutti gli altri file

Sono divisi in due categorie:A blocchiA caratteri

Input/Output: i file speciali

File speciali a blocchiUna sequenza di blocchi numeratiOgni blocco può essere referenziato singolarmente

File speciali a caratteriUtilizzati per quei dispositivi che producono e ricevono flussi di caratteri (terminali, stampanti, schede di rete, mouse, etc..)Non consentono l’accesso casualeRichiedono particolari tecniche di controllo

Input/Output: i file speciali


Recommended