Share to: share facebook share twitter share wa share telegram print page

Kernel

Disambiguazione – Se stai cercando altri significati, vedi Kernel (disambigua).
Astrazione dal software all'hardware passando per il kernel

In informatica, il kernel (AFI: [ˈkəːnəl]) o nucleo è un programma situato al centro del sistema operativo che ha generalmente un controllo completo dell'intero sistema[1] e fornisce un accesso sicuro e controllato dell'hardware ai processi in esecuzione sul computer.[2] Dato che possono eventualmente esserne eseguiti simultaneamente più di uno, il kernel può avere anche la responsabilità di assegnare una porzione di tempo-macchina (scheduling) e di accesso all'hardware a ciascun programma (multitasking)[3].

Descrizione

Un kernel non è strettamente necessario per far funzionare un computer. I programmi possono essere infatti direttamente caricati ed eseguiti sulla macchina, a patto che i loro sviluppatori ritengano necessario fare a meno del supporto del sistema operativo.

Questa era la modalità di funzionamento tipica dei primi computer, che venivano resettati prima di eseguire un nuovo programma. In un secondo tempo, alcuni programmi accessori come i program loader e i debugger venivano lanciati da una memoria a sola lettura, o fatti risiedere in memoria durante le transizioni del computer da un'applicazione all'altra: essi formarono la base di fatto per la creazione dei primi sistemi operativi.

Un'altra situazione in cui l'assenza di sistema operativo è auspicabile è l'esempio dei microcontrollori monolitici.

L'accesso diretto al kernel da parte di un utente/amministratore può avvenire in modalità user mode o kernel mode.

Classificazione

Confronto tra i diversi kernel

L'accesso diretto all'hardware può essere anche molto complesso, quindi i kernel usualmente implementano uno o più tipi di astrazione dall'hardware, il cosiddetto livello di astrazione dell'hardware (hardware abstraction layer o HAL). Queste astrazioni servono a "nascondere" la complessità e a fornire un'interfaccia pulita e uniforme all'hardware sottostante, in modo da semplificare il lavoro degli sviluppatori.

I kernel si possono classificare in quattro categorie, in base al grado di astrazione dell'hardware:

  • Kernel monolitici, che implementano direttamente una completa astrazione dell'hardware sottostante.
  • Microkernel, che forniscono un insieme ristretto e semplice di astrazione dell'hardware e usano software (chiamati device driver o server) per fornire maggiori funzionalità.
  • Kernel ibridi (o microkernel modificati), che si differenziano dai microkernel puri per l'implementazione di alcune funzioni aggiuntive al fine di incrementare le prestazioni.
  • Esokernel, che rimuovono tutte le limitazioni legate all'astrazione dell'hardware e si limitano a garantire l'accesso concorrente allo stesso, permettendo alle singole applicazioni di implementare autonomamente le tradizionali astrazioni del sistema operativo per mezzo di speciali librerie.

Kernel monolitici

Rappresentazione grafica di un kernel monolitico

L'approccio monolitico definisce un'interfaccia virtuale di alto livello sull'hardware e software, con un set di primitive o chiamate di sistema per implementare servizi di sistema operativo come gestione dei processi, multitasking e gestione della memoria, in diversi moduli che girano in modalità supervisore.

Anche se ogni modulo che serve queste operazioni è separato dal resto, l'integrazione del codice è molto stretta e difficile da fare in maniera corretta e, siccome tutti i moduli operano nello stesso spazio, un bug in uno di essi può bloccare l'intero sistema. Tuttavia, quando l'implementazione è completa e sicura, la stretta integrazione interna dei componenti rende un buon kernel monolitico estremamente efficiente.

Il più considerevole svantaggio dei kernel monolitici è tuttavia che non è possibile aggiungere un nuovo dispositivo hardware senza aggiungere il relativo modulo al kernel, operazione che richiede la ricompilazione del kernel. In alternativa è possibile compilare un kernel con tutti i moduli di supporto all'hardware, al costo di aumentarne molto la dimensione. Tuttavia i kernel monolitici più moderni come il kernel Linux e FreeBSD possono caricare moduli in fase di esecuzione, se sono previsti in fase di configurazione (la fase di configurazione è la fase che precede quella di compilazione, durante la quale si può scegliere quali feature o driver debbano far parte del nuovo kernel), permettendo così l'estensione del kernel quando richiesto, mantenendo al contempo le dimensioni del codice nello spazio del kernel al minimo indispensabile.

