Qual è la differenza tra un modello di progettazione e una strategia? Il monolite è in realtà un anti-pattern?
Qual è la differenza tra un modello di progettazione e una strategia? Il monolite è in realtà un anti-pattern?
Sono architetture per sistemi operativi.
monolitico == OS altamente integrato con tutte le funzioni principali strettamente accoppiate in un singolo file eseguibile.
microkernal == piccolo kernel del sistema operativo che implementa solo la funzionalità di base del sistema operativo (in genere solo la pianificazione del processo e alcune funzioni di gestione della memoria di base) tutte le altre funzioni fornite da moduli separati.
Microkernals suona davvero bene come architettura / concetto, purtroppo crea problemi di prestazioni e sicurezza. L'unico sistema operativo microkernal che probabilmente incontrerai nella vita reale è Apples Darwin che contiene ancora alcuni frammenti del kernel "mach", anche se gran parte di questo è stato ottimizzato.
Mi piacerebbe dire che il monolite è un anti-modello perché lo odio assolutamente. La differenza tra monolitico e micro nella mia mente sono semplicemente livelli di astrazione, il monolitico si basa su un livello di astrazione, segmentazione orizzontale, in cui il micro ha un altro livello, verticale e segmentazione orizzontale. Sfortunatamente non è un anti-pattern, e non direi che è un "modello di progettazione" per cominciare.
È un'architettura, e la forma moderna della micro architettura è conosciuta come "Architettura orientata ai servizi" dove i confini del servizio ti danno quella segmentazione verticale, anche se il modello degli attori è un'altra architettura che ti dà e sta acquistando vapore ultimamente .
Sappiamo tutti come sono i monoliti moderni, sono gli N-tier su cui abbiamo lavorato per anni. O almeno alcuni di noi hanno sfortunatamente.
Leggi altre domande sui tag operating-systems design-patterns kernel linux-kernel