Knowledge (XXG)

Native POSIX Thread Library

Source đź“ť

722: 159: 734: 708: 84:
NPTL was first released in Red Hat Linux 9. Old-style Linux POSIX threading is known for having trouble with threads that refuse to yield to the system occasionally, because it does not take the opportunity to preempt them when it arises, something that Windows was known to do better at the time. Red
81:. The NGPT team collaborated closely with the NPTL team and combined the best features of both implementations into NPTL. The NGPT project was subsequently abandoned in mid-2003 after merging its best features into NPTL. 69:
To improve upon LinuxThreads, it was clear that some kernel support and a new threading library would be required. Two competing projects were started to address the requirement:
417: 66:). Unfortunately, it only partially complied with POSIX, particularly in the areas of signal handling, scheduling, and inter-process synchronization primitives. 422: 447: 212: 668: 726: 681: 164: 62:
project used this system call to provide kernel-level threads (most of the previous thread implementations in Linux worked entirely in
249: 691: 432: 407: 201: 427: 296: 384: 686: 770: 379: 475: 412: 86: 513: 374: 177: 518: 54: 45: 765: 528: 336: 93: 389: 567: 560: 508: 58:— which creates a copy of the calling process where the copy shares the address space of the caller. The 760: 352: 656: 485: 96:
since version 3, and in the Linux kernel since version 2.6. It is now a fully integrated part of the
63: 644: 289: 223: 533: 399: 369: 136: 341: 245: 490: 480: 321: 676: 437: 70: 738: 600: 500: 442: 326: 282: 127:
Like LinuxThreads, NPTL is a 1:1 threads library. Threads created by the library (via
754: 650: 622: 593: 586: 538: 470: 182: 97: 25: 44:, processes were the schedulable entities, and there were no special facilities for 712: 579: 523: 346: 313: 172: 73:(Next Generation POSIX Threads) worked on by a team which included developers from 59: 41: 213:
Red Hat Linux 9 and Java 2 Platform, Standard Edition 1.4.2: A Winning Combination
108: 628: 614: 554: 331: 140: 49: 154: 271:
OpenSource tool to trace and debug multithreaded applications using the NPTL.
116: 607: 573: 465: 634: 268: 104: 639: 119:) was written for testing the NPTL library against the POSIX standard. 78: 112: 143:
called through the NPTL library. NPTL relies on kernel support for
707: 305: 144: 29: 131:) correspond one-to-one with schedulable entities in the kernel ( 278: 139:(1:1, N:1, and M:N). New threads are created with the clone() 85:
Hat claimed that NPTL fixed this problem in an article on the
74: 274: 135:, in the Linux case). This is the simplest of the three 667: 547: 499: 458: 398: 362: 312: 147:to more efficiently implement user-space locks. 244:(2nd ed.). O'Reilly Media, Incorporated. 290: 103:There exists a tracing tool for NPTL, called 8: 297: 283: 275: 235: 233: 231: 727:Free and open-source software portal 194: 89:website about Java on Red Hat Linux 9. 7: 165:Free and open-source software portal 669:Professional related certifications 224:GNU C Library version 2.3.3 release 14: 448:List of software package managers 433:Security-focused operating system 733: 732: 720: 706: 157: 423:Distributions that run from RAM 202:pthreads(7) — Linux manual page 40:Before the 2.6 version of the 24:) is an implementation of the 1: 380:GNU/Linux naming controversy 77:, and NPTL by developers at 476:Linux Documentation Project 418:Netbook-specific comparison 18:Native POSIX Thread Library 787: 375:Criticism of desktop Linux 178:Library (computer science) 700: 385:Tanenbaum–Torvalds debate 48:. However, it did have a 242:Linux System Programming 94:Red Hat Enterprise Linux 105:POSIX Thread Trace Tool 561:Free Software Magazine 491:Linux User Group (LUG) 92:NPTL has been part of 28:specification for the 113:Open POSIX Test Suite 486:Linux Mark Institute 240:Robert Love (2013). 771:Threads (computing) 413:Distributions list 408:General comparison 370:Criticism of Linux 32:operating system. 748: 747: 778: 736: 735: 725: 724: 723: 713:Linux portal 711: 710: 682:Linux Foundation 481:Linux Foundation 299: 292: 285: 276: 256: 255: 237: 226: 221: 215: 210: 204: 199: 167: 162: 161: 160: 137:threading models 57: 786: 785: 781: 780: 779: 777: 776: 775: 766:C POSIX library 751: 750: 749: 744: 721: 719: 705: 696: 663: 543: 495: 454: 438:Package manager 394: 358: 337:Booting process 308: 303: 269:NPTL Trace Tool 265: 260: 259: 252: 239: 238: 229: 222: 218: 211: 207: 200: 196: 191: 163: 158: 156: 153: 125: 53: 38: 12: 11: 5: 784: 782: 774: 773: 768: 763: 753: 752: 746: 745: 743: 742: 730: 716: 701: 698: 697: 695: 694: 689: 684: 679: 677:CompTIA Linux+ 673: 671: 665: 664: 662: 661: 654: 647: 642: 637: 632: 625: 620: 619: 618: 604: 601:Linux Magazine 597: 590: 583: 576: 571: 564: 557: 551: 549: 545: 544: 542: 541: 536: 531: 526: 521: 516: 511: 505: 503: 497: 496: 494: 493: 488: 483: 478: 473: 468: 462: 460: 456: 455: 453: 452: 451: 450: 445: 443:Package format 435: 430: 425: 420: 415: 410: 404: 402: 396: 395: 393: 392: 387: 382: 377: 372: 366: 364: 360: 359: 357: 356: 349: 344: 339: 334: 329: 324: 318: 316: 310: 309: 304: 302: 301: 294: 287: 279: 273: 272: 264: 263:External links 261: 258: 257: 251:978-1449339531 250: 227: 216: 205: 193: 192: 190: 187: 186: 185: 180: 175: 169: 168: 152: 149: 129:pthread_create 124: 121: 37: 34: 13: 10: 9: 6: 4: 3: 2: 783: 772: 769: 767: 764: 762: 759: 758: 756: 741: 740: 731: 729: 728: 717: 715: 714: 709: 703: 702: 699: 693: 690: 688: 685: 683: 680: 678: 675: 674: 672: 670: 666: 660: 659: 655: 653: 652: 651:Revolution OS 648: 646: 643: 641: 638: 636: 633: 631: 630: 626: 624: 623:Linux Outlaws 621: 617: 616: 612: 611: 610: 609: 605: 603: 602: 598: 596: 595: 594:Linux Journal 591: 589: 588: 587:Linux Gazette 584: 582: 581: 577: 575: 572: 570: 569: 565: 563: 562: 558: 556: 553: 552: 550: 546: 540: 539:Linux malware 537: 535: 532: 530: 527: 525: 522: 520: 517: 515: 512: 510: 507: 506: 504: 502: 498: 492: 489: 487: 484: 482: 479: 477: 474: 472: 471:Linux Counter 469: 467: 464: 463: 461: 459:Organizations 457: 449: 446: 444: 441: 440: 439: 436: 434: 431: 429: 426: 424: 421: 419: 416: 414: 411: 409: 406: 405: 403: 401: 400:Distributions 397: 391: 390:SCO and Linux 388: 386: 383: 381: 378: 376: 373: 371: 368: 367: 365: 363:Controversies 361: 355: 354: 350: 348: 345: 343: 340: 338: 335: 333: 330: 328: 325: 323: 320: 319: 317: 315: 311: 307: 300: 295: 293: 288: 286: 281: 280: 277: 270: 267: 266: 262: 253: 247: 243: 236: 234: 232: 228: 225: 220: 217: 214: 209: 206: 203: 198: 195: 188: 184: 183:Green threads 181: 179: 176: 174: 171: 170: 166: 155: 150: 148: 146: 142: 138: 134: 130: 122: 120: 118: 114: 110: 106: 101: 99: 98:GNU C Library 95: 90: 88: 82: 80: 76: 72: 67: 65: 61: 56: 51: 47: 43: 35: 33: 31: 27: 26:POSIX Threads 23: 19: 761:Linux kernel 737: 718: 704: 657: 649: 627: 613: 606: 599: 592: 585: 580:Linux Format 578: 566: 559: 534:Range of use 351: 314:Linux kernel 241: 219: 208: 197: 173:LinuxThreads 132: 128: 126: 102: 91: 83: 68: 60:LinuxThreads 42:Linux kernel 39: 21: 17: 15: 629:Linux Voice 615:Ubuntu User 568:Full Circle 555:DistroWatch 428:Lightweight 342:Kernel oops 332:Linux-libre 327:Linus's law 141:system call 50:system call 755:Categories 189:References 111:). And an 608:LinuxUser 574:Linux.com 466:LinuxChix 133:processes 739:Category 658:The Code 645:Phoronix 635:LugRadio 519:Embedded 509:Adopters 501:Adoption 151:See also 64:userland 687:Red Hat 640:LWN.net 514:Desktop 322:History 145:futexes 79:Red Hat 46:threads 36:History 692:Ubuntu 529:Mobile 524:Gaming 248:  123:Design 548:Media 353:more… 306:Linux 55:clone 30:Linux 246:ISBN 117:OPTS 87:Java 71:NGPT 22:NPTL 16:The 347:Tux 109:PTT 75:IBM 757:: 230:^ 100:. 52:— 298:e 291:t 284:v 254:. 115:( 107:( 20:(

Index

POSIX Threads
Linux
Linux kernel
threads
system call
clone
LinuxThreads
userland
NGPT
IBM
Red Hat
Java
Red Hat Enterprise Linux
GNU C Library
POSIX Thread Trace Tool
PTT
Open POSIX Test Suite
OPTS
threading models
system call
futexes
Free and open-source software portal
LinuxThreads
Library (computer science)
Green threads
pthreads(7) — Linux manual page
Red Hat Linux 9 and Java 2 Platform, Standard Edition 1.4.2: A Winning Combination
GNU C Library version 2.3.3 release

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