Che cos'è un kernel del sistema operativo? In cosa differisce da un sistema operativo? [chiuso]


Risposte:


74

La definizione tecnica di un sistema operativo è "una piattaforma che consiste in un insieme specifico di librerie e infrastrutture per le applicazioni su cui costruire e interagire tra loro". Un kernel è un sistema operativo in questo senso.

La definizione dell'utente finale è in genere qualcosa di "un pacchetto software che fornisce un desktop, collegamenti ad applicazioni, un browser Web e un lettore multimediale". Un kernel non corrisponde a quella definizione.

Quindi per un utente finale una distribuzione Linux (diciamo Ubuntu) è un sistema operativo mentre per un programmatore il kernel Linux stesso è un sistema operativo perfettamente valido a seconda di ciò che stai cercando di ottenere. Ad esempio, i sistemi integrati sono per lo più solo kernel con un numero molto limitato di processi specializzati in esecuzione su di essi. In tal caso il kernel stesso diventa il sistema operativo stesso.

Penso che tu possa tracciare la linea su ciò che richiede la maggior parte delle applicazioni in esecuzione su quel sistema operativo. Se la maggior parte di essi richiede solo il kernel, il kernel è il sistema operativo, se la maggior parte richiede il sistema X Window in esecuzione, il sistema operativo diventa il kernel X +.


6
La definizione dell'utente finale è in genere qualcosa di "un pacchetto software che fornisce un desktop, collegamenti ad applicazioni, un browser Web e un lettore multimediale". Un kernel non corrisponde a quella definizione. Solo perché qualcuno non ha idea di cosa sia un sistema operativo non significa che la loro definizione sia valida.
DIMMSum

1
@dimmsum non è solo una definizione colloquiale. i sistemi operativi sono stati venduti e commercializzati agli utenti in quanto tali.
Sedat Kapanoglu,

Potresti indicarmi questo marketing? Ho potuto vedere un fornitore del sistema operativo dire che forniscono una piattaforma su cui tutti questi tipi di programmi possono essere eseguiti, ma un sistema operativo non include tali programmi. Se si confondono i due, si parla letteralmente dell'intero sistema, quindi la definizione perde significato.
DIMMSum

1
@dimmsum capisco il tuo punto ed è per questo che ho fornito due definizioni diverse. forse avrei dovuto chiamarlo "comprensione"? penso che gli utenti finali, specialmente durante l'era in cui i sistemi operativi sono stati venduti in scatole, abbiano una diversa comprensione di cosa sia un sistema operativo e che sia direttamente rilevante per il modo in cui i sistemi operativi sono mercificati. la finestra di Windows XP ha promesso una transazione completamente diversa rispetto a una definizione tecnica, questo è ciò che volevo sottolineare.
Sedat Kapanoglu,

1
@dimmsum quindi esiste un sistema operativo nell'informatica e c'è un altro sistema operativo sugli scaffali di un negozio di tecnologia. entrambi sono sistemi operativi da diverse prospettive. volevo sottolineare questa distinzione.
Sedat Kapanoglu,

73

Un kernel è la parte del sistema operativo che media l'accesso alle risorse di sistema. È responsabile per consentire a più applicazioni di condividere efficacemente l'hardware controllando l'accesso a CPU, memoria, I / O del disco e rete.

Un sistema operativo è il kernel più applicazioni che consentono agli utenti di fare qualcosa (ad esempio compilatore, editor di testo, gestore di finestre, ecc.).


18
Compilatori ed editor di testo fanno davvero parte del sistema operativo? Word è un editor di testo glorificato - fa parte del sistema operativo?
Jon-Hanson,

6
Quello che non capisco è "Un sistema operativo è il kernel più applicazioni" ma se installo un'applicazione, dì Word Perfect, allora non dovrebbe essere considerato parte del sistema operativo, no?
Celeritas,

7
@Celeritas Un po 'in ritardo per la festa, ma nessuna applicazione installata non verrà conteggiata come parte del sistema operativo. Le "applicazioni" sono in realtà le utilità di sistema fornite con il sistema operativo. Tutti gli altri software / applicazioni installati si trovano sul livello sopra questo.
hashcode55,

Stavi andando bene fino a quando non hai scritto l'osservazione tra parentesi nel secondo paragrafo. Un sistema operativo gestisce le richieste avanzate da tali applicazioni per controllare l'hardware. Pertanto, il sistema operativo include il kernel, i driver dei dispositivi e qualsiasi altro software / firmware che controlla specificamente l'hardware al livello più basso.
Bob,

42

Sembra che la metafora originale che ci ha procurato la parola "kernel" per questo in primo luogo sia stata dimenticata. La metafora è che un sistema operativo è un seme. Il "kernel" del seme è il nucleo del sistema operativo, fornendo servizi del sistema operativo ai programmi applicativi, che è circondato dalla "shell" del seme che è ciò che gli utenti vedono dall'esterno.

Alcune persone vogliono legare "kernel" (e, in effetti, "shell") per essere più specifici di così. Ma in verità c'è molta variazione tra i sistemi operativi. Non ultimo queste variazioni è ciò che costituisce una "shell" (che può variare da Solaris shattraverso l'interprete di comandi della console di Netware a Workplace Shell di OS / 2 e Explorer di Windows NT), ma c'è anche molta varianza da un sistema operativo all'altro in cos'è e non fa parte di un "kernel" (che può includere o meno l'I / O del disco, ad esempio).

È meglio ricordare che questi termini sono metafore .

Ulteriori letture


