昨年の重要なLinuxイベントの1つは、 X Window Systemを置き換えることを目的としたWaylandディスプレイサーバーに基づくGnome 3.22グラフィカル環境を備えた25番目のFedoraのリリースでした。 しかし、なぜ、そんなに長い年月の後に、そのような必要性が生じたのでしょうか?
最近、ISSのクルーはWindowsからLinuxに移行しました。
「ヒューストン、問題があります。」 それは木星に私たちを吹き飛ばします。
「再びxorg.confをいじくり回しましたか?」
-はい。 ヒューストン、最後の3日間はひげが何とか成長しました。
さらに、少なくとも2017年にはLinuxが新しいグラフィカル環境を必要とする理由についての講演と、別の投稿でWaylandとMirについてお話します。
命名法X
Linuxグラフィックススタックに関するHabrapostの記事とWikiページをすでに読んでいると確信しており、自信を持って先に進むことができます。 さて、今のところブックマークに残している場合は、簡単に思い出させてください。
- X Window System -1984年の夏にMITの深部で作成されたX Window System 。プロトコルはXsで定義されていますが、技術的にはすべてですが、プロトコルにすべてを縮小することは正当化されません。 実際、プロトコル自体はウィンドウを描画しないため、今日のUnix / Linuxシステムでグラフィックを制御するものはすべてプロトコル以上のものです。
- X11-1987年にさまざまな形式でリリースされた Xの11番目のバージョンは、今日まで残っています。 特に、 XFree86がそこから芽生え、そこから真に無料のX.Org Serverが登場し、GPLライセンスがあるはずです。 このテキストでは、X11はプロトコルを示しますが、Xとは対照的に、コンポーネントの全体的な組み合わせ(ソフトウェア全般)を意味します。
- X.Org Server -Xのサーバー部分の無料の標準的な実装。現在はLinux用のXサーバーです。
(5:50)$ eix -c xorg-server [I] x11-base/xorg-server (1.18.4@19.09.2016): X.Org X servers
- Xlib — X, . , > 400 , 150 . , 1980- . Xlib , — , , - .
- XCB — X protocol C-language Binding, X C. XCB Xlib: X11, , , , . , XCB Xlib, .
- DIX — Device Independent X, X , .
- DDX — Device Dependent X, X , , .
, Linux .
- Cairo — , 2D . , FireFox, , , GTK+.
- XRender — X - X-, .
- Pixman — , , X.Org, Cairo Firefox.
Mesa — OpenGL, OpenCL Vulkan API Linux Unix, , . Mesa , OpenGL API, :
swrast
— ,softpipe
— ,lvmpipe
— ,
intel, radeon noveau.
r600g
r300g
nvc0
- Gallium — API - , , .
OpenSWR
, ,lvmpipe
. - DRI — Direct Rendering Infrastructure — X Window System, X server. DRI — Mesa. DRI3, X- , , X . GEM (Graphics Execution Manager), .
- AIGLX — Accelerated Indirect GLX, , Red Hat Fedora Linux X.Org DRI GLX . X- GLX; OpenGL ( Compiz Beryl) .
- GEM/TTM — , , — . GEM , , DRI3.
X
X — , : ?
.
? Android , , X Windows System , - . Linux / Unix , , GTK+ QT, X.
X11 30 . X Window System , 1996 .
- , .
- , , , , . ; , .
- .
- , , .
- 90 , 10 , .
- .
- , . , .
X11 Unix . — , , X- . , . XLFD .
X :
- Modesetting
- 2D/3D
- GPU root
- Clipping
, , . , modesetting
, , GNU/Linux.
X.Org
, , .
, : GPU, , . , OpenGL. X Window system , . , … BIOS , I/O, . X , , .
- X . … 345 git . .
- . Xserver 1.0.2: 879,403 , 2013- 562,678. 500 . . - - ?
- Modesetting, , , . , , - . - , .
- X ? . , X- WM — . , X WM, , , . WM, . , ? — Wayland.
- . -, DRI off-screen buffer . , , X- WM, DRI .
, , Motif . -, , . IPC, , , pop-up . , , , , , Wayland. , .
X11 X- X-. : , . .
- .
-
ButtonPress
. -
MapWindow
. - .
-
Expose
. - .
, , 4. , , mouse ahead. ButtonRelease
. X- .
Server Client +-------+ +-----+ Left Button Down | +----------------> Map menu Left Button Up | | | +-------------------------------> No menu operations visible | Map Window <-----------------------+
synchronous grab
, . . , , . . .
Unix X Window System , . — Sun NeWS, Amiga, ? -, TCP/IP, http .
- . , X , . , , X Window System . , . , . - , , , . Linux . , Linux , X .
X Window System Wayland Mir? , . , . . , , systemd
. ?