Il kernel Linux è come un ponte che consente la comunicazione informatica tra applicazioni e hardware e gestisce le risorse del sistema. Linus Torvalds ha sviluppato il kernel Linux con C e Assembly e quindi è riuscito a creare un core leggero e portatile che è stato rilasciato al pubblico come open source.

Puoi vedere il kernel Linux in molti settori diversi come spazio, computer, smartwatch, telefoni cellulari, robotica e salute. Ma ti sei mai chiesto come funziona il kernel Linux sotto il cofano?

Utilizzo hardware su Linux

Il kernel Linux, prima di tutto, controlla quale hardware verrà eseguito e in che modo all'accensione del computer. Inoltre, grazie all'interfaccia di programmazione è possibile il controllo di software di fascia alta. Per fornire un esempio di questi controlli, è possibile visualizzare informazioni sull'hardware installato negli slot sulla scheda madre e beneficiare di queste informazioni dettagliate.

Inoltre, questa interfaccia di programmazione fornisce un livello di astrazione. Ad esempio, se vuoi avere una conversazione video con i tuoi amici, avrai bisogno di una webcam. Il livello di astrazione consente al software utilizzato di utilizzare questa webcam indipendentemente dalla marca e dal modello. Il software qui può utilizzare solo l'interfaccia esistente per Linux. Il kernel Linux traduce le chiamate di funzione di questa interfaccia in comandi hardware effettivi di cui la webcam ha bisogno.

instagram viewer

Usando il /proc e /sys file system virtuali, il kernel Linux può esportare informazioni dettagliate sull'hardware rileva. Di seguito puoi vedere alcuni strumenti utilizzati per questo e quali dispositivi e schede esportano:

  • lspci: Per dispositivi PCI
  • lsusb: Per dispositivi USB
  • lspcmcia: Per schede PCMCIA

Come puoi vedere, la distribuzione Linux nello screenshot sopra funziona su VirtualBox. Tuttavia, hai l'opportunità di vedere molte informazioni come VGA, controller USB, bridge e controller SATA.

Puoi anche usare il -v parametro per ottenere informazioni molto più dettagliate.

