In arrivo un hypervisor per OpenBSD/amd64

OpenBSDOggi Mike Larkin ha pubblicato un teaser sul progetto al quale ha lavorato per un po’ di tempo: un hypervisor nativo per OpenBSD.

I progressi fatti giustificano l’annuncio ufficiale e lo stato del progetto consente adesso l’inserimento di altri sviluppatori a supporto dell’iniziativa.

I motivi per cui è stato preferito sviluppare un progetto da zero piuttosto che portare uno degli hypervisor esistenti sono diversi, uno dei principali è quello che le altre implementazioni non supportano alcuni aspetti che sono particolarmente importanti per OpenBSD, come ad esempio il supporto per i386, lo shadow paging, la nested virtualization, il supporto per le periferiche legacy, ecc. Tentare di inserire tali features in un hypervisor già esistente avrebbe probablmente richiesto uno sforzo pari a quello necessario per scriverne uno nuovo.

Alcune domande e risposte sul tema:

D. Quali OS possono essere eseguiti?
R. Inizialmente, gli OS che supportano le periferiche virtio-based. In seguito, si cercherà di esporre qualcosa a cui Qemu possa agganciarsi (probabilmente simulando KVM) per eseguire OS legacy ed OS che richiedono il supporto al boot BIOS/UEFI.

D. Quando sarà pronto?
R. Difficile a dirsi. Si spera per la fine di Ottobre 2015, ma non è una promessa. Molto dipenderà anche dalla quantità di aiuto che verrà dato nello scrivere i backend virtio.

D. Quali saranno i requisiti di CPU?
R. Qualsiasi CPU AMD o Intel che supporta la virtualizzazione hardware (SVM per AMD, VMX per Intel). Per le CPU che non supportano RVI o EPT, si utilizzerà lo shadow paging.

D. Ma dai, i386?!
R. Sì. E’ utile per trovare i bug. E Mike invita a guardare la sua ultima dozzina di commit relativi a i386 per individuare un’altra ragione.

Infine, la domanda più importante:
D. Come posso aiutare?
R. L’autore non avrebbe avuto praticamente tempo di lavorare a questo progetto negli ultimi mesi se non grazie alla generosa sponsorizzazione della OpenBSD Foundation. Le donazioni lo hanno reso possibile, e ciò è valido anche per altri progetti. Per cui è possibile aiutare effettuando donazioni. Se ritenete che un hypervisor in OpenBSD sia qualcosa che vi può essere utile, partecipate alle donazioni.

Ecco infine un esempio di boot:

Attivazione vmm mode:

# vmmctl -e
cpu0: entered VMM mode

Avvio di una VM:

# vmmctl -S -c openbsd_amd64.vmrc
/dev/ttyp0

Aggancio alla VM console:

