[개방형 OS] GPL과 리눅스의 탄생

2020. 7. 30. 22:22오픈소스 아카데미

용어 정의

Foss : 프리 소프트웨어란 소스 코드가 무료이건 아니건 사용자에 의해서 자유롭게 분석되고 수정될 수 있는 경우를 의미
오픈소스 : 개발자와 사용자가  프리 소프트웨어라는 표현보다 오픈소스라는 표현을 더 선호하는 경우에 사용
단순히 무료로 제공되는 소프트웨어는 프리웨어.

 

UNIX

벨 연구소의 프로그래머 켄 톰슨이 멀틱스 운영체제 개발팀에 일하던 중 스페이스 트래블이라는 게임을 하고 싶어서 개발.

1973년 벨 연구소를 소유하고 있던 AT&T가 유닉스를 교육기관에 라이선싱 하면서 확산. 일찍 출시하고 자주 출시하는 전략으로 차별화. 완벽한 안정서 보다는 빠른 혁신을 우선시했다.

켄 톰슨과 데니스 리치

BSD

벨 연구소의 유닉스 소스코드를 기본으로 버클리 대학에서 작성된 프로그램이 추가된 유닉스의 변종.

 

1970년대 벨 연구소의 유닉스 초기 배포판들은 운영 체제에 대한 소스 코드를 포함했으며 대학교의 연구원들이 유닉스를 수정하고 확장할 수 있게 했다. 유닉스는 BSD와 함께 전 세계 개발자들과 협업하여 개발하는 혁신적 운영체제로 성장했다.

 

UNIX의 상용화

1984년 벨 연구소를 소유한  AT&T와 웨스턴 일렉트릭의 반독점 소송이 끝나면서 유닉스는 상용으로 라이선스가 책정되었는데 10만 불이 넘는 가격이었다. 이 조치는 자유로운 영혼을 가졌던 유닉스 개발자들을 자극했으며 이들은 BSD 고쳐서 AT&T의 코드를 전혀 사용하지 않은 유닉스 방식의 운영체제를 만들기 시작했다. 하지만 유닉스를 상품으로 판매하는 측에서는 BSD에 포함된 코드가 유닉스 코드임을 내세워 소송하였다.

 

클로즈드 소프트웨어

1980년대 부터 소프트웨어를 소스코드가 아니라 바이너리 포맷으로만 배포하는 방식이 확산되었는데, IBM은 이 방식을 적극적으로 받아들였고 소스 코드 배포를 중단한 최초의 대기업이 되었다. 사용자들은 프로그램으 소스코드를 볼 수 있건 없건 관심이 없었지만, 해커들은 자유로움을 박탈당하는 위기감에 분개하였다.

 

GNU 프로젝트

MIT의 인공지능 랩에 있던 리차드 스톨만은 사용하던 제록스 프린터의 잦은 고장을 소스코드를 구해 해결하려 했으나 소스코드를 구할 수 없어서 화가 났다. 그리하여 1983년 유즈넷에 유닉스 호환 운영체제를 완벽하게 만든 다음 누구에게나 무료로 배포할 것이라고 발표했다. 스톨만은 GNU Emacs, GNU Bash을 공개하고 특히나 소프트웨어의 정보를 문서로 설명하는 기반을 확립하였다. ($man)

 

리처드 스톨만

Free Software Foundation

스톨만은 기술 사용방식에 영향을 주려면 단순히 코드나 문서만을 만들어서는 안 됨을 깨닫고 더 넓은 발판을 만들기 위해 1985년 프리 소프트웨어 재단을 설립했다. GNU는 운영체제를 의미하며 FSF는 운동을 하기 위한 단체이다. FSF의 가장 큰 업적은 라이선스 및 저작권법의 확립이다. GPL(GNU General Public License)는 개발자와 일반인의 생각을 획기적으로 바꿨다.

 

GPL

당시의 해커들은 형체가 없고 만질 수 없는 코드에 저작권을 적용한다는 개념이 없었다. 그러나 1980년 미 이회에서 컴퓨터 프로그램의 저작권 법의 적용을 하였고 1983년 법원에서 프랭클린 컴퓨터가 애플 컴퓨터의 코드를 복제하여 저작권법을 위반했다고 판결 내림으로써 법적으로 확실하게 인정되었다. 상황이 이렇게 되자 FSF는 저작권을 이용하기 위해 GNU Emacs에 사용된 라이선스를 GPL로 수정하고 카피레프트 라이선스 GNU GPL이 탄생되었다.