Esempi di kernel monolitici:

Microkernel

Lo stesso argomento in dettaglio: Microkernel.
Rappresentazione grafica di un microkernel
Logo AIX (sistema operativo), sistema operativo, basato su microkernel
BeOS, altro sistema operativo basato su microkernel

L'approccio microkernel consiste nel definire un kernel principale che fornisce esclusivamente un set di primitive o chiamate di sistema per implementare servizi minimali del sistema operativo quali gestione dei thread, spazi di indirizzamento o comunicazione interprocesso. Sopra tale kernel minimale (da cui il prefisso "micro") vengono innestati dei server, ovvero programmi separati dal kernel che comunicano con questo tramite le suddette chiamate di sistema per implementare le varie funzionalità del sistema.

L'obiettivo principale è la separazione delle implementazioni dei servizi di base dalle strutture operative del sistema. Per esempio, il processo di blocco (locking) dell'input/output può essere implementato come modulo server a livello utente. Questi moduli a livello utente, usati per fornire servizi di alto livello al sistema, sono modulari e semplificano la struttura e la progettazione del kernel. Un servizio server che smette di funzionare non provoca il blocco dell'intero sistema, e può essere riavviato indipendentemente dal resto.

Vi sono alcuni tipi di microkernel che non possono essere definiti esattamente come tali, perché non implementano alcune funzioni sotto forma di server, sebbene siano caratterizzati da altre prerogative che definiscono i microkernel. Il più noto di essi è Exec, abbreviazione di Executive Multitasking (e il suo diretto successore ExecSG) che è il kernel di AmigaOS.

Esempi di microkernel e Sistemi operativi basati su microkernel:

Kernel monolitici e microkernel: confronto

DragonFly

I kernel monolitici sono spesso preferiti ai microkernel a causa del minor livello di complessità nel controllo dei codici di controllo in uno spazio di indirizzamento. Per esempio XNU, il kernel di macOS, è basato su un kernel Mach 3.0 e componenti BSD nello stesso spazio di indirizzamento in modo da abbattere i tempi di latenza tipici dei microkernel. XNU risulta così un kernel dalle notevoli prestazioni poiché basato in parte su una soluzione ibrida e non può in ogni caso essere considerato un microkernel. Nella documentazione ufficiale di Apple si fa chiaro riferimento a XNU come Kernel Monolitico Modulare.

A partire dai primi anni novanta i kernel monolitici sono considerati obsoleti. Il kernel Linux come kernel monolitico anziché come microkernel è stato uno degli argomenti della famosa guerra di religione fra Linus Torvalds (il creatore di Linux) e Andrew Tanenbaum (celebre docente di sistemi operativi, autore di Minix) - in rete sono disponibili maggiori dettagli.

In realtà vi sono ragioni da entrambe le parti.

I kernel monolitici tendono ad essere più semplici da progettare correttamente, e possono quindi evolversi più rapidamente di un sistema basato su microkernel. Ci sono storie di successi in entrambi gli schieramenti. I microkernel sono spesso usati in sistemi embedded in applicazioni mission critical di automazione robotica o di medicina, a causa del fatto che i componenti del sistema risiedono in aree di memoria separate, private e protette. Ciò non è possibile con i kernel monolitici, nemmeno con i moderni moduli caricabili.

A parte il kernel Mach, che è il più noto microkernel di uso generico, molti altri microkernel sono stati sviluppati con scopi specifici. Kernel L3 in particolare è stato creato per dimostrare che i microkernel non sono necessariamente lenti. La famiglia di microkernel L4, successori di L3, dispongono di una implementazione chiamata Fiasco in grado di eseguire il kernel Linux accanto agli altri processi di L4 in spazi di indirizzamento separati.

