GTK(GIMP Toolkit)은 원래 GIMP(General Image Manipulation Program)을 만들기 위한 툴킷으로 개발되었다. GTK는 Xlib의 함수들에 대한 기본적인 wrapper인 GDK(GIMP Drawing Kit)를 기반으로 하고 있다. 원래 GIMP를 만들 목적으로 개발되었지만, 지금은 몇 가지 프리 소프트웨어의 제작에 쓰이게 되었다. GTK의 제작자들은 다음과 같다.
petm@xcf.berkeley.edu
spencer@xcf.berkeley.edu
jmacd@xcf.berkeley.edu
GTK는 본질적으로 객체지향적인 어플 개발자 환경이다(API, Application Programmers Interface). 비록 완전히 C로 쓰여졌지만 클래스의 개념과 callback 함수(함수에 대한 포인터)가 갖추어진 것이다.
여기에는 연결리스트(linked list)를 다루기 위한 몇 가지 함수들과 함께, glib라고 불리우며 몇 가지 표준함수들을 대치할 수 있는 함수들도 세번째 요소로 포함되어 있다. g_strerror()처럼, 여기 쓰인 어떤 함수들은 다른 유닉스들에 대해 표준이 아니거나 쓰여질 수 없는 것이기 때문에, GTK의 이식성을 높이기 위해 여기에 대한 대치함수들도 쓰였다. 또한 g_malloc이 디버깅 기능을 강화했듯이 libc의 버전에 보강이 이루어지기도 했다.
이 문서는 단지 GTK를 위한 참고가 될 뿐이며, 완전한 것을 의미하지 않는다. 독자는 C언어를 잘 알며 C프로그램을 어떻게 만드는지 알고 있을 것이라고 가정 한다. 꼭 필요한 것은 아니겠지만, 독자가 이미 X 프로그램에 대한 경험이 있다면 매우 큰 도움이 될 것이다. 만약 당신이 widget 세트에 대해 GTK가 처음 접한 것이라면, 이 문서를 어떻게 발견하게 되었고 또 특별히 힘든 부분은 어떤 것이라는 것을 꼭 알려주기 바란다. GTK를 위해 C++의 형식에 따른 API도 있다는 것을 참조할 것이며, 만약 C++을 더 선호한다면 이것 대신에 그걸 선택하기 바란다. 또한 Objective C, Guile과의 바인딩도 있지만, 어쨌든 여기서는 그것들을 따르지 않겠다.
당신이 이 문서를 통해 GTK를 공부하는 데 있어서 어떤 문제라도 나에게 알려 주기 바라며, 그것은 이 문서가 향상되는 것에 큰 도움이 될 것이라고 생각한다.