# cu -l /dev/ttyp0
exit save va/pa  0xfffff000bcff000 0xbcff000
exit load va/pa  0xfffff000bd1e000 0xbd1e000
entry load va/pa 0xffffff000bd2c000 0xbd2c000
vmd: new vm with id 1 created
loading 64 bit kernel
warning: bcopy during ELF kernel load not supported
warning: bcopy during ELF kernel load not supported
mark[start] = 0x1000000
mark[entry] = 0x1000160
mark[nsym] = 0x1
mark[sym] = 0x1939000
mark[end] = 0x1a1de00
mark[random] = 0x18a4000
mark[erandom] = 0x18a6408
vmd: all vcpu run threads for vm 3 launched
vcpu_run_vmx: yielding the cpu
vmd: waiting on thread 0
vcpu_run_vmx: yielding the cpu
vcpu_run_vmx: yielding the cpu
loading 0x1a44000-0x4000000 (0x1a44-0x4000)
loading 0x100000-0x1000000
avail_start = 0x26000
avail_end = 0x4000000
First_avail = 0x1a44000
[ bsd ELF symbol table not valid: bad magic ]
[ no symbol table formats found ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2015 OpenBSD. All rights reserved.  http://www.OpenBSD.org

OpenBSD 5.8-current (GENERIC) #204: Mon Aug 31 01:13:40 PDT 2015
    mlarkin@miskatonic.azathoth.net:/export/bin/src/OpenBSD/vmm/src/sys/arch/amd64/compile/GENERIC
vmd: i8253 PIT: 16 bit counter I/O not supported
RTC BIOS diagnostic error ff
real mem = 50331648 (48MB)
avail mem = 45101056 (43MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0
acpi at bios0 not configured
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
cpu0: FPU,VME,DE,PSE,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH
,DS,MMX,FXSR,SSE,SSE2,SS,HTT,PBE,SSE3,PCLMUL,DTES64,DS-CPL,SSSE3,CX16,xTPR,PCID,
SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,AVX,F16C,RDRAND,HV,ITSC,FSGSBASE,SMEP,E
RMS
pvbus0 at mainbus0: OpenBSD
vmx_handle_cpuid: unsupported rax=0x40000100
pci0 at mainbus0 bus 0
isa0 at mainbus0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns8250, no fifo
com0: console
vmm at mainbus0 not configured
vmx_handle_cr: mov to cr8 @ ffffffff8131854a
nvram: invalid checksum
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
root device:

Ciò significa che OpenBSD/amd64 è sulla strada per diventare un sistema operativo host di virtualizzazione con un suo proprio hypervisor nativo, unendosi al club esclusivo che fino ad adesso annoverava solo OpenBSD/sparc64 con il suo supporto ai logical domain (LDOMs).

OpenBSD in crisi

OpenBSDIl 2014 si apre con serie difficoltà per OpenBSD. E’ giunta la notizia, diffusa direttamente da [wiki]Theo de Raadt[/wiki], che la situazione economica della OpenBSD Foundation è molto grave, al punto da non riuscire più a fronteggiare le spese di sopravvivenza. I soli costi di energia elettrica per il mantenimento dei sistemi di sviluppo ammontano a circa 20.000 dollari canadesi all’anno.

E’ stata predisposta una pagina sul sito ufficiale per accogliere le donazioni da parte di chi ha a cuore il progetto, ma è chiaro che solamente grandi sponsor – preferibilmente canadesi – potranno farsi carico del grosso dei costi.

Speriamo tutti che OpenBSD possa superare questo momento di difficoltà, per continuare a proporci un sistema Unix dalla stabilità e sicurezza leggendarie.

AGGIORNAMENTO:

Ars Technica ha annunciato che la OpenBSD Foundation ha ricevuto una donazione di 20.000 dollari in [wiki]Bitcoin[/wiki], ed è quindi riuscita ad uscire dalla situazione di crisi. Inoltre sono giunte altre donazioni per un ammontare di oltre 100.000 dollari. Lo scopo del gruppo è quello di riuscire a raggiungere l’obiettivo dei 150.000$, che consentirebbero anche di finaziare varie iniziative collaterali, oltre al mero sviluppo del sistema.

Rilasciato OpenBSD 5.5

OpenBSDIl 1 maggio è stato rilasciato OpenBSD 5.5. La nuova versione è adesso compliant con l’anno 2038 su tutte le piattaforme grazie dell’utilizzo a 64bit della funziona time_t. Inoltre vi sono nuovi supporti hardware e altri cambiamenti.

Per affrontare il problema dell'[wiki label=”anno 2038″]Bug_dell’anno_2038[/wiki], il team OpenBSD ha deciso di rendere a 64bit la funzione time_t su tutte le piattaforme sulla versione 5.5 e seguenti. Il kernel, le utility e tutti i programmi user-space sono stati verificati per assicurare il supporto a time_t 64bit.

Altri cambiamenti in OpenBSD 5.5 includono l’utilizzo dello strumento Signify per firmare le release e i pacchetti, miglioramenti nell’installer (incluso il supporto per poter finalmente scrivere le immagini disco su USB flash drive), molti nuovi driver hardware, miglioramenti nel networking, nel threading e una varietà di altri cambiamenti.

In OpenBSD/alpha è stato incluso il supporto multiprocessore, e la piattaforma beagle è stata sostituita dalla armv7. Tra i nuovi driver hardware inseriti, da segnalare quelli per gli ambienti virtualizzati VMware e VIRTIO.

Inoltre questa è la prima major release di OpenBSD che include il supporto grafico RDM Radeon portato dal kernel FreeBSD.

Tra i pacchetti software disponibili nei ports sono inclusi GNOME 3.10.2 KDE 3.5.10 e 4.11.5, Xfce 4.10, MySQL 5.1.73 e PostgreSQL 9.3.2, Postfix 2.11.0, OpenLDAP 2.3.43 e 2.4.38, Mozilla Firefox 24.3 e 26.0, LibreOffice 4.1.4.2, PHP 5.3.28 e 5.4.24, Python 2.7.6 e 3.3.2, Chromium 32.0.1700.102, GCC 4.6.4 e 4.8.2.

L’intero elenco delle novità è disponibile sul sito ufficiale.

Questi i link per il Download (torrents): amd64/install55.iso (237MB, SHA256, torrent), i386/install55.iso (222MB, SHA256, torrent).

Roundup sui BSD

Avendo tralasciato di annunciare puntualmente l’uscita di alcune nuove versioni dei vari os BSD, faccio adesso un breve resoconto della situazione:

Dal 1 maggio è disponibile OpenBSD 4.9. In questa release spiccano alcuni fix di sicurezza sullo stack IPsec, numerose migliorie nella gestione dello SCSI, il supporto multiprocessore su piattaforma hppa, il supporto per svariate schede di rete di nuova generazione, su architettura x86 il supporto ad alcune componenti dei driver di virtualizzazione VMWare e la compilazione del modulo NTFS nel kernel GENERIC. Da notare che è stata introdotta la struttura rc.d per gestire l’avvio e l’arresto dei demoni e dei servizi. KDE è ancora alla versione 3.5.10, e Gnome alla 2.32.1, mentre XFCE è stato portato alla nuova 4.8.0.

Questi i link per il download: Download: i386/install49.iso (215MB, SHA256), amd64/install49.iso (229MB, SHA256).

In aprile è stato rilasciato DragonFlyBSD 2.10.1. Si tratta di una release che aumenta le prestazioni e la compatibilità con hardware diversi. In particolare sono supportati un maggior numero di sistemi multiprocessore, grazie a aggiornamenti ai supporti ACPI, APIC e APIC interrupt routing; i volumi HAMMER sono ora in grado di eseguire la deduplica automatica in notturna con processi batch e durante operazioni live; il Packet Filter è stato aggiornato a quello di OpenBSD 4.4 e il compilatore GCC 4.4 è stato adottato come ufficiale, conferendo migliori prestazioni a tutto il sistema.

Gli url per il download sono: dfly-i386-2.10.1_REL.iso.bz2 (185MB), dfly-x86_64-2.10.1_REL.iso.bz2 (190MB).

GhostBSD 2.0 è uscito in marzo, ed è stato accolto con favore essendo l’unica release di FreeBSD che adotta Gnome come ambiente desktop. E’ supportato l’automount delle periferiche USB, E’ stato scelto un nuovo logo, un nuovo file system live, sono stati fixati diversi bug. La versione di GNOME adottata è la 2.32.

Per chi volesse provarlo: GhostBSD-2.0-i386.iso (1,139MB), GhostBSD-2.0-amd64.iso (1,383MB).

 

Rilasciato OpenBSD 5.0

Il 1 novembre è stato rilasciato ufficialmente OpenBSD 5.0. Tra le novità, il supporto agli interrupt MSI per numerosi device; una nuova API dma_alloc(9) che facilita l’allocazione di memoria dma-safe da parte del kernel, come risultato, il supporto big-memory è stato abilitato su tutte le architetture possibili; è stato aggiunto il supporto a periferiche Hitachi Modular Storage SCSI; è stato aggiunto il driver per le periferiche Ethernet 10G Myricom  Myri-10G; numerose altre variazioni relative al networking e ad altre componenti del sistema. Svariati package applicativi sono stati aggiornati:  GNOME 2.32.2, KDE 3.5.10, Mozilla Firefox 3.5.19, 3.6.18 e 5.0, LibreOffice 3.4.1, PHP 5.2.17 e 5.3.6, Chromium 12.0.742.122.

Come d’abitudine, per la nuova release è stata preparata anche una nuova canzone di celebrazione.

Questi i link per il download delle versioni x86 e amd64: i386/install50.iso (219MB, SHA256), amd64/install50.iso (233MB,SHA256).

1 2 3 4