QNX è un sistema operativo presente sulle scene dai primi anni ottanta e dispone di una implementazione a microkernel davvero minimalista. Questo sistema ha avuto molto più successo di Mach nel raggiungere gli obiettivi del paradigma a microkernel. È usato in situazioni in cui al software non è concesso di sbagliare, ad esempio nei bracci robotici dello space shuttle o in macchine che lavorano il vetro dove un errore anche piccolo può costare centinaia di migliaia di Euro.

Kernel ibridi

Rappresentazione grafica di un kernel ibrido

I kernel ibridi sono essenzialmente dei microkernel che hanno del codice "non essenziale" al livello di spazio del kernel in modo che questo codice possa girare più rapidamente che se fosse implementato ad alto livello. Questo fu un compromesso adottato da molti sviluppatori di sistemi operativi prima che fosse dimostrato che i microkernel puri potevano invece avere performance elevate. Molti sistemi operativi moderni rientrano in questa categoria: Microsoft Windows è l'esempio più noto. Anche XNU, il kernel di Mac OS X, è di fatto un microkernel modificato, per via dell'inclusione di codice BSD in un kernel basato su Mach. DragonFly BSD è stato il primo sistema BSD non basato su Mach ad adottare l'architettura a kernel ibrido.

Non si confonda il termine "kernel ibrido" con i kernel monolitici che possono caricare moduli dopo il boot, poiché "ibrido" implica che il kernel in questione condivide concetti architetturali e meccanismi tipici sia dei kernel monolitici che dei microkernel, specialmente il passaggio di messaggi e la migrazione di porzioni di codice "non essenziale" a più alto livello, mantenendo a livello kernel solo il codice necessario per ragioni di prestazioni.

Esempi di kernel ibridi:

Esokernel

Rappresentazione grafica di un Exokernel

Gli esokernel, o Exokernel, conosciuti anche come "sistemi operativi verticali", sono un approccio radicalmente differente alla progettazione dei sistemi operativi. L'idea centrale è "separare la protezione dalla gestione".

Nessuno meglio di uno sviluppatore sa come rendere efficiente l'uso dell'hardware disponibile, quindi l'obiettivo è dargli la possibilità di prendere le decisioni. Gli esokernel sono estremamente piccoli e compatti, poiché le loro funzionalità sono volutamente limitate alla protezione e al multiplexing delle risorse.

I kernel "classici" (sia monolitici che microkernel) astraggono l'hardware, nascondendo le risorse dietro a un livello di astrazione dell'hardware), o dietro a server "sicuri". In questi sistemi "classici", se ad esempio viene allocata della memoria, il programma non può sapere in quale pagina fisica questa verrà riservata dal sistema operativo, e se viene scritto un file non c'è modo di sapere direttamente in quale settore del disco è stato allocato. È questo il livello di astrazione che un esokernel cerca di evitare. Esso permette ad un'applicazione di richiedere aree specifiche di memoria, settori specifici su disco e così via, e si assicura solamente che le risorse richieste siano disponibili e che le applicazioni vi possano accedere.

Dato che un esokernel fornisce un'interfaccia davvero a basso livello all'hardware, mancando di qualsiasi funzionalità di alto livello tipica degli altri sistemi operativi, esso è accompagnato da un sistema operativo-libreria (in gergo libOS) che si interfaccia con l'esokernel sottostante fornendo quindi agli sviluppatori di applicazioni le funzionalità di un sistema operativo completo.

Tutto ciò ha un'importante implicazione: è possibile avere diversi libOS sul sistema. Se, per esempio, si installa un libOS che esporta un'API Unix e uno che esporta un'API Windows, è possibile eseguire simultaneamente applicazioni compilate per UNIX e per Windows. Lo sviluppo dei libOS avviene a livello utente, senza reboot, debug su console e in piena protezione della memoria.

Al momento gli esokernel sono più che altro dei progetti di ricerca e non sono usati in sistemi operativi commerciali. Un esempio di sistema basato su esokernel è Nemesis, sviluppato dall'Università di Cambridge, dall'Università di Glasgow, da Citrix Systems e dall'Istituto Svedese di Informatica. Anche il MIT ha sviluppato diversi sistemi basati su esokernel.

No Kernel