Nel kernel Linux, le applicazioni di solito accedono ai dispositivi tramite file speciali che esistono nel file /dev directory. Questi file speciali rappresentano unità disco e altri dispositivi fisici. File come /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 e sviluppo/snd/* sono esempi di questi file speciali.

Gestione del file system Linux

I file system sono uno dei componenti più importanti del kernel Linux. Il file system di Linux è uno dei suoi maggiori vantaggi. Tutti i file su un sistema Linux si riuniscono in un unico ramo. Gli utenti possono quindi utilizzare questa gerarchia per raggiungere i luoghi desiderati.

Il punto di partenza di questa gerarchia è la directory principale (/). Altre sottodirectory si trovano nella directory principale. La sottodirectory più utilizzata in / è il /home directory. Questa sottodirectory contiene altre sottodirectory e ogni directory contiene file che memorizzano i dati effettivi.

Ad esempio, puoi pensare a un file di testo sul desktop. Se crei un file di testo chiamato ciaomondo.txt sul desktop, puoi riferirti ad esso come /home/muo/Desktop/helloworld.txt. L'esempio di /muo qui ovviamente varierà. Perché il nome di questa sottodirectory dipende dal nome dell'utente corrente. Con questo sistema di denominazione, il kernel Linux converte tra l'archiviazione effettiva e fisica che esiste su un disco.

Inoltre, il kernel Linux può integrare i dati da diversi dischi. È qui che entra in gioco il sistema di montaggio. Utilizza uno dei dischi nel sistema principale e monta gli altri nelle directory esistenti nella gerarchia. Altri dischi vengono quindi posizionati sotto i punti di montaggio. Ciò consente agli utenti di memorizzare il file /home directory su un secondo disco rigido che contiene anche altre sottodirectory.

Quando monti un disco su /home directory, è possibile accedere a queste directory da posizioni normali. Così, percorsi come /home/muo/Desktop/helloworld.txt Continuare a lavorare.

Puoi vedere i punti di montaggio tra i file sul tuo sistema con ritrovamento -A comando.

Con molti formati di file system, puoi archiviare fisicamente i dati su dischi. I più conosciuti su Linux sono i est2, est3, e est4 formati di file system. Tuttavia, esistono molti altri formati di file system. In ogni caso, devi formattare il file system prima di montarlo. Puoi usare comandi come mkfs.ext3 (mkfs sta per make file system ed ext3 è il file system) per questo.

Questi comandi accettano il percorso del file del dispositivo che si desidera formattare come parametro. È un'operazione distruttiva e dovresti usarla con cautela se non vuoi cancellare o ripristinare un filesystem.

Oltre a questi, ci sono anche file system di rete come NFS che utilizza il kernel Linux. NFS è un file system di rete in cui i dati non sono archiviati su un disco locale. Con NFS, i dati passano attraverso la rete a un server che memorizza i dati. Poiché i dati saranno su un server, gli utenti non devono affrontarli costantemente. Possono anche utilizzare il tradizionale file system gerarchico di Linux come al solito.

Operazioni con funzioni condivise

Tutti i software nel sistema Linux hanno funzioni comuni. Questo è il motivo per cui queste funzioni sono centrali nel kernel Linux. Ad esempio, quando si apre un file, è possibile aprirlo solo con il nome del file, senza sapere dove il file è fisicamente archiviato e quali funzioni e operazioni utilizzerà. Tutte queste funzioni sono già presenti nel kernel.

Puoi archiviare il tuo file sul disco rigido, dividerlo tra diversi dischi rigidi o persino tenerlo su un server remoto. Le funzioni di comunicazione di file condivisi sono importanti in questi casi. Le applicazioni scambiano dati indipendentemente da come i dati vengono spostati. Le funzioni di comunicazione condivisa sono disponibili per effettuare questi scambi di dati. Questa mossa può avvenire su reti wireless o anche su una linea telefonica fissa.

Gestione dei processi in Linux

Un'istanza attiva di un programma che opera su dati o informazioni in memoria è nota come processo. Il compito del kernel Linux è generare e tenere traccia di queste regioni di memoria. Il kernel alloca memoria per un programma in esecuzione e carica il codice eseguibile in memoria dal file system. Subito dopo, il kernel esegue il codice.

Il kernel Linux supporta il multitasking. È in grado di eseguire numerosi processi contemporaneamente. Tuttavia, c'è solo una transazione in un dato periodo di tempo. Tuttavia, il kernel Linux divide il tempo in piccoli blocchi e, di conseguenza, ogni procedura avviene in sequenza.

Poiché questi piccoli segmenti di tempo sono in incrementi di millisecondi, sono attivi solo in orari specifici e rimangono inattivi per il resto del tempo. Il lavoro del kernel Linux qui è massimizzare le prestazioni eseguendo più processi contemporaneamente.

Se gli intervalli di tempo sono troppo lunghi, l'applicazione in esecuzione potrebbe non essere reattiva come vorresti. Se i tempi sono troppo brevi, potrebbero esserci problemi con le modifiche alle attività. A seconda della priorità del processo, l'intervallo di tempo richiesto qui varierà. Potresti aver già sentito parlare di processi ad alta priorità e di processi a bassa priorità. Questa è una delle funzioni controllate dal kernel Linux.

Questa spiegazione non è sempre corretta. Il vero limite è che può esserci un solo processo di lavoro per core del processore alla volta. I sistemi multiprocessore consentono l'esecuzione di più processi in parallelo. Un sistema di base ha quasi sempre dozzine di processi in esecuzione.

Diritti di accesso in Linux

Come con altri sistemi operativi, puoi creare molti utenti su un sistema Linux. In questi casi, esiste un sistema di gestione dei diritti che supporta singoli utenti e gruppi. Qui è dove file e autorizzazioni utente entrare in gioco.

Il kernel Linux gestisce i dati e controlla i permessi necessari per ogni processo. Ad esempio, se si tenta di aprire un file, il kernel deve verificare l'ID del processo rispetto ai permessi di accesso. Se il kernel controlla e vede che hai i permessi, aprirà il file.

Il kernel Linux controlla tutto

Come puoi vedere, il kernel Linux supervisiona tutto, dalla sicurezza dei tuoi file alla creazione di utenti e al download di file da Internet. Tutto è in un certo ordine. Ogni utente ha diritti. Il kernel Linux gestisce i processi e le fasce orarie per le massime prestazioni.

Inoltre, il file system, che è una delle maggiori caratteristiche che distinguono il kernel Linux da altri sistemi operativi, è molto importante. Linux non è una scatola nascosta. Al contrario, tutti i file e i codici sorgente sono accessibili. Per comprendere meglio la natura pratica e potente del kernel Linux, puoi esaminare la gerarchia del sistema di directory Linux.