GNOME

GNOME은 자유 및 오픈 소스 데스크톱 환경이자 그래픽 사용자 인터페이스, 응용 프로그램과 개발 라이브러리를 함께 만드는 소프트웨어 프로젝트다. 주로 Linux 기반 운영체제에서 사용되며, 창과 작업 공간의 관리, 응용 프로그램 실행, 파일 관리, 시스템 설정, 접근성과 국제화 기능을...

분류데스크톱 환경, 자유 및 오픈 소스 소프트웨어 프로젝트
최초 공개1999년 3월 3일 (GNOME 1.0)
프로젝트 시작1997년 8월 15일
창립자Miguel de Icaza, Federico Mena Quintero
개발GNOME Project
운영 및 지원GNOME Foundation
최신 주요 안정 버전GNOME 51 (2026년 9월 16일)
데스크톱 셸GNOME Shell
창 관리자 및 합성기Mutter
사용자 인터페이스 도구 모음GTK, libadwaita
주요 구성 요소GDM, GNOME Session, GNOME Settings, GNOME Files
그래픽 시스템Wayland, Xwayland (기존 X11 응용 프로그램 호환)
운영체제Linux 및 기타 유닉스 계열 운영체제
라이선스자유 소프트웨어 라이선스 (구성 요소별 GPL, LGPL 등)
공식 웹사이트gnome.org
상태개발 중

GNOME은 자유 및 오픈 소스 데스크톱 환경이자 그래픽 사용자 인터페이스, 응용 프로그램과 개발 라이브러리를 함께 만드는 소프트웨어 프로젝트다. 주로 Linux 기반 운영체제에서 사용되며, 창과 작업 공간의 관리, 응용 프로그램 실행, 파일 관리, 시스템 설정, 접근성과 국제화 기능을 일관된 사용자 경험으로 결합한다. GNOME이라는 명칭은 데스크톱 환경 자체뿐 아니라 이를 개발하는 공동체와 그 소프트웨어 생태계까지 가리킨다.[1]

1997년 Miguel de Icaza와 Federico Mena Quintero가 시작한 GNOME은 자유 소프트웨어만으로 완전한 그래픽 데스크톱을 만들겠다는 목표에서 출발했다. GTK를 사용자 인터페이스 도구 모음으로 채택했고, 1999년 GNOME 1.0을 공개했다. 이후 2002년의 GNOME 2, 2011년의 GNOME 3, 2021년의 GNOME 40을 거치며 내부 기술과 인터페이스를 크게 개편했다. 현재의 GNOME은 기존의 패널과 응용 프로그램 메뉴 대신 GNOME Shell의 활동 개요, 검색, 작업 공간 및 응용 프로그램 격자를 중심으로 데스크톱을 구성한다.[2][3][4]

GNOME은 하나의 프로그램이나 창 관리자를 뜻하지 않는다. 화면의 사용자 인터페이스를 담당하는 GNOME Shell, 창과 화면 출력을 처리하는 Mutter, 그래픽 로그인을 관리하는 GDM, 설정과 세션 서비스를 제공하는 구성 요소, Files와 Settings 같은 응용 프로그램이 함께 동작한다. 응용 프로그램 개발에는 GTK, GLib, GObject 및 libadwaita 등의 라이브러리가 사용되며, 이들 가운데 상당수는 GNOME이 아닌 소프트웨어에서도 이용된다.[5][6]

GNOME의 개발은 여러 국가의 개인 기여자, 기업 소속 개발자, 번역자와 디자이너가 참여하는 공개 프로젝트로 이루어진다. 비영리 단체인 GNOME Foundation은 공동체 활동과 프로젝트의 지속성을 지원한다. 소프트웨어는 구성 요소별 자유 소프트웨어 라이선스로 배포되며, 어떤 Linux 배포판이 GNOME을 설치하거나 기본 환경으로 채택했는지는 해당 배포판의 릴리스와 패키지 정책에 따라 달라진다.[7][8]

역사

프로젝트의 탄생

GNOME 프로젝트는 1997년 8월 15일 발표되었다. 발표문은 GNOME의 이름을 GNU Network Object Model Environment로 풀어 설명했으며, CDE 및 KDE와 비슷한 범위의 친숙한 데스크톱 도구를 자유 소프트웨어만으로 만들겠다는 목표를 제시했다. 당시에 KDE가 사용하던 Qt의 라이선스는 자유 소프트웨어 공동체에서 논쟁의 대상이었고, GNOME은 처음부터 자유 라이선스로 사용할 수 있던 GTK를 기반으로 선택했다. 이후 Qt의 라이선스 조건은 변경되었지만 GNOME과 KDE는 각자의 기술과 디자인 철학을 발전시키는 독립 프로젝트로 계속 존재했다.[9][10]

초기 GNOME은 X Window System 위에서 동작하는 패널, 애플릿, 응용 프로그램, 창 관리 도구와 공통 라이브러리를 조합하는 구조였다. 개발자들은 각 프로그램이 개별적으로 화면과 설정 체계를 만드는 대신 공유 가능한 UI 구성 요소와 개발 인터페이스를 제공하는 데 주력했다. 이러한 접근은 사용자가 서로 다른 프로그램을 하나의 데스크톱처럼 다루도록 하는 동시에, 외부 개발자가 GNOME과 통합되는 프로그램을 만들 수 있게 했다.

GNOME 1.x

GNOME 1.0은 1999년 3월 3일 미국 새너제이에서 열린 LinuxWorld 행사에서 공개되었다. 이 버전은 Linux를 포함한 유닉스 계열 운영체제를 위한 통합 그래픽 환경을 제공했으며, 패널과 응용 프로그램, 국제화 및 사용자가 조정할 수 있는 데스크톱 설정을 강조했다. GNOME 1.x의 그래픽 응용 프로그램은 주로 GTK 1 계열을 기반으로 구현되었고, 화면 구성은 전통적인 패널과 창 중심이었다.[11]

2000년에는 GNOME 1.2가 공개되어 사용자 경험, 안정성, 온라인 도움말 등이 개선되었다. 같은 해 GNOME Foundation이 설립되면서 프로젝트에는 공동체 조정과 조직적 지원을 담당하는 비영리 기반이 마련되었다. GNOME 1.x는 이후 버전에서 제거되거나 재설계될 여러 요소를 포함했지만, 공통 라이브러리와 애플리케이션을 함께 개발하는 GNOME의 기본 방향을 정착시켰다.[12][13]

GNOME 2.x

GNOME 2.0은 2002년 6월 26일 공개되었다. 이 시기에는 GTK 2로의 전환과 함께 텍스트 렌더링, 국제화, 접근성, 설정 시스템과 응용 프로그램 개발 기반이 개선되었다. 파일 관리자 Nautilus는 GNOME 데스크톱에서 중요한 역할을 맡았고, 창 관리에는 Metacity가 널리 사용되었다. 상단과 하단에 배치된 패널, 응용 프로그램 메뉴, 창 목록과 알림 영역은 GNOME 2의 대표적인 사용 방식으로 자리 잡았다.[14]

GNOME 2 계열은 긴 기간 동안 수많은 Linux 배포판의 기본 그래픽 환경으로 사용되었다. 2.x 후반에는 네트워크, 이동식 장치, 멀티미디어, 화면 효과와 전원 관리 등 데스크톱에 필요한 기능들이 별도의 서비스 및 라이브러리와 통합되었다. 2011년 GNOME 3의 등장 후 기존 GNOME 2의 패널 중심 작업 방식을 유지하려는 수요는 MATE와 GNOME Flashback 등 다른 프로젝트에도 영향을 주었다. MATE는 GNOME 2 코드의 포크이고, GNOME Flashback은 GNOME 기술을 활용하여 전통적인 세션을 구성한다.[15]