Il software cosiddetto "no kernel" non ha l'obbligo di essere limitato ad un unico entry point che sia oltretutto centralizzato. Un esempio è dato da progetti come TUNES e UnununiumOS, che intendevano creare un sistema operativo privo di kernel (entrambi i progetti sono stati interrotti).

Note

  1. ^ Kernel, su Linfo, Bellevue Linux Users Group. URL consultato il 15 settembre 2016 (archiviato dall'url originale l'8 dicembre 2006).
  2. ^ (EN) Brian Bagnall, On The Edge: The Spectacular Rise and Fall of Commodore, Variant Press, 2006, p. 202, ISBN 978-0-97-386490-8.
    (EN)

    «The kernel is the most fundamental part of a program, typically an operating system, that resides in memory at all times and provides the basic services. It is the part of the operating system that is closest to the machine and may activate the hardware directly or interface to another software layer that drives the hardware.»

    (IT)

    «Il kernel è la parte più fondamentale di un programma, normalmente un sistema operativo, che risiede in memoria per tutto il tempo e che fornisce i servizi di base: è la parte del sistema operativo che è più vicina alla macchina e che può attivare l'hardware direttamente oppure interfacciarsi con un altro livello software che gestisce l'hardware.»

  3. ^ (EN) LifeV, Multitasking Management in the Operating System Kernel, su kukuruku.co, 13 maggio 2014. URL consultato il 1º novembre 2016.
    (EN)

    «Since only one instruction can be executed at one processor kernel at one moment, only one thread can be active. The process of chosing the active computing thread is called scheduling. In its turn, the module which is in charge of the choice is called the scheduler.»

    (IT)

    «Siccome in un dato momento ogni processore gestito dal kernel può eseguire solo una istruzione per volta, ci può essere solo un thread attivo. Il processo mediante il quale si sceglie il thread di calcolo attivo è chiamato scheduling. A sua volta, il modulo incaricato di fare questa scelta è detto scheduler.»

  4. ^ Viene utilizzato inizialmente in GNU Hurd e non in MacOS, che utilizza usa XNU, che è un kernel ibrido modulare nato dall'unione di Mach e del kernel FreeBSD.

