Il sistema Unix. n Unix è un sistema operativo multiutente e con multiprogrammazione. n Storia

Documenti analoghi
Il sistema Unix. n Unix è un sistema operativo multiutente e con multiprogrammazione. n Storia

Introduzione a Linux Lezione 1 Introduzione a Linux

Dipartimento di Giurisprudenza Prof. Michele Perilli Conoscenze Informatiche

Unix. Sistema operativo proprietario Sviluppato da AT&T (Bell Labs) Prima versione : 1969

Corso di Sistemi Operativi I/II. Introduzione a Linux. Introduzione. Ruggero Donida Labati

Cosa è Linux? Gianluca Amato Dipartimento di Scienze tel

Interfaccia. Due sono i tipi di interfaccia più diffusi per interagire con un computer:

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva 1 Introduzione al sistema operativo Unix

Sistemi Operativi 11 ottobre 2017

Introduzione a Linux. Storia di UNIX

Sistemi Di Elaborazione Dell informazione

Prima lezione: Introduzione a Linux e al Software Libero

Laboratorio di Reti Locali e Geografiche

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Informatica di base 6/ed

Cosa è Linux? Gianluca Amato Dipartimento di Scienze tel

Informatica di base con Software Libero

Sistemi distribuiti open source per reti di comunicazione

LINUX DAY LUG Govonis. Il Software Libero

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

Il Sistema Operativo Linux

introduzione al corso di sistemi operativi a.a maurizio pizzonia

Tecnologie Open Source. Linux

Sistemi operativi 2003/2004. Linux

GNU/Linux e *BSD: filosofia del software libero ed open source

Introduzione a LINUX. Unix

Evoluzione* degli* Elaboratori* Ele1ronici*

Corsi GNU/Linux 2016

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Introduzione a Linux. Modulo 6: Genesi di Linux e confronto con altri sistemi. Alessandro Brunengo Mirko Corosu INFN - Sezione di Genova

Introduzione a LINUX. Unix

Linux e i software liberi. di Nardean Lorenzo e Redigolo Marco

Evoluzione degli Elaboratori Elettronici

Sistemi Operativi Da Unix a GNU/Linux (parte 1)

Modulo 5: Programmazione di sistema --- Parte A: Introduzione alle system call

Il sistema FreeBSD (UNIX) Breve Storia. Storia delle Versioni di UNIX

Sistemi Operativi. Il sistema operativo: generalità Storia ed evoluzione dei sistemi operativi

Corso Sistemi Operativi AA Prof. Enzo Mumolo

Sistemi Operativi: Concetti Introduttivi

Introduzione a Unix. U.Villano, E.Mancini. November 24, U.Villano, E.Mancini () Introduzione a Unix November 24, / 26

Panoramica sulle distribuzioni GNU/Linux

Il calcolatore. Architettura di un calcolatore (Hardware)

Introduzione alla Programmazione. Giselda De Vita

Corso di Informatica

Lezione 2. Di cosa parliamo in questa lezione? Aspetti della storia dei calcolatori e dei SO dagli anni 70 in poi. Il movimento degli hacker

Lezione 2. Linux avanzato. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Tecnologie dell Informazione e della Comunicazione

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

Java. Traditional portability (ideal)

Mini Corso 2006 LUG Govonis

Le distribuzioni GNU/Linux

Introduzione ai sistemi BSD

I Sistemi Operativi. Introduzione ai Sistemi Operativi (parte B) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Genesi 1 UNIX. Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 1

I programmi applicativi

Il pinguino non è in via d'estinzione

Sistemi Operativi e Linguaggi

Prima Esercitazione. Unix e GNU/Linux. Fork. Stefano Monti Eugenio Magistretti

OPEN SOURCE. Concetti chiave e implicazioni per le scelte aziendali (fornitori e utenti)

28/02/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 5 LA RAPPRESENTAZIONE DELLE ISTRUZIONI

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Sistemi Operativi e Sperimentazioni. Cristina Baroglio ufficio

Open Source::accenni. Definizioni: software proprietario

Genesi 1. Genesi 2. Genesi 4. Genesi 3. Visione generale 1. Genesi 5. Da UNIX a GNU/Linux (parte 1) Standardizzazione (1986 )

