오픈 소스 소프트웨어 란 무엇이며 왜 중요한가?

괴짜들은 종종 프로그램을 "오픈 소스"또는 "자유 소프트웨어"라고 설명합니다. 이 용어가 정확히 무엇을 의미하고 왜 중요한지 궁금하다면 계속 읽으십시오. (아니요, "무료 소프트웨어"는 단순히 무료로 다운로드 할 수 있다는 의미가 아닙니다.)

프로그램이 오픈 소스인지 아닌지는 개발자에게만 중요하지 않고 궁극적으로 사용자에게도 중요합니다. 오픈 소스 소프트웨어 라이선스는 사용자에게 다른 방법으로는 가질 수없는 자유를 제공합니다.

이미지 크레디트 : Flickr의 Quinn Dombrowski

오픈 소스의 정의

프로그램이 오픈 소스 인 경우 해당 소스 코드는 사용자가 자유롭게 사용할 수 있습니다. 사용자와 다른 모든 사용자는이 소스 코드를 가져와 수정하고 자신의 프로그램 버전을 배포 할 수 있습니다. 또한 사용자는 원래 프로그램의 사본을 원하는만큼 배포 할 수 있습니다. 누구나 어떤 목적 으로든 프로그램을 사용할 수 있습니다. 소프트웨어에 대한 라이센스 비용이나 기타 제한은 없습니다. OSI는 웹 사이트에 "오픈 소스"에 대한보다 자세한 정의가 있습니다.

예를 들어 Ubuntu Linux는 오픈 소스 운영 체제입니다. Ubuntu를 다운로드하고 원하는만큼 복사본을 만들어 친구에게 줄 수 있습니다. 무제한의 컴퓨터에 Ubuntu를 설치할 수 있습니다. Ubuntu 설치 디스크의 리믹스를 만들어 배포 할 수 있습니다. 특히 동기가 있다면 Ubuntu에서 프로그램의 소스 코드를 다운로드하고 수정하여 해당 프로그램 또는 Ubuntu 자체의 사용자 정의 버전을 만들 수 있습니다. 오픈 소스 라이선스는 모두이 작업을 허용하는 반면, 폐쇄 소스 라이선스는 제한을 둡니다.

오픈 소스 소프트웨어의 반대는 폐쇄 소스 소프트웨어로, 사용자를 제한하고 소스 코드를 유지하는 라이선스가 있습니다.

Firefox, Chrome, OpenOffice, Linux 및 Android는 오픈 소스 소프트웨어의 몇 가지 인기있는 예이며 Microsoft Windows는 아마도 가장 인기있는 폐쇄 소스 소프트웨어 일 것입니다.

오픈 소스 대 자유 소프트웨어

오픈 소스 응용 프로그램은 일반적으로 무료로 사용할 수 있지만 나중에 응용 프로그램과 해당 소스 코드의 재배포를 허용하는 경우 개발자가 소프트웨어 복사본에 대한 비용을 청구하는 것을 막을 수는 없습니다.

그러나 그것은 "자유 소프트웨어"가 말하는 것이 아닙니다. 자유 소프트웨어에서“무료”는“맥주처럼 자유”가 아니라“자유와 같이 자유”를 의미합니다. Richard Stallman과 Free Software Foundation이 이끄는 자유 소프트웨어 캠프는 사용자가 제어하고 수정할 수있는 소프트웨어 사용의 윤리와 도덕에 중점을 둡니다. 즉, 자유 소프트웨어 캠프는 사용자의 자유에 중점을 둡니다.

리처드 스톨만. Flickr의 Fripog 이미지.

오픈 소스 소프트웨어 운동은 이러한 유형의 소프트웨어를 선택하는보다 실용적인 이유에 초점을 맞추기 위해 만들어졌습니다. 오픈 소스 옹호자들은 윤리와 도덕보다는 기업에 더 호소 할 수있는 오픈 소스 소프트웨어 사용의 실질적인 이점에 초점을 맞추고 싶었습니다.

궁극적으로 오픈 소스와 자유 소프트웨어 옹호자들은 모두 동일한 유형의 소프트웨어를 개발하고 있지만 메시지에 동의하지 않습니다.

라이선스 유형

개발자가 자신의 프로그램에 대해 선호하는 것에 따라 오픈 소스 프로젝트에서 사용되는 다양한 라이선스가 있습니다.

