# X server
### Purpose
1. Is also known as X11 or X Window System, is a software system that provides a graphical user interface (GUI) for Unix-like operating systems.
2. Provides a framework for managing windows, handling user input devices such as keyboards and mice, and rendering graphics using the computer's graphics hardware.
3. Allows user to customize the appearance and behavior of their desktop environments.
4. X Server can run remotely, allowing users to run graphical applications on one computer while displaying the output on another computer's screen.
You need to have a **Linux** or **Unix-based** operating system installed on your computer. Most modern distributions come with X Server pre-installed, so you should be able to start using it immediately.
If you want to run x server on windows, please refer steps below:
### 1. Install an X server on your Windows machine:
* MobaXterm、Xmanager (not free for bussiness purpose)
* Cygwin (weight)
* Xming (lastest ver. 2016)
* VcXsrv (lastest ver. 2022)
Flowchart of VcXsrv:


### 2. Prepare and run graphical apps
Use docker/podman container as example: installing X server and graphical app in docker/podman container, displaying the output on another computer's screen.
**Run Local GUI APP**
Prepare dockerfile and docker-compose.yml(if needed), IP need to be determined to display.
- IPC means the computer
- $ipc_ip means the ip of computer
dockerfile example:

docker-compose.yml example:

**Run GUI APP on local computer**

**Run GUI APP on local computer and display on another computer**