Lezione 1: Introduzione alla Shell di Unix

Struttura dei Sistemi Operativi

SISTEMI OPERATIVI EMBEDDED. Sistemi Embedded

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

Conferenza/incontro. Software di Produttività Personale. VELug - Venezia Free Software Users Group 1

ELAD FDM-S1. Manuale Installazione Componenti Per Linux

Introduzione ai Sistemi Operativi

Sistemi operativi. Fondamenti di Informatica

Corso di Sistemi Operativi DEE - Politecnico di Bari. LINUX - Introduzione. G. Piscitelli - M. Ruta. 1 di 26 LINUX - Introduzione

Informatica di base con Software Libero

Programmazione Procedurale

Informatica e Software Libero. Il software. Categorie del software. Università Cattolica di Brescia 5 dicembre 2001

Fondamenti di Programmazione

Unix compie 40 anni. Passato, presente e futuro di un sistema operativo rivoluzionario

Sistemi Operativi: Un po di storia

Capitolo 1: Introduzione

Sistemi Operativi, Secondo Modulo, Canale M Z Riassunto della lezione del 22/02/2016

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Programmazione C Massimo Callisto De Donato

Software di Produttività Personale

INTRODUZIONE AD OMNET++

GNU/Linux e software libero

Introduzione al Sistema Operativo MS-Windows ed all Uso dell IDE DEV-C++

Sistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008

Sistemi Operativi 1. Mattia Monga. 7 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Reti Informatiche Edizione N

Introduzione a Linux Lezione 1 Introduzione a Linux

Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di

Linguaggi di programmazione

Sistema Operativo. (hardware e software) della della macchina

Sistemi Operativi e Sperimentazioni

Transcript:

Il sistema Unix n Unix è un sistema operativo multiutente e con multiprogrammazione. n Storia Ø MULTICS (MULTIplexed Information and Computing Service) (1965). Ø Ken Thompson (Bell Laboratories -1969). ü PDP-7, scritto in ASSEMBLER. ü UNICS (UNiplexed Information and Computing Service). Ø Ken Thompson, Dennis Ritchie (1970-1974). ü UNIX, PDP-11. ü Ritchie sviluppa il linguaggio C (partendo dal linguaggio B). ü La terza versione di UNIX è scritta in C. ü Un articolo su UNIX viene pubblicato nel 1974 (ACM Turing Award 1984). 1.1

Il sistema Unix n Storia Bell Labs and AT&T UNIX Ø PDP-11 è il calcolatore di molti dipartimenti di informatica, e così UNIX diventa il SO delle università. Ø Bell Labs and AT&T UNIX: il gruppo di ricerca sviluppa parecchie versioni di UNIX: ü prima edizione (1969),,settima edizione (1978,on PDP-11/70); ü una versione per Interdata 8/2 e VAX; ü UNIX per una rete di computer; ü System III (1982 prima versione commerciale); ü System V basato su System III(1983); ü System V release 2, 3, 4 (1984-1989); ü SVR4 (System V release 4; 1989 AT&T and Sun Micro systems). Ø 1993: AT&T diventa una compagnia telefonica e vende UNIX a Novell. 1.2

Il sistema Unix n Storia University of California at Berkeley Ø Il più influente gruppo di ricerca (dopo i Bell Labs e AT&T): ü Thompson e alcuni studenti sviluppano 1BSD (Berkeley Software Distributions) a partire dalla sesta edizione (la prima sviluppata fuori dai Bell Labs) (1978). ü 3BSD - 4BSD UNIX hanno avuto origine da finanziamenti DARPA stanziati per sviluppare un sistema UNIX standard per scopi governativi. ü Questa serie comprende 4.1BSD, 4.2BSD, 4.3BSD e 4.4BSD (1980-93) e presenta alcune importanti innovazioni: memoria virtuale, paging, multiutenza, connessione alla rete col protocollo TCP/IP. ü 4.2BSD contiene l editor di testo vi, la shell csh, compilatori Pascal and Lisp,. Ø Sun Microsystem, DEC e alcune altre compagnie decidono di sviluppare la loro personale versione di UNIX a partire dalla serie delle versioni BSD invece che dalla System V. 1.3