GNOME 3.x와 GNOME Shell

GNOME 3.0은 2011년 4월 6일 공개되었으며, GNOME의 역사에서 가장 큰 사용자 인터페이스 전환 중 하나였다. GNOME Shell이 데스크톱의 기본 상호작용을 재설계했고, 사용자는 활동 개요에서 창과 작업 공간을 확인하고 프로그램을 검색·실행할 수 있게 되었다. GNOME 2의 상시 노출되는 창 목록과 전통적인 응용 프로그램 메뉴 중심 구조는 기본 인터페이스에서 뒤로 물러났다.[16]

GNOME 3는 GTK 3와 새로운 셸 기술을 중심으로 설계되었다. GNOME Shell과 Mutter의 결합은 화면 합성, 창 전환, 작업 공간과 시스템 UI의 관계를 밀접하게 만들었다. 이후 버전에서는 알림, 온라인 계정, 검색, 화면 잠금, 터치 입력, 디스플레이 설정 등 다양한 영역이 개편되었다. GNOME Shell 확장 기능도 등장하여 기본 셸의 동작과 화면 구성을 변경할 수 있는 경로를 제공했다.

GNOME 3에서 바뀐 작업 방식은 관련 프로젝트가 갈라지는 계기이기도 했다. Cinnamon은 GNOME Shell 3.2.1을 출발점으로 하는 포크로 발전했고, MATE는 GNOME 2의 기존 인터페이스와 코드 계보를 이어갔다. 이와 같은 프로젝트는 GNOME이 제공한 라이브러리 또는 기술을 일부 공유하더라도 현재의 GNOME Shell 자체와 동일한 데스크톱 환경은 아니다.[17]

GNOME 3의 중기와 후기

GNOME 3의 변화는 2011년의 새로운 셸에 그치지 않았다. GNOME 3.10(2013년 9월)은 Wayland 세션을 실험적으로 지원하여 개발자들이 GNOME Shell과 GTK 응용 프로그램을 새로운 디스플레이 프로토콜에서 시험할 수 있게 했다. 당시의 Wayland 세션은 시험 환경으로 안내되었으며, 향후 여러 배포판이 기본 세션으로 전환하는 과정과는 구별된다.[18]

GNOME 3.16(2015년 3월)은 알림 시스템을 재정비하고 Wayland 입력 지원을 확장했다. 이 릴리스의 개발자 자료에는 배포판과 독립적으로 응용 프로그램을 배포하는 XDG App의 초기 개발도 소개되었다. 이 프로젝트는 훗날 Flatpak으로 발전하여 GNOME의 앱 개발 및 설치 방식에 중요한 영향을 주었다.[19]

후기의 GNOME 3.x에서는 고해상도 디스플레이, 셸 성능, 설정과 잠금 화면, 알림 및 검색을 지속적으로 개선했다. GNOME 3.36(2020년 3월)은 로그인·잠금 경험과 시스템 대화상자의 디자인을 크게 정비했다. GNOME 3.38(2020년 9월)은 3.x 계열의 마지막 주요 안정 릴리스로, 다음의 GNOME 40과 새로운 버전 체계로 이어졌다.[20][21]

GNOME 40과 인터페이스 개편

2021년 3월 공개된 GNOME 40은 GNOME 3.38에 이어 등장했으며, 기존의 3.x 버전 번호 대신 40부터 증가하는 번호 체계를 사용했다. 동시에 활동 개요의 배치가 크게 바뀌었다. 작업 공간이 가로 방향으로 정렬되고 화면 아래에 Dash가 표시되면서 창과 작업 공간을 탐색하는 흐름이 재구성되었다. 터치패드 제스처, 검색, 응용 프로그램 격자도 이 구조에 맞춰 동작하도록 정비되었다.[22]

40대 버전의 GNOME은 새로운 외형만 도입한 것이 아니라 GTK 4와 libadwaita를 중심으로 응용 프로그램의 디자인 및 개발 기반을 전환하는 시기이기도 했다. libadwaita는 GNOME의 디자인 원칙을 구현하는 위젯과 적응형 레이아웃을 제공하여, 창 크기와 입력 방식이 달라져도 일관된 인터페이스를 구성하도록 돕는다. 따라서 GNOME Shell의 버전 변화와 각 응용 프로그램의 GTK·libadwaita 전환은 함께 진행되면서도 서로 독립적으로 관리되는 과정이다.[23]

GNOME 42의 GTK 4·libadwaita 전환

2022년 3월 발표된 GNOME 42는 응용 프로그램 전체에서 어두운 스타일을 요청하는 공통 환경 설정과 통합 화면 캡처·녹화 인터페이스를 제공했다. 화면을 캡처하거나 영역을 선택하고 동영상을 녹화하는 기능을 하나의 GNOME Shell 인터페이스에 연결했다. 기본 앱에는 Text Editor와 Console이 추가되었고, Settings·Calendar·Software·Contacts 등 많은 앱을 GTK 4와 libadwaita로 이식했다. 이때부터 GNOME 플랫폼의 시각적 일관성과 적응형 UI는 GTK 4와 libadwaita를 함께 이용하는 방향으로 발전했다.[24]

GNOME 43과 GNOME 44

GNOME 43(2022년 9월)은 상단 바의 시스템 상태 메뉴를 새 빠른 설정(Quick Settings) 인터페이스로 교체했다. 네트워크와 Bluetooth, 오디오 및 스타일 설정 등에 더욱 직접적으로 접근할 수 있게 되었고, Files는 GTK 4 기반의 인터페이스로 개편되었다. GNOME 44(2023년 3월)는 파일 선택 대화상자에 격자 보기를 도입하여 이미지 축소판으로 파일을 선택할 수 있게 했으며, 빠른 설정과 Software, 백그라운드 Flatpak 앱 표시 기능을 개선했다.[25][26]

GNOME 45와 GNOME 46

2023년 9월 공개된 GNOME 45에서는 상단 바의 고정된 활동(Activities) 문구가 현재 작업 공간을 나타내는 동적 표시기로 변경되었다. 이전의 응용 프로그램 메뉴는 제거되었고, 검색 성능과 입력 반응이 개선되었다. GNOME Shell은 새로운 카메라 사용 표시기도 제공했으며, 이 표시기는 PipeWire를 이용하는 카메라 접근에 적용되므로 모든 카메라 사용 경로를 일반화한 것은 아니다.[27]

GNOME 46(2024년 3월)은 Files의 검색과 파일 전송 표시, 원격 데스크톱의 원격 로그인 기능 및 시스템 설정을 개선했다. 로컬 로그인 세션의 화면을 원격으로 공유하는 일과 로그인하지 않은 사용자에게 원격 세션을 제공하는 일은 서로 다른 사용 사례다. 이 기능의 실제 제공 범위는 배포판, 인증 방법, 원격 데스크톱 서비스 및 네트워크 정책에 따라 달라진다.[28]

GNOME 47과 GNOME 48

