# 오픈소스의 역사

## 1950 \~ 60년대 - 사람에서 사람으로 건네지던 소프트웨어들

이 시기에 생겨난 거의 모든 소프트웨어들은 공동 연구로 일하는 학자 및 기업 연구원에 의해 제작되었고, 종종 공용 도메인 소프트웨어로 공유되었다. 그래서 여러 사람들의 손에 손을 거쳐서 일반적으로 배포되었고, 소프트웨어 그 자체를 하나의 필수품으로 보지 않았다.

사용자 그룹 소프트웨어 교환을 용이하게 하기 위해서 첫 OSS 그룹인 'SHARE'이라고 불리는 IBM 701과, 'DECUS'라고 불리는 DEC의 IBM 701이 형성되었다.

1969년 대륙 횡단 고속 컴퓨터 네트워크인 ARPANET가 구축되었고, 그것은 소프트웨어 코드의 교환을 더 쉽게 만들었다. 그리고 1970년대에 개발된 일부 무료 소프트웨어인 TeX 와 SPICE 등이 계속 개발되어 사용되었다.

1960년대는 IBM360으로 대표되는 메인프레임이 지배하던 시대였다. 이 당시에는 소프트웨어와 하드웨어가 밀접하게 결합(bundling)되어 있었기 때문에 어떤 특정 기종을 위해 만들어진 소프트웨어는 다른 기종에서 작동하지 않았다. 이때 IBM은 소프트웨어 소스코드를 하드웨어와 함께 제공했고, 운영체제 소프트웨어의 소스코드를 폐쇄하지 않았다. 1960년대 후반에는 운영 체제 및 프로그래밍 언어 컴파일러가 발전하면서 소프트웨어 비용이 하드웨어에 비해 크게 증가했다. 점차 증가되는 소프트웨어 산업은 하드웨어 비용에 추가되서 나오는 하드웨어 제조업체의 번들 소프트웨어 제품과 경쟁하고 있었다. 제조업체의 소프트웨어 비용이 하드웨어 제품 비용과 번들되는 것을 원하지 않았고, 미국 vs IBM 반독점 소송이 일어났다. 1969년 1월 17일에, 미국 정부는 번들 소프트웨어가 반독점적이라고 부과했고, 그 후로 일부 소프트웨어는 무료로 계속 제공되었지만 제한적인 라이센스 하에서만 판매되는 소프트웨어가 점차 증가했다. 그러나, IBM이 반독점법 패소에 관한 대응방안의 하나로 소프트웨어를 하드웨어와 분리(unbundling)하게 되면서 소프트웨어 자체가 중요한 산업이 되고, 기업들간의 경쟁이 심화됨에 따라 소프트웨어의 소스코드는 기업의 비밀이 되었으며 모든 기업들에게 소스코드는 경쟁우위를 보장해주는 기술자원으로 변화하였다.

1969년 AT\&T의 벨 연구소에서 근무하고 있던 켄 톰슨(Ken Thompson)이 개인적인 연구를 수행하기 위해 Unix라는 운영체제를 만들었다. 이 운영체제는 C라는 고급언어로 작성되었는데, 이는 하드웨어에 종속되지 않는 특징을 지니고 있었다. 이로 인해 벨 연구소가 아닌 곳에도 Unix를 사용할 수 있게 되었고, 이렇게 개발된 Unix의 소스코드는 주로 연구기관을 중심으로 배포되었다.

## 1970년대 \~ 80년대 - Unix와 GNU프로젝트

1970년대 초 AT\&T는 Unix의 초기 버전을 정부 및 학술 연구자에게 무료로 배포했지만 이 버전은 수정된 버전을 재배포하거나 배포 할 수 있는 권한이 없었기 때문에 현대의 의미에선 자유 소프트웨어가 아니었다.

1974년 미국 저작물의 새로운 기술적 사용에 관한 위원회(CONTU)가 저작자의 창작물을 구현하는 범위 내에서 컴퓨터 프로그램이 저작권의 적절한 주제가 되기 전에 소프트웨어가 저작권으로 간주되지 않았음을 밝혔다. 따라서 소프트웨어에는 라이센스가 첨부되지 않았으며 일반적으로 소스코드가 있는 공개 도메인 소프트웨어로 공유되었다. CONTU 판결과 법정의 결정을 더하여 컴퓨터 프로그램에 문학 작품의 저작권 상태가 부여되고 소프트웨어 라이센스 및 폐쇄형 소스 소프트웨어 비즈니스 모델이 시작되었다.

1970년대 후반과 1980년대 초반에 컴퓨터 벤더와 소프트웨어 전용 회사는 소프트웨어 라이센스에 대한 부과를 시작하고 소프트웨어를 "프로그램 제품"으로 마케팅하고 저작권, 상표 및 임대를 통해 자산으로 간주되는 새로운 소프트웨어 개발에 법적 제한을 가하기 시작했습니다.