Storia delle versioni di UNIX 1.4

n Storia I progetti di standardizzazione Ø Diversi progetti di standardizzazione mirano a consolidare i vari aspetti di UNIX con lo scopo di ottenere un interfaccia standard per programmare in UNIX. I più importanti sono: ü POSIX (Portable Operating System): fusione di System V e BSD (1984). ü IBM, DEC, Hewlett-Packard creano OSF (Open Software Foundation) e il loro sistema UNIX è OSF/1 (1988). ü X/OPEN definisce la Single UNIX specification (1993) e il sistema relativo ha il marchio UNIX 95. ü Open group (fusione di Open Software Foundation e X/ OPEN; http://www.opengroup.com 1996). ü Definizione della seconda versione della Single UNIX specification (1997) col marchio UNIX 98. 1.5

Una variante del sistema UNIX n Sebbene ci siano molte versioni di UNIX, le compagnie più importanti forniscono una versione basata su UNIX System V Release 4 (SVR4). Ø es. Solaris 2.x è l implementazione di UNIX più diffusa e di più largo successo da un punto di vista commerciale. n Questi sistemi sono molto grossi e complicati (al contrario dell idea originaria di Thompson) e in alcuni casi anche costosi. n Così, Tanenbaum sviluppa MINIX (1987), un piccolo sistema UNIX (11800 righe di codice C e 800 righe di codice Assembler) soddisfacente gli standard POSIX. Ø MINIX è un sistema sviluppato a scopo didattico basato sul modello a micro-kernel (www.cs.vu.nl/~ast/minix.html). 1.6

Linux history n Linux is a modern, free operating system based on UNIX standards Ø first developed as a small but self-contained kernel in 1991 by Linus Torvalds, with the major design goal of UNIX compatibility. Ø its history has been one of collaboration by many users from all around the world, corresponding almost exclusively over the Internet Ø it has been designed to run efficiently and reliably on common PC hardware, but also runs on a variety of other platforms (68000-series, Sun SPARC, PowerMac, ) Linux kernel is original, but full system incorporates existing UNIX software uses many tools developed as part of Berkeley s BSD operating system, MIT s X Window System, and the Free Software Foundation's GNU project Linux kernel is distributed under the GNU General Public License (GPL): free to modify code but cannot make proprietary; also must distribute source code many companies (e.g., Slackware, Red Hat, Debian/GNU, Mandrake) market Linux distributions: precompiled Linux packages with installation and management utilities 7 1.7

Linux design principles n Linux is a multiuser, multitasking system with UNIX-compatible tools Ø its file system adheres to traditional UNIX semantics, and it fully implements the standard UNIX networking model Ø main design goals are speed, efficiency, and standardization Ø Linux is designed to be compliant with the relevant POSIX documents 1. system utilities perform individual specialized management tasks 2. system libraries define standard set of functions through which apps interact with the kernel 3. kernel is responsible for maintaining the important abstractions of the OS executes in unrestricted kernel mode all kernel code & data in one address space 1.8 8

Il sistema Linux n Non c era un sistema BSD free alla fine degli anni 80, per cui molti membri del newsgroup di MINIX chiesero a Tanenbaum di introdurre svariate modifiche per migliorare le prestazioni di MINIX. Alcune di queste modifiche avrebbero cambiato l impostazione didattica originaria di Tanenbaum, il quale pertanto spesso declinò queste richieste. n Così, Linus Torvalds, usando un pc 386 con MINIX sviluppò nel 1991 un nucleo (Linux 0.01), piccolo ma autosufficiente, con lo scopo principale della compatibilità con UNIX (cioè, soddisfacente gli standard POSIX). 1.9

Linux 0.01 n La prima versione di Linux (Linux 0.01) possiede alcune caratteristiche di MINIX (es. file system), tuttavia le principali differenze fra Linux e MINIX sono le seguenti: Ø Il nucleo Linux utilizza un modello monolitico, ed ha molte più funzioni del micro-kernel di MINIX. Ø Da un punto di vista teorico, MINIX è meglio di Linux, ma da un punto di vista pratico le prestazioni di Linux sono migliori di quelle di MINIX. Ø Comunque, per una descrizione del punto di vista di Torvalds sui vantaggi-svantaggi di Linux-MINIX, si veda: ü Rivoluzionario per caso: come ho creato Linux (solo per divertirmi), Linus Torvalds, Garzanti. 1.10

Il kernel di Linux n Linux 0.01 (Maggio 1991) non poteva andare in rete, girava solo su processori Intel 80386-compatibili e su PC hardware, aveva grosse restrizioni per il supporto di dispositivi esterni, e supportava soltanto il file system Minix. n Linux 1.0 (Marzo 1994) includeva queste nuove caratteristiche: Ø Supporto dei protocolli di rete TCP/IP standard di Unix. Ø Interfaccia socket compatibile con la BSD per la programmazione di rete. Ø Supporto di dispositivi per l esecuzione del protocollo IP in Ethernet. Ø File system migliorato. Ø Supporti per vari tipi di controller SCSI per aumentare le prestazioni di accesso ai dischi. Ø Supporti per ulteriori dispositivi hardware. n Questa versione è sufficientemente compatibile con UNIX, per cui molte persone si interessarono attivamente per sviluppare Linux sotto la supervisione di Torvalds. n Linux 1.2 (Marzo 1995) fu la versione finale del nucleo di Linux per PC. 1.11

Linux 2.0 n Messo in circolazione nel Giugno 1996, la versione 2.0 aggiunse due nuove importanti caratteristiche: Ø Capacità di supportare architetture multiple. Ø Capacità di supportare architetture multiprocessore. n Ulteriori nuove caratteristiche: Ø Miglioramento della gestione della memoria. Ø Miglioramento delle prestazioni TCP/IP. Ø Supporto per threads interni al kernel, per gestire le dipendenze fra i vari moduli che si possono caricare, e per il caricamento automatico di moduli a seconda delle richieste. Ø Introduzione di un interfaccia di configurazione standard. n Disponibile per processori Motorola serie 68000, sistemi Sun Sparc e per sistemi PC e PowerMac. n Linux 2.2 (Gennaio1999) migliora alcuni aspetti di Linux 2.0 n L ultima versione è Linux 2.6.26 (13 luglio 2008). 1.12

Morale della storia n Linux è un sistema operativo moderno e free, basato sugli standard UNIX. n Sviluppato inizialmente nel 1991 da Linus Torvalds come un piccolo ma autosufficiente nucleo, con lo scopo principale della compatibilità con UNIX. n La storia di Linux è quella di una collaborazione tra moltissimi utenti da tutto il mondo, in contatto quasi esclusivamente tramite Internet (software open source). n E stato progettato per girare in modo efficiente e affidabile sul normale hardware di un PC, ma è in grado di girare su una vasta gamma di differenti piattaforme. n Il nucleo del sistema operativo Linux è interamente originale, ma può eseguire la maggior parte del software free UNIX in circolazione, risultando così, di fatto, un sistema operativo completamente compatibile con UNIX e assolutamente non proprietario. 1.13

Il sistema Linux n Linux utilizza molti strumenti sviluppati come parte del sistema operativo BSD di Berkeley, della System V, del sistema X Window del MIT e del Free Software Foundation's GNU project. n Le principali librerie di sistema furono iniziate dal progetto GNU (GNU s Not Unix) (es. gcc (GNU Compiler Collection)), con miglioramenti forniti dalla comunità di Linux. n Gli strumenti per l amministrazione del networking furono derivati dal codice della versione 4.3 della BSD; recenti versioni della BSD, come FreeBSD, hanno preso a prestito a loro volta codice da Linux. n Il sistema Linux viene mantenuto da una rete di sviluppatori che collaborano via Internet (vedi /usr/src/linux/credits), con un piccolo numero di siti ftp pubblici che contengono gli standard de facto. 1.14

Licenze per Linux n Il kernel di Linux è distribuito sotto la GNU General Public License (GPL), i cui termini sono stabiliti dalla Free Software Foundation. Ø vedi /usr/src/linux/copying. n La principale conseguenza della GPL è che chiunque usi Linux, o crei la propria versione di Linux, non può rendere il proprio prodotto proprietario. n Per una più profonda analisi di questi argomenti, vedi www.gnu.org/home.it.html. 1.15