리눅스 구조-X 윈도 시스템

2024. 1. 25. 10:53리눅스/리눅스 - 사물인터넷

728x90
반응형

GNU/LINUX : 리눅스 커널 + GNU 소프트웨어

  • 리눅스는 리누스 토발즈에 의해서 개발된 커널 자체를 의미하기도 하지만 다양한 "GNU 소프트웨어"가 합쳐진 운영체제를 의미
  • 리눅스는 크게 커널, 디바이스 드라이버, 시스템 라이브러리, 셸, 유틸리티, x 윈도 시스템으로 구분

https://velog.io/@peppie0192/%EA%B5%AC%EB%A6%84-k8s-TIL-1-2-1

  1. 시작 (1984-1987):
    • X윈도우는 MIT(Massachusetts Institute of Technology)의 프로젝트로 시작되었습니다. 1984년, MIT의 프로젝트 매니저인 보블레스·루브라크(Bob Scheifler)와 제임스 겔람(Jim Gettys)이 X윈도우의 개발을 시작했습니다.
    • X10이라 불리는 초기 버전은 1986년에 나왔고, X11은 1987년에 나왔습니다.
  2. 표준화 (1987-1988):
    • X11은 꾸준히 발전하면서 여러 플랫폼에서 지원되기 시작했습니다.
    • X 프로토콜은 표준화되어 X Consortium이라는 단체를 통해 관리되었습니다.
  3. XFree86 (1992-2004):
    • XFree86은 리눅스와 같은 오픈 소스 운영 체제에서 X 윈도우를 구현하는 데 사용되었습니다.
    • 그러나 XFree86의 라이센스 변경 등의 이유로 인해 X.Org 서버가 탄생하게 되었습니다.
  4. X.Org Foundation (2004-현재):
    • X.Org Foundation은 X Window System을 관리하고 발전시키는 비영리 단체입니다.
    • X.Org 서버는 현재까지도 많은 리눅스 및 유닉스 계열 운영 체제에서 사용되고 있습니다.
  5. Wayland (2010-현재):
    • Wayland은 X윈도우의 대체제로 개발되었습니다. X윈도우의 일부 한계를 극복하고자 하는 목적으로 시작되었습니다.
    • 현재 일부 배포판 및 환경에서는 Wayland이 기본 디스플레이 서버로 사용되고 있습니다.
  6. 최신 개발 (2020년대 이후):
    • X.Org Foundation은 X 서버 및 관련 라이브러리에 대한 개발을 계속 진행 중이지만, Wayland이 더 많은 관심을 받고 있습니다.
    • Wayland은 최근 몇 년 동안 리눅스 및 일부 다른 운영 체제에서 주목받는 그래픽 서버로 자리 잡고 있습니다.

이러한 역사적인 단계를 통해 X윈도우는 컴퓨터 그래픽스와 사용자 인터페이스 분야에서 오랫동안 중요한 역할을 해왔습니다.

 

X 윈도우의 구조

https://hamonikr.org/oss/51541

  1. X 서버 (X Server):
    • X 서버는 디스플레이와 키보드, 마우스 등의 입력 장치를 관리하고, 응용 프로그램의 그래픽 출력을 화면에 표시합니다.
    • 사용자의 입력을 받아들이고, 클라이언트 응용 프로그램의 그래픽 요소를 디스플레이에 그립니다.
    • X 서버는 디스플레이 서버로서의 역할을 수행하며, 다수의 클라이언트와 통신하여 그래픽 요소를 처리합니다.
  2. X 클라이언트 (X Client):
    • X 클라이언트는 사용자 인터페이스를 구성하는 응용 프로그램이며, 그래픽 요소를 생성하고 관리합니다.
    • 클라이언트는 사용자의 입력을 X 서버로 전송하고, 서버로부터의 그래픽 데이터를 받아 디스플레이에 출력합니다.
    • X 클라이언트는 X 프로토콜을 사용하여 X 서버와 통신하며, 서버에게 그래픽 요소의 위치 및 속성을 지정하는 명령을 보냅니다.
  3. X 프로토콜 (X Protocol):
    • X 서버와 클라이언트 간의 통신은 X 프로토콜을 사용합니다. 이는 네트워크를 통한 통신도 지원하므로, 클라이언트와 서버가 물리적으로 떨어져 있어도 동일한 네트워크를 통해 상호 작용할 수 있습니다.
    • X 프로토콜은 그래픽 요소의 생성, 이동, 수정 등의 명령을 전송하고, 이벤트(사용자 입력, 시스템 이벤트 등)를 클라이언트에게 알리기 위해 사용됩니다.
  4. 윈도우 매니저 (Window Manager):
    • 윈도우 매니저는 윈도우의 배치, 크기 조정, 최소화, 최대화 등과 같은 윈도우의 외관 및 동작을 관리합니다.
    • 사용자가 윈도우를 조작할 때 윈도우 매니저가 이벤트를 받아들이고 적절한 동작을 수행합니다.
  5. 기타 라이브러리 및 도구:
    • X 서버와 클라이언트 간의 통신에 사용되는 라이브러리 및 도구들이 있습니다.
    • X 라이브러리(Xlib)는 C 언어에서 사용되며, 더 최근에는 XCB(X C Bindings)와 같은 라이브러리도 있습니다.

  1. 사용자 입력:
    • 사용자는 터미널 또는 커맨드 라인 인터페이스를 통해 셸에 명령을 입력합니다.
  2. 명령 해석:
    • 셸은 입력된 명령을 해석하고 실행 가능한 프로그램 또는 명령어를 찾습니다.
  3. 프로세스 생성:
    • 셸은 명령에 해당하는 프로세스를 생성합니다. 이 프로세스는 명령어를 실행할 새로운 실행 환경을 갖게 됩니다.
  4. 시스템콜 호출:
    • 프로세스가 실행될 때, 해당 프로세스는 운영 체제에게 필요한 작업을 수행하기 위해 시스템콜을 호출합니다. 이 시스템콜은 파일 입출력, 프로세스 생성, 메모리 할당 등과 같은 기본적인 운영 체제 기능을 수행합니다.
  5. 프로세스 실행:
    • 시스템콜을 통해 운영 체제가 요청된 작업을 수행하면, 셸은 프로세스를 실행하고 결과를 사용자에게 표시합니다

단축키 내용
ctrl + a 줄 맨 앞으로 커서 이동
ctrl + e 줄 맨 뒤로 커서 이동
ctrl + f 다음 한 글자로 커서 이동
ctrl + b 이전 한 글자로 커서 이
alt + f 다음 한 단어로 커서 이동
alt + b 이전 한 단어로 커서 이동
ctrl + l 화면을 지우고 커서를 왼쪽 왼쪽 상단으로 이동
ctrl + d 현재 커서 위치 글자 지우기
ctrl + t 현재 커서 위치에 있는 글자와 바로 앞 글자를 교환
alt + t 현재 커서 위치의 단어와 바로 앞 단어를 교
alt + l 현재 커서 위치의 글자부터 그 단어 끝 부분까지 소문자로 변
alt + u 현재 커서 위치의 글자부터 그 단어 끝 부분까지 대문자로 변경/
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
source ~/.bashrc
# 또는
. ~/.bashrc

 

반응형