KHTML
1. 개요
KHTML은 KDE 프로젝트에서 개발된 웹 브라우저 엔진이다. khtmlw에서 파생되어 1998년 11월에 등장했으며, 유니코드 지원 및 Qt 2로의 이전을 포함한 변경 사항이 적용되었다. 1999년 자바스크립트 지원과 CSS 지원이 추가되었고, KDE 2.0에 포함되어 Konqueror의 렌더링 엔진으로 사용되었다. KHTML은 HTML 4.01, CSS 1, CSS 2.1, DOM 1, 2, 부분적으로 3, JavaScript, 부분적인 SVG 지원 등 다양한 표준을 지원했다. Konqueror와 Tavia에서 사용되었으며, 애플의 사파리 웹 브라우저와 구글의 Blink 엔진의 기반이 되는 WebKit의 기반이 되었다. 2016년에 개발이 중단되었고, 2023년에 공식적으로 중단되었다.
-
KDE 프레임워크 -
KIO
-
KDE 플랫폼 -
KDE 네온
KDE 네온은 우분투 기반의 리눅스 배포판으로, KDE Plasma 데스크탑 환경과 KDE 애플리케이션의 최신 개발 버전을 제공하는 데 중점을 둔다. -
KDE 플랫폼 -
KIO
-
레이아웃 엔진 -
웹킷
웹킷은 KDE의 KHTML에서 시작된 오픈 소스 웹 브라우저 엔진으로, 애플 Safari 브라우저의 렌더링 엔진으로 사용되면서 다양한 운영체제와 플랫폼으로 이식되어 HTML5, CSS3 등 최신 웹 표준을 지원한다. -
레이아웃 엔진 -
브라우저 엔진
브라우저 엔진은 웹 페이지의 레이아웃을 지정하고 시각적 표현을 계산하여 화면에 표시하는 소프트웨어 구성 요소이다.
2. 역사
KHTML은 KDE 프로젝트의 HTML 렌더링 엔진으로 개발되었다. 초기에는 khtmlw라는 이름의 간단한 위젯으로 시작했으나, 기능 확장의 필요성이 제기되면서 1998년 KHTML로 포크되었다.
1999년부터 대대적인 재작성과 개선 작업이 이루어져 DOM, 자바스크립트, CSS 지원이 추가되었으며, 이 과정에서 KJS가 통합되었다. 이러한 개선을 통해 KHTML은 인터넷 익스플로러에 이어 양방향 텍스트를 지원하는 초기 브라우저 엔진 중 하나가 되었다.
2000년 KDE 2.0 릴리스와 함께 새로운 Konqueror 파일 및 웹 브라우저의 핵심 엔진으로 탑재되었다. 이후 SVG 지원을 위한 KSVG 모듈이 개발되었고, 이는 나중에 WebKit에도 영향을 미쳤다.
KHTML의 활발한 개발은 2016년에 사실상 중단되었고, 2023년에 공식적으로 개발 종료가 선언되었다. KDE Frameworks 6 버전부터는 제거될 예정이다.
2.1. 기원
KHTML은 토르벤 바이스와 마틴 존스가 개발한 이전 엔진인 khtmlw 또는 KDE HTML 위젯에서 시작되었다. 이 엔진은 HTML 3.2, HTTP 1.0, 그리고 HTML 프레임을 지원했지만, DOM, CSS, 또는 자바스크립트는 지원하지 않았다.
KHTML 자체는 1998년 11월 4일에 khtmlw 라이브러리에서 포크되어 등장했으며, 약간의 리팩토링과 유니코드 지원 추가, 그리고 Qt 2로의 이전을 지원하기 위한 변경 사항이 포함되었다. 왈도 바스티안은 KHTML의 초기 버전을 만드는 작업에 참여한 사람들 중 한 명이었다.
2.2. 재작성 및 개선
KHTML에 대한 실제 작업은 1999년 5월과 10월 사이에 시작되었다. 당시 프로젝트는 "KHTML을 크게 발전시키거나 모질라를 사용하거나" 하는 선택에 직면했고, 자바스크립트 지원 추가가 최우선 과제로 떠올랐다. 이에 따라 1999년 5월, 라스 놀은 DOM 명세를 구현하는 연구를 시작했다. 마침내 1999년 8월 16일, 그는 KHTML 라이브러리를 완전히 재작성하는 수준의 변경 사항을 반영했음을 발표했다. 이 재작업의 핵심은 KHTML이 표준 DOM을 내부 문서 표현 방식으로 사용하도록 변경하는 것이었다. 그 결과 1999년 10월부터 자바스크립트 지원이 가능해졌고, 곧이어 하리 포르텐이 KJS를 통합했다.
1999년 말과 2000년 초 몇 달 동안, 놀은 안티 코이비스토 및 디르크 뮐러와 함께 CSS 지원을 추가하고 KHTML 아키텍처를 개선하고 안정화하는 작업을 진행했다. 이 작업 대부분은 2000년 3월까지 완료되었다. 특히 이러한 개선을 통해 KHTML은 인터넷 익스플로러에 이어 히브리어와 아랍어 같은 오른쪽에서 왼쪽으로 쓰는 언어를 올바르게 지원하는 두 번째 브라우저가 되었다. 이는 당시 모질라보다 앞선 성과였다.
KHTML을 포함한 첫 KDE 릴리스는 2000년 10월 23일에 출시된 KDE 2.0이었다. KHTML은 새로운 Konqueror 파일 및 웹 브라우저의 렌더링 엔진으로 사용되었고, 기존의 단일 구조 KDE 파일 관리자를 대체했다.
2.3. 기타 모듈
KSVG는 2001년 니콜라스 짐머만(Nikolas Zimmermann)과 롭 부이스(Rob Buis)가 처음 개발했다. 하지만 2003년에는 당시 KSVG 구현을 두 개의 새로운 프로젝트로 나누기로 결정했다. 하나는 KDOM/KSVG2로, 이는 KHTML의 DOM 렌더링 상태를 개선하고 더 강력한 SVG 1.0 렌더링 상태를 구현하기 위한 것이었다. 다른 하나는 Kcanvas로, khtml/ksvg2 내에서 이루어지는 모든 렌더링 작업을 단일 공유 라이브러리로 추상화하고, Cairo/Qt 등 여러 백엔드를 지원하도록 만들어졌다.
KSVG2는 WebKit의 일부이기도 하다.
2.4. 개발 중단
KHTML의 활발한 개발은 2016년에 사실상 종료되었고, 이후에는 KDE Frameworks 5 버전과의 호환성을 유지하기 위한 최소한의 업데이트만 이루어졌다. 결국 2023년에 공식적으로 개발이 중단되었으며, KDE Frameworks 6 버전부터는 제거될 예정이었다.
3. 표준 호환
KHTML 엔진이 지원하는 표준은 다음과 같다.
* HTML 4.01
* HTML5 지원
* CSS 1
* CSS 2.1 (화면 및 페이지 미디어)
* CSS 3 선택자 (KDE 3.5.6부터 완전히 지원)
* CSS 3 기타 (다중 배경, box-sizing 및 text-shadow)
* PNG, MNG, JPEG, GIF 그래픽 형식
* DOM 1, 2 및 부분적으로 3
* ECMA-262/자바스크립트 1.5
* 부분적인 SVG 지원