Knowledge

Doors (computing)

Source 📝

187: 73: 32: 378:
Doors are created by server processes (which must use threads) and called by client processes. It is possible for one process to both create and call a door. When creating a door, the server must specify a server procedure, which will be called by the Doors library on behalf of clients. Unlike most
459:
The Doors library normally creates and manages a pool of threads in the server process to handle calls, but it is possible to override this behavior. The Doors system does not provide any form of synchronization, but servers can use the normal thread-level synchronization primitives. Doors can be
433:
flag requests that a file descriptor be closed in the sending process after being duplicated in the receiving process. If a file descriptor that refers to a door is sent, the system records the properties of that door in the flags word.
452:
The Doors system also provides a way for clients and servers to get information about each other. For example, a server can check the client's user or process ID to implement
83: 336:
in version 2.5 as an undocumented internal interface. They became a documented feature in Solaris 2.6. Recent versions of Solaris use Doors in many places, including
383:
systems, each door has only one server procedure. A server can "attach" a door to a file, enabling clients to connect to that door simply by opening that file. The
696: 414:
as arguments, and getting back another contiguous region and list of file descriptors. Either region may be empty, as may either list. Usually, two
534: 97:
of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be
748: 763: 461: 471: 251: 149: 223: 121: 784: 230: 204: 128: 45: 623: 288: 270: 168: 59: 389:
command will then show the file with a 'type' of "D" (not to be confused with "d" for a directory) — for example:
375:. It is designed for low overhead, and the Solaris implementation uses some assembly code for maximum efficiency. 661: 237: 135: 19:
This article is about an inter-process communication facility. For a requirements tracking tool by Rational, see
789: 208: 441:, making it possible to pass references to such objects between processes. Such a door would typically take a 446: 94: 219: 117: 681: 364: 305: 591: 706: 333: 90: 438: 368: 329: 106: 542: 437:
As well as representing a procedure, or a group of procedures, a door can represent a stateful data
753: 415: 676: 197: 425:
may be used, allowing a door procedure to provide multiple actions in much the same way as the
51: 576: 616: 380: 244: 142: 666: 499: 410:
to invoke the door's server procedure, passing a contiguous region of memory and a list of
8: 453: 691: 595: 421:
s will be defined, one for the input data and one for the output data. (Alternatively,
372: 102: 474:
API specification, where client processes invoke server processes' exposed functions:
509: 98: 686: 671: 609: 325: 701: 411: 646: 632: 355:
port of Doors was released in 2003, but is only available for version 2.4.18.
20: 778: 535:"dsvclockd(1M): Using Doors to Implement Inter-Process Readers/Writer Locks" 442: 422: 563: 743: 721: 341: 429:
system call.) Every file descriptor is accompanied by a flags word. The
738: 711: 313: 186: 504: 758: 733: 725: 601: 89:
Please help to demonstrate the notability of the topic by citing
656: 468: 345: 514: 426: 352: 577:
http://developers.sun.com/solaris/articles/fastSockets.html
309: 592:
Solaris 10 man pages section 3: Realtime Library Functions
445:
as input data with each tag value denoting a different
384: 211:. Unsourced material may be challenged and removed. 401:Drw-r--r-- 1 jmorrison dev 876 Dec 8 19:43 myfile 776: 84:notability guidelines for products and services 464:segments, allowing single-copy data transfer. 617: 60:Learn how and when to remove these messages 624: 610: 312:computer systems. They provide a form of 289:Learn how and when to remove this message 271:Learn how and when to remove this message 169:Learn how and when to remove this message 363:The Doors subsystem is implemented as a 777: 605: 467:The Doors concept is very similar to 564:"Namefs and Solaris Doors for Linux" 209:adding citations to reliable sources 180: 66: 25: 16:Inter-process communication facility 13: 631: 14: 801: 585: 41:This article has multiple issues. 185: 71: 30: 598:for the door-related functions) 541:. June 14, 2005. Archived from 371:support, and relies heavily on 196:needs additional citations for 49:or discuss these issues on the 570: 556: 527: 460:used to synchronize access to 1: 520: 7: 493: 358: 306:inter-process communication 10: 806: 319: 91:reliable secondary sources 80:The topic of this article 18: 785:Sun Microsystems software 720: 639: 82:may not meet Knowledge's 754:OpenSolaris for System z 482:in XATMI clients, while 391: 324:Doors were developed by 330:Spring operating system 328:as a core part of the 220:"Doors" computing 118:"Doors" computing 790:Remote procedure call 381:remote procedure call 500:Local Procedure Call 205:improve this article 707:Trusted Extensions 490:in XATMI servers. 367:library with some 344:cache daemon) and 86: 772: 771: 299: 298: 291: 281: 280: 273: 255: 179: 178: 171: 153: 81: 64: 797: 626: 619: 612: 603: 602: 579: 574: 568: 567: 560: 554: 553: 551: 550: 531: 489: 486:is analogous to 485: 481: 478:is analogous to 477: 432: 420: 412:file descriptors 409: 402: 399: 395: 387: 339: 332:, then added to 326:Sun Microsystems 294: 287: 276: 269: 265: 262: 256: 254: 213: 189: 181: 174: 167: 163: 160: 154: 152: 111: 75: 74: 67: 56: 34: 33: 26: 805: 804: 800: 799: 798: 796: 795: 794: 775: 774: 773: 768: 716: 635: 630: 588: 583: 582: 575: 571: 562: 561: 557: 548: 546: 533: 532: 528: 523: 496: 487: 483: 479: 475: 430: 418: 407: 404: 403: 400: 397: 393: 385: 361: 337: 322: 295: 284: 283: 282: 277: 266: 260: 257: 214: 212: 202: 190: 175: 164: 158: 155: 112: 110: 88: 76: 72: 35: 31: 24: 17: 12: 11: 5: 803: 793: 792: 787: 770: 769: 767: 766: 761: 756: 751: 746: 741: 736: 730: 728: 718: 717: 715: 714: 709: 704: 699: 694: 689: 684: 679: 674: 669: 664: 659: 654: 649: 647:Direct binding 643: 641: 637: 636: 633:Oracle Solaris 629: 628: 621: 614: 606: 600: 599: 587: 586:External links 584: 581: 580: 569: 555: 525: 524: 522: 519: 518: 517: 512: 507: 502: 495: 492: 454:access control 392: 360: 357: 321: 318: 314:procedure call 297: 296: 279: 278: 193: 191: 184: 177: 176: 79: 77: 70: 65: 39: 38: 36: 29: 21:Rational DOORS 15: 9: 6: 4: 3: 2: 802: 791: 788: 786: 783: 782: 780: 765: 762: 760: 757: 755: 752: 750: 747: 745: 742: 740: 737: 735: 732: 731: 729: 727: 723: 719: 713: 710: 708: 705: 703: 700: 698: 695: 693: 690: 688: 685: 683: 680: 678: 675: 673: 670: 668: 665: 663: 660: 658: 655: 653: 650: 648: 645: 644: 642: 638: 634: 627: 622: 620: 615: 613: 608: 607: 604: 597: 593: 590: 589: 578: 573: 565: 559: 545:on 2012-10-22 544: 540: 536: 530: 526: 516: 513: 511: 508: 506: 503: 501: 498: 497: 491: 484:door_return() 473: 470: 465: 463: 462:shared memory 457: 455: 450: 448: 444: 440: 435: 428: 424: 423:tagged unions 417: 413: 390: 388: 382: 376: 374: 370: 366: 356: 354: 349: 347: 343: 335: 331: 327: 317: 315: 311: 308:facility for 307: 303: 293: 290: 275: 272: 264: 253: 250: 246: 243: 239: 236: 232: 229: 225: 222: –  221: 217: 216:Find sources: 210: 206: 200: 199: 194:This article 192: 188: 183: 182: 173: 170: 162: 151: 148: 144: 141: 137: 134: 130: 127: 123: 120: –  119: 115: 114:Find sources: 108: 104: 100: 96: 92: 85: 78: 69: 68: 63: 61: 54: 53: 48: 47: 42: 37: 28: 27: 22: 651: 640:Technologies 572: 558: 547:. Retrieved 543:the original 539:meem simplex 538: 529: 466: 458: 451: 443:tagged union 436: 431:DOOR_RELEASE 406:Clients use 405: 377: 362: 350: 342:name service 323: 301: 300: 285: 267: 258: 248: 241: 234: 227: 215: 203:Please help 198:verification 195: 165: 156: 146: 139: 132: 125: 113: 57: 50: 44: 43:Please help 40: 744:OpenIndiana 722:OpenSolaris 476:door_call() 408:door_call() 159:August 2012 95:independent 779:Categories 739:Nexenta OS 692:Containers 549:2012-03-20 521:References 488:tpreturn() 365:user-space 231:newspapers 129:newspapers 103:redirected 46:improve it 749:OmniOS CE 667:JumpStart 596:man pages 261:July 2012 93:that are 52:talk page 764:Tribblix 697:Crossbow 505:Enduro/X 494:See also 480:tpcall() 359:Overview 759:SmartOS 734:BeleniX 726:illumos 702:Cluster 398:total 9 373:threads 334:Solaris 320:History 245:scholar 143:scholar 107:deleted 657:DTrace 510:Tuxedo 469:X/Open 447:method 439:object 419:struct 369:kernel 346:syslog 304:is an 247:  240:  233:  226:  218:  145:  138:  131:  124:  116:  99:merged 687:snoop 677:MPxIO 652:Doors 515:D-Bus 472:XATMI 427:ioctl 396:ls-l 386:ls -l 353:Linux 340:(the 302:Doors 252:JSTOR 238:books 150:JSTOR 136:books 105:, or 662:IPMP 338:nscd 310:Unix 224:news 122:news 712:ZFS 682:SMF 672:mdb 394:$ 207:by 781:: 724:, 537:. 456:. 449:. 351:A 348:. 316:. 101:, 55:. 625:e 618:t 611:v 594:( 566:. 552:. 416:C 292:) 286:( 274:) 268:( 263:) 259:( 249:· 242:· 235:· 228:· 201:. 172:) 166:( 161:) 157:( 147:· 140:· 133:· 126:· 109:. 87:. 62:) 58:( 23:.

Index

Rational DOORS
improve it
talk page
Learn how and when to remove these messages
notability guidelines for products and services
reliable secondary sources
independent
merged
redirected
deleted
"Doors" computing
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

verification
improve this article
adding citations to reliable sources
"Doors" computing
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Learn how and when to remove this message
inter-process communication

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