1.1.2 Applicazioni
Come un controllore del traffico aereo, il kernel non è utile senza qualcosa da controllare. Se il kernel è la torre, le applicazioni sono gli aeroplani. Le applicazioni inviano richieste al kernel e ricevono risorse, come memoria, CPU e disco, in cambio. Il kernel estrae anche i dettagli complicati dall’applicazione. L’applicazione non sa se un blocco di disco si trova su un’unità a stato solido del produttore A, un disco rigido in metallo rotante del produttore B o persino una condivisione di file di rete. Le applicazioni seguono semplicemente l’interfaccia di programmazione dell’applicazione (API) del kernel e in cambio non devono preoccuparsi dei dettagli di implementazione.
Quando noi, come utenti, pensiamo alle applicazioni, tendiamo a pensare a elaboratori di testi, browser Web e client di posta elettronica. Al kernel non importa se sta eseguendo qualcosa di fronte all’utente, un servizio di rete che comunica con un computer remoto o un’attività interna. Quindi, da questo otteniamo un’astrazione chiamata processo. Un processo è solo un’attività che viene caricata e tracciata dal kernel. Un’applicazione potrebbe anche aver bisogno di più processi per funzionare, quindi il kernel si occupa di eseguire i processi, avviarli e arrestarli come richiesto, e distribuire risorse di sistema.