Native POSIX Thread Library

Native POSIX Thread Library (NPTL) on Linux-käyttöjärjestelmän POSIX-säikeet toteuttava ominaisuus.

Ennen NPTL:n käyttöönottoa säikeet toteutettiin Linuxissa LinuxThreads-kirjaston avulla (1996), joka käytti clone()-järjestelmäkutsua (numero 120) luomaan prosessista kopion, joka jakaa saman osoiteavaruuden. Tällä toteutuksella kuitenkin on ongelmia POSIX-yhteensopivuudessa signaalienkäsittelyn, ajoituksen ja prosessienvälisen synkronoinnin suhteen. LinuxThreadsissa säikeiden lukumäärä oli rajoitettu 8192:een ja jokaisella säikeellä oli oma prosessinumero. POSIXin mukaan jokaisen säikeen on saatava kiinni prosessille lähetetty signaali, jonka lähetys tapahtuu prosessinumeron mukaan.

LinuxThreadsin kehittämiseksi käynnistettiin kaksi projektia, NGPT (Next Generation POSIX Threads) IBM:llä ja NPTL Red Hatilla. NGPT:stä luovuttiin vuoden 2003 keskivaiheilla.

NPTL:ssä käyttöjärjestelmän ytimen näkemä abstraktio on edelleen prosessi, kuten LinuxThreadsissakin ja säikeet luodaan clone()-kutsulla. NPTL toteuttaa säikeiden synkronoinnin kuitenkin ytimen futex-primitiiveillä. Säikeillä on yhteinen prosessinumero.

NPTL otettiin käyttöön Red Hat Linux 9:ssä ja Red Hat Enterprise Linuxissa versiossa 3 lokakuussa 2003. Nämä jakelut käyttivät vielä Red Hatin omaa 2.4-versiota Linux-kernelista, kun NPTL tuli ytimen viralliseen versioon vasta 2.6 julkaisun myötä.

Aiheesta muualla

muokkaa