2024년 9월 공개된 GNOME 47에는 시스템 전반에서 사용할 강조색(Accent Color) 선택 기능이 도입되었다. Settings의 모양 설정에서 강조색을 선택하면 이를 따르는 앱과 시스템 인터페이스가 색을 반영할 수 있다. GTK 렌더링과 좁은 화면에서의 대화상자 레이아웃도 개선되었고, 원격 로그인 연결이 끊겨도 세션 상태를 유지하는 기능이 추가되었다.[29]

GNOME 48(2025년 3월)에서는 같은 응용 프로그램의 알림을 하나의 묶음으로 표시하는 알림 스태킹이 도입되었다. 여러 앱의 알림이 쌓일 때 메시지 목록이 과도하게 길어지는 현상을 줄이고, 사용자가 필요하면 묶음을 펼쳐 개별 내용을 확인할 수 있도록 했다. 그 밖에도 렌더링과 성능, 시스템 설정 및 응용 프로그램 전반에서 개선이 이어졌다.[30]

GNOME 49

GNOME 49는 2025년 9월 17일 공개되었다. 이 버전에서는 기존 동영상 재생기 Totem의 자리를 Showtime이, 문서 뷰어 Evince의 자리를 Papers가 기본 앱으로 이어받았다. Papers는 Evince의 코드에서 출발해 GTK 4와 libadwaita 기반으로 현대화한 프로젝트다. Software에서는 큰 Flatpak 저장소 메타데이터를 처리할 때 메모리 사용량과 속도가 개선되었고, HDR 배경 화면과 앱별 인터페이스도 발전했다.[31]

배포판 개발자에게 중요한 변경으로 GNOME 49는 GNOME Shell, Mutter, GDM, GNOME Session의 독립적인 X11 세션을 기본 빌드에서 비활성화했다. 일부 모듈에서는 빌드 옵션으로 다시 활성화할 수 있었으나, 기존 X11 앱을 Wayland 세션에서 실행하는 Xwayland와는 별개의 문제다. 이때 GNOME Session은 자체 서비스 관리자를 제거하고 systemd 사용자 서비스의 활용을 강화했다.[32]

GNOME 50

GNOME 50, 코드명 Tokyo는 2026년 3월 18일 공개되었다. 이 릴리스에서는 보호자 통제 기능에 화면 이용 시간 제한과 취침 시간 설정이 추가되었고, 접근성 설정에는 애니메이션을 줄이는 Reduced Motion 옵션이 도입되었다. Orca 화면 읽기 프로그램도 설정 인터페이스, 언어 전환과 점자 지원 등에서 개선되었다.[33]

화면 출력 분야에서는 가변 주사율(VRR), 분수 배율과 NVIDIA 드라이버의 프레임 처리에 관한 개선이 이루어졌다. Wayland 색상 관리 프로토콜과 HDR 화면 공유 기능도 확장되었으며, GNOME Remote Desktop에는 하드웨어 가속 인코딩과 원격 세션 지원 개선이 포함되었다. Files의 메모리 사용과 축소판 처리, 문서 뷰어의 주석 기능, Calendar의 일정 관리 등 기본 응용 프로그램에도 여러 변경이 이루어졌다. 이 시기 GNOME의 기본 데스크톱 기술은 Wayland를 중심으로 전개되며, 종전의 X11 프로그램은 Xwayland 호환 계층으로 사용할 수 있다.[34]

GNOME 51

GNOME 51, 코드명 A Coruña는 2026년 9월 16일 발표되었다. Mutter의 프레임 스케줄링과 화면 캡처 경로가 개선되어 그래픽 애니메이션 및 녹화 작업에서 불필요한 처리를 줄였고, 모니터 밝기 상태를 재부팅이나 HDR 전환 이후에도 유지하도록 개선했다. 오래된 NVIDIA 전용 드라이버 인터페이스를 제거하고 최신 표준 그래픽 인터페이스를 사용하는 방향도 이 릴리스의 주요 변화에 포함된다.[35]

Settings에는 화면 자동 회전, 외부 마우스 연결 시 터치패드 제어, DNS 검색 도메인 설정과 지문 등록 인터페이스 변경 등이 포함되었다. Files는 다중 파일 끌어놓기, 선택 상태와 큰 디렉터리 처리의 반응성을 개선했고, Software는 지원이 끝난 응용 프로그램에 대한 안내와 Flatpak 파일 권한 표시를 확장했다. Calendar, Web, 이미지 뷰어와 접근성 도구도 개선되었다. 개발 플랫폼에는 GTK 4.23과 libadwaita 1.10이 포함되어 UI 렌더링과 적응형 구성 요소에 대한 작업이 이어졌다.[36][37]

GNOME 51의 개발 기술

2026년 9월의 GNOME 51 개발자 릴리스에는 GTK 4.23과 libadwaita 1.10이 포함된다. GTK는 SVG 기반 콘텐츠의 네이티브 렌더링, 분수 배율에서의 픽셀 경계 정렬, 목록 및 CSS 관련 기능을 개선했다. libadwaita는 GObject 속성을 CSS 클래스에 연결하는 기능, 사이드바 위젯의 기능 확장과 적응형 미리 보기를 개선했다. 데스크톱 전체의 GNOME 버전과 개별 UI 라이브러리의 버전은 동일한 숫자 체계가 아니며, 서로 다른 모듈별 변경 기록으로 관리된다.[38]

설계 철학

단순성과 일관성

GNOME의 현대적인 인터페이스는 사용자가 현재 작업에 집중할 수 있도록 상시 노출되는 조작 요소를 줄이고, 필요한 기능을 검색과 문맥에 맞는 메뉴로 제공하려는 설계에 기초한다. 여러 개의 제어 패널과 독립적인 작업 표시줄을 기본으로 제공하는 대신, 상단 바와 활동 개요를 공통 진입점으로 활용한다. 이는 기능 자체를 없애려는 목적이라기보다 기능의 배치와 발견 방식을 일관되게 만드는 접근이다.[39]

접근성과 국제화

GNOME은 키보드만으로 조작하는 방법, 화면 읽기, 확대, 높은 대비, 자막과 시각 효과 조절 같은 접근성 기술을 데스크톱의 중요한 기능으로 취급한다. 보조 기술과 응용 프로그램 사이에는 접근성 인터페이스가 사용되며, Orca는 텍스트와 화면의 상태를 음성 및 점자 출력으로 전달한다. 다국어 번역, 입력기, 날짜와 숫자의 지역 형식도 데스크톱과 응용 프로그램 전체에 걸쳐 적용된다.[40][41]

자유 소프트웨어와 공개 개발

프로젝트는 소스 코드 공개, 자유로운 수정·재배포, 공개 토론과 기여를 중요한 원칙으로 유지한다. 디자인 문서와 개발자 인터페이스는 공개되어 있으며, 새로운 UI 방향과 기술 변경은 개별 구성 요소의 개발 저장소 및 공동체 채널에서 논의된다. GNOME Foundation은 이 활동을 지원하지만, 모든 GNOME 소프트웨어가 하나의 저장소나 하나의 라이선스로 배포되는 것은 아니다.[42]

Human Interface Guidelines와 적응형 디자인

GNOME은 Human Interface Guidelines라는 공개 디자인 지침을 유지한다. 이 지침은 사용자의 작업 목표를 중심에 두고, 조작 부담을 줄이며, 자주 쓰는 기능에 쉽게 접근하도록 하는 디자인 원칙을 설명한다. 앱 개발자는 화면을 여러 창으로 나누기보다 하나의 창 안에서 탐색할 수 있도록 헤더 바, 보기 전환기, 사이드바와 대화상자를 구성할 수 있다.[43][44]

