GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra thread NPTL e POSIX?

Immagino che la tua migliore fonte di informazioni sia partire da Wikipedia e seguire i link da lì.

Non c'è davvero alcuna differenza:NPTL è solo l'attuale implementazione Linux dei thread POSIX, usi ancora la famiglia di funzioni pthread_*. All'inizio della storia di Linux, veniva utilizzata una libreria dedicata chiamata libpthreads. NPTL è apparso per i kernel 2.6+ intorno al 2003, vedi il link qui sopra per maggiori dettagli.

[A proposito:NPTL ==libreria di thread Posix nativi]


I "thread POSIX" sono uno "standard", che definisce un'API per il threading. cioè afferma che funzioni come pthread_exit () ecc., dovrebbero esistere nel sistema e descrive come dovrebbero comportarsi. Tutti i sistemi operativi conformi a POSIX implementano i thread POSIX a modo loro.

NPTL è un insieme di funzionalità che consentono a "Linux" (il kernel) di implementare in modo efficiente i "thread POSIX" (lo standard).

Puoi leggere di più su NPTL e su come è nato qui


I thread POSIX (pthread) non sono un'implementazione, è una specifica API (uno standard, su carta, in inglese) di diverse funzioni il cui nome inizia con pthread_ e che sono definiti in <pthread.h> intestazione. POSIX è anche un insieme di specifiche.

NPTL è ora all'interno di GNU Libc su Linux ed è (o almeno si sforza molto di essere) un'implementazione dei thread POSIX. È un mucchio di codice sorgente e binario sul tuo sistema Linux. Un'applicazione compilata con gcc -pthread e collegato con -pthread utilizza oggi il codice NPTL su Linux.

aggiunte

Esistono implementazioni alternative di pthread -s:su Linux, la MUSL Libc punta ad essere compatibile con Posix (il che significa avere pthread); su altri sistemi Posix (AIX, Solaris, ...) hai anche pthreads (ma non sono NPTL o Glibc).


Linux
  1. Qual è la differenza tra insmod e modprobe

  2. Qual è la differenza tra mutex e sezione critica?

  3. Qual è la differenza tra adduser e useradd?

  4. Qual è la differenza tra ls e l?

  5. Qual è la differenza tra `su -` e `su --login`?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Qual è la differenza tra Git Switch e Checkout?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?