Dragonfly BSD è un sistema operativo per macchine multiprocessori che deriva da FreeBSD 4, nato grazie all'idea di Matthew Dillon perché non era soddisfatto dal metodo con cui FreeBSD gestiva i sistemi multiprocessori, attraverso SMPng (derivato dal codice di BSD/OS 5). Ci sono attualmente quattro sistemi BSD open source e la loro differenza sta tutta nel target:
* FreeBSD: velocità ed affidabilità su i386,
* NetBSD: portabilità e qualità del codice,
* OpenBSD: sicurezza e crittografia,
* DragonFly BSD: prosegue il ramo 4.x di FreeBSD.
Il progetto DragonflyBSD è stato annunciato nel giugno 2003. La base di codice è stata presa dal rilascio 4.8 di FreeBSD, che ha offerto le prestazioni migliori e le caratteristiche più complete. Si è scelto di utilizzare un'architettura che tenesse conto della differente velocità di accesso alle memorie presenti in un sistema, quali cache e RAM (Random Access Memory), che è di fondamentale importanza nella realizzazione di sistemi multiprocessore.
Questa architettura è denominata NUMA (Non Uniform Memory Access) e consente l'utilizzo di un sistema con un elevato numero di vie velocizzando il transito dei dati tra CPU e memoria. Dragonfly supporta processori della famiglia x86 ma il lavoro è anche indirizzato a supportare i nuovi processori a 64bit della AMD. La filosofia di Dragonfly è la suddivisione esplicita del lavoro tra i processori, ovvero significa che un processo non sarà mai trasferito su un'altra CPU permettendo quindi di utilizzare al meglio i dati contenuti nella cache e senza dover effettuare il lock. DragonflyBSD è sviluppato da molta gente in tutto il mondo. Non c'è processo di qualificazione; chiunque può presentare il suo codice, documentazione o disegni per uso nel progetto.
DragonflyBSD è il primo BSD OS non basato su Mach ad adottare un'architettura a kernel ibrido, ovvero il kernel condivide i concetti e i meccanismi d'architettura sia dei kernel monolitici che delle tipologie micro. Il modello LWKT (Light Weight Kernel Threading) funziona associando ogni processo ad un thread. Ogni CPU ha il proprio scheduler LWKT. In questo modo i thread sono assegnati ad una specifica CPU permettendo così la gestione senza la necessità di utilizzare un lock MP. Inoltre, grazie alla protezione di memoria, un thread non può essere spostato su un'altra CPU da un thread a priorità maggiore e le applicazioni non interferiranno mai tra di loro. La gestione dei thread utente viene effettuata da uno scheduler dedicato, chiamato Userland e la sua esecuzione è regolata, anche nell'eventualità di un'interruzione, dai dati contenuti nella cache.
La comunicazione in Dragonfly.
La comunicazione attuata nella maggior parte dei sottosistemi comunicativi di Dragonfly avviene attraverso l'IPI. Questo sistema è utilizzato per suddividere thread e memoria libera sulle altre CPU. I messaggi generati da quest'ultime sono costituiti da una chiamata avente un puntatore a funzione e i dati relativi che la CPU destinataria eseguirà in modo asincrono.In questo modo si avranno grandi vantaggi dal punto di vista della performance, in quanto la CPU chiamante non attenderà l'esecuzione della CPU destinataria.La ricezione di un messaggio IP da parte di una CPU prevede la sospensione del thread attualmente in esecuzione rendendolo non bloccabile.
La gestione in Dragonfly.
La gestione dei kernel thread avviene attraverso lo Slab Allocator,un sottosistema che permette l'accesso a porzioni di codice critico senza negare alle altre CPU l'utilizzo del restante kernel. In altre parole,quando una CPU ha bisogno di utilizzare una parte del kernel, blocca con un lock globale l'accesso al kernel per il tempo necessario ad escludere quella determinata sezione dall'esecuzione da parte delle altra CPU. Questo processo prevede che lo slab allocator di ogni CPU abbia a che fare con 128k di kernel che poi verranno distribuiti e suddivisi in aree più piccole in base alla richiesta dei thread.
Nuova versione.
Matthew Dillon ha annunciato la nuova release di DragonFly 2.6.1.
L'annuncio ufficiale:
Ultime versioni:
• 2010-04-06: BSD Release: DragonFly BSD 2.6.1
• 2009-09-16: BSD Release: DragonFly BSD 2.4
• 2009-04-30: BSD Release: DragonFly BSD 2.2.1
• 2009-02-17: BSD Release: DragonFly BSD 2.2
• 2008-09-03: Development Release: DragonFly BSD 2.1-DEVEL "Live DVD"
• 2008-07-22: BSD Release: DragonFly BSD 2.0
* FreeBSD: velocità ed affidabilità su i386,
* NetBSD: portabilità e qualità del codice,
* OpenBSD: sicurezza e crittografia,
* DragonFly BSD: prosegue il ramo 4.x di FreeBSD.
Il progetto DragonflyBSD è stato annunciato nel giugno 2003. La base di codice è stata presa dal rilascio 4.8 di FreeBSD, che ha offerto le prestazioni migliori e le caratteristiche più complete. Si è scelto di utilizzare un'architettura che tenesse conto della differente velocità di accesso alle memorie presenti in un sistema, quali cache e RAM (Random Access Memory), che è di fondamentale importanza nella realizzazione di sistemi multiprocessore.
Questa architettura è denominata NUMA (Non Uniform Memory Access) e consente l'utilizzo di un sistema con un elevato numero di vie velocizzando il transito dei dati tra CPU e memoria. Dragonfly supporta processori della famiglia x86 ma il lavoro è anche indirizzato a supportare i nuovi processori a 64bit della AMD. La filosofia di Dragonfly è la suddivisione esplicita del lavoro tra i processori, ovvero significa che un processo non sarà mai trasferito su un'altra CPU permettendo quindi di utilizzare al meglio i dati contenuti nella cache e senza dover effettuare il lock. DragonflyBSD è sviluppato da molta gente in tutto il mondo. Non c'è processo di qualificazione; chiunque può presentare il suo codice, documentazione o disegni per uso nel progetto.
DragonflyBSD è il primo BSD OS non basato su Mach ad adottare un'architettura a kernel ibrido, ovvero il kernel condivide i concetti e i meccanismi d'architettura sia dei kernel monolitici che delle tipologie micro. Il modello LWKT (Light Weight Kernel Threading) funziona associando ogni processo ad un thread. Ogni CPU ha il proprio scheduler LWKT. In questo modo i thread sono assegnati ad una specifica CPU permettendo così la gestione senza la necessità di utilizzare un lock MP. Inoltre, grazie alla protezione di memoria, un thread non può essere spostato su un'altra CPU da un thread a priorità maggiore e le applicazioni non interferiranno mai tra di loro. La gestione dei thread utente viene effettuata da uno scheduler dedicato, chiamato Userland e la sua esecuzione è regolata, anche nell'eventualità di un'interruzione, dai dati contenuti nella cache.
La comunicazione in Dragonfly.
La comunicazione attuata nella maggior parte dei sottosistemi comunicativi di Dragonfly avviene attraverso l'IPI. Questo sistema è utilizzato per suddividere thread e memoria libera sulle altre CPU. I messaggi generati da quest'ultime sono costituiti da una chiamata avente un puntatore a funzione e i dati relativi che la CPU destinataria eseguirà in modo asincrono.In questo modo si avranno grandi vantaggi dal punto di vista della performance, in quanto la CPU chiamante non attenderà l'esecuzione della CPU destinataria.La ricezione di un messaggio IP da parte di una CPU prevede la sospensione del thread attualmente in esecuzione rendendolo non bloccabile.
La gestione dei kernel thread avviene attraverso lo Slab Allocator,un sottosistema che permette l'accesso a porzioni di codice critico senza negare alle altre CPU l'utilizzo del restante kernel. In altre parole,quando una CPU ha bisogno di utilizzare una parte del kernel, blocca con un lock globale l'accesso al kernel per il tempo necessario ad escludere quella determinata sezione dall'esecuzione da parte delle altra CPU. Questo processo prevede che lo slab allocator di ogni CPU abbia a che fare con 128k di kernel che poi verranno distribuiti e suddivisi in aree più piccole in base alla richiesta dei thread.
Nuova versione.
Matthew Dillon ha annunciato la nuova release di DragonFly 2.6.1.
L'annuncio ufficiale:
Matthew Dillon has announced the release of DragonFly BSD 2.6.1, a BSD operating system originally forked from the FreeBSD 4.x code base: "The DragonFly 2.6 release is here! Three release options are now available for 32-bit: our bare-bones CD ISO image, a bare-bones bootable USB disk-key image (minimum 1G USB stick needed), and a GUI bootable USB disk-key image with a full X environment. The GUI USB image replaces the DVD ISO image we had in the previous release, to work around issues with DVDs simply being too slow to boot an X environment from. Two release options are available for 64-bit: our bare-bones CD ISO image and our bare-bones bootable USB disk-key image. The 64-bit release is now fully supported."
Read the full release announcement which includes a complete list of changes and improvements.
DownloadMD5): dfly-i386-2.6.1_REL.iso.bz2 (218MB), dfly-x86_64-2.6.1_REL.iso.bz2 ( (232MB).
• 2010-04-06: BSD Release: DragonFly BSD 2.6.1
• 2009-09-16: BSD Release: DragonFly BSD 2.4
• 2009-04-30: BSD Release: DragonFly BSD 2.2.1
• 2009-02-17: BSD Release: DragonFly BSD 2.2
• 2008-09-03: Development Release: DragonFly BSD 2.1-DEVEL "Live DVD"
• 2008-07-22: BSD Release: DragonFly BSD 2.0
fonti: DragonFly BSD & Wikipedia
Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!
0 commenti:
Posta un commento