1970년대 중반에 초기 마이크로 컴퓨터의 출현으로 인해 1975년에는 인간이 받아들일 수 있는 프로그래밍 언어인 'Microsoft BASIC' 이 개발되었다. 이 컴퓨터에서 사용할 수 있는 아주 작은 주 메모리(대개 4KB)로 인해 다양한 초소형 기본 언어가 만들어졌다. BASIC은 거의 모든 시대의 시스템에서 사용할 수 있었으며 자연스럽게 1970년대 후반에 등장한 가정용 컴퓨터 시스템을 위한 사실상의 프로그래밍 언어가 되었다. 그리고 기계의 펌웨어나 때때로 ROM 카트리지 같은 기계들은 거의 항상 디폴트에 의해 기본적으로 'BASIC'이 내장되어있었다.

1976년 빌 게이츠는 자신의 제품을 사용해주는 사람들인 'Hobbyists'에게 공개 편지를 썼다. 그는 사용자들이 라이센스 비용을 지불하지 않고 Microsoft의 제품인 Altair BASIC을 광범위하게 공유하면서 낙담했다는 것을 밝혔다. 그는 이러한 광범위한 무단 복제는 개발자가 고품질 소프트웨어를 만드는데 시간과 돈을 투자하지 못하게 한다고 주장했다. 그는 소프트웨어 제작자의 시간, 노력 및 자본에 대한 이익을 얻지 못하는 불공정함을 언급했다.

![bill](/files/-LQ9tCThO8oXN-z1b747)

1979년 AT\&T는 Unix 시스템을 판매함으로써 수익을 올릴 수 있다고 결정했을 때 1970년대 초에 무료로 배포했던 Unix의 라이센스를 시행하기 시작했다. 그 후 Unix가 더 널리 보급된 1980년대 초반에 AT\&T는 무료 배포를 중단하고 시스템 패치를 부과했다. 다른 운영체제로 전환하는 것이 매우 어렵기 때문에 대부분의 연구원들은 상용 라이센스를 지불하고 사용하게 되었다.

1980년대 들어 Unix는 전세계의 대학과 연구기관으로 퍼져나갔으며 이러한 경향을 보고 기업들은 Unix가 시장성이 있음을 인지하고 Unix 기종을 만들기 시작했고, 그로 인해 Unix는 상업화의 길을 걷기 시작했다. 1984년 독점 금지법과 관련해서 AT\&T의 분할이 이루어지면서 AT\&T가 컴퓨터업계에 진출할 수 있게 되었다. 이 과정을 통해 AT\&T는 거의 무료로 소스코드를 공개하던 과거의 방식에서 변화하여 Unix의 상품화로 입장을 바꾸어 가격도 오르고 소스코드 역시 엄격하게 관리되어 더 이상 개방되지 않도록 폐쇄적인 Closed Source(Open source의 반대말)로 변화하였다. 이렇게 Unix 분야에 상업화 바람이 불면서 유닉스 초기에 존재하던 활발한 소스코드 공개 문화는 사라져 버리게 되어 결국 제각각이 되어버린 Unix들은 점차 폐쇄적으로 바뀌어 호환성을 갖지 못하게 되는 상태까지 이르렀다.

1981년, 소위 DECUS 테이프는 DEC 장비 사용자로 하여금 자유 소프트웨어 전송을 위한 전세계 시스템이었다. 운영 체제는 일반적으로 독점 소프트웨어 였지만 TECO 편집기, Runoff 텍스트 포맷터 또는 List 파일 목록 유틸리티와 같은 많은 도구는 사용자의 삶을 더 쉽게 만들고 DECUS 테이프를 통해 배포하기 위해 개발되었다. 이러한 유틸리티 패키지는 DEC의 독점 운영 체제를 해방하는데 도움이 되었다. DECUS 테이프는 컴파일러조차도 배포 할 수 있었다. 1981 Decus 테이프는 사용자가 DEC 16 비트 PDP-11 및 VMS 운영 체제에서 실행중인 32 비트 VAX 에서 유닉스 계열 시스템 을 사용할 수 있게 해주는 Lawrence Berkeley Laboratory 소프트웨어 도구 가상 운영 체제를 도입함으로써 가장 혁신적이었다. (현재 Windows용 Cygwin 시스템 과 유사하다.)

1983년 IBM은 구입한 소프트웨어로 더 이상 소스를 배포하지 않겠다는 정책을 발표했다. 수익을 높이기 위해 일반적으로 소스 코드를 배포하지 않고 소스 코드에서 컴파일 된 실행 가능 머신 코드만 배포하기 시작했다.

소스 코드의 상업화 경향이 강화되면서 이러한 'Closed Source 관행'에 특히 괴로워했던 사람은 "리처드 스톨만(Richard Stallman)"이었다. 그는 처음에는 다른 사람들이 작성한 프로그램을 더 이상 연구하거나 수정할 수 없다고 우려했다. 스톨만은 이 관행을 윤리적으로 잘못된 것으로 보았고, 그 후에 그는 1983년에 GNU프로젝트를 설립하여 사람들이 자유 소프트웨어만을 이용하여 컴퓨터를 사용할 수 있게 했다. 스톨만은 GNU프로젝트를 시작하여 소스코드에 제약이 없는 완전한 운영 체제를 작성하기 시작했다. 스톨만은 또한 GNU프로젝트의 목적을 설명하고 자유 소프트웨어의 중요성을 설명하기 위해 1985년에 'GNU 선언문'을 발표했다.

![richard](/files/-LQ9tCTjvToVHaUKIHJ-)

![gnu](/files/-LQ9tCTlbRbQzFjkZysN)