적응형 디자인(Adaptive Design)은 창 너비와 입력 장치에 따라 동일한 앱의 레이아웃을 조정하는 방식이다. 예를 들어 넓은 창에서는 측면 사이드바를 사용하고 좁은 화면에서는 별도의 보기로 전환할 수 있다. GNOME 지침은 일반 데스크톱 앱이 1024×600 픽셀 화면을 고려하도록 하고, 전화기 폼 팩터를 지원하는 앱은 더 좁은 영역도 고려하도록 권장한다. 이러한 권장 크기는 GNOME Shell 전체가 모든 기기에서 동일하게 작동한다는 보증이 아니라 앱 개발에 관한 지침이다.[45]

접근성 아키텍처

GNOME의 보조 기술은 AT-SPI를 통해 응용 프로그램에서 제공하는 접근성 객체와 상호작용한다. 화면 읽기 프로그램 Orca는 객체의 역할, 이름, 상태와 텍스트를 읽어 음성 또는 점자 출력으로 전달할 수 있다. GTK 4와 같은 UI 도구 모음은 접근성 정보를 노출하고, Orca 같은 응용 프로그램이 이를 이용한다. 시스템의 접근성 기능에는 화면 확대, 큰 글자, 고대비 테마, 화면 키보드, 키보드 탐색과 애니메이션 줄이기 등이 포함된다.[46][47][48]

시스템 구조

GNOME Shell

GNOME Shell은 상단 바, 활동 개요, 응용 프로그램 격자, 검색, 시스템 상태 메뉴, 알림과 작업 공간 인터페이스를 담당하는 데스크톱 셸이다. 개별 응용 프로그램이 자기 창 안의 인터페이스를 렌더링하는 것과 달리, GNOME Shell은 사용자 세션 전체의 창과 입력 상태를 보여 주고 조작한다. 셸 로직은 JavaScript와 GJS를 통해 여러 네이티브 GNOME 라이브러리를 이용하며, 화면 출력과 창 관리는 Mutter와 긴밀하게 연결된다.

Mutter

Mutter는 GNOME의 창 관리자이자 화면 합성기다. 창의 위치와 크기, 입력 초점, 작업 공간, 화면 출력과 모니터 정보를 관리한다. X11 기반 시대에는 창 관리자 및 합성기로 사용되었고, Wayland 세션에서는 클라이언트 화면을 합성하여 디스플레이 서버에 해당하는 역할도 수행한다. 그래픽 처리 성능, 화면 동기화, VRR, 분수 배율과 다중 모니터 동작은 Mutter의 구현과 깊게 연관된다.[49]

GDM과 GNOME Session

GDM(GNOME Display Manager)은 그래픽 로그인 화면에서 사용자와 세션을 선택하고 로그인 절차를 연결하는 디스플레이 관리자다. 로그인 후에는 GNOME Session과 관련 구성 요소가 세션의 시작·종료 및 필요한 서비스의 수명 주기를 관리한다. 로그인 관리, 실제 사용자 세션, 화면 잠금과 시스템 전원 제어는 연관되어 있지만 동일한 단일 프로그램은 아니다. 현대 GNOME 릴리스에서는 systemd 사용자 서비스와의 통합도 세션 동작에서 중요한 부분이다.[50]

설정 및 백그라운드 서비스

GNOME Settings는 디스플레이, 네트워크, 입력 장치, 사용자, 접근성, 전원과 개인 정보 관련 설정을 제공하는 사용자 인터페이스다. 반면 GNOME Settings Daemon 및 여러 백그라운드 서비스는 미디어 키, 입력 장치 및 설정 적용과 같은 기능을 사용자 세션에서 지속적으로 처리한다. 설정 값의 저장에는 GSettings와 dconf 등이 사용되며, 실제 장치나 서비스 제어에는 운영체제의 하위 시스템이 결합된다. 따라서 설정 앱의 화면과 그 설정을 적용하는 서비스는 구분된다.

Wayland와 Xwayland

Wayland는 현대 GNOME의 주요 디스플레이 프로토콜이다. Wayland에서는 Mutter가 합성기로서 화면 출력과 입력의 중심에 있으며, 클라이언트는 프로토콜을 통해 필요한 화면 자원을 주고받는다. 기존 X11 응용 프로그램은 Xwayland를 이용해 Wayland 세션에서 실행할 수 있다. 그러나 Xwayland에서 X11 프로그램을 실행할 수 있다는 사실과 GNOME이 독립적인 X11 데스크톱 세션을 제공하는 것은 서로 다르다. 화면 녹화, 원격 제어와 전역 단축키 같은 기능은 Wayland의 권한 및 포털 체계와 함께 고려해야 한다.[51][52]

프로그램 간 통신과 데스크톱 통합

GNOME의 구성 요소는 D-Bus와 각종 데스크톱 표준을 통해 상태와 기능을 교환한다. 예를 들어 파일 관리자와 다른 응용 프로그램은 이동식 장치, 파일 열기 대화상자, 알림 및 온라인 계정 서비스와 연결될 수 있다. Flatpak과 같은 샌드박스 응용 프로그램은 xdg-desktop-portal을 통해 파일 선택, 화면 공유처럼 권한이 필요한 기능을 요청한다. 이러한 통합은 GNOME의 모든 기능이 한 프로세스에 구현되어야 한다는 뜻이 아니라, 여러 독립 구성 요소가 공통 규약을 사용한다는 의미다.

그래픽 파이프라인과 입력 처리

GNOME에서는 응용 프로그램의 그래픽 콘텐츠, Mutter 합성기, 그래픽 드라이버 및 물리적인 디스플레이 장치가 연결되어 화면이 출력된다. GTK 앱은 GTK와 GDK 등 그래픽 계층을 통해 UI를 렌더링하고, Mutter는 다수의 앱이 제공하는 표면을 하나의 출력 화면으로 합성한다. 키보드, 마우스와 터치패드의 입력은 운영체제와 입력 처리 계층을 거쳐 현재 포커스를 가진 응용 프로그램 또는 GNOME Shell로 전달된다. Wayland에서 화면 공유와 전역 입력 접근은 별도의 인터페이스와 권한 체계를 필요로 하므로 전통적인 X11의 접근 방식과 차이가 있다.[53][54]

네트워크와 오디오 및 전원 통합

GNOME Shell과 Settings는 모든 장치 드라이버를 직접 구현하지 않는다. 네트워크 연결과 무선 설정에는 NetworkManager, 모바일 광대역 통신에는 ModemManager, 배터리 및 전원 장치 상태에는 UPower, 오디오 및 영상 처리에는 PipeWire 등과 같은 하위 서비스를 활용한다. GNOME은 이들 서비스와 D-Bus 등으로 통신하여 상태를 표시하고 필요한 설정을 변경한다. 관련 기술은 GNOME만을 위한 전용 서비스가 아니며 다른 데스크톱 환경에서도 공유될 수 있다.[55]

파일 색인과 사용자 데이터

GNOME 플랫폼은 파일 탐색 이외에도 LocalSearch를 통한 파일 이름과 내용의 색인, Evolution Data Server를 통한 연락처와 일정 데이터 공유, libsecret 및 키링 서비스를 통한 암호·인증 토큰 저장 등 다양한 사용자 서비스를 제공한다. GSettings와 dconf는 일반 설정 값을 저장하는 계층이며, 비밀 정보를 보관하는 서비스는 기능과 권한에서 구분된다. 이들 구성 요소는 서로 다른 프로그램에서 재사용되므로 데스크톱 셸과 동일한 프로세스로 동작하지 않아도 된다.[56]

