Linux 커널 이해에서
Unix는 선점형 프로세스를 갖춘 다중 처리 운영 체제입니다. 여러 시스템 프로세스는 로그인한 사용자가 없고 실행 중인 응용 프로그램이 없는 경우에도 주변 장치를 모니터링합니다. 특히 시스템 터미널에서 사용자가 로그인하기를 기다리는 여러 프로세스가 있습니다.사용자가 로그인 이름을 입력하면청취 프로세스는 사용자의 비밀번호를 확인하는 프로그램을 실행합니다. 사용자의 신원이 확인되면 프로세스는 명령이 입력되는 셸을 실행하는 다른 프로세스를 만듭니다. 그래픽 디스플레이가 활성화된 경우, 하나의 프로세스가 창 관리자를 실행하고 디스플레이의 각 창은 일반적으로 별도의 프로세스에 의해 실행됩니다.사용자가 그래픽 셸을 생성할 때, 한 프로세스가 그래픽 창을 실행하고 두 번째 프로세스가 실행됩니다.껍데기사용자는 여기에 명령을 입력할 수 있습니다. 각 사용자 명령에 대해 쉘 프로세스는 해당 프로그램을 실행하는 또 다른 프로세스를 생성합니다.
여기서 "그래픽 쉘"은 무엇을 의미합니까?
그놈 쉘은 그래픽 쉘입니까?
내 이전 문제인가요?"그래픽 쉘"은 "창 시스템, 창 관리자, 데스크탑 환경"의 계층 구조에서 어디에 적합합니까? 여기 있는 것과 관련이 있나요? 질문에 연결됨https://en.wikipedia.org/wiki/Shell_(컴퓨팅)#GUI, 즉
그래픽 쉘창 열기, 닫기, 이동, 크기 조정, 창 간 포커스 전환 등의 작업이 가능한 그래픽 사용자 인터페이스(GUI) 기반의 프로그램 운용 방법을 제공합니다. 그래픽 셸은 데스크탑 환경에 포함되거나 별도로 제공되거나 느슨하게 결합된 유틸리티 세트로 제공될 수도 있습니다.
끝에 있는 "쉘"은 "그래픽 쉘"을 의미합니까? 터미널 에뮬레이터에서 실행되는 명령줄 셸인가요?
답변1
이 용어는 graphics shell
그래픽 셸이나 그 아래에서 실행되는 명령줄 셸을 나타낼 수 있습니다. 즉, GUI(그래픽 사용자 인터페이스) 또는 GUI 기능을 제어하는 명령줄을 의미합니다.
먼저 쉘부터 시작하겠습니다. "쉘"이라는 단어의 정의는 운영 체제와 하드웨어를 제어하는 프로그램 또는 프로그램 그룹을 의미합니다. 쉘은 실제로 컴퓨터를 직접 제어할 수 있는 소프트웨어입니다.
그래픽 셸은 출력을 일반 텍스트 대신 2D 또는 3D 그래픽으로 렌더링하는 셸입니다.즉, 창, 메뉴 등을 포함하는 그래픽 사용자 인터페이스(GUI)는 터미널 인터페이스에서 제공하는 일반 텍스트보다 사용자와 시스템 간의 보다 유연한 상호 작용을 제공합니다.
하지만,GUI의 핵심이 쉘로 구축되어 있으므로 모든 기능을 명령줄을 통해 제어할 수 있습니다.. 예를 들어 다음 명령은그놈 껍질GNOME 데스크탑용 그래픽 쉘입니다. 이 명령은 GNOME 데스크탑의 핵심 사용자 인터페이스 기능을 제공하며 명령줄을 통해 조정할 수 있습니다. 또 다른 예는 Gnome의 파일 탐색기에 대한 기본 GUI 인터페이스인 노틸러스(nautilus)입니다. 이는 명령줄로 사용할 수 있으며 호출됩니다.노틸러스. 명령줄에는 다음과 같은 기능이 있습니다.
$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options
Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use
이는 명령줄에서 GUI 기능을 제어할 수 있음을 의미합니다.
Linux에서 그래픽 셸은 일반적으로 여러 계층의 소프트웨어로 구성됩니다. 운영 체제는 그래픽 드라이버, 키보드 및 마우스 드라이버를 제공해야 합니다. 그런 다음 드라이버 위에 X11 또는 Wayland와 같은 윈도우 시스템이 있습니다. 디스플레이 드라이버로 전송된 2D 이미지를 저장하는 메모리를 관리하기 위해 입력 주위에 더 높은 수준의 래퍼(예: 키보드 레이아웃 제공)를 생성하고 애플리케이션에 이러한 2D 이미지를 메모리에 그리는 기능을 제공합니다.
윈도우 시스템 위에는 윈도우 관리자가 있는데, 이는 애플리케이션이 키보드와 마우스 이벤트를 시스템 호출로 변환하여 애플리케이션이 그리는 창을 조작하는 방법입니다. 여기에는 애플리케이션 시작, 일시 중지, 숨기기, 표시 및 닫기, 애플리케이션 오류 감지, 오류 후 정리 등의 작업이 포함됩니다.
Unity, Gnome Shell, Xfwm, OpenBox, i3, Xmonad 등을 포함하여 널리 사용되는 수십 가지 창 관리자가 있습니다.
응용 프로그램은 필요에 따라 그래픽을 그릴 수 있지만 응용 프로그램 개발자는 응용 프로그램이 시스템에서 실행 중인 다른 모든 응용 프로그램과 일관되게 보이도록 공통 그리기 도구 세트를 사용하는 것을 선호하는 경우가 많습니다. 이는 애플리케이션으로 가져오는 소프트웨어 라이브러리입니다. 그런 다음 해당 함수를 호출하여 메뉴, 버튼, 텍스트 입력을 그리고 PNG 및 JPG와 같은 이미지를 표시할 수 있습니다.
이러한 일반적인 그리기 도구를 "위젯 키트"라고 합니다. Linux에서 가장 인기 있는 두 가지 위젯 툴킷은 Gtk+와 Qt입니다. Gtk+와 Qt를 동시에 사용할 수 있는데, 이는 종종 Linux의 여러 애플리케이션이 모양과 느낌이 일관되지 않는 이유입니다.
이러한 계층은 Linux 소프트웨어 생태계에만 적용됩니다. Mac OS, Windows 및 Android는 모두 다르게 접근하지만 각 계층을 단일 그래픽 셸 소프트웨어에 통합하는 경향이 있습니다. 이는 작업을 단순화하지만 많은 사용자 정의를 방지합니다.
Linux가 상황을 복잡하게 만드는 이유는 사람들이 선택권을 선호하고 쉘을 사용자 정의하기를 원하기 때문입니다. 자체 Linux 배포판을 관리하는 경우 기본 애플리케이션 세트를 선택하여 모두 동일한 위젯 툴킷을 사용하고 일관된 모양과 느낌을 제공하도록 노력하는 것이 좋습니다.
그래픽 셸 위에 파일 시스템 브라우저, 애플리케이션 실행 프로그램, 알림 및 시스템 상태 애플리케이션, 시스템 구성("제어판") 애플리케이션과 같은 그래픽 애플리케이션을 구축할 수 있습니다. 이러한 응용 프로그램은 함께 "데스크톱 환경"이라고 부르는 환경을 구성합니다.