저는 수년 동안 Linux 사용자였지만 여전히 X가 Windows 및 Mac 시스템의 디스플레이에 사용되는 소프트웨어와 어떻게 비교되는지 이해하는 데 어려움을 겪고 있습니다.
나는 그것이 클라이언트/서버 기반 소프트웨어라는 것을 알고 있지만 특히 나를 혼란스럽게 하는 것은 디스플레이를 제공하기 위해 위젯 툴킷과 작동하는 방식과 서로 상호 작용하는 방식입니다.
내 말은, Mac용 Cocoa 프레임워크를 예로 들어보겠습니다. 프레임워크의 오픈 소스 구현인 GnuStep이 있지만 (제가 추측하는 한) X에서 실행됩니다. 그렇죠? 하지만 맥에서는 X를 사용하지 않는 것 같아요.
Linux에서 Xorg에 대한 대안이 있습니까? 예를 들어, GnuStep을 실행하기 위해 다른 것을 사용할 수 있나요?
창 관리자와 데스크탑 환경은 X와 함께 사용하도록 특별히 작성되었습니까, 아니면 다른 디스플레이 소프트웨어와 함께 사용할 수 있습니까?
답변1
첫 번째 확인Linux 데스크탑에 대해 알아보기
저는 수년 동안 Linux 사용자였지만 여전히 X가 Windows 및 Mac 시스템의 디스플레이에 사용되는 소프트웨어와 어떻게 비교되는지 이해하는 데 어려움을 겪고 있습니다.
나는 그것이 클라이언트/서버 기반 소프트웨어라는 것을 알고 있지만 특히 나를 혼란스럽게 하는 것은 디스플레이를 제공하기 위해 위젯 툴킷과 작동하는 방식과 서로 상호 작용하는 방식입니다.
내 말은, Mac용 Cocoa 프레임워크를 예로 들어보겠습니다. 프레임워크의 오픈 소스 구현인 GnuStep이 있지만 (제가 추측하는 한) X에서 실행됩니다. 그렇죠? 하지만 맥에서는 X를 사용하지 않는 것 같아요.
툴킷(GTK, Qt...)은 일반적으로 서로 상호 작용하지 않습니다. 이는 단지 라이브러리일 뿐이므로 (대부분) 프로세스별로 분리됩니다. 물론 그리기 명령을 보내고 입력 내용을 읽어 X 서버와 상호 작용합니다. 그러나 그 중 일부는 단일 백엔드(X11)로 제한되지 않습니다. 예를 들어 GTK, Qt 및 GNUstep에는 MS Windows 버전도 있습니다.
이러한 툴킷은 기본 그리기 인터페이스 위에서 통합 API 레이어 역할을 합니다. X11의 경우 버튼 그리기 요청을 일련의 간단한 개체(사각형, 그림자 등)로 변환합니다. 예를 들어 최근 GTK 버전에서는 다음과 같습니다. 다른 것을 통해 구현된 추상화 계층 공급자입니다.카이로). Windows 또는 Mac에서는 기본 API를 사용하여 예를 들어 "GTK 버튼"을 "Windows 버튼"으로 변환할 수 있고, 예를 들어 프레임 버퍼 장치에서는 개별 픽셀로 직접 변환할 수 있습니다(아마 다시 Cairo와 같은 것을 통해 다시 변환). 래스터 엔진). 예를 들어 Qt는 대략 다음과 같습니다.15가지의 다양한 백엔드.
애플리케이션과 통신하기 위해 다양한 툴킷을 사용하는 데스크탑 환경에 대해 이야기하고 있다면 이는 완전히 다른 이야기입니다. 요즘에는,D 버스일반적으로 X 세션 내에서 사용되며 GUI 응용 프로그램이 다른 응용 프로그램과 메시지를 보내고 받을 수 있도록 합니다.
Linux에서 Xorg에 대한 대안이 있습니까? 예를 들어, GnuStep을 실행하기 위해 다른 것을 사용할 수 있나요?
대안은 (John Siu가 답변에서 언급한 것 외에) 다음과 같습니다.웨이랜드. 하지만 이를 사용할 수 있는 앱은 많지 않다.출신지.
창 관리자와 데스크탑 환경은 X와 함께 사용하도록 특별히 작성되었습니까, 아니면 다른 디스플레이 소프트웨어와 함께 사용할 수 있습니까?
대부분의 시간 창 관리자는 X 프로토콜만 이해하며 X 서버 아래(또는 보고 있는 측면에 따라 그 위에서) 실행되어야 합니다. 거의 더 나은 것이 없기 때문입니다(X11과 그 구현에는 더 나을 수 있는 몇 가지 사항이 있지만).
답변2
Linux에서 X11에 대한 대안을 찾고 있다면 다음을 기반으로 한 몇 가지가 있습니다.이 게시물. 그러나 위키 링크를 확인해 보면 일부는 더 이상 개발되지 않는 것 같습니다. 활성화된 것으로 보이는 2개는 다음과 같습니다.
나는 개인적으로 이전에 directfb를 사용/시도해 본 적이 있습니다. 나는 Gentoo를 사용하고 있었고 X11 대신 DirectFB 라이브러리를 사용하여 창 응용 프로그램을 컴파일하도록 지정할 수 있었습니다(또는 둘 다? 잊어버렸습니다.)