프로그래머가 작성하는 코드는 소스코드라고 한다. 소스 코드를 프로세서에서 실행하기에 적합한 형태로 컴파일한 결과는 오브젝트 코드라고 한다. 소스코드의 경우는 프로그래머가 읽을 수 있는 형태라서 코드를 연구하여 상황에 맞춰 수정할 수 있고 코드에 포함된 혁신적인 기법이나 아이디어를 읽어낼 수도 있다. 하지만 오브젝트 코드는 많은 변환 과정을 거쳤기 때문에 원래 소스 코드와 비슷하게 복원하거나 추출하기가 불가능하다. 그래서 대부분의 상용 소프트웨어는 오브젝트 코드로만 배포된다.
오픈소스는 연구와 개선 활동을 위해 다른 사람들도 소스 코드를 자유롭게 사용할 수 있도록 하는 대안을 일컫는 용어다. 이전에는 대부분의 소프트웨어가 회사에서 개발되었기 때문에 영업ㅂ밀을 입수할 수 없었지만, MIT에서 일하던 리처드 스톨만이 GNU프로젝트를 시작하며 운영체제와 프로그래밍 언어용 컴파일러 같은 중요한 소프트웨어 시스템의 무료 공개 버전을 만들게 되었다.
이후 자유 소프트웨어 재단을 만들고 GNU GPL이라는 저작권 라이선스를 구현하게 되었다. 이 라이선스를 통해서 프로그램이 모든 사용자에게 자유로운 소프트웨어로 계속 남을 수 있게 한다.
덕분에 프로그래밍 언어와 지원 도구는 거의 항상 오픈소스로 만들어지게 되었다. 예시로 구글의 고(go)언어, 애플의 스위프트, 모질라의 러스트가 있다.
대표적인 오픈소스 프로젝트로 리눅스 운영체제가 있다. 리눅스는 개인 개발자뿐만 아니라 구글 같은 대규모 영리 기업에서도 널리 사용되며, 구글은 인프라 전체를 리눅스상에서 운영하고 있다.
오픈소스는 호기심을 불러일으킨다. 소프트웨어를 공짜로 나눠 주면 어떻게 돈을 버는 건가? 퀄리티 유지는 되는건가? 이런 질문은 계속해서 경제, 사회면에서 논의되고 있지만 답은 명확해지고 있다. 예를들어 레드햇은 93년에 찰입되었고 19년에는 340억달러에 IBM에 인수 되었다. 레드햇은 인터넷에서 무료로 받을 수 있는 리눅수 소스 코드를 배포하는 것과 별개로 기술지원, 교육, 품질 보증, 시스템 통합과 기타 서비스 이용에 요금을 청구함으로써 수익을 얻는다.
품질면에서, 전부 최상급이 아닐 수 있지만 이 영향력을 무시할 수는 없다.