GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la diferencia entre los hilos NPTL y POSIX?

Supongo que su mejor fuente de información es comenzar en Wikipedia y seguir los enlaces desde allí.

Realmente no hay diferencia:NPTL es solo la implementación actual de Linux de subprocesos POSIX, todavía usa la familia de funciones pthread_*. Anteriormente en la historia de Linux, se utilizó una biblioteca dedicada llamada libpthreads. NPTL apareció para kernels 2.6+ alrededor de 2003, consulte el enlace anterior para obtener más detalles.

[Por cierto:NPTL ==Biblioteca de subprocesos Posix nativos]


"Subprocesos POSIX" es un "estándar", que define una API para subprocesos. es decir, establece que funciones como pthread_exit () etc., deben existir en el sistema y describe cómo deben comportarse. Todos los sistemas operativos compatibles con POSIX implementan subprocesos POSIX a su manera.

NPTL es un conjunto de características que permiten que "Linux" (el kernel) implemente de manera eficiente "subprocesos POSIX" (el estándar).

Puede leer más sobre NPTL y cómo surgió aquí


Los hilos POSIX (pthread) no es una implementación, es una especificación API (un estándar, en papel, en inglés) de varias funciones cuyo nombre comienza con pthread_ y que se definen en <pthread.h> encabezamiento. POSIX es también un conjunto de especificaciones.

NPTL ahora está dentro de GNU Libc en Linux y es (o al menos intenta ser) una implementación de subprocesos POSIX. Es un montón de código fuente y binario en su sistema Linux. Una aplicación compilada con gcc -pthread y vinculado con -pthread usa código NPTL en Linux hoy.

anexos

Existen implementaciones alternativas de pthread -s:en Linux, MUSL Libc pretende ser compatible con Posix (lo que significa tener pthreads); en otros sistemas Posix (AIX, Solaris, ...) también tiene pthreads (pero no son NPTL o Glibc).


Linux
  1. ¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

  2. ¿Cuál es la diferencia entre insmod y modprobe?

  3. ¿Cuál es la diferencia entre adduser y useradd?

  4. ¿Cuál es la diferencia entre `su -` y `su --login`?

  5. ¿Cuál es la diferencia entre unlink y rm?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre Shell de inicio de sesión y sin inicio de sesión?

¿Cuál es la diferencia entre el comando apt y apt-get?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?

¿Cuál es la diferencia entre ruta y ruta ip?