결국 사회적 측면에서 볼 때 GNU프로젝트는 기술적으로는 동등하지만 사회적으로는 완전히 다른 소프트웨어를 개발하는 것이었다. 스톨만이 추구한 것은 '사적 독점 소프트웨어 사회체계'에 맞서서 소프트웨어를 공유하고 협력하는 공동체를 만들고 궁극적으로는 사적 독점 소프트웨어를 완전히 극복하는 것이었다. 스톨만은 이 프로젝트를 수행하기 위해 1985년 비영리기구인 FSF(Free Software Foundation)를 설립하여 보다 공식적으로 프로젝트를 조직했다. 이 프로젝트의 목표는 기술적으로 완벽한 Unix 호환 소프트웨어 체계를 개발하는 것이었다. 그러나 GNU는 기술적으로 Unix와 같지만 사용자들에게 자유를 준다는 점에서 그와 본질적으로 달랐다.

![fsf](/files/-LQ9tCTnXFyPnCtJUTNN)

여기서 자유는 다음 네 가지의 의미를 지닌다. 첫째, 어떤 목적으로도 프로그램을 가동시킬수 있는 자유. 둘째, 필요에 맞게 소프트웨어를 수정할 자유. 셋째, 무료 또는 유료로 복사본을 재배포 할 수 있는 자유. 넷째, 전체 공동체가 혜택을 볼 수 있도록 프로그램의 수정본을 배포할 수 있는 자유.

한편 이와 같은 공공의 영역에 위치하고 있는 자유 소프트웨어의 약점은 누군가 그것을 사유 소프트웨어로 사용할 가능성이 있다는 점이었다. 그래서 이 문제를 해결하기 위해 1989년, 스톨만은 저작권에는 반대하지만 그것을 이용하여 저작권에 대응하는 GPL(General Public Licence)를 개발하였다. GPL은 해당 프로그램을 마음대로 복사, 배포, 수정할 수 있으나, 그 수정된 프로그램의 소스는 반드시 공개되어야 한다는 라이센스이다.

![gpl](/files/-LQ9tCTpEELM-N1Htz5e)

그는 저작물의 복사본과 수정된 버전을 자유롭게 배포할 권리를 나중에 제공되는 파생 저작물에 동일한 권리가 보존된다는 규정과 함께 제공되는 관행인 Copyleft를 발명했다. Copyleft란 독점적인 의미의 저작권(Copyright)에 반대되는 개념이며, 저작권에 기반을 둔 사용 제한이 아니라 저작권을 기반으로 한 정보의 공유를 위한 조치이다. 카피레프트를 주장하는 사람들은 보통, 지식과 정보는 소수에게 독점되어서는 안 되며, 모든 사람에게 열려 있어야 한다고 주장한다. 저작권의 대상이 되는 저작물의 무료상태를 보존하는 법적 메커니즘을 제공하고 이를 일반 공중 라이센스에 구현했다.

![copyleft](/files/-LQ9tCTrAa9ezJ1Dl7u7)

Copyleft 라이센스는 저작자가 사용자에게 추가 요금 없이 저작물을 사용할 수 있는 권리와 프로그램의 완전한 소스 코드를 입수하고 연구하고 수정할 수 있는 권한을 포함하여 여러가지 권리를 부여할 수 있지만 파생 저작물에는 동일한 라이센스 하에 있거나 다른 제한 사항 없이 유지되어야 한다. 파생 저작물에는 다른 원본 프로그램과의 조합이 포함되므로 다운 스트림 저작자는 최초 저작물을 독점 소프트웨어로 전환 할 수 없으며 카피 레프트 공유지에 기여하도록 초청받는다. 저작자는 저작권을 보유하고 모든 재배포에 동일한 라이센스하에 라이센스가 부여된다는 제한하에 재배포를 허용한다. 다른 사람에 의한 추가 및 수정은 원래의 라이센스 제품의 일부와 함께 배포 될 때마다 동일한 "Copyleft"라이센스 하에 라이센스 되어야한다. 이것은 바이러스 성, 보호 성 또는 상호 라이센스 라고도 한다. 배포 제한으로 인해 모든 사람이 이 유형의 라이센스를 무료로 간주하지는 않는다.

### 1980 년대 온라인 소프트웨어 공유 커뮤니티

1980년대에는 자유 소프트웨어 운동과 나란히 소스 코드가 있는 소프트웨어가 Bulletin-board system(BBS) 네트워크에서 공유되었다. 이 네트워크를 사용한 방법은 대중이 사용 가능한 첫 MODEM 기반의 전자 커뮤니케이션 방법이었다. BASIC 및 기타 해석 언어로 작성된 소프트웨어는 소스 코드로만 배포 할 수 있었으며 그 대부분은 프리웨어였다. 사용자가 그러한 소스 코드를 수집하고 수정을 논의하기 위해 특별히 보드를 설정하기 시작했을 때 이것은 사실상의 오픈 소스 시스템이었다.

