오픈 소스란 원래 오픈 소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어인데, 오픈 소스 소프트웨어는 공개적으로 액세스할 수 있게 설계되어 누구나 자유롭게 확인, 수정, 배포할 수 있는 소프트웨어를 말한다.
오픈 소스라는 용어는 소프트웨어 개발 맥락에서 해당 소프트웨어가 특정 무료 배포 기준을 준수한다는 의미에서 비롯되었으며, 오늘날 오픈 소스 방식이라는 용어는 무료 정보 교환, 빠른 프로토타입 제작, 협업 개발의 원칙에 기반한 더 광범위한 가치 집합을 나타낸다.
위에서도 잠깐 언급했듯이, 오픈 소스 소프트웨어란 누구나 검사, 수정 및 개선할 수 있는 소스 코드가 포함된 소프트웨어로 누구나 기능을 추가하거나 기존 오류를 해결하여 애플리케이션을 개선하거나 사용자 지정할 수 있다.
또한, 오픈 소스 소프트웨어는 동료 평가(peer review) 와 커뮤니티 기반 프로덕션에 의지하므로, 분산된 환경에서 협업 방식으로 개발된다. 단일 작성자 또는 기업이 아닌 커뮤니티가 개발하므로 독점적 소프트웨어보다 저렴하고, 유연하며, 지속성이 있다는 것이 특징이다.
몇 가지 예로 오픈 소스 운영 체제인 Linux와 오픈 소스 인터넷 브라우저인 Mozilla Firefox가 있다.
소프트웨어를 만드는 조직이나 사람들이 상업적인 이유 또는 장기적인 관리를 위해 소프트웨어를 통제하는 것을 선호하는 경우가 많은데, 이들은 소프트웨어에 대한 독점적인 소유권을 유지한다.
이처럼, 소프트웨어를 만들고 코드에 대한 통제권, 즉 기능과 사용 방법에 대한 통제를 유지하는 소프트웨어를 독점 소프트웨어 또는 클로즈드 소스 소프트웨어라고 한다.
차이점
독점 소프트웨어는 코드를 제어하는 단일 조직 또는 개발자를 통해 코드를 업데이트하고 오류를 방지하며 작동 상태를 유지한다. 이와 반대로 오픈 소스 소프트웨어는 더 넓은 커뮤니티에서 유지 및 관리되는데, 주요 오픈 소스 프로젝트 중 일부는 전 세계에서 수천 명의 사용자가 변경 사항을 세밀하게 테스트하기 때문에 신뢰성이 더 높은 경우가 많다.
모든 소스 코드에는 사이버 공격에 취약하게 만드는 보안 결함이 있을 수 있는데, 오픈 소스 소프트웨어는 수정이 더 빠르기 때문에 커뮤니티 구성원이 보안 취약점을 보고하면 오픈 소스 프로젝트에서 하루나 이틀 내에 코드 업데이트를 릴리스할 수 있다. 만약 상업 회사가 오픈 소스 소프트웨어를 개발하게 된다면 높은 가시성으로 인해 긴급하게 문제가 해결되고 이는 더 나은 원본 소프트웨어로 이어질 수도 있다.
회사는 일반적으로 독점 라이선스에 따라 클로즈드 소스 소프트웨어를 판매하기 때문에 허가 없이 코드를 보거나 편집하거나 수정할 수 없다.
반면에 오픈 소스 소프트웨어는 오픈 소스 라이선스에 따라 사용할 수 있으므로 사용, 수정 및 재배포가 자유롭다. 개발자는 공개 웹 사이트에서 소프트웨어를 다운로드하여 모든 오픈 소스 코드를 볼 수 있으며 개인 프로젝트의 소스 코드를 수정하거나 다른 사용자가 변경 사항을 볼 수 있도록 계속 허용하는 경우 수정된 코드 재배포하는 것 또한 가능하다.