Bello. Comunque la tua risposta è letteralmente presa da "Ulteriori letture". Ora so come ottenere molti voti tramite copia e incolla. LOL. Comunque utile comunque.
lacostenycoder,

18

Bene, c'è una differenza tra kernel e sistema operativo. Il kernel come descritto sopra è il cuore del sistema operativo che gestisce le funzionalità principali di un sistema operativo mentre se alcune applicazioni e utilità utili vengono aggiunte al kernel, il pacchetto completo diventa un sistema operativo. Quindi, si può facilmente dire che un sistema operativo è costituito da uno spazio kernel e uno spazio utente.

Quindi, possiamo dire che Linux è un kernel in quanto non include applicazioni come utilità di file system, sistemi di finestre e desktop grafici, comandi di amministratore di sistema, editor di testo, compilatori ecc. Quindi, varie aziende aggiungono questo tipo di applicazioni sul kernel di Linux e forniscono il loro sistema operativo come ubuntu, suse, centOS, redHat ecc.


9

Il sistema operativo è un nome generico dato a tutti gli elementi (interfaccia utente, librerie, risorse) che compongono il sistema nel suo insieme.

Il kernel è "cervello" del sistema operativo, che controlla tutto, dall'accesso al disco rigido alla gestione della memoria. Ogni volta che vuoi fare qualcosa, passa attraverso il kernel.


8

Il kernel fa parte del sistema operativo, pur non essendo il sistema operativo stesso. Invece di approfondire tutto ciò che fa un kernel, rimanderò alla pagina di Wikipedia: http://it.wikipedia.org/wiki/Kernel_%28computing%29 . Panoramica eccellente e completa.


3
Meh, prova invece la prima frase di en.wikipedia.org/wiki/Operating_system . Un sistema operativo è formalmente incaricato di mediare l'accesso a risorse limitate (approssimativamente tutto sul computer), e i kernel monolitici fanno esattamente questo (i micro-kernel scaricano parte di quel lavoro sui processi, ma quelli sono ancora distribuiti con il kernel). Dal punto di vista dei programmatori il kernel è il sistema operativo. Gli utenti possono contare sulla shell o su altre interfacce, ma sono gli utenti . Ricorda che i sistemi operativi funzionano su tutto, dai supercomputer fino a qualsiasi widget incorporato che deve fare due cose.
dmckee --- ex gattino moderatore

Quindi il tuo punto è che ALCUNI sistemi operativi sono essi stessi kernel o che le parti di un sistema operativo con cui un utente interagisce non fanno parte del sistema operativo?
danben,

Inoltre, "la prima frase di en.wikipedia.org/wiki/Operating_system" dice "Un sistema operativo (OS) è un'interfaccia tra hardware e utente ...", quindi non capisco perché stai facendo la distinzione tra ciò che un utente interagisce con e il resto di esso.
danben,

7

un kernel fa parte del sistema operativo, è la prima cosa che il boot loader carica nella cpu (per la maggior parte dei sistemi operativi), è la parte che si interfaccia con l'hardware e gestisce anche quali programmi possono fare cosa con il hardware, è davvero la parte centrale del sistema operativo, è composto da driver, un driver è un programma che si interfaccia con un particolare componente hardware, ad esempio: se avessi realizzato una fotocamera digitale per computer, avrei dovuto un driver per esso, i driver sono gli unici programmi in grado di controllare l'input e l'output del computer


3

Risposta semplice

Il kernel è l'elemento centrale del sistema operativo. Non è necessariamente un sistema operativo in sé e per sé.

Tutto il resto è costruito attorno ad esso.

Definizione ellaborata

Kernel (informatica) - Wikipedia


Quindi il sistema operativo del kernel è senza driver?
Xinus,

1
No ... la maggior parte dei kernel lega insieme i vari pezzi del sistema operativo (non solo i driver).
Justin Niessner,

2

Nell'informatica, il "kernel" è il componente centrale della maggior parte dei sistemi operativi per computer; è un ponte tra le applicazioni e l'elaborazione effettiva dei dati effettuata a livello hardware. Le responsabilità del kernel includono la gestione delle risorse del sistema (la comunicazione tra componenti hardware e software). Di solito come componente base di un sistema operativo, un kernel può fornire il livello di astrazione di livello più basso per le risorse (in particolare processori e dispositivi I / O) che il software applicativo deve controllare per svolgere la sua funzione. In genere rende queste strutture disponibili per i processi applicativi attraverso meccanismi di comunicazione tra processi e chiamate di sistema.


2

Il kernel potrebbe essere il sistema operativo o potrebbe far parte del sistema operativo. In Linux, il kernel viene caricato ed eseguito per primo. Quindi avvia altri bit del sistema operativo (come init) per rendere utile il sistema.

Ciò è particolarmente vero in un ambiente con micro kernel. Il kernel ha funzionalità minime. Tutto il resto, come file system e TCP / IP, viene eseguito come processo utente.


Che dire di Kernel in un linguaggio di scripting come Ruby? Ad esempio se hai installato Ruby, puoi eseguirlo dal terminale * nix ruby -e "puts Kernel.methods"e vedrai molti metodi definiti.
lacostenycoder,

2

Il kernel risiede nel sistema operativo. In realtà è uno spazio di memoria appositamente fornito per gestire le funzioni del sistema operativo.Alcuni dicono anche che il sistema operativo gestisce le risorse del sistema e il kernel è uno che è il cuore del sistema operativo e mantiene, gestisce iekeep track of os.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.