강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터 1급 : 오픈소스 소프트웨어

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터 1: 오픈소스 소프트웨어




오픈소스 소프트웨어 (OpenSource Software)

 

 

소프트웨어 소스코드의 공유와 협업에 의한 개선에 기초한 개발은 소프트웨어 발전 자체만큼이나 오래지만, 1990년대 말의 리눅스의 확산 및 넷스케이프 브라우저의 소스코드의 공개와 함께 이러한 현상은 놀라울 만큼 증가했다.

 

 

 

 

이런 가운데 오픈소스 소프트웨어(OSS, Open Source Software)에 대한 개념이 발생하였고, 1998년에 오픈소스 이니셔티브(OSI, Open Source Initiative)가 발족되었다.

 

 

 

오픈소스라는 용어는 넷스케이프 소스코드의 출판에 대한 발표가 있은 지 얼마 후인 199823일 켈리포니아 팔로 알토(Palo Alto, California)에서 열린 전략회의(strategy session)에서 만들어졌다.

 

 

 

 

이 회의에서 넷스케이프가 소스코드를 공개하도록 했던 실용적인 비즈니스 근거는 잠재적인 소프트웨어 사용자와 개발자를 연결하고 그들이 관련 공동체에 참여함에 의해 소스코드를 창작하고 개선하도록 하는 가치있는 방법이라고 믿고, 이와 관련하여 철학적이고도 정치적인 것에 초점이 맞추어진 자유 소프트웨어라는 용어와 차별화된 하나의 용어를 사용하는 것이 유용할 것이라는 데에 공감했다.

 

 

 

 

이러한 새로운 용어는 브레인스토밍 이후에 크리스틴 피터슨(Christine Peterson)에 의해 제안된 오픈소스라는 용어로 결정되었다.

 

 

 

 

이 회의에 참석했던 에릭 레이몬드(Eric Raymond)와 마이클 타이먼(Michael Tiemann)은 이후에 OSI의 의장이 되었고, Todd Anderson, Jon “maddog” Hall, Larry Augustin, Sam Ockman 등의 참석자들은 이 단체를 위한 중요한 지지자가 되었다.

 

 

 

오픈소스 이니셔티브(OSI, Open Source Initiative)는 다음과 같은 10개의 조건을 갖춘 것을 오픈소스 소프트웨어로서 정의하고 있다.

 

 

 

자유로운 재배포(Free Redistribution)

 

특정 소프트웨어의 라이선스는 해당 소프트웨어의 일부나 전부가 다수의 프로그램으로 구성되는 배포판의 일부로 포함되어 재배포되지 못하도록 배포나 판매상의 제한을 설정할 수 없다.

 

 

 

 

또한 이러한 종류의 배포판에 대한 판매나 양도에 있어서 별도의 라이선스 비용을 징수할 수 없다.

 

 

 

원시코드(Source Code) : 원시코드의 배포와 자유로운 재배포

 

프로그램 저작물은 반드시 원시코드가 포함해야 하며, 컴파일된 형태뿐만 아니라 원시코드의 배포 또한 허용되어야 한다.

 

 

 

 

 

만약 원시코드를 제외한 상태로 배포하고자 한다면 일반적으로 통용되는 매체를 이용해서 제작 실비에 준하는 비용으로 원시코드를 제공해야만 한다.

 

 

 

 

이 경우 가장 바람직한 방법은 인터넷을 통해서 원시코드를 무료로 다운로드 받을 수 있도록 하는 것이다.

 

 

 

 

원시코드는 프로그래머들이 개작하기에 용이한 형태로 제공되어야 하며, 고의로 복잡하고 혼란스럽게 만들어진 형태와 선행처리기(preprocessor)나 번역기(translator)에 의해서 생성된 중간형태(intermediate forms)의 코드는 허용되지 않는다.

 

 

 

 

2차적 저작물(Derived Works) : 2차적 저작물 작성배포의 허락

 

라이선스는 프로그램 원저작물의 개작이나 이를 인식하고 실행할 수 있는 형식의 코드를 지칭한다.

 

 

 

 

이용한 2차적 프로그램의 창작을 허용하여야 하며, 이러한 파생적 프로그램들은 최초의 프로그램이 갖고 있던 라이선스의 규정과 동일한 조건하에서 재배포될 수 있어야 한다.

 

 

 

 