가장 확실한 사례 중 하나는 가장 많이 사용된 BBS 시스템 및 네트워크 중 하나인 WWIV이다. WWIV는 1984 년 초 캘리포니아 주 로스 앤젤레스에서 한 BBS로 시작하여 Wayne Bell이 고등학교 프로그램 프로젝트로 BASIC에서 1.0 버전을 작성하여 25 명의 친구들과 공유했었다. 자신의 소프트웨어를 "modding"하고 mods를 배포하는 문화는 매우 커져서 소프트웨어가 첫 번째로 Pascal, 그 다음 C ++로 포팅되면 등록된 사용자에게 배포되고 계속해서 mods를 공유하고 자신의 코드를 컴파일한다. 1980년대 초 Usenet과 UUCPNet의 출현으로 프로그래밍 공동체가 더욱 깊어 지고 프로그래머가 자신의 소프트웨어를 공유하고 다른 사람들이 작성한 소프트웨어에 기여할 수있는 더 간단한 방법을 제공하게 되었다.

## 1980년대 말 \~ 90년대 - GNU프로젝트와 Linux

계속되는 비공식적 소프트웨어 공유 - 이런 시행에도 불구하고 여전히 소스 코드를 다른 사용자들과 무료로 공유하고 싶어하는 사람들이 있었으며, 이런 사람들을 "해커(Hackers)"라고 불렀습니다.

GNU 프로젝트는 여러가지 기술을 개발하였으나 1990년대 초까지 운영체제의 핵심기능을 담당하는 커널은 개발하지 못하고 있었는데, 그것은 GNU가 독립된 운영체제로 완성되기 위해서는 반드시 필요한 것이었다. 이 문제는 1991년, 리눅스(Linux)라는 프로그램이 개발되어 GNU 프로젝트에 합류함으로써 해결되었다. 리누스 토발즈(Linus Benedict Tovalds)가 Unix를 개조하던 끝에 새로운 커널을 개발한 것이었다. Linux는 GPL하에 배포되었으며, 1992년에 이 새로운 커널이 불안전했던 GNU 체계에 결합됨으로써 최초의 완전한 자유 소프트웨어 운영체제인 GNU/Linux가 완성되었다

![linus](/files/-LQ9tCTtTL_To6jrKnJC)

![linuxp](/files/-LQ9tCTvGySMHa91JqGE)

GNU/Linux의 명명은 이것이 생겨난 시기인 과거부터 지금 현재까지도 논쟁의 여지가 남아 있다. 전체 시스템을 단순히 "Linux"로 언급하는 것은 일반적인 사용법이다. 그러나 자유 소프트웨어제단(FSF), 그리고 많은 다른 사람들은 전체 운영 체제에 대한 것보다 정확한 이름을 말하는 용어인 "GNU/Linux"의 사용을 옹호하는 편이다.

Linux가 발전하면서 자유소프트웨어 운동도 발전하였는데, 이 과정에서 자유소프트웨어 운동 내부에서도 분화가 이루어지기 시작했다. 이상주의적이고 도덕적인 스톨만의 입장에 대해서 실용주의적 관점에서의 비판이 이루어지기 시작한 것이다.

자유 소프트웨어 운동을 주도해왔던 스톨만은 공유와 협동의 문화에 입각해서 소프트웨어를 개발해야하며 사적 이익과 독점을 추구하는 산업체 주도의 문화에 반대해야 한다고 역설했다. 도덕적인 측면에서 자유 소프트웨어의 개발을 주장했던 것이다. 그러나 자유 소프트웨어의 정신은 존중하지만 스톨만의 도덕적이고 이상주의적 운동방식에 대해 비판적인 입장을 취하는 집단들이 형성되기 시작했다.

Debian GNU/Linux 프로젝트는 1993년 8월 16일 이안 머독(Ian Murdock)에 의해 시작되었고, 1993년 9월 15일에 데비안 0.01이 릴리스되었으며, 최초의 안정 버전 1.1은 1996년 6월 17일에 릴리스 되었다. Debian은 개인용 컴퓨터 및 네트워크 서버에서 가장 많이 사용되는 버전이며, 다른 많은 배포판의 기반으로 사용된다. Debian은 리눅스 커널을 기반으로 한 최초의 운영 체제 중 하나로서, 공개적으로 개발되어 GNU 프로젝트의 정신으로 자유롭게 배포되었다. 이 결정은 1994년 11월에서 1995년 11월까지 1년간 프로젝트를 후원한 자유 소프트웨어 재단(FSF)의 지원을 받았다. 모든 Debian 릴리즈는 GNU 사용자 영역과 GNU C 라이브러리 (glibc)를 기반으로 하지만, FreeBSD와 GNU Hurd 마이크로 커널을 포함하여 Linux 이외의 커널도 사용할 수 있다.

![murdoc](/files/-LQ9tCTxZsek9VJyoImX)

1993년에 USL(AT\&T)와 Berkeley Software Design간의 법정 소송이 법정에서 해결되었을 때 , FreeBSD 와 NetBSD (둘 다 386BSD 에서 파생 됨)는 자유 소프트웨어로 배포되었다. 1995년 오픈 BSD는 포크 NetBSD에서, 2004년 FreeBSD에서 Dragonfly BSD가 나왔다. BSD 라이센스는 GPL과 다르게 소스코드를 사용하는 것에 있어서 느슨한 제약만 존재한다.

## 1990년대 말 \~ 2000년대 초

### '성당과 시장'과 Netscape, 그리고 자유소프트웨어 운동의 분화