원격 데스크톱과 화면 공유

GNOME Remote Desktop은 현재 사용자 화면의 원격 공유와 지원되는 환경에서 별도의 원격 로그인 기능을 제공한다. GNOME 47은 원격 로그인 연결이 끊어진 뒤에도 세션을 유지할 수 있도록 개선했고, GNOME 50은 하드웨어 가속 영상 인코딩, HiDPI 처리, 원격 카메라 전달과 인증 및 세션 관리 기능을 확대했다. 화면 공유에서는 PipeWire를 통한 화면 내용 전달이 중요한 역할을 하며, 실제 프로토콜과 하드웨어 기능에 따라 지원 범위가 달라진다.[57][58]

권한과 샌드박스 경계

일반 사용자 권한으로 실행되는 앱이 시스템 관리자 작업을 수행하려면 polkit과 같은 권한 승인 서비스를 활용할 수 있다. Flatpak 등으로 격리된 앱은 파일 선택, 화면 캡처, 원격 공유 및 백그라운드 실행처럼 권한을 필요로 하는 기능에 접근할 때 xdg-desktop-portal을 이용할 수 있다. 포털은 앱이 필요한 시스템 자원을 직접 무제한으로 읽는 대신 사용자의 동의와 시스템 정책에 따라 접근을 중개한다.[59]

사용자 인터페이스

상단 바와 빠른 설정

GNOME Shell의 상단 바에는 현재 작업 상태와 날짜·시간, 시스템 상태에 접근하는 영역이 배치된다. 사용자는 네트워크, 사운드, 밝기, 전원 및 접근성 등 자주 쓰는 설정에 빠르게 접근하고 알림이나 일정을 확인할 수 있다. 구체적인 아이콘과 배치는 GNOME 버전, 화면 크기 및 배포판이 적용한 변경에 따라 달라질 수 있다.[60]

활동 개요와 응용 프로그램 검색

활동 개요(Activities Overview)는 실행 중인 창과 작업 공간, 즐겨찾는 응용 프로그램을 한눈에 확인하는 공간이다. 사용자는 Super 키로 개요를 열고 프로그램 이름이나 검색어를 입력해 앱과 여러 검색 결과를 찾을 수 있다. 응용 프로그램 격자는 설치된 프로그램을 탐색하는 용도로 사용되고, Dash는 즐겨찾기와 실행 중인 앱 사이를 오가는 빠른 실행 영역을 제공한다.[61]

창과 작업 공간

GNOME은 여러 응용 프로그램 창을 작업 공간에 나누어 배치할 수 있게 한다. 사용자는 창을 최대화하거나 나란히 정렬하고, 활동 개요에서 다른 작업 공간으로 이동할 수 있다. GNOME 40부터는 가로 방향의 작업 공간 개요가 대표적인 인터페이스가 되었으며, 키보드와 터치패드를 통한 전환이 함께 지원된다. 작업 공간은 파일 시스템의 폴더나 독립된 사용자 세션이 아니라 동일한 로그인 환경에서 창을 분류하는 단위다.[62]

알림과 일정

응용 프로그램과 시스템 서비스가 보내는 알림은 사용자의 현재 작업을 완전히 가리지 않도록 화면의 알림 UI와 메시지 목록에 표시된다. 상단 바의 달력 영역은 날짜와 일정 확인에 사용되며, 알림을 클릭해 관련 응용 프로그램으로 이동할 수도 있다. 알림 표시 범위와 방해 금지 상태는 시스템 설정 및 현재 세션 상태에 따라 달라진다.

잠금 화면과 세션 종료

화면을 잠그면 실행 중인 사용자 세션을 유지하면서 접근을 제한할 수 있다. 로그아웃은 세션과 소속 프로세스를 정리하는 동작이며, 절전·다시 시작·시스템 종료는 운영체제의 전원 관리 체계와 연결된다. GNOME은 이러한 기능을 사용자 인터페이스에 통합하지만 실제 인증·장치 관리·전원 전환은 하위 시스템과 협력한다.

확장 기능과 사용자 지정

GNOME Shell은 확장 기능을 통해 패널, 창 탐색, 표시 정보와 입력 동작의 일부를 바꿀 수 있다. 확장 기능은 GNOME Shell 내부 인터페이스를 사용하므로 셸 버전이 바뀌면 호환성을 확인하거나 코드를 수정해야 할 수 있다. 응용 프로그램 테마와 아이콘, GNOME Shell의 확장 기능 및 배포판이 제공하는 기본 배치는 서로 다른 변경 범위다. 예를 들어 Ubuntu의 도크와 기본 확장 구성은 GNOME 전체 프로젝트의 기본 인터페이스와 동일하지 않을 수 있다.

키보드 조작과 터치패드

기본 GNOME Shell에서 Super 키는 활동 개요를 열고, 개요에서 검색어를 입력하면 응용 프로그램과 관련 콘텐츠를 검색할 수 있다. Alt+Tab은 창 전환에 사용하며 Print Screen 키는 GNOME 42부터 통합 캡처 인터페이스와 연결된다. 터치패드의 여러 손가락 제스처는 하드웨어와 세션 구성에 따라 개요 및 작업 공간 전환에 활용된다. 이들 단축키는 배포판과 사용자 설정에 따라 조정될 수 있다.[63][64]

GNOME Shell 확장 기능

GNOME Shell Extensions는 GNOME Shell의 레이아웃과 동작을 변경하는 확장을 배포하는 공식 웹사이트다. 확장 기능은 상단 바의 표시기를 추가하는 것부터 도크·메뉴·창 탐색 방식을 변경하는 것까지 다양한 영역을 제어한다. 개별 확장은 GNOME Shell 내부 API와 상호작용하므로 버전별 호환성 검사가 중요하며, 유지보수는 원칙적으로 확장 기능의 개발자가 담당한다. GNOME이 공식적으로 제공하는 기본 UI와 배포판에서 사전 설치한 확장 구성은 구별해야 한다.[65]

기본 응용 프로그램과 도구

Files와 저장소 관리

Files(이전부터 Nautilus라는 이름으로도 알려짐)는 폴더 탐색, 파일 복사와 이동, 삭제, 이름 변경 및 파일 검색 등 일상적인 파일 작업을 담당한다. 파일 관리 기능은 로컬 파일 시스템뿐 아니라 GVfs 등의 기술을 통해 네트워크 저장소와 외부 장치에 접근하는 작업으로 확장된다. 디스크 파티션과 저장 장치 관리에는 별도의 Disks 응용 프로그램을 사용할 수 있다.

Settings와 Software

Settings는 시스템의 주요 기능을 분류별로 제어하고, Software는 응용 프로그램 검색과 설치·업데이트를 위한 그래픽 인터페이스를 제공한다. Software가 다루는 패키지 형식 및 저장소는 배포판의 설정과 통합 방식에 따라 달라진다. 일부 시스템에서는 배포판 패키지와 Flatpak을 함께 다루지만, GNOME 자체가 Linux 배포판의 패키지 관리자나 저장소 정책을 일괄적으로 결정하지는 않는다.

Web과 생산성 응용 프로그램

Web(Epiphany)은 WebKitGTK 기반의 GNOME 웹 브라우저다. 이 밖에 Calendar, Contacts, Clocks, Maps, Weather, Calculator, Text Editor, Document Viewer, Image Viewer 등 여러 응용 프로그램이 GNOME의 디자인과 개발 기술을 공유한다. 실제 기본 설치 항목은 배포판마다 달라서 모든 GNOME 설치에 해당 프로그램이 전부 포함되지는 않는다.[66]

