Knowledge (XXG)

Windowing system

Source 📝

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

Index

Display server

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

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