Kmscon

kmscon
개발자데이비드 헤르만
발표일2012년 3월 27일(14년 전)(2012-03-27)
안정화 버전
10.1.0 위키데이터에서 편집하기 / 2026년 10월 26일(12일 전)(2026년 10월 26일)
저장소github.com/kmscon/kmscon
프로그래밍 언어C
운영 체제리눅스
종류시스템 콘솔
라이선스ISC 라이선스
웹사이트www.freedesktop.org/wiki/Software/kmscon

Kmscon은 리눅스 커널에 내장된 리눅스 콘솔을 대체하기 위해 데이비드 헤르만이 만든 사용자 공간에서 실행되는 가상 콘솔이다. Kmscon은 출력을 위해 KMS 드라이버를 사용하며, 멀티시트 기능을 지원하고 국제화된 키보드 입력과 UTF-8 단말 출력을 지원한다. 입력 지원은 X 키보드 확장(XKB)을 사용하여 구현되었다. Kmscon의 개발은 2015년 3월에 중단되었다. 이후 2025년에 Aetf가 2011년부터 유지해 온 포크의 코드베이스를 채택하면서 프로젝트가 공식적으로 재개되었다. systemd-consoled라는 후속 프로젝트가 있었으나, 해당 프로젝트는 2015년 7월에 중단되었다.

특징

Kmscon은 리눅스 콘솔처럼 콘솔 인코딩에 제한받지 않고 유니코드 자체 전체 세트를 출력하는 것을 지원한다. 유일한 필수 의존성은 Udev이지만, 선택적으로 메사를 사용하여 콘솔의 하드웨어 가속을 구현하거나 Pango 라이브러리를 사용하여 폰트 렌더링을 개선하도록 컴파일할 수 있다.

입력을 위해 XKB를 채택함으로써, kmscon은 X.Org 서버 및 웨이랜드 컴포지터에서 사용 가능한 모든 자판 배열을 입력으로 받아들일 수 있으며, 그래픽 환경과 터미널에서 동일한 배열을 사용할 수 있게 한다.

마우스 지원 기능이 있으며, 이를 통해 선택/복사/붙여넣기 및 스크롤링이 가능하다.

멀티시트 지원

리눅스 커널의 VT 시스템은 1993년에 시작되었으며, 기본적으로 멀티시트 지원을 구현하지 않는다. 최대 63개의 VT를 지원하지만, 한 번에 하나의 VT만 활성화될 수 있다. 이로 인해 멀티시트 지원을 구성하기 위한 추가적인 단계가 필요하다. kmscon은 아웃 오브 더 박스로 멀티시트를 활성화한다.

한 시트의 디스플레이 서버가 VT 7에서 실행 중이고 다른 시트의 디스플레이 서버가 VT 8에서 실행 중이라면, 이 두 시트 중 하나만 동시에 사용할 수 있다. 다른 시트를 사용하려면 VT 전환을 시작해야 한다.

모든 시트를 동시에 사용 가능하게 만들기 위한 몇 가지 옵션은 다음과 같다.

  • 모든 디스플레이 서버를 동일한 VT와 연결: 사용자가 VT를 전환하면 모든 사용자가 새 VT로 전환된다. 이는 VT 전환(및 빠른 사용자 전환)을 비실용적으로 만든다. X.Org 서버 커맨드라인 옵션 -sharevts
  • 디스플레이 서버를 VT와 연결하지 않음: 이 경우 빠른 사용자 전환이 불가능하다. 텍스트 기반 콘솔 로그인은 입력 장치와 디스플레이 장치가 이 목적을 위해 예약된 경우에만 가능하다.
  • 디스플레이 서버 중 하나만 VT와 연결: 다른 디스플레이 서버들은 VT 전환을 할 수 없지만, VT와 연결된 디스플레이 서버는 가능하다. 해당 시트에서의 VT 전환은 다른 시트에 영향을 주지 않는다. 이것이 systemd에서 선호하고 가정하는 접근 방식이다. 사용자 1에 대한 커맨드라인 옵션 vt7과 다른 모든 사용자에 대한 -novtswitch를 사용한다.