GPL 또는 GNU General Public License는 Linux와 같은 많은 오픈 소스 프로젝트에서 널리 사용됩니다. 오픈 소스에 대한 위의 모든 정의 외에도 GPL 약관은 누군가가 오픈 소스 프로그램을 수정하고 파생 작업을 배포하는 경우 파생 작업에 대한 소스 코드도 배포해야한다고 명시합니다. 즉, 아무도 오픈 소스 코드를 가져 와서 폐쇄 소스 프로그램을 만들 수 없습니다. 변경 사항을 커뮤니티에 다시 공개해야합니다. Microsoft는 GPL 코드를 통합하는 프로그램이 자체 소스 코드를 공개하도록 강제하기 때문에 GPL을 "바이러스 성"이라고 언급했습니다. 물론, 프로그램 개발자는 이것이 문제가되는 경우 GPL 코드를 사용하지 않도록 선택할 수 있습니다.

BSD 라이선스와 같은 일부 다른 라이선스는 개발자에게 더 적은 제한을 둡니다. 프로그램이 BSD 라이선스에 따라 라이선스가 부여 된 경우 누구나 프로그램의 소스 코드를 다른 프로그램에 통합 할 수 있습니다. 변경 사항을 커뮤니티에 다시 공개 할 필요가 없습니다. 어떤 사람들은 이것이 GPL 라이선스보다 훨씬 더 "무료"라고 생각합니다. 개발자들에게 코드를 자신의 비공개 소스 프로그램에 통합 할 수있는 자유를 제공하는 반면, 어떤 사람들은 권리를 빼앗기 때문에 덜 "자유 롭다"고 생각하지 않습니다. 파생 프로그램의 최종 사용자로부터.

사용자를위한 혜택

이것은 개발자에게만 중요한 모든 건조하고 중요하지 않은 일이 아닙니다. 오픈 소스 소프트웨어의 가장 분명한 이점은 무료로 사용할 수 있다는 것입니다. 위의 Ubuntu Linux의 예는 Windows와 달리 제한없이 원하는만큼 Ubuntu를 설치하거나 배포 할 수 있습니다. 이것은 특히 유용한 서버가 될 수 있습니다. 서버를 설정하는 경우 Linux 만 설치할 수 있습니다. 가상화 된 서버 클러스터를 설정하는 경우 단일 Ubuntu 서버를 쉽게 복제 할 수 있습니다. 라이센싱과 실행이 허용되는 Linux 인스턴스 수에 대해 걱정할 필요가 없습니다.

오픈 소스 프로그램도 더 유연합니다. 예를 들어 Windows 8의 새로운 인터페이스는 오랜 데스크톱 Windows 사용자를 실망 시켰습니다. Windows는 비공개 소스이기 때문에 어떤 Windows 사용자도 Windows 7 인터페이스를 가져 와서 수정하고 Windows 8에서 제대로 작동하도록 만들 수 없습니다. (일부 Windows 사용자는 시도하고 있지만 이는 리버스 엔지니어링 및 바이너리 파일 수정의 힘든 과정입니다. )

Ubuntu와 같은 Linux 데스크톱에서 일부 사용자가 팬이 아닌 새로운 데스크톱 인터페이스를 도입하면 사용자에게 더 많은 옵션이 제공됩니다. 예를 들어, GNOME 3이 출시되었을 때 많은 Linux 데스크탑 사용자가 동등하게 꺼졌습니다. 일부는 코드를 이전 버전 인 GNOME 2로 가져와 최신 Linux 배포판에서 실행되도록 수정했습니다. 이것은 MATE입니다. 일부는 그놈 3에 코드를 가져와 그들이 선호하는 방식으로 작동하도록 수정했습니다. 이것이 시나몬입니다. 일부 사용자는 기존 대체 데스크톱으로 전환했습니다. Windows가 오픈 소스라면 Windows 8 사용자는 더 많은 선택권과 유연성을 갖게됩니다. 새로운 기기에 대한 기능과 지원을 추가하는 인기있는 커뮤니티 기반 Android 배포 인 CyanogenMod를 살펴보세요.

오픈 소스 소프트웨어를 사용하면 개발자가 "거인의 어깨에 서서"자신의 소프트웨어를 만들 수 있습니다. Linux 및 기타 오픈 소스 소프트웨어를 기반으로 구축 된 운영 체제 인 Android 및 Chrome OS를 확인하세요. Apple OS X의 핵심 (iOS 용)도 오픈 소스 코드로 구축되었습니다. Valve는 Steam 게임 플랫폼을 Linux로 포팅하는 작업에 열중하고 있습니다.이를 통해 Microsoft의 Windows에서는 불가능한 방식으로 자체 하드웨어를 만들고 자신의 운명을 제어 할 수 있기 때문입니다.

이것은 완전한 설명이 아닙니다. 전체 책이이 주제에 대해 쓰여졌습니다. 그러나 이제 오픈 소스 소프트웨어가 실제로 무엇이고 왜 유용한 지 더 잘 알고 있어야합니다.