GPL 전문 : http://korea.gnu.org/documents/copyleft/gpl.ko.html

 

GNU 일반 공중 사용 허가서

프로그램의 이름과 용도를 한 줄 정도로 설명합니다. Copyright (C) 20yy년 <프로그램 저작자의 이름> 이 프로그램은 자유 소프트웨어입니다. 소프트웨어의 피양도자는 자유 소프트웨어 재단이 공표�

korea.gnu.org

 

LGPL (GNU Lesser General Public License)

GPL을 사용한 소프트웨어는 반드시 소스코드를 공개해야 했고 이는 상업적으로 사용하기에 매우 민감한 부분이었다. 그래서 1991년 Library General Public License라는 이름으로 발표된 라이센스이다. 이는 GPL을 따르지 않는 프로그램이 LGPL이 적용된 소프트웨어 라이브러리를 사용하고 자신의 제품을 공개하지 않도록 허용한다.

 

Benevolent Dictator (자애로운 독재자)

리처드 스톨만은 강하고 확고한 지도력으로 재단을 이끌었다. 독재에 가까운 운영이었지만 이는 자신의 이익이 아닌 커뮤니티 공공의 이익을 위함이었기 때문에 자애로운 독재자로 불렸다. 이 용어는 FOSS 개발자들이 자신들의 리더를 칭할 때 쓰이거나 오픈 소스 커뮤니티의 거버넌스를 논의할 때 사용되고 있다.

 

MINIX

타넨바움은 1987년 컴퓨터 학과 학생들에게 유닉스 코드보다 훨씬 싼 비용으로 소스코드를 들여다볼 수 있는 유닉스형 운영체제를 제공하는 목적으로 MINIX 개발. 마이크로 하드웨어에서 돌아가도록 설계된 최초의 유닉스형 운영체제 중 하나 (코히런트, 제닉스 등이 있다.) 과거에는 기업형과 같이 대형 운영체제가 대다수. 자신의 학생들이 소스코드를 볼 수 있도록 개발하였기 때문에 기능들이 빈약했다. 마이크로커널을 사용하며 터미널 에뮬레이션 기능이 없고 386PC를 지원하지 않으며 유료로 판매를 하였기에 비판도 많이 받았다.

타넨바움

World Wide Web

옥스퍼드 대학 출신 인 팀 버너스-리가 1989년 CERN 재직 중에 전세계 정보의 교환을 목적으로 인터넷 기반의 하이퍼미디어인 월드와이드 웹(www)을 발병했다. 1990년에 첫 웹 클라이언트와 서버를 개발하였고 그 과정에서 URI, HTTP, HTML 등의 기술 요구사항들이 탄생하여 널리 사용되고 있다. 만인이 어디에서나 자유롭게 소통하고 협력하여 혁신이 탄생할 수 있는 시대가 열렸다.

팀 버너스리

GNU Hurd

1990년 초, GNU 시스템에서 대부분의 기능들은 준비가 되었으나 커널개발이 발목을 잡았다. 초기에는 MIT에서 개발한 TRIX라는 커널을 사용하려고 했지만 곧 카네기 멜런 대학교 팀과 MACH 기반 커널 개발로 방향을 전환했다. 그리하여 Hurd라고 불리던 GNU MACH 기반 커널이 탄생했고 마이크로 커널 구조가 가진 기술적 장점을 강조했지만 개발이 매우 느렸다. 2020년 현재도 0.9 버전인 상태이다.

 

Linux

핀란드의 리누스 토르발즈는 미닉스를 사용하던 1학년 학부생이었다. 그러나 미닉스의 기능 부족으로 미닉스보다 좋은 미닉스를 만들고자 했다. 완전하게 무료인 유닉스형 커널을 원하는 토르발즈는 자신의 PC에서 구동할 수 있는 터미널 에뮬레이터를 포함한 커널을 만들어서 공개하였다. 당시 개발에 필요한 참고자료가 많이 부족했고 토르발즈는 POSIX 맞추어서 킬링루프 방식으로 디버그를 하며 리버스 엔지니어링으로 리눅스를 개발했다. 당신의 노가다에 박수

엔비디에아 중지를 치켜드는 토르발즈