이 중 Linux 배포판, 데비안 GNU/Linux에 의해 시작되어, 1996년 이래로 리눅스 커널은 독점적인 라이센스 구성 요소를 포함하고 있어 완전한 자유 소프트웨어는 아니었다. 따라서 자유 소프트웨어 재단(FSF) 라틴 아메리카는 2008년에 Linux-libre라는 수정된 버전의 리눅스 커널을 발표했다. 이 버전에서는 모든 독점적인 구성 요소와 비 자유 구성 요소가 제거되었다.

1990년대와 2000년대에 걸쳐 현재에도 Linux를 채택한 정부와 기업은 점점 증가하고 있다. 영어권 세계에서 우분투와 그 파생물은 상대적으로 인기있는 Linux 배포판이 되었다.

1997년, 에릭 레이먼드(Eric S.Raymond)가 발표한 논문 '시장과 성당'은 해커 커뮤니티와 무료 소프트웨어 원칙의 반사를 분석한 글이었다. 이 글은 Linux를 개발하는 방식이 왜 성공적인 결과를 낳았는지를 분석하고, 그 분석결과를 자신이 참여한 오픈소스 프로젝트를 통해 검증한 글이다.

![eric](/files/-LQ9tCTzh_pmtLlnFjfk)

![church](/files/-LQ9tCU03QvJ7dXG2Hec)

레이먼드는 GNU프로젝트에서 Linux가 수행한 기능과 역할보다 리눅스가 개발되고 개선되는 방식에 주목했다. Linux의 개발방식은 스톨만이 주도한 GNU프로젝트의 개발방식과는 매우 다른 것이었다. 레이먼드에 따르면 스톨만이 주장하는 방식은 탁월한 능력을 가진 전문가들이 복잡한 프로그램을 개발하기 위해 위대한 고립속에서 주의 깊게 작업하는 것과 유사했다. 이것은 중세의 '성당(Cathedral)'을 건축하는 것과 유사한 접근 방식이었다. 그러나 Linux가 개발되는 과정은 마치 '시장(Bazaar)'에서 여러 사람들이 모여 어지럽게 뒤섞여 제품을 개발하는 방식을 취했다고 주장하며 바로 이러한 방식이 리눅스의 성공을 가져온 것이라고 주장했다.

그는 "충분히 많은 베타테스터(β tester)와 공동개발자가 있으면 거의 모든 문제들은 빨리 파악될 것이고, 그 중에는 쉽게 고치는 사람이 있기 마련이다."라는 사실을 지적하면서 불완전한 소프트웨어를 자주 빠르게 발표하여 수많은 사람들이 버그를 수정하는 방식에 주목하였다. 그는 토발즈가 Linux를 만들었다는 사실보다 Linux의 개발 모델을 만든 것에 대해 더 큰 의미를 부여하였다.

이 글은 1998년 초에 리눅스 및 오픈소스 소프트웨어 기술 개발에 대해 인류학적 접근을 새롭게 시도한 글이라면서 주목을 받았으며, 특히 1998년 1월, 그 논문은 넷스케이프(Netscape)사가 레이몬드의 논리를 수용하여 인기있는 Netscape Communicater 인터넷 제품군의 소스코드를 공개하고 무료 소프트웨어로 출시하도록 하게 되는 이유 중 한 가지가 되었다.

![netscape](/files/-LQ9tCU2LrIebti3sscY)

이러한 넷스케이프의 결정은 레이먼드와 다른 사람들이 자유 소프트웨어 원칙과 이점들을 사용 소프트웨어 산업에 가져오는 방법을 조사하도록 만들었다. 그들은 FSF의 사회 활동이 넷스케이프와 같은 회사에 호소력이 없다고 결론을 내렸고, 소스코드 공유의 비즈니스 잠재력을 강조하기 위해 자유 소프트웨어 운동을 재편성하는 방법을 모색했다. 그 결과, '스톨만이 주장하는 자유소프트웨어 운동'과는 입장을 달리하는 운동을 형성하는 직접적인 계기가 되었다.

레이먼드와 그의 입장에 동의하는 사람들은 오픈소스운동을 관리하기 위해 Open Source Initiative라는 조직을 결성하였다. 이 조직의 사람들은 스톨만과 다르게 자유소프트웨어의 이념적 측면보다는 그것이 개발되는 방식에 초점을 맞추는 실용적 접근을 취하고, 게다가 산업체와의 관계에서도 다른 입장을 취했다. 이들은 자유소프트웨어는 산업계는 물론이고 개발자에도 경제적인 보상을 제공할 수 있어야 한다고 주장하고 있다. 스톨만은 산업계와의 협력을 거부하면서 폐쇄적인 전략을 취하고 있으며, 소프트웨어의 개발자에게도 도덕적인 대의에 협력할 것을 요구한다고 파악했다. 이들은 그러한 스톨만의 입장과는 반대로 이데올로기적 관점이 아니라 굳건한 실용적 기반 위에 자유 소프트웨어가 설 수 있어야 한다는 것이 이들의 주장이었다.

![osi](/files/-LQ9tCU4S0w70XOUJHm4)