역사

2011년, 제시 반스는 자신의 블로그에 리눅스 프레임버퍼 및 가상 터미널 (VT) 서브시스템을 리눅스 커널에서 제거할 수 있는, 사용자 공간 기반의 DRM 가상 터미널 구현 가능성에 대해 썼다. 이 블로그 게시물에서 동기를 얻은 데이비드 헤르만은 가상 터미널의 기본 기능을 구현했다.

2013년 10월, DEC VT100–VT520 호환 터미널 에뮬레이터를 위한 상태 머신인 터미널 에뮬레이터 상태 머신(libtsm) 라이브러리가 kmscon에서 분리되어 별도로 제공되었다. 이후 웨이랜드 터미널 에뮬레이터 예제인 wlterm이 추가되었다.

이 프로그램은 페도라 44 개발 과정에서 구현 검토가 이루어졌으며 이후 45 베타 릴리스에 구현됨에 따라 페도라는 이를 기본값으로 사용하는 최초의 주요 리눅스 배포판이 되었다.

같이 보기

각주

  1. ↑ Herrmann, David (2012년 3월 27일). “[ANNOUNCE] kmscon: Lazy-web's DRM based terminal emulator” (메일링 리스트). 《dri-devel》 (Freedesktop.org). 2012년 4월 2일에 확인함.
  2. ↑ “v10.1.0”. 2026년 10월 26일. 2026년 10월 26일에 확인함.
  3. ↑ 《kmscon/kmscon》, kmscon, 2025년 12월 4일, 2025년 12월 4일에 확인함, This project was maintained in Aetf's fork for 11 years, before coming back here in 2025
  4. ↑ Herrmann, David (2015년 7월 29일). “terminal: drop unfinished code”. 《깃허브》. 2016년 9월 22일에 확인함.
  5. 1 2 Larabel, Michael (2012년 3월 28일), “KMSCON: A DRM-Based Terminal Emulator”, 《Phoronix》, 2012년 4월 2일에 확인함
  6. ↑ Larabel, Michael (2012년 8월 18일), “KMSCON Is Getting Ready To Kick The Kernel Console”, 《Phoronix》, 2012년 7월 5일에 확인함
  7. ↑ Herrmann, David (2012년 12월 10일). “KMSCON Introduction”. 《dvdhrm.wordpress.com》. 2013년 5월 8일에 확인함.
  8. ↑ kmscon. “Release v9.2.0 · kmscon/kmscon” (영어). 《GitHub》. 2026년 3월 16일에 확인함.
  9. ↑ “Changes/UseKmsconVTConsole - Fedora Project Wiki”. 《fedoraproject.org》. 2026년 3월 16일에 확인함.
  10. ↑ Herrmann, David (2013년 10월 29일). “[ANNOUNCE] libtsm-3 release” (메일링 리스트). 《kmscon-devel》 (Freedesktop.org). 2012년 7월 5일에 확인함.
  11. ↑ 《libtsm》, Freedesktop.org, 2012년 7월 5일에 확인함
  12. ↑ Larabel, Michael (2025년 11월 14일). “Fedora 44 Looking At Replacing FBCON With KMSCON As Default VT Console”. 《Phoronix》. 2026년 3월 4일에 원본 문서에서 보존된 문서. 2026년 10월 17일에 확인함.
  13. ↑ Proven, Liam (2026년 9월 16일). “Fedora 45 beta drags the Linux console into the 21st century”. 《The Register》. 2026년 9월 16일에 원본 문서에서 보존된 문서. 2026년 10월 17일에 확인함.
  14. ↑ Larabel, Michael (2026년 3월 3일). “Using KMSCON As The Default VT Console Delayed To Fedora 45”. 《Phoronix》. 2026년 3월 4일에 원본 문서에서 보존된 문서. 2026년 10월 17일에 확인함.