최근 나는 처음으로 "X Window Server"라는 개념을 접하게 되었다. 그것에 대해 많이 읽고 핵심 개념의 대부분을 이해하려고 노력한 후에 – 주로 저는 "현대 컴퓨팅 시대"에 태어났고 "실제 터미널"이나 "X를 실행할 만큼 강력하지 않은 PC"에 접근한 적이 없었기 때문입니다. client" ”——한 가지가 혼란스럽습니다.
X 서버가 미리 정의된 기능 세트가 있는 라이브러리가 아닌 서버인 이유는 무엇입니까?
저는 이전에 받은 몇 가지 질문, 특히 다음 질문에서 많은 것을 배울 수 있었습니다.
내가 이해한 바에 따르면 X Server는 원래 네트워크를 통한 통신을 지원하도록 설계되었습니다. 일부 오래된 컴퓨터는 그래픽 요소를 실행할 만큼 강력하지 않았기 때문입니다. 이것이 X 서버가 서버 역할을 하도록 설계된 유일한 이유입니까? 네트워크를 통해 "요청"을 받고 "그래픽 요소"로 응답하시겠습니까?
X 서버가 로컬에서도 서버 역할을 하는 다른 이유가 있나요? 어쩌면 나는 몇 가지 세부 사항을 놓쳤을 수도 있고 그것이 내가 지금까지 배운 모든 것을 "연결"하기 위해 이해하려고 노력하는 것입니다.
가능하다면 과거에 터미널이 X Window 서버와 어떻게 통신했는지 실제 예를 들어주실 수 있나요? 내가 상상할 수 있는 것은 터미널 컴퓨터(검은색 터미널 화면 외에는 아무것도 실행하지 않음)로 가득 찬 건물과 그래픽 인터페이스를 실행할 수 있는 단 한 대의 컴퓨터뿐입니다. 사람들이 이 컴퓨터를 공유하여 최종 컴퓨터와 통신하여 무거운 작업을 수행한 적이 있습니까?
감사합니다!
답변1
터미널에 대해 큰 오해를 갖고 계신 것 같습니다.
텍스트 터미널이 있고 X11 터미널이 있습니다. X11 터미널은 X 서버를 실행합니다. 이를 씬 클라이언트라고도 합니다.
X 서버를 실행하는 워크스테이션이 있을 수도 있습니다. 프로세스 서버에 연결됩니다. 지하실에는 강력한 기계가 있습니다.
다른 장점은 다음과 같습니다.
- 이는 단지 프로세스(그래픽 하드웨어, 키보드 및 포인팅 장치에 대한 액세스 포함)이지만 프로세스일 뿐입니다. 이것에는 이점이 있습니다. 그래픽 하드웨어, 키보드 및 포인팅 장치에 액세스할 수 없는 프로세스가 있을 수 있습니다. X11-vnc 브리지를 형성하는 VNC 서버일 수도 있습니다. 테스트용으로 사용할 수 있습니다(사람 대신 로봇 프로세스가 이를 제어하도록 함).
- 이것은 별도의 프로세스였습니다. 컴퓨터를 멀티코드로 업그레이드했습니다. 소프트웨어를 변경하지 않고 이러한 코어를 사용합니다(최대 몇 개의 코어).
- 여러 대의 모니터, 키보드, 마우스가 있는 경우 구조적으로 이들을 별도의 좌석(터미널)으로 분리하는 것이 쉽습니다.
- 사용자 전환이 쉬워집니다.
- 다른 프로세스는 하드웨어에 액세스할 수 없습니다. 라이브러리 접근 방식을 사용하는 것과 마찬가지로 더 안전합니다(X11에는 재설계를 통해 해결할 수 있는 몇 가지 보안 문제가 있다는 점에 유의하세요).
- 창 관리자도 별도의 프로세스입니다. 이를 통해 데스크탑 환경을 선택할 수 있습니다. 따라서 X11 서버용 프로세스 하나, 창 관리자용 프로세스 하나, 디스플레이 관리자(로그인 서비스)용 프로세스 하나, 이것저것 위한 프로세스입니다. 로그아웃하지 않고도 데스크톱 환경을 변경할 수 있을 정도로 유연성이 뛰어납니다.
답변2
여러 키보드, 기타 입력 장치 및 여러 모니터를 가질 수 있는 단일 하드웨어(개념적으로는 워크스테이션)에서 디스플레이 서비스를 제공하고 조정하기 때문에 서버입니다.
여러 프로세스가 로컬 또는 원격으로 연결되어 화면 공간, 입력 포커스, 컬러맵 슬롯 및 기타 리소스를 협상할 수 있습니다. 이러한 프로세스는 서로 직접 협상하거나 서로 다른 요구 사항을 조정할 수 없습니다. X Windows 서버는 모든 클라이언트 프로세스가 워크스테이션의 모든 기능에 액세스할 수 있다고 믿게 만드는 서비스를 제공합니다.