Knowledge (XXG)

Windowing system

Source 📝

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:.

Index


verification
improve this article
adding citations to reliable sources
"Windowing system"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

window
window decoration
window manager
computing
display screens
graphical user interface
WIMP
windows
icons
menus
pointer
user interface
application
tiling interface
window decoration
widgets
graphical elements
widget toolkits

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