FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con...

35
FreeBSD The power to serve Introduzione a FreeBSD Linux Day 2006 Cicuttin Matteo [email protected]

Transcript of FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con...

Page 1: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSDThe power to serve

Introduzione a FreeBSD

Linux Day 2006

Cicuttin [email protected]

Page 2: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Chi sono

Studente del 3^ anno di informatica

Uso Linux dall’estate 1998

Uso FreeBSD dal 1999

I miei interessi si concentrano su: sistemi operativi, calcolo parallelo, ethical hacking

FreeBSDThe power to serve

Page 3: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Agenda

Siamo al Linux Day, perché parliamo di FreeBSD?

Cosa mi offre FreeBSD?

Che applicazioni girano su FreeBSD?

E’ un mondo oscuro, dove mi documento?

FreeBSD vs. Linux

OK, come faccio a provarlo?

FreeBSDThe power to serve

Page 4: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Siamo al Linux Day, perchè parliamo di

FreeBSD?

FreeBSDThe power to serve

Page 5: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Sistema UNIX-based

Precursore dell’open source

Veramente open source

FreeBSDThe power to serve

Siamo al Linux day, perché parliamo di FreeBSD?

Page 6: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSDThe power to serve

Unix First Edition

Unix Sixth Edition

PWB Unix Unix Seventh Edition 1BSD

System III

System V

Riassunto riassuntivo del riassunto della storia di UNIX

2BSD

3BSD 2.8BSD

4BSD 2.9BSD

4.1BSD

4.4BSD

FreeBSD

Eighth EditionSunOS Minix

Solaris Linux

Plan9

http://www.levenez.com/unix“This diagram is only the tip of an

iceberg, with a penguin on it”

Siamo al Linux day, perché parliamo di FreeBSD?

Page 7: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

4.4BSD Network Release 2

386BSD

NetBSDFreeBSD 4

OpenBSD

DragonFly BSD

DesktopBSD

PCBSD

FreeBSD 5

FreeBSDThe power to serve

Storia di FreeBSD in dettaglio

FreeBSD 6

FreeBSD 7-CURRENT

FireFly BSD

MirBSD

4.2BSD

NextStep

OpenStep

Rhapsody

Mac OS X

Mach

Siamo al Linux day, perché parliamo di FreeBSD?

Page 8: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Unix è stato “open” fin dalla nascita, questo è stato il motivo della sua devastante diffusione

BSD ha avuto problemi legali, infatti includeva codice degli Unix System Labs

4.4BSD-Lite era l’albero sorgente ripulito dal codice USL, da cui nasce FreeBSD

Nello stesso periodo nasce anche Linux, che, scritto da zero, non ha avuto problemi legali e ha messo in ombra BSD

FreeBSDThe power to serve

Siamo al Linux day, perché parliamo di FreeBSD?

Page 9: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Da quando esiste BSD, in ogni distribuzione è incluso il codice sorgente dell’INTERO sistema

La via preferenziale di aggiornamento del sistema base è proprio tramite la ricompilazione del “world”

FreeBSDThe power to serve

Siamo al Linux day, perché parliamo di FreeBSD?

Page 10: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Cosa mi offre FreeBSD?

FreeBSDThe power to serve

Page 11: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Facilità di istallazione e di uso

Compatibile

Sistema all’avanguardia, implementa tutte le ultime tecnologie

Affidabile

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 12: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

L’installazione è guidata passo passo

Offre diverse opzioni: standard, expert, custom

Permette di effettuare una prima personalizzazione del sistema già in fase di setup

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 13: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSD contiene quella che è definita l’implementazione di riferimento del TCP/IP

Implementa protocolli ampiamente usati quali NFS, NIS, FTP...

Permette di far girare senza problemi eseguibili di altre piattaforme (Linux, Solaris)

Comprende X, con un vasto supporto di hardware grafico, nVidia fornisce i driver nativi per tutte le sue GPU

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 14: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Kernel multi-threaded, con full-preemption

Filesystem avanzato (snapshots, crypto, soft-updates)

Supporto IPv6 out-of-the-box

Stateful packet filtering

Supporto IPSec

Jail-based virtual hosting

...

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 15: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

I principali sottosistemi del kernel (VFS, VM, rete, ...) sono multi-thread, possono cioè essere eseguiti in parallelo su più processori

Il kernel è fully-preemptible, cioè i task del kernel più ad alta priorità possono interrompere quelli a bassa priorità

Design del kernel estremamente pulito e modulare

Si può scegliere tra due scheduler, il classico 4.4-BSD e ULE, che è O(1)

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 16: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Il filesystem supporta gli snapshots, no downtime dovuto al backup

La performance è garantita dai soft-updates

Esistono due diversi sistemi per crittografare i dischi (gbde e geli), in questo modo se la macchina viene rubata, i contenuti non possono essere letti

geli si appoggia sul crypto framework, se nella macchina è presente un acceleratore crittografico viene automaticamente utilizzato

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 17: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Supporta completamente IPv6, sia dal lato kernel che dal lato software

In FreeBSD è possibile scegliere tra tre diversi firewall con stateful inspection

