CS

자유로운 소프트 웨어

운동하는무무 2022. 8. 10. 11:44

기술의 표준성

표준은 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어있는지 명확하고 상세하게 기술한 것이다.


하드웨어의 표준

우리는 주변에서 항상 하트웨어 표준의 혜택을 누리고 있다.
예를 들어 Tv를 사면 집에 잇는 콘센트에 바로 전원 플러그를 연결할 수 있다.
이는 플러그의 표기와 모양, 제공하는 전압에 대한 표준 덕분이다.
TV가 신호를 수신해서 방송화면을 보여 줄 수 있는 이유는 방송과 케이블 TV에 관한 표준이 있기 때문이다.
하지만 리모컨은 표준화되지 않았으므로 모든 TV에는 거기에 맞는 리모컨이 필요하다.

 

소프트웨어의 표준

소프트웨어에도 많은 표준이 있다. 여기에는 아스키코드와 유니코드 같은 문자 집합,
C와 C++ 같은 프로그래밍 언어, 암호화와 압축 알고리즘, 네트워크를 통해 정보를 교환하기 위한 프로토콜이 표함된다.

 

 


자유로운 소프트웨어, 오픈소스

소스코드, 오브젝트 코드

프로그래머가 작성하는 코드는 어셈블리 언어든 고수준 언어든 소스 코드라고 한다.
소스코드를 프로세서에 실행하기에 적합한 형태로 컴파일한 결과는 오브젝트 코드라고 한다.
소스 코드는 프로그래머가 읽을 수 있느 형태라서, 코트를 연구하여 상황에 맞춰 수정할 수 있다.
이와 달리 오브젝트 코드는 너무 많은 변환 과정을 거쳤기 때문에,원래 소스 코드와 조금이라도 비슷하게 복원한다든지,
변종을 만들거나 작동 방식을 이해하기 위해 이용할 수 있는 형태로 추출하는 것조차 대게 불가능하다.

 

오픈 소스

오픈 소스는 다른 사람들도 소스 코드를 자유롭게 사용할 수 있도록 하는 대안을 일컫는 용어다.
MIT에서 일하던 리처드 스톨만은 자신이 사용하는 프로그램의 소스 코드가 회사가 독점한 것이라 접근할 수 없어서, 프로그램을 고치거나 개선할 수 없다는 점에 불만을 가졌다.
1983년 스톨만은 GNU라는 프로젝트를 시작했다.
GNU의 목적은 운영체제와 프로그래밍 언어용 컴파일러 같은 중요한 소프트웨어 시스템의 무료 공개 버전을 만드는 것이었다.
또한 그는 오픈소스를 지원하기 위해 자유 소프트웨어 재단이라는 비영리 단체를 만들었다.
이는 GPL이라는 기발한 저작권 라이선스에 따라 구현을 배포하는 방식으로 이루어졌다.

 

GPL은 라이선스가 적용된 소프트웨어를 자유롭게 사용할 수 있다고 명시하는데, 만약 소프트웨어가 다른 누군가에게 배포되면 그 배포판도 똑같이 '어떤 용도로도 자유로운' 라이선스를 적용해서 소스코드를 사용 할 수 있게 해야한다.

 

생활 속 오픈소스

- 파이어폭스와 크롬 브라우저는 오픈소스

- 가장 흔히 사용되는 웹 서버 두가지인 아파치와 엔진엑스도 오픈소스.
- 스마트폰에 사용되는 안드로이드 운영체제도 오픈소스.



프로그래밍 언어와 지원도구는 거의 오픈소스로 만들어짐.
흔하며 대중적인 오픈소스 프로젝트는 리눅스 운영체제
리눅스 : 개인 개발자뿐만 아니라 구글같은 대규모 영리 기업에서도 널리 사용되며,

구글 : 인프라 전체를 리눅스상에서 운영함.



기업은 프로그램의 발전에 기여할 뿐만 아니라 다른 사람들이 버그를 수정하고 코드를 개선하도록 허용함으로 이득 봄.
오픈소스 소프트웨어가 전부 최상급인 것은 아니며,
몇몇 소프트웨어의 오픈소스 버전은 원대 모델로 삼은 상용 시스템보다 떨어지기도 함.
그럼에도 불고하고 핵심 프로그래밍 도구와 시스템에서 오픈소스의 영향은 매우 큼.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


표준은 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어있는지 명확하고 상세하게 기술한 것이다.

 


하드웨어의 표준

 


우리는 주변에서 항상 하트웨어 표준의 혜택을 누리고 있다.
예를 들어 Tv를 사면 집에 잇는 콘센트에 바로 전원 플러그를 연결할 수 있다.
이는 플러그의 표기와 모양, 제공하는 전압에 대한 표준 덕분이다.
TV가 신호를 수신해서 방송화면을 보여 줄 수 있는 이유는 방송과 케이블 TV에 관한 표준이 있기 때문이다.
하지만 리모컨은 표준화되지 않았으므로 모든 TV에는 거기에 맞는 리모컨이 필요하다.

소프트웨어의 표준
소프트웨어에도 많은 표준이 있다. 여기에는 아스키코드와 유니코드 같은 문자 집합,
C와 C++ 같은 프로그래밍 언어, 암호화와 압축 알고리즘, 네트워크를 통해 정보를 교환하기 위한 프로토콜이 표함된다.

자유로운 소프트웨어, 오픈소스
소스코드, 오브젝트 코드
프로그래머가 작성하는 코드는 어셈블리 언어든 고수준 언어든 소스 코드라고 한다.
소스코드를 프로세서에 실행하기에 적합한 형태로 컴파일한 결과는 오브젝트 코드라고 한다.
소스 코드는 프로그래머가 읽을 수 있느 형태라서, 코트를 연구하여 상황에 맞춰 수정할 수 있다.
이와 달리 오브젝트 코드는 너무 많은 변환 과정을 거쳤기 때문에,원래 소스 코드와 조금이라도 비슷하게 복원한다든지,
변종을 만들거나 작동 방식을 이해하기 위해 이용할 수 있는 형태로 추출하는 것조차 대게 불가능하다.

오픈 소스
오픈 소스는 다른 사람들도 소스 코드를 자유롭게 사용할 수 있도록 하는 대안을 일컫는 용어다.
MIT에서 일하던 리처드 스톨만은 자신이 사용하는 프로그램의 소스 코드가 회사가 독점한 것이라 접근할 수 없어서, 프로그램을 고치거나 개선할 수 없다는 점에 불만을 가졌다.
1983년 스톨만은 GNU라는 프로젝트를 시작했다.
GNU의 목적은 운영체제와 프로그래밍 언어용 컴파일러 같은 중요한 소프트웨어 시스템의 무료 공개 버전을 만드는 것이었다.
또한 그는 오픈소스를 지원하기 위해 자유 소프트웨어 재단이라는 비영리 단체를 만들었다.
이는 GPL이라는 기발한 저작권 라이선스에 따라 구현을 배포하는 방식으로 이루어졌다.