개발자 및 시스템 도구

GNOME Builder는 GNOME 플랫폼을 위한 통합 개발 환경이며, Console과 Terminal 계열 프로그램은 명령줄 작업에 사용된다. 시스템 자원 확인 및 성능 분석을 위한 도구와 Logs, Disk Usage Analyzer 등의 유틸리티도 GNOME 생태계에서 개발된다. 개발자 도구, 일반 사용자용 앱, 핵심 데스크톱 서비스는 릴리스나 설치 패키지에서 서로 다른 모듈로 취급된다.

GNOME 기본 응용 프로그램 목록

GNOME 프로젝트는 Apps for GNOME을 통해 여러 앱과 해당 프로그램의 기능을 안내한다. 설치된 패키지는 배포판마다 다를 수 있으며, 아래 목록은 GNOME 생태계의 대표 소프트웨어를 나타낸다.

분야응용 프로그램기능
파일Files (Nautilus)파일·폴더·네트워크 저장소 탐색
설정Settings데스크톱 및 장치 설정
소프트웨어Software응용 프로그램 설치·업데이트
웹Web (Epiphany)WebKitGTK 기반 브라우저
문서Papers문서 읽기·검색·주석
동영상Video Player (Showtime)영상과 자막 재생
이미지Image Viewer (Loupe)이미지 보기·메타데이터 확인
일정Calendar캘린더와 일정 관리
연락처Contacts주소록 관리
지도Maps지리 정보와 장소 탐색
텍스트Text Editor일반 문서 편집
터미널Console명령줄 실행
가상화Boxes가상 머신 실행
원격 연결Connections원격 컴퓨터 연결
개발BuilderGNOME 앱 개발 환경

GNOME 49에서 Papers와 Showtime이 기존의 Evince와 Totem을 기본 프로그램의 자리를 이어받았다는 사실은 이전 프로그램이 모든 Linux 배포판에서 즉시 제거되었다는 의미는 아니다. 배포판의 기본 앱 구성과 프로그램의 소스 프로젝트 상태는 구별해야 한다.[67]

GNOME Circle

GNOME Circle은 GNOME 플랫폼을 이용하는 독립 개발자의 앱과 라이브러리를 소개하고 지원하는 프로그램이다. 참여 프로젝트는 GNOME의 디자인과 기술을 활용하지만 모두 GNOME Shell 또는 데스크톱의 핵심 구성 요소는 아니다. Circle에 포함된다는 사실과 배포판에서 기본 설치한다는 사실도 동일하지 않다.[68]

응용 프로그램 개발 플랫폼

GTK와 GLib

GTK는 창, 버튼, 목록, 입력 위젯 등 그래픽 응용 프로그램 인터페이스를 구성하기 위한 도구 모음이다. GLib는 자료구조, 이벤트 루프, 비동기 처리, 파일·프로세스와 시스템 통합에 관한 기반 기능을 제공하고, GObject는 객체와 타입 시스템을 구성한다. 이러한 라이브러리는 GNOME 프로젝트에서 널리 사용되지만 GNOME Shell을 설치해야만 사용할 수 있는 것은 아니다.[69]

libadwaita와 디자인 지침

libadwaita는 GTK 위에 GNOME의 표준 사용자 인터페이스 구성 요소, 테마 통합과 적응형 레이아웃을 제공하는 라이브러리다. GNOME의 Human Interface Guidelines(HIG)는 탐색, 창 구성, 입력, 아이콘, 접근성과 응용 프로그램의 동작 원칙을 정의한다. GTK 자체와 libadwaita는 별개이므로 GTK로 개발한 모든 응용 프로그램이 반드시 libadwaita를 사용해야 하는 것은 아니다.[70]

프로그래밍 언어와 개발 도구

GNOME의 주요 기반 라이브러리에는 C가 널리 사용되며, 여러 응용 프로그램은 C, C++, Rust, JavaScript, Python, Vala 등 서로 다른 언어로 개발된다. GObject Introspection은 언어 바인딩이 라이브러리의 타입과 인터페이스를 이해하도록 도와준다. GNOME Builder, Meson, Flatpak 기반 개발 환경과 각종 디버깅·프로파일링 도구는 응용 프로그램 개발과 배포를 지원한다. 사용 언어는 전체 프로젝트에 하나로 고정되지 않고 개별 구성 요소마다 달라진다.[71]

Flatpak과 앱 배포

Flatpak은 Linux 데스크톱 응용 프로그램을 샌드박스와 런타임 단위로 배포할 수 있게 하는 기술이며, GNOME 생태계의 많은 응용 프로그램이 이를 활용한다. Flatpak 런타임과 포털은 응용 프로그램이 시스템 기능에 접근하는 경로를 제공하고, Flathub과 같은 저장소는 앱 배포 채널로 사용된다. 다만 GNOME을 설치하려면 반드시 Flatpak을 사용해야 하는 것은 아니며, 각 Linux 배포판은 자체 패키지 저장소에서 GNOME 구성 요소를 제공할 수 있다.

GLib·GObject·GIO와 언어 바인딩

GNOME 개발 플랫폼의 기본에는 자료구조, 이벤트 루프 및 유틸리티 기능을 제공하는 GLib, 객체의 타입·속성·시그널 체계를 제공하는 GObject, 파일·네트워크와 비동기 I/O 및 D-Bus 통신 기능을 제공하는 GIO가 있다. GNOME 라이브러리는 C 기반으로 작성된 경우가 많지만, GObject Introspection은 API 및 ABI 정보를 기계가 읽을 수 있는 형태로 제공하여 여러 언어에서 호출할 수 있게 한다. 공식 문서에는 C++, JavaScript, Python, Rust, Vala 등 다양한 응용 프로그램 개발 언어가 소개되어 있다.[72][73]

멀티미디어와 렌더링 라이브러리

GTK와 GNOME 응용 프로그램은 역할에 따라 Pango의 텍스트 배치, Cairo의 2차원 그래픽, GStreamer의 오디오·영상 처리, WebKitGTK의 웹 렌더링 및 GFile의 파일 시스템 추상화를 이용할 수 있다. 이들 라이브러리를 사용한다고 해서 프로그램이 GNOME Shell에 종속되는 것은 아니다. 예를 들어 WebKitGTK를 이용해 브라우저를 개발하는 일과 GNOME Shell이 사용하는 화면 합성 기술은 서로 다른 기술 계층에 해당한다.[74]

애플리케이션 식별자와 데스크톱 파일

GNOME 앱은 일반적으로 org.gnome.TextEditor와 같은 역방향 도메인 형태의 Application ID를 이용한다. 이 이름은 앱 인스턴스 식별, D-Bus 통신, GSettings 스키마, 데스크톱 실행 항목, Flatpak 패키지 등에 연결된다. freedesktop.org 표준의 .desktop 파일은 앱 이름·아이콘·실행 명령·지원 파일 형식 등을 기술하며 GNOME Shell의 응용 프로그램 격자에 등록할 때 사용된다. 앱 식별자와 배포용 메타데이터를 일관되게 유지하는 것이 여러 데스크톱 환경에서의 통합에 도움이 된다.[75][76]

개발·디버깅·성능 분석