E’ presente un’ottima implementazione di IPSEC

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l#ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l#ssh stream tcp nowait root /usr/sbin/sshd sshd -i -4#ssh stream tcp6 nowait root /usr/sbin/sshd sshd -i -6#telnet stream tcp nowait root /usr/libexec/telnetd telnetd#telnet stream tcp6 nowait root /usr/libexec/telnetd telnetd#shell stream tcp nowait root /usr/libexec/rshd rshd#shell stream tcp6 nowait root /usr/libexec/rshd rshd

Page 18: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Jail based virtual hosting: è possibile creare molti host virtuali sulla stessa macchina, che dall’esterno appaiono come macchine reali con i loro utenti, i loro servizi e il loro IP

Viene massimizzato l’utilizzo dell’hardware

Si riduce il TCO, e.g. con un solo server fisico fornisco una macchina dedicata a 10 utenti

Isolamento tra utenti mutuamente non fidati

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 19: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Uno dei goal del progetto è l’affidabilità - meglio una feature in meno che mille feature che non funzionano al massimo delle possibilità

FreeBSD è un sistema che ha alle spalle 25 anni di lavoro, per cui l’architettura è estremamente solida

E’ utilizzato da molti ‘grandi’ dell’informatica: Yahoo, The Weather Channel, fino a poco tempo fa HOTMAIL !!!

FreeBSDThe power to serve

Cosa mi offre FreeBSD?

Page 20: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 21: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Tutto!

I ports

I packages

I layer di compatibilità binaria

Java

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 22: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Essendo Unix, pacchetti .tar.gz che generalmente contengono le applicazioni da compilare funzionano senza problemi

Apache, MySQL, PHP, ... si installano da sorgente esattamente come si fa in Linux ...

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 23: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

... tuttavia esiste un sistema migliore: i ports

vantano di 15000 applicazioni di svariate categorie

in /usr/ports viene installato l’albero dei ports, se volete installare apache:# cd /usr/ports/www/apache22# make install clean

Il sistema dei port si occupa di scaricare, patchare e compilare il pacchetto

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 24: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Domanda da $ 1.000.000: ho un 486/25 con 8 Mb di RAM, devo per forza compilare tutto ogni volta?

Certo che no! Per un gran numero di port esistono i corrispondenti pacchetti precompilati# pkg_add -vr apache22

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 25: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSD mette a disposizione il Linux Binary Compatibility Layer, cioè uno strato software che permette di eseguire software Linux su FreeBSD

Non è un’emulazione, il software gira a velocità nativa

Talvolta si sono misurate prestazioni migliori degli eseguibili Linux su FreeBSD che su Linux stesso

Esistono Compatibility Layers anche per altri formati

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 26: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

E’ noto che le piattaforme ‘naturali’ per Java siano Solaris, Linux, Mac OS X e Windows

Con il Diablo JDK java è una realtà consolidata anche su FreeBSD

Diablo JDK non è altro che il port del codice Sun di Java su FreeBSD

FreeBSDThe power to serve

Che applicazioni girano su FreeBSD?

Page 27: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

E’ un mondo oscuro, dove mi documento?

FreeBSDThe power to serve

Page 28: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Il fatto che FreeBSD sia un mondo oscuro è un luogo comune

La documentazione di FreeBSD è molto estesa e ampiamente disponibile

Il ‘riferimento’ per ogni amministratore FreeBSD è l’handbook

http://www.freebsd.org/docs.html è il punto di partenza per ricevere risposte ad ogni domanda

FreeBSDThe power to serve

E’ un mondo oscuro, dove mi documento?

Page 29: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSD vs. Linux

FreeBSDThe power to serve

Page 30: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

E’ un sistema maturo, con 25 anni di lavoro alle spalle

Non esistono i problemi che ci sono tra le varie distribuzioni Linux- Se compilo un programma su Debian probabilmente su RH non funziona- Su ogni sistema i file di configurazione sono nello stesso posto

Tecnologia all’avanguardia, ottimamente progettato

Se c’è una feature, allora funziona come deve, altrimenti non ci sarebbe

FreeBSDThe power to serve

I Pro

FreeBSD vs. Linux

Page 31: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Capita che i driver arrivino un po’ in ritardo rispetto a Linux

Non c’è il supporto che ha Linux da parte delle grandi software house

Utenza ristretta, non c’è molta gente “a cui chiedere”

FreeBSDThe power to serve

I Contro

FreeBSD vs. Linux

Page 32: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSDThe power to serve

Ok, come faccio a provarlo?

Page 33: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

Si scaricano le ISO (2 da 650 MB circa) da http://www.freebsd.org

FreeBSD esiste per varie piattaforme:- Tier 1: x86, x86-64, Alpha, UltraSparc, IA-64- Tier 2: PowerPC- Development: Mips, PC98, ARM

FreeBSDThe power to serve

Page 34: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSDThe power to serve

Domande?

Page 35: FreeBSD Linux Day 2006 The power to servenativi per tutte le sue GPU ... Kernel multi-threaded, con full-preemption Filesystem avanzato (snapshots, crypto, soft-updates) Supporto IPv6

FreeBSDThe power to serve

Grazie!Feedback: [email protected]