| **구분**          | **자유소프트웨어재단(FSF)** | **오픈소스 운동(OSI)** |
| --------------- | ------------------ | ---------------- |
| **주요인사**        | 리차드 스톨만            | 에릭 레이먼드          |
| **입장**          | 원칙주의               | 실용주의             |
| **목적**          | 자유소프트웨어 발전         | 오픈소스 소프트웨어 발전    |
| **행태적, 규범적 가정** | 윤리적 접근법            | 이기적 접근법          |
| **공유저작권**       | 공동체를 확장하는 수단       | 부당한 사용을 방지하는 수단  |
| **강조**          | 정보의 자유성 강조         | 정보의 가치성 강조       |

### "오픈 소스(Open Source)"라는 이름

![open](/files/-LQ9tCU6AcGsPoxJhUlP)

1998년 1월 네비게이터용 소스 코드 공개에 대한 Netscape의 발표에 대한 반응으로 캘리포니아 Palo Alto에서 열린 전략 세션에서 자유 소프트웨어 운동의 일부 사람들은 "오픈소스"라는 레이블을 채택했다. "오픈소스"를 지지하는 사람들인 Todd Anderson, Larry Augustin, Jon Hall, Sam Ockman, Michael Tiemann, Eric S.Raymond와 Christine Peterson 등이 그 단어를 퍼뜨리는 일을 했다. Phil Hughes는 Linux Journal에서 강단을 제안했다. 자유 소프트웨어 운동의 개척자인 스톨만은 이 용어를 채택하면서 마음이 바뀌었다. 이 용어를 채택한 사람들은 네비게이터의 소스 코드가 공개되기 전에 "자유 소프트웨어"라는 이데올로기적이고 대결적인 의미를 벗어날 수 있는 기회를 이용했다고 했다. 결국 Netscape는 Netscape Public License 및 Mozilla Public License에 따라 소스코드를 발표했다.

사실 "오픈 소스(Open Source)"라는 이 용어는 기술 출판사 Tim O'Reilly가 1998년 4월에 조직한 행사에서 큰 호응을 얻었다. 원래 "프리웨어 정상 회의"라는 제목이었던 행사는 나중에 "오픈 소스 정상 회의"라는 이름으로 바뀌었다. 자유 및 오픈소스 프로젝트의 많은 지도자들로 구성된 모임에서 "자유 소프트웨어"라는 이름으로 인한 혼란이 제기되었다. Tiemann은 "소스웨어"를 새로운 용어로, Raymond는 "오픈 소스"를 주장했다. 모집된 개발자들은 표를 얻었고, 그날 저녁 기자회견에서 승자가 발표되었다. 5일 후, 레이몬드는 자유 소프트웨어 공동체에게 새로운 용어를 채택할 첫 번째 공개 전화를 했다.

스톨만에 따르면 처음에는 오픈소스 용어를 채택하는 아이디어에 흔들렸다고 한다. 오픈 소스 용어의 엄청난 성공이 스톨만의 자유 소프트웨어 용어와 그 용어에 담겨진 사회 가치와 컴퓨터 사용자의 자유에 관한 그의 메시지를 묻어 버렸기 때문이었다. 스톨만의 거부로 인해, FOSS 생태계는 용어로 분리되어있다. 스톨만은 여전히 각 용어의 사용자가 독점 소프트웨어와의 경쟁에서 동맹을 맺고 있다고 주장했다.

1999년대 말, "오픈 소스"라는 용어는 결국 대중 매체에서 큰 인기를 얻었으며, 닷컴 업계의 거품과 오픈소스 소프트웨어가 주도하는 Web 2.0이라는 맥락에서 소프트웨어 산업에서의 인정을 얻었다. 그리고 그 해에, 데비안 프리 소프트웨어 지침(Debian Free Software Guideline)의 작성자인 브루스 페렌스는 이 지침을 소프트웨어 라이선스가 어떻게 오픈소스로 인식될 수 있는지에 대한 객관적인 정의로 개작했다. 바로 OSD(Open Source Definition)이다.

2000년 10월 13일, Sun Microsystems 는 GNU Lesser General Public License 하에서 StarSuite 오피스 스위트를 무료 소프트웨어로 발표했다. 자유 소프트웨어 버전은 OpenOffice.org로 이름이 바뀌었고, StarOffice와 공존했다.

2000년대 중반, 오픈소스에 대한 인기가 높아지면서 라이선스의 무분별한 확산이 문제가 됐다. 2000년대 말엔, 너무나 많은 오픈소스 비영리단체가 생겨나자 OSI는 산하 단체 모델로 전환하고 개인 회원제도도 도입해 새로운 이니셔티브를 가능하게 했다.

2004-2006년 기간에 OSI는 오픈소스 라이센스의 과잉 증식 문제를 처리하기 위해 공공 의견 수렴 과정을 진행했다.

### Microsoft와 자유 소프트웨어의 경쟁

자유 소프트웨어가 대중화되면서 Microsoft와 같은 산업계의 재직자들은 이를 심각한 위협으로 간주하기 시작했다. 마이크로 소프트는 GPL과 Linux를 '암'과 비교했지만, 새로운 경영진과 클라우드 솔루션 구축에서 오픈소스를 피할 수 없게 된 마이크로소프트는 오픈소스에 대한 공개적인 적대감 표현을 중단했다. 실제로 Microsoft는 오픈소스에 대해 부드러운 입장을 공개했다. NET과 차크라코어를 공개 개발로 전환한 덕에 프로그램 개발과 회사 이미지 개선에 도움이 꽤나 크게 되었다고 한다. 이후에 C#을 완전 오픈 소스로 풀거나, Windows 10에 우분투 기반 리눅스 서브시스템(WSL)과 Bash 셸을 탑재하는 등 오픈 소스를 적극 활용하는 모습을 보이고 있다. 물론 마이크로소프트는 임베디드 리눅스에 대한 특허 소송은 계속하고 있다.