GNOME Builder는 프로젝트 생성과 편집, 빌드, 디버깅, Flatpak 실행을 통합한다. 여러 GNOME 프로젝트는 Meson 기반 빌드 체계를 사용하며, GTK Inspector로 위젯의 계층·속성·CSS·접근성 정보를 실시간으로 조사할 수 있다. 시스템 전반의 실행 성능을 평가하는 Sysprof는 Linux의 성능 분석 기능을 사용해 여러 프로세스의 병목을 파악하도록 돕는다. 개발자는 화면이 느려지는 원인이 자신의 앱, GTK 렌더링, 셸 또는 다른 백그라운드 서비스에 있는지 구분해야 한다.[77][78][79]

Flatpak 런타임 및 SDK

GNOME은 Flatpak을 권장 배포 기술로 통합한다. org.gnome.Platform은 GNOME 앱의 공통 실행 의존성을 포함하는 런타임이며, org.gnome.Sdk는 개발과 빌드에 필요한 라이브러리 및 도구를 추가한다. GNOME의 Flatpak 런타임은 GNOME 데스크톱 전체를 구성하는 운영체제 이미지와 동일하지 않으며, 앱은 필요한 외부 라이브러리를 별도 번들로 포함할 수도 있다. GNOME Builder는 이 구조를 이용해 개발 환경과 앱 실행 환경 사이의 차이를 줄인다.[80]

릴리스와 배포

릴리스 주기와 버전 번호

GNOME의 주요 릴리스는 일반적으로 약 6개월 간격으로 발표된다. GNOME 1.x와 2.x, GNOME 3.x를 거쳐 2021년 GNOME 40 이후에는 40, 41, 42와 같이 정수 번호가 이어지는 체계를 사용한다. 주요 버전과 별개로 버그 수정 및 유지보수 릴리스가 제공될 수 있으며, 배포판이 어떤 버전을 안정 저장소에 포함하는지는 별도로 결정된다.[81][82]

주요 버전공개 시점대표적인 변화
GNOME 1.01999년 3월통합 자유 소프트웨어 데스크톱 공개
GNOME 2.02002년 6월GTK 2 기반 플랫폼과 사용성·접근성 개선
GNOME 3.02011년 4월GNOME Shell과 활동 개요 도입
GNOME 402021년 3월가로 작업 공간을 중심으로 한 활동 개요 개편
GNOME 492025년 9월독립 X11 세션 기본 비활성화 및 세션 기반 기술 정비
GNOME 502026년 3월접근성·보호자 통제·디스플레이 처리 개선
GNOME 512026년 9월Mutter 성능과 여러 기본 응용 프로그램 개선

배포판과 GNOME OS

GNOME은 Fedora, Ubuntu, Debian 및 기타 Linux 배포판에서 제공되며, 설치 방식과 기본 확장 기능은 배포판별로 차이가 있다. GNOME Project가 개발·검증에 활용하는 GNOME OS는 GNOME 구성 요소를 통합하여 시험하기 위한 운영체제 이미지다. 이를 일반 사용자를 위한 모든 Linux 배포판의 대체물로 이해하기보다 GNOME 개발과 테스트를 위한 환경으로 구분하는 편이 적절하다.[83]

플랫폼 및 하드웨어 지원

GNOME은 Linux 데스크톱과 노트북을 중심으로 널리 사용되며, 유닉스 계열 시스템에서 활용된 역사도 있다. 현대 GNOME의 실행 가능 여부는 CPU 아키텍처뿐 아니라 그래픽 스택, Wayland 합성기, 입력·장치 관리 서비스와 세션 의존성에 따라 달라진다. GNOME의 적응형 응용 프로그램은 좁은 화면 크기도 고려하여 설계될 수 있지만, 개별 앱이 휴대전화 화면에 맞는다는 사실이 완전한 GNOME Shell 데스크톱 전체가 모바일 운영체제로 제공된다는 뜻은 아니다.[84]

GNOME OS와 릴리스 빌드 시스템

GNOME OS는 GNOME 구성 요소의 통합과 시험을 위해 관리되는 운영체제 이미지다. 릴리스 팀의 gnome-build-meta는 GNOME OS 이미지, GNOME Flatpak 런타임, CI용 OCI 이미지의 빌드 메타데이터를 관리한다. 개발 문서에는 x86-64 및 AArch64 이미지, 시스템 업데이트와 개발용 확장에 관한 정보가 제공된다. GNOME OS는 일반 운영체제와 같은 설치와 실행이 가능하지만 최신 GNOME 개발 결과를 검증하는 목적이 강하며, 별도 Linux 배포판의 장기 지원 계약과 동일하게 취급하지 않는다.[85][86]

버전 관리와 릴리스 동결

GNOME의 안정 릴리스는 대체로 약 6개월 간격으로 발표되며, GNOME 40 이후에는 40, 41, 42처럼 주요 릴리스 번호를 정수로 증가시키는 체계를 사용한다. 안정판이 나오기 전 API·ABI, 기능, UI와 번역 문자열 변경에 대해 일정한 동결 기간을 두어 각 모듈을 안정화한다. 해당 시점의 안정판과 이전 안정판에 적용되는 수정 범위, 다음 개발 버전의 일정은 공식 릴리스 달력과 Release Planning에 설명되어 있다.[87]

관련 프로젝트와 계보

GNOME 2의 계승

MATE는 GNOME 2의 코드 계보를 이어받아 전통적인 패널, 메뉴 및 창 목록 중심의 사용 경험을 지속하기 위해 만들어진 데스크톱 환경이다. GNOME Flashback은 GNOME의 기존 기술과 구성 요소를 이용하여 GNOME 2와 비슷한 인터페이스를 제공하는 세션으로, MATE와 출발점 및 프로젝트 구성 방식이 다르다. GNOME Classic 또한 전통적인 조작 방식을 지향하는 GNOME 세션 유형이지만, 특정 시기의 GNOME 2를 그대로 실행하는 것과 같지는 않다.[88]

GNOME Shell에서 파생되거나 영향을 받은 환경

Cinnamon은 GNOME 3 시기의 GNOME Shell을 기반으로 시작한 뒤 자체 셸과 연관 프로젝트를 발전시킨 데스크톱 환경이다. Unity는 Ubuntu의 데스크톱 경험을 위해 GNOME 계열 라이브러리 및 응용 프로그램과 연동되는 별도의 사용자 인터페이스를 제공했고, Budgie와 Pantheon도 GTK와 GNOME 기술 생태계와 역사적인 관계가 있다. 다만 이 환경들을 모두 GNOME Shell의 직접적인 포크로 분류하는 것은 정확하지 않다.[89]

GNOME 및 관련 데스크톱 환경
GNOME주요 계열GNOME · GNOME Shell · GNOME Classic · GNOME Flashback
GNOME 2 계승코드 포크MATE
GNOME 3 / GNOME Shell셸 포크Cinnamon
GNOME 기술과 연계기술 공유·영향Unity · Budgie · Pantheon · Ximian Desktop · Java Desktop System

관련 데스크톱 환경의 기술적 관계

MATE는 GNOME 2의 코드에서 시작한 별도의 데스크톱 환경이고, Cinnamon은 GNOME Shell 3.x를 포크해 독자적인 창 관리자·파일 관리자 및 설정 서비스를 발전시킨 환경이다. GNOME Flashback은 GNOME 기술로 전통적인 패널 중심의 세션을 재구성하고, GNOME Classic은 GNOME Shell 확장 기반의 사용 경험을 제공한다. Unity, Budgie, Pantheon 등은 GNOME 기술이나 디자인과 관계가 있으나 이를 동일한 코드 포크로 분류하는 것은 적절하지 않다. GNOME 계보를 설명할 때는 직접 코드 계승과 라이브러리 공유, 배포판 통합의 차이를 함께 다루어야 한다.