저작자의 원시코드의 완전성(Integrity of The Author's Source Code) : 원시코드 수정 제한

 

빌드 과정을 통해서 프로그램을 개작할 목적으로 원시코드와 패치 파일을 함께 배포할 경우에는, 정상적인 빌드를 보장하기 위해서 라이선스 안에 원시코드의 수정을 제한하는 항목을 추가할 수 있다.

 

 

 

 

그러나 이러한 경우에도 수정된 원시코드를 이용해서 만들어진 소프트웨어에 대한 자유로운 배포를 허용해야 하며, 수정된 원시코드를 통해서 만들어진 2차적 프로그램을 원래의 프로그램과 구별하기 위해서 별도의 이름과 버전을 사용할 것을 요구하는 항목을 추가할 수 있다.

 

 

 

개인이나 단체에 대한 차별 금지(No Discrimination Against Persons or Groups)

라이선스는 모든 개인과 단체에 대해서 동일한 기준으로 적용되어야 한다.

 

 

 

사용 분야에 대한 제한 금지(No Discimination Against Fields of Endeavor)

라이선스 안에 특정한 분야에 종사하는 사람에 대한 프로그램 사용상의 제한을 설정할 수 없다.

 

 

 

 

예를 들면, 유전연구나 상용 사업체에서는 해당 프로그램을 사용할 수 없다는 등과 같이 특정한 분야에 대한 사용을 금지하는 제한을 설정해서는 안 된다.

 

 

 

라이선스의 배포(Distribution of License)

 

프로그램에 대한 권리는 반복되는 배포에 따른 별도의 라이선스 승인이나 양도 과정 없이도 프로그램을 배포받은 모든 사람에게 동일하게 적용된다.

 

 

특정제품에 의존하지 않을 것(License must no be specific to a product) : 라이선스 적용상의 동일성 유지

프로그램에 대한 권리는 반복되는 배포 과정에서 특정한 배포판에 포함되어 있는 상태로만 유효하지 않고, 모든 배포 단계에서 동일한 효력을 갖는다.

 

 

 

 

만약, 특정한 배포판에 포함되어 있던 프로그램을 독립적으로 사용하거나 재배포한다면 해당 프로그램을 배포받는 사람은 프로그램이 포함되어 있던 최초의 배포판 상태에서 발생된 권리와 동일한 권리를 갖는다.

 

 

 

라이선스가 다른 라이선스의 소프트웨어를 제한하지 않을 것(License Must Not Restrict Other Software) : 다른 라이선스의 포괄적 수용

 

라이선스에 오픈 소스 소프트웨어와 함께 배포되는 소프트웨어에 대한 제한을 설정해서는 안 된다.

 

 

 

 

예를 들면, 동일한 매체를 통해서 배포되는 소프트웨어는 모두 오픈소스 소프트웨어이어야 한다는 제한으로 인해서 다른 라이선스 기준을 따르는 소프트웨어가 함께 배포될 수 있는 형태를 금지해서는 안 된다.

 

 

 

라인선스의 기술적 중립성(License Must Be Technology-Neutral)

 

라이선스의 어떠한 규정도 개별 기술 또는 인터페이스 형태에 기초하여 규정되어서는 안 된다.

 

 

 

 

 

이에 대해, 자유 소프트웨어는 상기한 바와 같이 사용자가 소프트웨어를 실행시키거나 이를 복제 및 배포할 수 있는 자유와 함께 원시코드에 대한 접근을 통해서 이를 학습하고 수정, 개선시킬 수 있는 원천적인 자유까지를 모두 포괄하는 것이다.

 

 

 

 

, 자유 소프트웨어는 다음과 같은 4가지 종류의 자유를 내포한다고 할 수 있고, 사용자에게 다음과 같은 자유를 모두 보장하는 프로그램이라고 할 수 있다.

 

 

 

자유 0 : 프로그램을 어떠한 목적을 위해서도 실행할 수 있는 자유

 

 

자유 1 : 프로그램의 작동 원리를 연구하고 이를 자신의 필요에 맞게 변경시킬 수 있는 자유. 이러한 자유를 위해서는 원시코드에 대한 접근이 선행되어야 한다.

 

자유 3 : 이웃을 돕기 위해서 프로그램을 복제하고 배포할 수 있는 자유

 

 

자유 4 : 프로그램을 향상시키고 이를 공동체 전체의 이익을 위해서 다시 환원시킬 수 있는 자유. 이러한 자유를 위해서는 원시코드에 대한 접근이 선행되어야 한다.

 

 

 

 

이렇게 자유 소프트웨어(Free Software)와 오픈소스 소프트웨어(Open Source Software)는 기본적으로는 그 방향이나 정책이 기본적으로는 거의 같기 때문에, 관련 커뮤니티에서는 이들을 굳이 차별하여 다루지는 않는다.

 

 

 

 

GNU 웹사이트에는 오픈소스 소프트웨어가 자유 소프트웨어와는 다소 다른 면이 있지만, 거의 모든 오픈소스 소프트웨어를 자유 소프트웨어로 보고 있으, OSI에서도 대표적인 프리 소프트웨어인 GNU GPL 라이선스를 적용한 소프트웨어를 오픈소스 소프트웨어에 포시키고 있다.

 

 

 

 

국내에서는 자유 소프트웨어오픈소스 소프트웨어간의 차이는 사회적, 철학적, 정치적 문제이며, 법적 측면에서는 차이가 없고 판단하고 있다.

 

 

 

 

이런 이유에서 국내에서는 일반적으로 오픈소스 소프트웨어를 지칭할 때 자유 소프트웨어를 포함하는 것으로 이야기하기도 한다.

 

 

 

 

 

 

그렇지만 두 개념은 엄밀히 말해서는 다른 것이고 GNU는 자유 소프트웨어와 오픈소스 소프트웨어가 다른 것임을 분명히 하고 있다. 이러한 이유에서 양자를 구분하여 총칭하는 용어로서 FOSS(Free/Open Source Software)를 사용하기도 한다.

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  233 명