> "리눅스는 암이다" (Steve Balmer, 전 Microsoft CEO)\
> ![microsoft](/files/-LQ9tCU8vVXndIEe_Q3B)

2006년 Microsoft는 자사의 플랫폼을 대상으로 하는 오픈 소스 개발자들을 위한 호스팅을 제공하기 위해 CodePlex 오픈소스 코드 호스팅 사이트를 시작했다. 2009년 7월 Microsoft는 GNU 일반 공증 사용 허가서(General Public License)에 의해 요구되었기 때문에 일부 Hyper-V 지원 패치를 Linux 커널에 공개하여 메인 라인 커널에 제공했다. Hyper-V 자체는 오픈소스가 아니다. 2002년에 만들어진 Microsoft의 F# 컴파일러도 Apache 라이센스에 따라 오픈 소스로 해방되었다. F# 컴파일러는 오픈 소스가 아닌 Microsoft Visual Studio에 통합된 상용 제품이다.

Microsoft 담당자는 수년 동안 다양한 오픈 소스 및 Linux 컨퍼런스에서 정기적으로 출연했다. 2012년 Microsoft는 오픈소스 표준을 통해 독점적인 Microsoft의 기술과 타사 기술 간의 격차를 해소하기 위해 Microsoft Open Technologies Inc.라는 자회사를 설립했다. 이 자회사는 이후 오픈소스 및 비 Windows 플랫폼에 대한 Microsoft의 입장이 유리해짐에 따라 Microsoft로 다시 병합되었다. 2016년 1월, Microsoft는 MIT 라이센스 하에 Chakra를 오픈 소스로 출시했다. 이 코드는 현재 Github에서 사용 가능하다.

## 2000년대 \~ 현재 - 점점 더 발전하면서 커져가고 있는 오픈소스 시장

오늘날 새로운 이니셔티브는 바로 오픈소스로 간다. 오픈소스는 20년만에 위협에서 기회로, 암적인 존재에서 기념비적인 존재로, 파생 기술에서 혁신으로 바뀌었다. 오픈소스가 IT의 역사를 다시 쓸 수 있는 원동력이 되었던 것은 공개된 소스코드가 아니라 소스코드를 손쉽게 개작할 수 있다는 점 때문이다. 많은 사람들은 개발자들의 이러한 행동양태를 ‘오픈소스 운동’이라 불렀다.

리눅스는 오픈소스라는 양분을 섭취하며 x86 서버 시장에서 자신의 진가를 드러내기 시작했다. x86 서버 시장에서 유닉스에 비해서 리눅스는 무료라는 점을 전면에 내세운 아파치 프로젝트(Apache Project)를 필두로, 다양한 오픈소스 프로젝트와 협업(collaboration)이 서버 시장을 무섭게 잠식하기 시작했다.

2004년 리처드 스톨만이 ‘자바의 함정’이란 글을 통해 그 사악함을 지적했지만, 자바 플랫폼은 2006년 오픈소스화됐다.

![java](/files/-LQ9tCUAa74TjsGMGIpd)

### 스마트폰 - 애플의 모바일 프로젝트를 따라잡기 위해 오픈소스로 안드로이드(Android)를 만들다

2001년 미국의 컴퓨터 제조사인 애플은 MP3 플레이어 아이팟(iPod)을 판매하기 시작한다. 스티븐 잡스에 의해서 시작된 애플의 미디어 허브(Media Hub) 전략의 일환인 아이팟은 전문가의 예상을 보란 듯이 뒤엎고 소비자 시장에서 멋진 성공을 거둔다. 성공의 가장 큰 이유는 아이튠즈(iTunes) 때문이었다. MP3를 앨범 단위가 아니라 곡 단위로 구매가 가능하다는 점과 함께 불법 MP3가 아니라 손쉽게 대가를 지불하며 사용할 수 있다는 점 때문에 아이팟은 엄청난 히트를 기록한다.

스티브 잡스가 만든 애플의 가장 소중한 유산인 아이튠즈를 기반으로 2007년 아이폰(iPhone) 출시와 함께 애플은 모바일 생태계 전략을 위한 플랫폼(platform)을 제시한다. 애플이 제시한 플랫폼의 핵심은 아이튠즈의 콘텐츠(contents)를 쉽게 소비할 수 있도록 개발자와 소비자에게 동일한 콘텐츠 소비 환경을 제공하는 것이다. 기존의 운영체제인 OS X를 개선하여 모바일(Mobile) 제품에는 iOS를 탑재, 하드웨어(Hardware)는 애플에서 생산 및 공급을 담당, 콘텐츠 소비를 도와줄 각종 소프트웨어 개발환경인 Xcode를 제공한다. 애플의 ‘모바일 플랫폼(Mobile Platform)’전략은 스마트폰(Smartphone)이란 새로운 포지셔닝(Positioning)을 만들어 냈으며, 가장 혁신적인 제품의 이미지를 애플이 획득한다.

