289:
505:
122:
364:
258:. The output of sound is usually not managed by the display server, but the sound volume is usually handled through GUI applets and it is the display server who decides which applications are on top. A windowing system enables the computer user to work with several programs at the same time. Each program presents its GUI in its own window, which is generally a rectangular area of the screen.
22:
515:
382:
677:
Hardware
Composer HAL (HWC) was introduced in Android 3.0 and has evolved steadily over the years. Its primary purpose is to determine the most efficient way to composite buffers with the available hardware. As a HAL, its implementation is device-specific and usually done by the display hardware OEM.
335:
The server/client relationship of a standalone display server is somewhat counterintuitive in that a "server" is usually thought of as a large, remote machine, whereas a standalone "display server" is a small local system, with most clients being executed on a larger central machine. The explanation
714:
enables the use of hardware acceleration to render the graphical user interface. It was originally created to enable portions of the new "Windows Aero" user experience, which allowed for effects such as transparency, 3D window switching and more. It is also included with
Windows Server 2008, but
226:, although alternative denominations such as window server or compositor are also in use. Any application that runs and presents its GUI in a window, is a client of the display server. The display server and its clients communicate with each other over an
320:
is a program whose primary task is to coordinate the input and output of its clients to and from the rest of the operating system, the hardware, and each other. The display server communicates with its clients over the display server protocol, a
662:
Yet another
Android-specific solution is "Gralloc". Gralloc handles device memory i.e. it does allocation, arbitration, it handles synchronization via Android/Linux fence file descriptors. Gralloc competes with other solutions like e.g. Mesa's
411:
on Linux) and passes it to one of its clients. The display server also receives data from its clients; it processes the data, it does the compositing and on Linux it passes the data to one of three kernel components –
562:. The display server still gets to decide which window is on top and thus visible to the user and also still is responsible for passing data regarding to input devices from
269:
or drawing a line on the screen. It provides an abstraction of the graphics hardware for use by higher-level elements of the graphical interface such as a window manager.
621:
comes with its own Mir display server protocol which is different from those used by X11 and
Wayland. Mir additionally supports the X11 protocol. It was developed by
194:
is assigned a usually resizable and usually rectangular surface of the display to present its GUI to the user; these windows may overlap each other, as opposed to a
234:, which is usually called display server protocol, the display server being the mediator between the clients and the user. It receives all the input from the
1128:
659:
Everything in
Android is rendered to a "surface"; "surfaces" are produced by applications and placed into a queue that is managed by SurfaceFlinger.
1044:
715:
requires the "Desktop
Experience" feature and compatible graphics drivers to be installed. From Windows 8 onwards DWM can't be disabled and is
1180:
528:. Like any display server, a Wayland compositor is responsible for handling input and output for its clients and, in contrast to X11, the
1085:
227:
105:
39:
573:. It is also well suited for mobile computing and has been adopted, for example, by the smartphone- and tablet-focused projects
288:
86:
451:
client libraries. The X.Org Server is a display server, but in its current implementation it relies on a second program, the
58:
43:
632:
There are implementations of the Mir display server, the libmir-server and the libmir-client libraries available under the
354:
1007:
959:
65:
254:
and transmits it to the correct client. The display server is also responsible for the output of the clients to the
1303:
766:
653:
452:
417:
72:
32:
1212:
1108:
1000:
664:
626:
570:
235:
156:
1135:
994:
931:
855:
818:
545:
413:
329:
293:
180:
160:
674:
For compositing in
Android, Surfaces are sent to SurfaceFlinger, which uses OpenGL ES to do the compositing.
54:
1039:
844:
456:
322:
231:
882:
782:
741:
711:
184:
745:
210:
for direct user interaction, such as sliders, buttons, etc., is eased and simplified through the use of
1273:
593:
668:
273:
191:
1152:
1054:
629:. As of 2017, it has been replaced with the Wayland display server for desktop editions of Ubuntu.
504:
1255:
1204:
716:
552:
525:
499:
428:
and content of the framebuffer is transmitted to the connected screen and displayed. X relies on
199:
168:
127:
1166:
1077:
Encyclopedia of
Microcomputers: Volume 19 - Truth Maintenance Systems to Visual Display Quality
514:
1081:
1075:
964:
886:
829:
703:
691:
537:
533:
372:
363:
305:
243:
207:
132:
79:
265:'s point of view, a windowing system implements graphical primitives. For example: rendering
1247:
555:. This protocol defines that clients can directly write data into the framebuffer using the
255:
203:
202:
is drawn around each window. The programming of both the window decoration and of available
195:
176:
172:
164:
1232:
942:
381:
121:
860:
850:
436:
358:
247:
1049:
1019:
936:
918:
798:
737:
694:
fulfils the tasks of a display server and of a window manager in the windowing system.
622:
618:
612:
301:
223:
211:
136:
1297:
901:
890:
707:
559:
466:
Notable examples of display servers implementing the X11 display server protocol are
1259:
969:
926:
556:
467:
440:
392:
368:
239:
569:
Wayland is used to a certain degree in some Linux desktop distributions, such as
824:
807:
589:
578:
529:
425:
277:
251:
21:
1015:
1011:
874:
582:
524:
Display servers that implement the
Wayland display server protocol are called
421:
262:
1251:
954:
729:
656:(another Linux kernel-based operating system primarily for mobile devices):
144:
482:, while client libraries implementing the X11 display server protocol are
1023:
812:
600:
479:
266:
1027:
987:
982:
974:
911:
896:
839:
793:
787:
475:
471:
139:
or by the client. The drawing of the content is the task of the client.
649:
118:
Software that manages separately different parts of display screens
906:
833:
760:
687:
633:
574:
563:
408:
400:
222:
The main component of any windowing system is usually called the
155:) is a software suite that manages separately different parts of
803:
773:
541:
483:
460:
444:
396:
1030:, contain a windowing system which is integrated with the OS.
551:
Wayland compositors communicate with
Wayland clients over the
487:
448:
429:
404:
325:, which can be network-transparent or simply network-capable.
15:
750:
513:
380:
671:
is used to allocate the buffers that underlie "surfaces".
1167:"Android Developer: SurfaceFlinger and Hardware Composer"
272:
A display server protocol can be network capable or even
625:
and was intended to be the display server of choice for
435:
One of the implementations of display server concept is
1205:"Andrew: A Distributed Personal Computing Environment"
652:
developed a display server called SurfaceFlinger for
599:
There is an ongoing effort to add Wayland support to
588:
An implementation of Wayland is available under the
46:. Unsourced material may be challenged and removed.
439:, in particular its actually used version –
198:where they are not allowed to overlap. Usually a
1074:Kent, Allen; Williams, James G. (1996-10-11).
395:, which runs on top of the kernel (usually a
328:The display server is a key component in any
238:, that the kernel receives from all attached
8:
719:if no suitable graphics card is installed.
667:(GBM) or Nvidia's EGLStreams. The Gralloc
407:). It receives user input data (e.g. from
308:, but compositing window managers do more.
300:implements the windowing system. A simple
424:. The component writes the data into the
106:Learn how and when to remove this message
503:
362:
287:
120:
1240:IEEE Computer Graphics and Applications
1066:
1045:History of the graphical user interface
391:One example of a display server is the
344:Display server communications protocols
455:, to do the compositing. Examples are
336:is that a display server provides the
332:, specifically the windowing system.
276:, facilitating the implementation of
7:
371:communicates with its clients, e.g.
44:adding citations to reliable sources
508:The Wayland display server protocol
14:
1274:"Chilton::INF::Window Management"
1233:"The User Interface for Sapphire"
596:and libwayland-server libraries.
228:application programming interface
669:hardware abstraction layer (HAL)
340:of a display and input devices.
206:inside of the window, which are
20:
1181:"HP Windows/9000 User's Manual"
553:Wayland display server protocol
31:needs additional citations for
753:(with a modified Linux kernel)
1:
1186:. Hewlett Packard. April 1988
1129:"Android system architecture"
690:family of operating systems,
355:X Window System core protocol
1278:www.chilton-computing.org.uk
1153:"Android Developer: Surface"
993:mpx/mux (for the Bell Labs
640:Windowing systems with APIs
163:(GUI) which implements the
1320:
1080:. CRC Press. p. 227.
990:(VAX Workstation Software)
610:
497:
453:compositing window manager
352:
292:The basic components of a
1213:Communications of the ACM
1001:Symbolics Dynamic Windows
723:List of windowing systems
665:Generic Buffer Management
1252:10.1109/MCG.1984.6429376
1231:Myers, Brad (Dec 1984).
375:, over the X11 protocol.
330:graphical user interface
161:graphical user interface
1040:List of display servers
323:communications protocol
232:communications protocol
190:Each currently running
135:is either drawn by the
883:Desktop Window Manager
759:(on early versions of
712:Desktop Window Manager
698:Desktop Window Manager
532:as well. Examples are
519:
509:
399:-like kernel, such as
386:
376:
309:
140:
125:Typical elements of a
1006:Some systems such as
769:Andrew Window Manager
517:
507:
384:
366:
291:
124:
385:X Window System logo
40:improve this article
1055:Desktop environment
526:Wayland compositors
274:network transparent
1026:and earlier), and
1018:and earlier), the
943:Web Window Manager
619:Mir display server
520:
510:
500:Wayland (protocol)
387:
377:
310:
306:window decorations
208:graphical elements
159:. It is a type of
141:
55:"Windowing system"
1304:Windowing systems
1008:Microsoft Windows
939:General Interface
921:windowing systems
887:Microsoft Windows
877:operating systems
875:Windows NT-family
830:Quartz Compositor
781:Silicon Graphics
778:Whitechapel Oriel
772:Sapphire for the
732:operating systems
717:software rendered
704:Microsoft Windows
692:Quartz Compositor
682:Quartz Compositor
594:libwayland-client
304:merely draws the
218:Technical details
200:window decoration
183:) paradigm for a
133:window decoration
116:
115:
108:
90:
1311:
1288:
1287:
1285:
1284:
1270:
1264:
1263:
1237:
1228:
1222:
1221:
1220:(3). March 1986.
1209:
1201:
1195:
1194:
1192:
1191:
1185:
1177:
1171:
1170:
1163:
1157:
1156:
1149:
1143:
1142:
1140:
1134:. Archived from
1133:
1125:
1119:
1118:
1116:
1115:
1109:"Ozone Overview"
1105:
1099:
1098:
1096:
1094:
1071:
897:ReactOS Explorer
566:to its clients.
256:computer monitor
248:pointing devices
196:tiling interface
149:windowing system
111:
104:
100:
97:
91:
89:
48:
24:
16:
1319:
1318:
1314:
1313:
1312:
1310:
1309:
1308:
1294:
1293:
1292:
1291:
1282:
1280:
1272:
1271:
1267:
1235:
1230:
1229:
1225:
1207:
1203:
1202:
1198:
1189:
1187:
1183:
1179:
1178:
1174:
1165:
1164:
1160:
1151:
1150:
1146:
1138:
1131:
1127:
1126:
1122:
1113:
1111:
1107:
1106:
1102:
1092:
1090:
1088:
1073:
1072:
1068:
1063:
1036:
951:
923:
879:
861:X Window System
851:W Window System
757:HP Windows/9000
734:
725:
700:
684:
647:
642:
615:
609:
522:
521:
502:
496:
437:X Window System
389:
388:
361:
359:X Window System
353:Main articles:
351:
346:
286:
220:
212:widget toolkits
157:display screens
119:
112:
101:
95:
92:
49:
47:
37:
25:
12:
11:
5:
1317:
1315:
1307:
1306:
1296:
1295:
1290:
1289:
1265:
1223:
1196:
1172:
1158:
1144:
1141:on 2016-04-08.
1120:
1100:
1086:
1065:
1064:
1062:
1059:
1058:
1057:
1052:
1050:Widget toolkit
1047:
1042:
1035:
1032:
1020:classic Mac OS
1004:
1003:
998:
991:
985:
980:
977:
972:
967:
962:
957:
950:
947:
946:
945:
940:
934:
929:
922:
916:
915:
914:
909:
904:
899:
894:
878:
871:
870:
869:
866:
863:
858:
853:
848:
847:(Text WINdows)
842:
837:
827:
822:
815:
810:
801:
796:
791:
785:
779:
776:
770:
764:
754:
748:
733:
726:
724:
721:
699:
696:
683:
680:
646:
645:SurfaceFlinger
643:
641:
638:
613:Mir (software)
611:Main article:
608:
605:
512:
511:
498:Main article:
495:
492:
379:
378:
350:
347:
345:
342:
314:display server
302:window manager
298:display server
285:
284:Display server
282:
224:display server
219:
216:
185:user interface
137:window manager
117:
114:
113:
28:
26:
19:
13:
10:
9:
6:
4:
3:
2:
1316:
1305:
1302:
1301:
1299:
1279:
1275:
1269:
1266:
1261:
1257:
1253:
1249:
1246:(12): 13–23.
1245:
1241:
1234:
1227:
1224:
1219:
1215:
1214:
1206:
1200:
1197:
1182:
1176:
1173:
1168:
1162:
1159:
1154:
1148:
1145:
1137:
1130:
1124:
1121:
1110:
1104:
1101:
1089:
1087:9780824727178
1083:
1079:
1078:
1070:
1067:
1060:
1056:
1053:
1051:
1048:
1046:
1043:
1041:
1038:
1037:
1033:
1031:
1029:
1025:
1021:
1017:
1013:
1009:
1002:
999:
996:
992:
989:
986:
984:
981:
978:
976:
973:
971:
968:
966:
963:
961:
958:
956:
953:
952:
948:
944:
941:
938:
935:
933:
930:
928:
925:
924:
920:
917:
913:
910:
908:
905:
903:
902:Classic Shell
900:
898:
895:
892:
888:
884:
881:
880:
876:
872:
867:
864:
862:
859:
857:
854:
852:
849:
846:
843:
841:
838:
835:
831:
828:
826:
823:
820:
816:
814:
811:
809:
805:
802:
800:
797:
795:
792:
789:
786:
784:
780:
777:
775:
771:
768:
765:
762:
758:
755:
752:
749:
747:
743:
739:
736:
735:
731:
727:
722:
720:
718:
713:
709:
708:Windows Vista
705:
697:
695:
693:
689:
681:
679:
675:
672:
670:
666:
660:
657:
655:
651:
644:
639:
637:
635:
630:
628:
624:
620:
614:
606:
604:
602:
597:
595:
591:
586:
584:
580:
576:
572:
567:
565:
561:
560:rendering API
558:
554:
549:
547:
546:Enlightenment
543:
539:
535:
531:
527:
516:
506:
501:
493:
491:
489:
485:
481:
477:
473:
469:
464:
462:
458:
454:
450:
446:
442:
438:
433:
431:
427:
423:
419:
415:
410:
406:
402:
398:
394:
383:
374:
370:
365:
360:
356:
348:
343:
341:
339:
333:
331:
326:
324:
319:
318:window server
315:
307:
303:
299:
295:
290:
283:
281:
279:
275:
270:
268:
264:
259:
257:
253:
249:
245:
241:
240:input devices
237:
233:
229:
225:
217:
215:
213:
209:
205:
201:
197:
193:
188:
186:
182:
178:
174:
170:
166:
162:
158:
154:
153:window system
150:
146:
138:
134:
130:
129:
123:
110:
107:
99:
96:December 2019
88:
85:
81:
78:
74:
71:
67:
64:
60:
57: –
56:
52:
51:Find sources:
45:
41:
35:
34:
29:This article
27:
23:
18:
17:
1281:. Retrieved
1277:
1268:
1243:
1239:
1226:
1217:
1211:
1199:
1188:. Retrieved
1175:
1161:
1147:
1136:the original
1123:
1112:. Retrieved
1103:
1091:. Retrieved
1076:
1069:
1005:
970:Microwindows
756:
701:
686:For Apple's
685:
676:
673:
661:
658:
648:
631:
616:
598:
587:
568:
550:
523:
518:Wayland logo
468:X.Org Server
465:
441:X.Org Server
434:
393:X.Org Server
390:
369:X.Org Server
337:
334:
327:
317:
313:
311:
297:
278:thin clients
271:
260:
221:
189:
152:
148:
142:
126:
102:
93:
83:
76:
69:
62:
50:
38:Please help
33:verification
30:
825:Qt Extended
808:OpenWindows
590:MIT License
579:Sailfish OS
530:compositing
426:framebuffer
252:touchscreen
230:(API) or a
192:application
1283:2023-04-11
1190:2021-10-26
1114:2017-08-20
1061:References
893:and later)
583:AsteroidOS
422:KMS driver
263:programmer
242:, such as
66:newspapers
1022:(version
997:terminal)
965:Intuition
885:(DWM) in
817:Orbital (
730:Unix-like
623:Canonical
145:computing
1298:Category
1260:11138733
1034:See also
813:NeXT DPS
710:onward,
601:ChromeOS
480:Cygwin/X
338:services
244:keyboard
1028:Palm OS
983:Visi On
975:MiniGUI
912:RetroUI
856:Wayland
840:SunView
794:Metisse
788:ManaGeR
706:, from
654:Android
494:Wayland
476:XQuartz
472:XFree86
261:From a
204:widgets
181:pointer
169:windows
80:scholar
1258:
1093:8 June
1084:
746:Plan 9
650:Google
627:Ubuntu
592:, the
571:Fedora
538:Mutter
534:Weston
457:Mutter
373:Amarok
296:: The
236:kernel
131:. The
128:window
82:
75:
68:
61:
53:
1256:S2CID
1236:(PDF)
1208:(PDF)
1184:(PDF)
1139:(PDF)
1132:(PDF)
949:Other
937:TIBCO
932:ExtJS
907:Pokki
891:Vista
868:Xynth
865:XFast
834:macOS
819:Redox
790:(MGR)
761:HP-UX
688:macOS
634:GPLv3
575:Tizen
564:evdev
409:evdev
401:Linux
267:fonts
250:, or
177:menus
173:icons
87:JSTOR
73:books
1095:2017
1082:ISBN
995:Blit
979:OOHG
927:Dojo
873:For
845:Twin
804:NeWS
774:PERQ
751:fbui
744:for
740:and
728:For
702:For
617:The
581:and
542:KWin
486:and
484:Xlib
478:and
461:KWin
447:and
445:Xlib
443:and
397:Unix
367:The
357:and
165:WIMP
151:(or
147:, a
59:news
1248:doi
988:VWS
960:GEM
919:Web
799:Mir
783:MEX
767:CMU
742:rio
607:Mir
557:EGL
544:or
488:XCB
459:or
449:XCB
430:GLX
420:or
418:gem
414:DRM
405:BSD
403:or
349:X11
316:or
294:GUI
143:In
42:by
1300::
1276:.
1254:.
1242:.
1238:.
1218:29
1216:.
1210:.
1016:9x
1014:,
1012:XP
955:DM
806:/
738:8½
636:.
603:.
585:.
577:,
548:.
540:,
536:,
490:.
474:,
470:,
463:.
432:.
416:,
312:A
280:.
246:,
214:.
187:.
179:,
175:,
171:,
1286:.
1262:.
1250::
1244:4
1193:.
1169:.
1155:.
1117:.
1097:.
1024:9
1010:(
889:(
836:)
832:(
821:)
763:)
167:(
109:)
103:(
98:)
94:(
84:·
77:·
70:·
63:·
36:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.