Articles of linux kernel

Intero core dedicato al singolo processo

C’è un modo in Linux per assegnare un core della CPU a un determinato processo e non ci dovrebbero essere altri processi o gestori di interrupt da pianificare su questo core? Ho letto sull’affinità dei processi nei processi di binding di Linux alle CPU che usano l’utility taskset ma questo non risolve il mio problema […]

chiamata funzione gatto read () infinite volte

Sto lavorando su un semplice driver di dispositivo di carattere. Ho implementato funzioni di lettura e scrittura nel modulo, il problema è quando provo a leggere il file del dispositivo usando cat /dev/devicefile che sta andando in loop infinito cioè leggendo ripetutamente gli stessi dati. Qualcuno può suggerirmi una soluzione a questo problema? Di seguito […]

Capire contenitore_di macro nel kernel di Linux

Durante la navigazione nel kernel di Linux, ho trovato un container_of macro che è definito come segue: #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr – offsetof(type,member) );}) Capisco cosa fa container_of do, ma quello che non capisco è l’ultima frase, che è (type […]

C’è qualche API per determinare l’indirizzo fisico dall’indirizzo virtuale in Linux?

C’è qualche API per determinare l’indirizzo fisico da un indirizzo virtuale nel sistema operativo Linux?

Qual è la differenza tra vmalloc e kmalloc?

Ho kmalloc su kmalloc e ho trovato la maggior parte delle persone che kmalloc l’uso di kmalloc , dato che si è kmalloc di ottenere contigui blocchi fisici di memoria. Tuttavia, sembra anche che kmalloc possa fallire se non è ansible trovare un blocco fisico contiguo che si desidera. Quali sono i vantaggi di avere […]

Come sapere la fasce orarie del programmatore linux?

Sto cercando il valore della porzione temporale (o quantistica) del mio kernel Linux. Esiste un file /proc che espone tali informazioni? (O) È ben definito nell’intestazione Linux delle mie distribuzioni? (O) Esiste una funzione C dell’API di Linux (forse sysinfo) che espone questo valore? Grazie in anticipo.

Se i thread condividono lo stesso PID, come possono essere identificati?

Ho una query relativa all’implementazione dei thread in Linux. Linux non ha un supporto di thread esplicito. Nello userspace, potremmo usare una libreria di thread (come NPTL) per creare thread. Ora se usiamo NPTL supporta la mapping 1: 1. Il kernel userà la funzione clone() per implementare i thread. Supponiamo di aver creato 4 thread. […]

Come utilizzare il socket netlink per comunicare con un modulo del kernel?

Sto cercando di scrivere un modulo del kernel linux che comunichi con il processo utente usando netlink. Sto usando netlink perché il programma utente che voglio comunicare comunica solo tramite socket e non posso cambiarlo per aggiungere ioctl() o altro. Il problema è che non riesco a capire come farlo. Ho cercato su Google, ma […]

Trovare quale processo è stato ucciso da Linux OOM killer

Quando Linux esaurisce la memoria (OOM), l’assassino di OOM sceglie un processo da uccidere basato su una certa euristica (è una lettura interessante: http://lwn.net/Articles/317814/ ). Come si può determinare a livello di codice quali processi sono stati recentemente uccisi dal killer OOM?

Misurare il tempo in Linux – tempo vs orologio vs getrusage vs clock_gettime vs gettimeofday vs timespec_get?

Tra le funzioni di cronometraggio, time , clock getrusage , clock_gettime , gettimeofday e timespec_get , voglio capire chiaramente come sono implementate e quali sono i loro valori di ritorno per sapere in quale situazione devo usarli. Per prima cosa dobbiamo classificare le funzioni che restituiscono i valori del wall-clock confrontati con le funzioni che […]