개발자 관계

오픈소스 소프트웨어의 본질

2018-10-03
개발자 관계
ko

자유 소프트웨어의 존재는 4대 자유 위에 구축됩니다.

  • 영: 어떤 목적으로든 자유롭게 프로그램을 실행할 수 있습니다.
  • 일: 프로그램이 어떻게 작동하는지 연구하고, 자신의 필요에 맞게 수정할 자유.(소스 코드에 접근하는 것은 이 자유의 전제 조건)
  • 이: 친척, 친구, 이웃을 돕기 위해 프로그램 사본을 다시 배포할 자유.
  • 삼: 수정된 버전을 타인에게 배포할 자유. 이렇게 하면 전체 커뮤니티에 개선이 혜택을 줄 기회가 생깁니다.(소스 코드에 접근하는 것은 이 자유의 전제 조건)

그리하여, 자유 소프트웨어는 더 이상 개인 전용이 아니며, 전 국민 공유의 것입니다.

![](/img/2020/03/BabyGnuTux-Big.png) BabyGnuTux-Big, 작가 Nicolas Rougier, [원본 파일](https://github.com/rougier/baby-gnu-tux)은 여기에

한문에서 소위 소프트웨어는 모든 지능, 사상의 자원을 통칭하며, 하드웨어와 대비됩니다. 그리고 하드웨어는 모든 건설의 실질적 시설을 통칭합니다.

기본적으로 우리는 이렇게 생각할 수 있습니다. 컴퓨터 세계에서 소프트웨어는 코드이며, 일종의 실용적 성격을 가진 수학 공식입니다. 서로 조합되고 교차된 후 특정 업무를 완성할 수 있는 지능적 사고 과정이며, 사람들은 이것을 적어 컴퓨터에 전달하여 실행합니다. 수학처럼, 소프트웨어는 정확하게 조정, 개선, 사용하기 위해 상당히 고도의 전문 지식이 필요합니다. 이것이 많은 사람들이 프로그래머를 고용하여 소프트웨어를 업데이트하고 개량하는 이유입니다.

자유 소프트웨어의 특성은 개인과 집단이 모두 수학식 형태로 존재하는 업무 처리 사고 과정을 자유롭게 사용할 수 있다는 것입니다. 그리고 자유 소프트웨어의 이러한 특성으로 인해 개인과 집단 사이의 연결과 상호작용이 형성되어, “커뮤니티”가 생겼습니다.

역사

역사적으로, 리처드 스톨만(Richard Stallman)의 중대한 자유 소프트웨어 프로젝트 — GNU 프로젝트에서 시작되었습니다. 그 설립 자체는 리처드 스톨만의 개인적 이상을 실현하기 위한 것이었으며, 완전히 자유 소프트웨어로만 구성된 유닉스 유사 운영체제를 만드는 것이었습니다. 당시 주류였던 독점 유닉스와 다르지만 유사(그리고 호환)한 운영체제로, 그는 이 운영체제를 GNU라고 불렀으며, 의미는 GNU’s Not Unix입니다. 그리하여 전 세계적으로 이 이념에 동의하는 사람들이 연합하여 커뮤니티가 되어, 상호 협력하며 공동으로 GNU 운영체제를 만들었습니다.

1991년에, GNU는 거의 완성되었고, 유닉스 유사 운영체제에서 가장 내부적으로 기계 자원을 분배하고 하드웨어와 대화하는 프로그램, 즉 “커널”만 부족했습니다. 마침 리누스 토르발스(Linus Torvalds)가 개발한 리눅스 커널이 부족한 부분을 채울 수 있었습니다. 많은 사람들이 GNU와 리눅스를 결합하여 “GNU/리눅스” 운영체제로 패키징하기 시작했고, 이로써 자유 소프트웨어 운동의 시초가 되었습니다.

하지만 리누스 토르발스는 왜 리눅스 커널을 개발했을까요? 그는 “Just for fun.”이라고 말했습니다. 순전히 재미를 위해서였습니다. 하지만 자유 소프트웨어가 개인과 집단에 동시에 속하는 특성 때문에, 그의 개인적 재미의 산물이 타인에게 닿자, 타인이 편리하고 좋다고 느끼면 개선하여 다시 다른 타인에게 배포할 수 있었습니다(원작자 리누스 토르발스에게 피드백 포함). 그리하여 다시 개인과 집단 사이의 연결 상호작용이 형성되었습니다.

이후 리누스 토르발스는 리눅스 개발 과정에서 타인과 협력해야 했고, git 버전 관리 시스템을 만들었습니다. 이것은 분산 아키텍처로, 누구나 리눅스 원본 코드의 코드베이스를 가질 수 있어, 타인이 자신의 기계에서 코드를 수정하기 편하고, 원작자의 코드베이스에 피드백하기도 편합니다. 사람들은 자신의 필요에 따라 강물처럼 자신의 지류를 분기할 수 있고, 다시 원래의 주류로 병합할 수도 있어, 자유 소프트웨어의 내재적 본질을 반영합니다.

자유 소프트웨어의 본질

자유 소프트웨어의 세계에서, 사람들과 코드는 마찬가지로 모두 한곳에 모이고, 형성되고, 비틀리고, 얽히고, 때로는 복원되고, 단절되고, 다시 연결됩니다. 이것이 자유 소프트웨어의 본질입니다. 이 기본적 성질은 사실 많은 인류 문화의 사상을 반영하며, 또한 이러한 문화적 저력이 바로 자유 소프트웨어 근원의 본질이라고 할 수 있습니다.

동양의 불교 사상 체계로 보면, 자유 소프트웨어는 바로 “자리이타(自利利他)”의 구현입니다. 이 각도에서 자유 소프트웨어 세계의 자리(自利)를 보면, 리처드 스톨만이 “GNU 운영체제”를 만들고자 한 이상, 리누스 토르발스의 “Just for fun” 개인적 재미와 같습니다. 그리고 자유 소프트웨어의 본질에 따라, 언제든 이타(利他)가 됩니다. 더 깊이 보면 이러한 생각들 뒤에는 모두 다른 모든 사물로 구성되어 있다는 것을 알 수 있습니다. 즉 전체 우주를 포함하며, 이것이 나, 그리고 무아(無我)의 개념입니다. 또한 아라카와 히로무가 그린 《강철의 연금술사》에서 거듭 언급하는 “하나가 전체이고, 전체가 하나”의 이치이기도 합니다. 더 나아가, 남아프리카 르네상스에서 유래한 우분투 정신의 의미: “I am what I am because of who we all are.” 역시 마찬가지입니다.

서양의 사상으로 보면, 자유 소프트웨어 역시 “자유·평등·박애”의 구현입니다. 자유 소프트웨어의 세계에서, 모든 사람이 프로그램을 사용, 연구 개선, 배포(수정 여부와 관계없이)할 자유가 있으므로, 모든 사람이 평등하며, 소프트웨어가 누구에게 독점되는 상황이 없습니다. 그리고 자유 소프트웨어가 구축한 커뮤니티는 바로 형제 관계 또는 유사 형제 관계의 커뮤니티 가치인 박애(Fraternité)에 해당합니다.

일본 애니메이션 감독이자 영화 감독 신카이 마코토의 작품 《너의 이름은.》에서 이야기하는 “무스비(結び)” 신도 사상에서, 만물에는 영이 있으며, 줄을 연결하는 것이든, 사람과 사람을 연결하는 것이든, 시간의 흐름이든 모두 무스비이며, 모든 사물의 이동은 모두 신의 힘입니다. 사람들이 만드는 매듭은 신의 작품이자, 시간 흐름의 구현입니다: 모이고, 형성되고, 비틀리고, 얽히고, 때로는 복원되고, 단절되고, 다시 연결됩니다. 그리고 이러한 묘사는 앞서 말한 자유 소프트웨어 세계의 운영과 놀랍게도 일치하며, 사람들과 코드가 모두 이렇게 결합하여 커뮤니티를 이룹니다.

자유 소프트웨어의 본질은 바로 이렇게 인류 문화의 사상적 저력을 반영합니다. 우리가 자유 소프트웨어를 사용, 기여, 홍보할 때마다, 사실 그 안에 이미 들어가 있는 것입니다. 여기까지 이해하면, 우리는 왜 세계에 이러한 사람들이 있는지, 각지에서 개인이면서도 집단적으로 자유 소프트웨어를 발전시키는지 더 이상 놀라지 않습니다.

심층 독서

본문 저자: 증정가(대만 Ubuntu-tw 커뮤니티 조정인, Fedora 정체 중국어 커뮤니티 조정인) 원문: https://breezymove.blogspot.com/2017/07/the-essence-of-free-software.html. 여기서는 간체 중국어로만 변환하고, 간체 중국어 습관에 따라 용어를 수정했습니다. 이 글의 라이선스 방식은 원문을 기준으로 합니다(CC-BY-SA 3.0).

출처 명시:개발자 관계 »


Similar Posts

Content icon
Content