X윈도는 플랫폼과 디스플레이와 독립적으로 작동하는 그래픽 시스템 개발을 위해 DEC, IBM, MIT가 공동으로 시작한 아테나 프로젝트의 일환으로 1984년에 최초 버전을 개발하였다.
IBM호환 시스템을 사용하는 유닉스 계열 운영체제를 위한 X윈도 프로젝틀 1992년에 시작되었다. 하지만 4.4.0버전이 자유 소프트웨어 재단의 GPL라이선스와 호환되지 않기 때문에 XOrg로 옮겨간 것이다.
2004년에 개발된 프로젝트로 앞서 말한 XFree86의 라이선스 문제로 그쪽 개발자들이 이쪽으로 많이 왔다.
X윈도는 네트워크 프로토콜에 기반한 그래픽 사용자 인터페이스 환경이다.
디스플레이 장치에 의존적이지 않고, 서로 다른 이 기종을 함께 사용할 수 있다.
또한 다양한 컴퓨터로 구동할 수 있을 정도로 이식성이 뛰어나다.
X윈도는 클라이언트/서버 구조로 되어 있으며, 서로간의 통신을 위해 X protocol을 사용한다.
로컬의 사용자가 키보드나 마우스로 입력하면 TCP 포트 6000번을 통해 전달되고 관련 x 클라이언트 프로그램이 실행된다.
Xlib는 C언어로 구현된 클라이언트 라이브러리로 x서버와 대화를 해주는 역할을 한다.
개발자들은 관련 프로토콜에 관한 자세한 정보 없이도 Xlib를 통해 다양한 프로그램을 개발할 수 있다.
1985년 Xlib가 등장하고 많은 유닉스 계열 운영체제에서 이를 사용하였지만, 최근 X.org에서는 XCB로 대체하여 사용한다. XCB는 향상된 쓰레딩을 지원하고, 확장성이 뛰어나다. 또한 라이브러리의 크기가 작고 단순하며, 직접 x프로토콜에 접근도 가능하다.