GNOME Foundation과 공동체

GNOME Foundation은 프로젝트 공동체의 조직과 지속성을 지원하는 비영리 단체다. 이사회, 집행 책임자, 자문위원회와 재단 회원 등이 운영에 참여한다. 자문위원회는 후원 기업·조직의 의견을 전달하지만 이사회와 동일한 의사결정 기관은 아니다. 각 소프트웨어 모듈의 기술적 변경은 유지보수자 및 기여자의 코드 검토와 공개 논의를 통해 진행된다.[90]

기여, 지역화와 문서화

GNOME에는 코드 구현뿐 아니라 디자인, 접근성, 번역, 테스트, 문서 작성과 커뮤니티 지원에 참여하는 경로가 있다. Welcome to GNOME은 이러한 참여 활동을 안내한다. 번역 인프라인 Damned Lies는 앱과 구성 요소를 모듈 단위로 관리하며, 번역 작업은 PO 파일과 언어별 검토 절차를 통해 반영된다. GNOME GitLab과 프로젝트 핸드북은 소스 코드 및 개발 절차를 조사하는 출발점으로 사용할 수 있다.[91][92]

특징과 활용

GNOME의 주요 특징은 데스크톱 셸과 기본 응용 프로그램에 적용되는 비교적 일관된 디자인 지침, 사용자 검색과 작업 공간 중심의 작업 방식, 접근성 및 다국어 지원, 공개된 개발 플랫폼을 꼽을 수 있다. GTK와 libadwaita를 이용한 응용 프로그램은 GNOME의 시각적 규칙을 공유할 수 있고, 배포판은 GNOME Shell과 관련 서비스를 조합하여 고유한 사용자 경험을 제공할 수 있다.

사용자는 GNOME Shell 확장 기능과 여러 설정 도구를 사용하여 기본 UI를 조정할 수 있으나, GNOME이 제공하는 기본 인터페이스와 배포판에서 추가한 사용자 지정 기능은 서로 구별해야 한다. 또한 최신 릴리스의 그래픽 기능과 세션 의존성을 이용하려면 해당 기능을 갖춘 그래픽 드라이버와 운영체제 구성이 필요하다. GNOME은 자유 소프트웨어 데스크톱 가운데 하나의 선택지이며, 패널 중심의 전통적인 환경이나 다른 사용자 인터페이스가 필요한 경우에는 관련 데스크톱 환경을 별도로 선택할 수 있다.

  1. GNOME — About ↩
  2. The GNOME Desktop project — 1997년 최초 발표 ↩
  3. GNOME 3.0 Released ↩
  4. GNOME 40 Release Notes ↩
  5. GNOME Developer Documentation — Libraries ↩
  6. Mutter ↩
  7. GNOME — About ↩
  8. GNOME Foundation 설립 ↩
  9. The GNOME Desktop project — 최초 발표문 ↩
  10. GNOME — 프로젝트 역사 ↩
  11. GNOME 1.0 Released — GNOME Foundation ↩
  12. GNOME 1.2 발표 ↩
  13. GNOME Foundation 설립 발표 ↩
  14. GNOME 2.0 Released — GNOME Foundation ↩
  15. GNOME Flashback — GNOME Wiki Archive ↩
  16. GNOME 3.0 Released — GNOME Foundation ↩
  17. Cinnamon — 최초 변경 기록 ↩
  18. GNOME 3.10 Release Notes — Wayland ↩
  19. GNOME 3.16 Release Notes ↩
  20. GNOME 3.36 Release Notes ↩
  21. GNOME Release Calendar ↩
  22. GNOME 40 Release Notes ↩
  23. GNOME Developer Documentation — Libraries ↩
  24. GNOME 42 Release Notes ↩
  25. GNOME 43 Release Notes ↩
  26. GNOME 44 Release Notes ↩
  27. GNOME 45 Release Notes ↩
  28. GNOME 46 Release Notes ↩
  29. GNOME 47 Release Notes ↩
  30. GNOME 48 Release Notes ↩
  31. GNOME 49 Release Notes ↩
  32. GNOME 49 Developer Notes — For Distributions ↩
  33. GNOME 50 Release Notes ↩
  34. GNOME 50 Release Notes — Display Handling, Remote Desktop ↩
  35. GNOME 51 Release Notes ↩
  36. GNOME 51 Release Notes ↩
  37. GNOME 51 — What's New for Developers ↩
  38. GNOME 51 — What's New for Developers ↩
  39. GNOME Human Interface Guidelines ↩
  40. GNOME Help — Accessibility ↩
  41. GNOME 51 Release Notes — Accessibility ↩
  42. GNOME — About ↩
  43. GNOME HIG — Design Principles ↩
  44. GNOME HIG — Navigation ↩
  45. GNOME HIG — Scaling and Adaptiveness ↩
  46. Orca — Introduction ↩
  47. AT-SPI — Architecture ↩
  48. GNOME HIG — Accessibility ↩
  49. Mutter — 공식 프로젝트 ↩
  50. GNOME 49 — For Distributions ↩
  51. Wayland — Architecture ↩
  52. GNOME 49 — X11 Session ↩
  53. Mutter — Project ↩
  54. Wayland — Architecture ↩
  55. GNOME Developer Documentation — Platform Services ↩
  56. GNOME Developer Documentation — Services ↩
  57. GNOME 47 — Persistent Remote Desktop Sessions ↩
  58. GNOME 50 — Remote Desktop ↩
  59. GNOME Developer Documentation — Services and Portals ↩
  60. GNOME Help — Visual Overview ↩
  61. GNOME Help — Your Desktop ↩
  62. GNOME Help — Windows and Workspaces ↩
  63. GNOME 40 Release Notes ↩
  64. GNOME 42 Release Notes — Screenshot ↩
  65. GNOME Shell Extensions — About ↩
  66. GNOME Apps ↩
  67. GNOME 49 Release Notes ↩
  68. GNOME Circle — About ↩
  69. GNOME Developer Documentation — Libraries ↩
  70. GNOME Human Interface Guidelines ↩
  71. GNOME Developer Documentation ↩
  72. GNOME Developer Documentation — Libraries ↩
  73. GNOME Developer Documentation — Languages ↩
  74. GNOME Developer Documentation — Libraries ↩
  75. GNOME Developer Documentation — Application ID ↩
  76. Integrating with GNOME ↩
  77. GNOME Developer Documentation — Builder ↩
  78. GTK Inspector ↩
  79. Sysprof ↩
  80. GNOME Developer Documentation — Flatpak ↩
  81. GNOME 40 Release Notes ↩
  82. GNOME 51 Release Notes ↩
  83. GNOME 50 Release Notes — Getting GNOME ↩
  84. GNOME HIG — Scaling and Adaptiveness ↩
  85. GNOME Build Metadata — Overview ↩
  86. GNOME OS — Installation Guide ↩
  87. GNOME Project Handbook — Release Planning ↩
  88. GNOME Flashback — 프로젝트 설명 ↩
  89. Cinnamon — 변경 기록 ↩
  90. GNOME Foundation — Governance ↩
  91. Welcome to GNOME — Translation ↩
  92. Welcome to GNOME ↩