Bibliografia

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàGND (DE4338679-9
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

彰化縣第三選舉區立法院區域立法委員選區国家中華民國所在行政区彰化縣区域芳苑鄉、二林鎮、埔鹽鄉、溪湖鎮、埔心鄉、大城鄉、竹塘鄉、埤頭鄉、北斗鎮、溪州鄉坐标23°56′03″N 120°24′54″E / 23.9342°N 120.415°E / 23.9342; 120.415类型中華民國立法委員選舉區[*]选民數270,719現有選區现任議員謝衣鳳( 中國國民黨) 彰化縣第三選舉區是中華民國區域立法...

 

Princess MermaidGenre Drama Roman Remaja Fantasi PembuatKharisma Starvision PlusDitulis oleh Endik Koeswoyo Novy Pritania Skenario Endik Koeswoyo Novy Pritania SutradaraLakondePemeran Raisya Bawazier Kenny Austin Naomi Zaskia Cinta Brian Rachel Patricia Pedro Mikael Alif Joerg Jerry In't Veld Louise Anastasya Santana Sartana Mahisa Aulia Dinsi Junior Roberts Gege Elisa Ali Seggaf Shezy Idris Ichal Kate Donnie Hoed Penggubah lagu temaJazLagu pembukaBerdua Bersama — JazLagu penutupBerdua Bers...

 

برمجانةمعلومات عامةالمنشأ إيطاليا النوع طبق المكونات الرئيسية  القائمة ... صلصة البندورة بارميجيانو ريجيانو باذنجان زيت basil (en) ملح الطعام بصل فليفلة Fior di latte (en) تعديل - تعديل مصدري - تعديل ويكي بيانات البَرْمِجَانَة هو طبق إيطالي مصنوع من شرائح الباذنجان المقلي مع شرائح ال

Una tienda minorista estadounidense de licores informando a sus clientes que todo el vodka ruso fue retirado producto de la invasión. El impacto económico de la invasión rusa de Ucrania comenzó a finales de febrero de 2022, días después de que Rusia reconociera dos repúblicas ucranianas separatistas y lanzara la invasión de Ucrania. Las sanciones económicas posteriores se han dirigido a gran parte de la economía rusa, a los oligarcas rusos y a miembros del gobierno ruso.[1]​[2...

 

2010 film by Jean-Luc Godard Film SocialismeEarly promotional one-sheet posterDirected byJean-Luc GodardProduced byAlain SardeCinematographyFabrice AragnoPaul GrivasProductioncompanyVega FilmDistributed byWild BunchRelease dates 17 May 2010 (2010-05-17) (Cannes) 19 May 2010 (2010-05-19) (France) Running time102 minutesCountryFranceLanguageFrenchBox office$410,000[1] Film Socialisme (alternative French title Socialisme; English: Socialism but often...

 

Jake A. MerrickAnggota Senat Oklahomadari dapilPetahanaMulai menjabat 14 April 2021PendahuluStephanie Bice Informasi pribadiPartai politikRepublicanTempat tinggalYukon, OklahomaProfesiPemilik usaha, pendetaSunting kotak info • L • B Jake A. Merrick adalah seorang politikus Amerika Serikat di negara bagian Oklahoma. Ia kini menjabat dalam Senat Oklahoma sebagai anggota terpilih dari dapil XXII. Ia mula-mula terpilih dalam pemilu istimewa Senat Oklahoma 2021 untuk menyelesaika...

Puntos extremos de África. África se encuentra separada de Europa por el mar Mediterráneo y se une a Asia en su extremidad noreste por el istmo de Suez. No obstante, ocupa una única placa tectónica, al contrario que Europa que comparte con Asia la placa Euroasiática. Localización Los puntos geográficos extremos de África son los siguientes: África (incluidas las tierras insulares): Punto más al norte: Ras ben Sakka, Túnez (37°21′N 09°45′E / 37.350, 9.750). Pu...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Nanokapasitor adalah kapasitor dengan ukuran nanometer. Bahan pembuatannya adalah logam yang berbentuk bola. Nilai kapasitansi nanokapasitor sebesar 1,11 × 10−19 Farad. Pada kondisi normal, nanokapasitor tidak bermuatan listrik. Nanokapasitor hanya ...

 

High School Fleetハイスクール・フリート(Haisukūru Furīto) MangaHaifuriIlustratorKanari AbePenerbitMedia FactoryMajalahMonthly Comic AliveDemografiSeinenTerbit27 Oktober 2015 – sekarang Seri animeSutradaraYuu NobutaProduserAniplexSkenarioReiko YoshidaMusikShigeo KomoriStudioProduction IMSPelisensiNA Aniplex of AmericaUK Anime LimitedSaluranasliTokyo MX, BS11, GTV, GYT, TVA, KBS, Sun TV, TVh, TVQ, AT-XTayang 9 April 2016 – 25 Juni 2016Episode12 + 2 OVA Film animeHigh School Fle...

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Edmund Borlase – news · newspapers · books · scholar · JSTOR (November 2013) This article's lead ...

 

NATO-led international peacekeeping force Kosovo ForceThe emblem of KFOR, which contains the Latin and Cyrillic scripts.Founded11 June 1999; 24 years ago (1999-06-11)TypeCommandRoleNATO peacekeepingSize4,811 personnelPart of NATONickname(s)KFOREngagementsYugoslav Wars[1]Websitejfcnaples.nato.int/kforCommandersCommanderMajor general Özkan Ulutaş, Turkish Armed ForcesDeputy CommanderBrigade-general József Szpisják, Hungarian Ground ForcesChief of StaffBG ...

 

Tang Wenzong 唐文宗Kaisar Dinasti TangBerkuasa13 Januari, 827[1][2] – 10 Februari, 840PendahuluKaisar Jingzong dari TangPenerusKaisar Wuzong dari TangInformasi pribadiKelahiran20 November, 809[1][3]Kematian10 Februari, 840[1][4]Nama lengkapNama keluarga: Lǐ (李)Nama kecil: Awalnya Hán (涵),Tahun 827 diubah menjadi Áng (昂) Dàhé (大和) atau Tàihé (太和) 827–835 Kāichéng (開成) 836–840 Nama anumertaKaisar Zhaoxian (昭�...

Coptic people born in or residing in Egypt Copts in EgyptTotal population10 million (estimate)[a]LanguagesEgyptian ArabicCoptic(Liturgical only; nearly extinct but it is in a process to be revived among Copts)ReligionChristianity Coptic Orthodox ChurchCoptic Catholic Church Copts in Egypt refers to Coptic Christians born in or residing in Egypt. Demographics As of 2019, Copts are generally understood to make up approximately 10 percent of Egypt's population,[6] with an estimat...

 

Official oath of allegiance in the U.S United States citizenship and immigration Immigration Immigration to the United States Emigration from the United States Immigration policy of the United States Effects of immigration to the United States Permanent Residency (Green Card) Refugees and asylum Diversity Immigrant Visa Illegal immigrants Deportation of Americans from the United States Citizenship Oath of Allegiance Birthright citizenship U.S. citizens / nationals Citizenship test Passports R...

 

Formula One race director (1952–2019) Charlie WhitingWhiting at the 2010 Japanese Grand PrixBornCharles Whiting(1952-08-12)12 August 1952Sevenoaks, Kent, EnglandDied14 March 2019(2019-03-14) (aged 66)Melbourne, Victoria, AustraliaNationalityBritishOccupationMotorsports directorYears active1988–2019Known forSafety improvements in motorsport Charles Whiting (12 August 1952 – 14 March 2019)[1] was a British motorsports director. He served as the FIA Formula One Race ...

ДеревняЕфимовы 58°56′56″ с. ш. 49°46′21″ в. д.HGЯO Страна  Россия Субъект Федерации Кировская область Муниципальный район Слободской Сельское поселение Денисовское История и география Первое упоминание 1802 Прежние названия Ивана Костина, Железные Часовой пояс UTC...

 

Summer NightsAlbum studio (rilis ulang) karya TwiceDirilis9 Juli 2018 (2018-07-09)StudioJYPE StudiosGenre K-pop dance balada[1] BahasaKoreaLabel JYP Entertainment Iriver ProduserJ.Y. Park The AsiansoulKronologi Twice What Is Love?(2018) Summer Nights(2018) BDZ(2018) Singel dalam album Summer Nights Dance the Night AwayDirilis: 9 Juli 2018 (2018-07-09) Summer Nights adalah album mini rilis ulang yang dikembangkan oleh grup vokal wanita asal Korea Selatan dari album mi...

 

Saros cycle series 140 for solar eclipses Historic saros cycle animation January 3, 1927 eventfrom Buenos Aires, ArgentinaPartiality from annular eventSeries member 24 February 26, 2017 eventfrom Buenos Aires, ArgentinaPartiality from annular eventSeries member 29 Saros cycle series 140 for solar eclipses occurs at the Moon's descending node, repeating every 18 years, 11 days, containing 71 events. All eclipses in this series occurs at the Moon's descending node. This solar saros is linked to...

Bandar Udara MelbourneMelbourne–TullamarineBerkas:Melbourne Airport logo.svgIATA: MELICAO: YMMLWMO: 94866InformasiJenisPublikPemilikLeased Commonwealth AirportPengelolaAustralia Pacific Airports Corporation LimitedMelayaniMelbourneLokasiBandar Udara Melbourne, Victoria, AustraliaMaskapai penghubung Jetstar Airways Qantas Regional Express Airlines Tigerair Australia Virgin Australia Ketinggian dpl mdplKoordinat37°40′24″S 144°50′36″E / 37.67333°S 144.84333...

 

Годы 2001 · 2002 · 2003 · 2004 — 2005 — 2006 · 2007 · 2008 · 2009 Десятилетия 1980-е · 1990-е — 2000-е — 2010-е · 2020-е Века XX век — XXI век — XXII век 3-е тысячелетие XIX век — XX век — XXI век — XXII век — XXIII век 1990-е 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000-е 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010-е 2010 2011 2012 2013 ...

 
Kembali kehalaman sebelumnya