본문 바로가기

About/Computer

젠투 철학

젠투 철학

나는 마음에 드는 리눅스 배포판을 찾을 수 없었기 때문에 젠투를 창시했다. 내가 리눅스 배포판들에 관련하여 경험했던 것으로 눈에 띄는 것은 전체 시스템을 관리하는 "배포판 도구" (모든 것을 사용하기 쉽게 해 줄 도구) 들이 실제로는 많은 주의를 필요로 하여 내가 하고 싶은 일에 방해가 된다는 사실이었다. 나는 그것들(배포판 도구)에게 내가 하고 싶은 것을 시키고 싶었지만 그것들은 내가 하도록 자기들이 원하는 것을 내게 시키는 데 더 관심이 많은 듯 보였다.

그래서 나는 젠투 리눅스를 창시하였고 Portage를 고안하여 이전에 존재하던 도구들보다 더 완벽한 도구가 되게 하였다. 이를 위하여 나는 그것을, 내가 하기를 원하는 것을 허락하는 데 매우 유연하게 만들었고 또한 다른 사람들이 하기를 원한다고 생각되는 것을 하게 허락하도록 유연하게 만들려고 노력했다.

어떤 패키지가 어떻게 빌드되는지를 사람들이 알고 싶어 한다면 비교적 이해하기 쉬운 ebuild 파일을 보고 그로부터 배울 수 있었다. 만약 빌드되는 방법을 비틀고 싶다면 USE 변수를 활용할 수 있었다. Portage tree에 패키지를 추가하고 싶다면 새로운 ebuild를 만들면 되었다. 새로운 패키지를 사용하고 싶다면 사람들은 단지 그것을 emerge 하면 되었고 의존성은 자동으로 해결되었다.

사람들은 Portage 개념을 좋아했고 젠투 리눅스는 빠르게 성장했다. 우리는 "소스로부터" 배포판이라고 알려지게 되었다.
하지만 젠투 개념의 핵심은 "소스로부터" 가 아니다. "소스로부터" 는 젠투의 중요하고 기본적인 측면이며 젠투에 있어 필요한 것이었고 앞으로도 그럴 것이지만 유일한 이슈 또는 가장 근본적인 이슈는 아니다. 가장 근본적인 이슈는 우리와 다른 사람들이 하고 싶어 하는 것을 제약없이 하도록 허락해 주는 기술을 고안하는 것이다.

젠투의 핵심을 요약하기 위하여 리눅스 시스템 앞에 앉아 있는 사용자를 상상해 보자. 이 사람은 무엇을 하고 싶어 하는가?
젠투 철학은 이 사람이 하고 싶어하는 것을 방해받지 않고 하도록 허락해 주는 것이다.

젠투가 태어날 때 쯤에는, 사용자의 명세서대로 소스로부터 패키지들을 빌드하는 쉬운 방법이 부족하다는 것이 방해가 되었다.
현재로서는 그런 것들을 매우 잘 해 낸 상태이지만 별로 잘 해내지 못한 것은 이미 빌드된 패키지들에 대한 지원이다. 비록 태동 이후에 Portage가 거의 모든 바이너리 패키지들을 빌드하도록 지원해 왔지만 말이다. 그래서 우리는 지금 그런 일을 하고 있다.

우리의 도구가 바이너리 패키지들을 지원한다는 것은 중요하다. 왜냐하면 리눅스 커뮤니티에서 바이너리 패키지들은 광범위하게 사용되고 있고 광범위한 요구를 받고 있기 때문이다. 만약 우리의 도구가 바이너리 패키지들을 지원하지 않는다면 사용자들이 자신이 원하는 것이면 무엇이든 할 수 있게 하도록 도구를 고안했다고 우리는 주장할 수 없는 것이다. 만약 우리가 고의로 바이너리에 대한 지원을 배제하기로 결정한다면 사람들이 특정 문제들에 대하여 어떻게 접근할지에 대한 우리의 의지 또는 관점을 부과함으로써 그들이 문제에 어떻게 접근할 지를 선택하는 것에 대하여 간섭하는 것이 될 것이다. 그리고 우리가
바이너리 패키지들을 빌드하지 않는다면 우리의 도구가 실제로 바이너리 패키지들과 잘 작동함을 보장하기 위한 조치를 취하지 않는 것이고 다른 사람들이 바이너리 패키지들을 빌드할 수 있음을 보장하기 위한 조치를 취하지 않는 것이며 우리의 도구가 바이너리 패키지들에 대해서 잘 작동한다는 것을 증명할 수 없는 것이 될 것이다. 이러한 철학적인 이유 외에도 바이너리 패키지들을 만들어야 하는 실제적인 많은 이유들이 있다.

젠투 철학은 한 단락으로 하면 이렇다. 모든 사용자는 자신이 할 필요가 있는 일이 있다. 젠투의 목표는 사용자들이 가능한 한 자신이 보기에 적당하게, 자신들의 일을 유쾌하고 효율적으로 할 수 있도록 도구들과 시스템을 고안하는 것이다. 우리의 도구는 기쁘게 사용할 수 있는 것이어야 하고 사용자가 리눅스와 자유 소프트웨어 커뮤니티의 풍부함 그리고 자유 소프트웨어의 유연함을 이해할 수 있도록 도와야 한다. 이것은 이 도구가 사용자의 의지를 반영하고 투영하며 가공되지 않은 재료(소스 코드)의 최종 형태에 관하여 가능성을 열어둔 채로 놓아 두도록 고안될 때만이 가능하다. 만약 사용자가 특정한 방법으로 일을 하도록 이 도구가 강요한다면 이 도구는 사용자를 위하여 기능한다기 보다는 사용자에 반(反)하여 기능하고 있는 것이다.
우리는 도구가 우리에게 자신의 제한된 의지를 부과하는 상황을 모두 경험해 오고 있다. 이것은 퇴보이며 젠투 철학과는 반(反)하는 것이다.

다른 식으로 표현한다면 젠투 철학은 더 좋은 도구를 창조하는 것이다. 도구가 자신의 일을 완벽하게 해내고 있을 때 여러분은 그것의 존재를 알아채지도 못할 지 모른다. 왜냐하면 그것은 간섭하거나 자신의 존재를 알리지 않을 뿐더러 원치 않을 때 여러분이 자신과 상대하도록 강요하지 않기 때문이다. 사용자가 도구에 봉사한다기 보다는 도구가 사용자에게 봉사한다.

젠투의 장래 목표는 계속하여 이상(理想)에 가까운 도구를 창조하기 위하여 노력하는 것이다. 많은 서로 다른 사용자들(아주 다양한 목적을 가진 사용자들)의 필요에 편의를 제공할 수 있는 도구는 극히 강력하다. 여러분들이 원하는 바로 그것을 해 내는 도구를 발견한다면 여러분들은 그것을 사랑하지 않는가? 그것이 위대하다고 느껴지지 않는가? 우리의 임무는 가능한 한 많은 사람들에게 그러한 센세이션을 제공하는 것이다.

Daniel Robbins
Chief Architect

원문 : http://www.gentoo.org/main/en/philosophy.xml

'About > Computer' 카테고리의 다른 글

sysctl.conf 보안  (0) 2005.03.08
Linux에서 램드라이브 사용하기  (0) 2005.03.04
음악 관련 저작권법 개정에 대한 Q&A  (0) 2005.01.10
NAS와 SAN의 비교  (0) 2005.01.10
커널 비교 : 웹 서빙 (2.4 vs 2.6)  (0) 2004.08.05