Library OSes vs Unikernels

4

La mia comprensione di un hypervisor & Virtual Machines è che l'hypervisor è un programma (eseguito su un sistema operativo host o che esegue bare metal as l'host) che sfrutta driver di dispositivi compatibili con i binari e una serie di altri tecnologie per fornire l'emulazione hardware sotto forma di macchine guest "virtuali" isolate, tutte in condivisione con l'hardware e le periferiche dell'host.

La mia comprensione dei contenitori Linux è che il kernel Linux contiene un hypervisor nativo che consente questo stesso tipo di funzionalità, ma per qualche motivo è molto più leggero di ipervisori di tipo I / II tradizionali e relativi VM. La comprensione è che Docker migliora ulteriormente il contenitore Linux grezzo, anche se non so esattamente come.

La mia comprensione dei sistemi operativi della libreria è che sono pezzi e bit delle numerose librerie e pacchetti Linux disponibili, che ti permettono di ricucire insieme il tuo "Frankenstein" Distro Linux da un insieme ridotto di librerie specifiche per la tua app.

La mia comprensione di Unikernel è che è essenzialmente la stessa cosa di un sistema operativo di libreria, ma sono anche (in qualche modo?) più ridotti e minimizzati.

La comprensione di un server immutabile è che è un server configurato una volta al momento della compilazione e non modifica mai la sua configurazione o stato interno dopo l'avvio.

Quindi, in primo luogo, se qualcosa che ho affermato finora è errato o fuorviato, per favore inizia a correggermi! Supponendo che io sia più o meno in pista con questi:

  • Qual è la differenza esatta tra i sistemi operativi di libreria e gli Unikernel?
  • Per quale motivo, qual è la differenza tra entrambe queste versioni "embedded" o "micro" di Linux (come ArchLinux), progettate per sistemi embedded? Non sono tutti solo " Minified Linux "?
  • Quale di questi viene utilizzato per creare un server immutabile?
posta smeeb 19.05.2015 - 03:41
fonte

1 risposta

2

L'intuizione dietro unikernels il più possibile con OpenMirage (noto anche come MirageOS) è che si codifica un programma "kernel" specializzato (eseguito quasi sul bare metal, ma in realtà) per alcuni hypervisor come Xen che eseguirà diverse dozzine di tali ignoranti.

Si noti che OpenMirage unikernels condivide pochissimo codice (AFAIK, nessuno) con il kernel Linux (poiché sono per lo più codificati in Ocaml, non in C!); per esempio il loro stack TCP è diverso.

Il sistema operativo della libreria è quasi una parola chiave che non significa molto. Leggi per es. sull'idea exokernel . Il OSkit progetto (morto dal 2003, probabilmente) pacchetti di sottosistemi e driver del kernel Linux per fornire alle persone alcune librerie rendere il kernel come un software.

Alcune varianti specializzate delle distribuzioni Linux ti permettono di usare un kernel Linux linux con pochissime utility specifiche (ma poi stai usando un kernel Linux comune, forse con il tuo init -like programma, o solo con pochissimi programmi specializzati avviati da qualche solito init o systemd cosa). Molti sistemi Linux incorporati (tra cui Android ) vengono utilizzati in questo modo, ad es. OpenWRT , ma il software user-land sta facendo ordinario Linux syscalls elencati in syscalls (2) .

finestra mobile è un contenitore software (ovvero una sorta di virtualizzazione a livello di sistema operativo o sandbox ). Vedi anche Chroot e chroot(2) & personality (2) & setns (2) syscalls.

Leggi anche (specifiche per Linux) credenziali (7) , funzionalità (7) , namespace (7)

    
risposta data 19.05.2015 - 08:50
fonte

Leggi altre domande sui tag