![apple](/files/-LQ9tCUCdIs9lXI5mY7z)

애플이 만들어 낸, 모바일 플랫폼에 대응하기 위해서 선택한 대안책 중 가장 유명한 것은 오픈소스 프로젝트인 안드로이드(Android)이다. 애플의 플랫폼이 자사의 하드웨어와 소프트웨어를 근간으로 아이튠즈의 콘텐츠를 가장 완벽하게 소비할 수 있는 생태계를 구성했다면, 구글은 자사의 하드웨어와 소프트웨어가 아닌, 오픈된 하드웨어와 오픈된 소프트웨어로 구글이란 검색창을 통해서 콘텐츠를 소비하는 생태계를 제시하였다. 하드웨어와 소프트웨어가 모두 공개되어 있으며, 누구나 개선해서 사용할 수 있다는 장점은 스마트폰의 폭발적인 증가를 가져왔다.

![google](/files/-LQ9tCUEF4Fe4NCSjhB3)

![droid](/files/-LQ9tCUGNuD6hi26lmnK)

구글의 모바일 플랫폼인 안드로이드의 운영체제 커널로 리눅스가 채택되고, 다양한 오픈소스 프로젝트가 안드로이드의 프로젝트에 편입된다. 오폰소스의 이점을 살려서 다양한 제품이 출시되고, 저렴한 가격에 소프트웨어를 제공할 수 있는 환경이 구축되면서 리눅스는 IT업계의 스타로 발돋움 했다. 리눅스는 전 세계 9억대의 안드로이드 폰에 탑재되어있다. 단순하게 안드로이드만 놓고 봐도 전 세계에서 가장 많이 사용되는 운영체제라 불러도 손색이 없다.

삼성과 인텔이 주도적으로 진행하는 타이젠(Tizen), PC와 모바일 환경의 통합을 꿈꾸는 우분투포폰(Ubutnu for Phone), 웹 브라우저 기반의 운영체제를 지향하는 파이어폭스 폰(Firefox phone) 등, 현재 진행되는 모바일 플랫폼 전략의 핵심 소프트웨어인 커널을 리눅스가 담당하고 있으며, 대부분의 소프트웨어도 오픈소스 프로젝트를 활용 한다는 점에서 오픈소스가 가진 영향력과 범용성을 엿볼 수 있다. 물론 오픈소스 프로젝트의 안정적이고 강력한 성능도 한 몫 하고 있다.

## 현재 - 지금의 우리는...

지금의 우리는 IT기업에서 오픈소스를 활용하는 부분이 더욱더 커지고 있다. 많은 사람들이 익히 알고 있는 오픈소스의 대명사인 리눅스와 안드로이드는 많은 곳에서 사용되고 있으며, 오픈소스와 인연이 없을 것으로 착각하는 애플에서도 LLVM을 채택하고 있다. 심지어 마이크로소프트의 CTO였던 레이오지(Ray Ozzie)기 마이크로소프트의 최대 적은 ‘오픈소스’라 했던 것을 생각해 본다면 오픈소스가 가진 철학과 파급력에 대해서 좀 더 깊은 고민과 성찰이 반드시 필요하다.

무엇보다 기존에 존재하는 오픈소스를 단순하게 활용하는 수준이 아니라 오픈소스 생태계를 꾸려나갈 수 있는 역량과 실력을 배양해야 한다. 오픈소스 생태계를 구성하는 오픈소스 프로젝트를 이끌어가는 방법을 고민해야 한다. 기업 후원을 통한 오픈소스 프로젝트 지원도 분명히 필요하지만, 오픈소스 생태계에 필요한 것은 양질의 코드와 다양한 아이디어라 할 수 있다. 근시안적인 방법이 아니라 오픈소스가 가진 철학과 방법에 대한 깊은 성찰과 동시에 IT 기술에 대한 순도 높은 지원과 확산만이 IT 생태계에서 살아남는 가장 최선이며 근본적인 방법이다.

다음 세대 모바일이라 불리는 웨어러블(wearable computer)을 비롯한 사물인터넷(Internet of Things, IoT), 사물지능통신(Machine to Machine, M2M) 프로젝트의 대부분도 오픈소스로 진행되고 있다는 점을 깊게 생각하여 오픈소스에 대한 정직한 인식과 지원을 확대해 나갈 수 있기를 간절한 마음으로 기원한다.

## 출처

* 한국소프트웨어진흥원, 오픈소스 소프트웨어 연구 보고서 - 법적 문제와 외국 정책 동향을 중심으로 -(2002)
* Wikipedia - History of free and open-source software

  (<https://en.wikipedia.org/wiki/History_of_free_and_open-source_software>)
* Wikipedia - BASIC

  (<https://en.wikipedia.org/wiki/BASIC>)
* Wikipedia - Open\_Letter\_to\_Hobbyists

  (<https://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists>)
* Wikipedia - Debian

  (<https://en.wikipedia.org/wiki/Debian>)
* 리눅스와 오픈소스, IT 역사를 다시 쓰다

  (<http://www.comworld.co.kr/news/articleView.html?idxno=44946>)
* "오픈소스 20년"11장으로 보는 세상을 바꾼 역사

  (<http://www.itworld.co.kr/print/108114>)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://1-in-bun-bookspace.gitbook.io/testdelta/history_finish.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
