surf

surf는 suckless.org가 개발하는 최소 구성의 그래픽 웹 브라우저다. 웹 페이지 렌더링에는 WebKitGTK를 활용하고 창과 조작을 위한 코드는 C와 GTK로 작성한다. 일반적인 브라우저가 제공하는 많은 기능을 기본 화면에서 제외하고 간결한 웹 콘텐츠 보기를 지향한다.

분류웹 브라우저
개발자·프로젝트suckless.org
개발 언어C · GTK
브라우저 엔진WebKitGTK / WebKit2GTK
JavaScript 엔진JavaScriptCore
운영체제Linux · BSD
최초 공개2000년대 후반
라이선스MIT/X Consortium
개발 상태개발 프로젝트
인터페이스 기술GTK · 키보드 명령 중심
입력 방식키 바인딩 · 주소 명령 · 링크 탐색
기능 성격경량 웹 탐색 · 사용자 설정
웹 표준HTML · CSS · JavaScript(엔진 제공)
네트워크HTTP · HTTPS(엔진 및 배포 버전별)
엔진 계보WebKit · WebKitGTK
소스·공식 자료프로젝트

surf는 suckless.org가 개발하는 최소 구성의 그래픽 웹 브라우저다. 웹 페이지 렌더링에는 WebKitGTK를 활용하고 창과 조작을 위한 코드는 C와 GTK로 작성한다. 일반적인 브라우저가 제공하는 많은 기능을 기본 화면에서 제외하고 간결한 웹 콘텐츠 보기를 지향한다.

프로젝트는 소스 코드가 작고 설정과 동작을 사용자가 직접 조정할 수 있는 suckless 소프트웨어 철학에서 출발했다. 복잡한 탭 관리자나 북마크 데이터베이스를 자체적으로 크게 구현하기보다는 외부 도구와 결합하는 것을 허용한다.

HTML·CSS 렌더링과 JavaScript 실행은 WebKitGTK가 담당한다. surf의 고유 코드는 WebKit 웹 뷰를 GTK 창에 표시하고 주소와 입력, 외부 프로세스 연동을 처리한다. WebKitGTK의 업데이트는 페이지 호환성과 보안에 직접 영향을 준다.

사용자는 dmenu 등과 조합해 주소를 입력하고 tabbed 같은 다른 suckless 프로그램과 함께 여러 페이지를 구성할 수 있다. XEmbed 지원과 X 속성 제어를 활용하는 점도 전통적인 Linux 데스크톱 브라우저와 구별된다.

일반적인 패키지 설치 외에 소스 빌드와 패치 적용이 주요 사용 방법이다. 프로젝트는 이전 WebKitGTK API에서 WebKit2GTK로 이전했으며 GTK와 운영체제별 패키지 버전에 따라 필요한 빌드 환경이 달라진다.

surf는 Luakit이나 Vimb와 같은 경량 브라우저와 WebKitGTK를 공유하지만, 특히 적은 기능과 외부 명령 결합에 중점을 둔다. Safari의 WebKit 계열을 사용하면서 인터페이스 설계는 완전히 다른 방향으로 발전한 사례다.[1]

역사

개발 배경

버전과 변화

기술 구조

웹 렌더링과 JavaScript

키보드 입력과 인터페이스

주요 기능

배포와 개발 상태

영향과 관련 제품

관련 문서

  1. surf 프로젝트 자료 ↩