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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.