본문 바로가기
프로그래밍/임베디드리눅스완전정복

임베디드리눅스완전정복 | 1장 | 라이센스

by 오답노트의 주인 2025. 11. 11.

이 카테고리의 글은 <임베디드리눅스완전정보> 책을 읽고 제 나름대로 정리한 내용을 담고 있습니다. 책 내용을 그대로 서술하지 않았습니다.


이 책은 첫 장부터 리눅스 커널이나 시스템에 대한 설명을 시작하는게 아니라 리눅스 생태계에 대한 설명을 한다. 사실, 이전까지는 리눅스는 모든 소스가 공개되어 있고 모두가 기여할 수 있다 정도만 알고 있었지, 그렇게 할 수 있는 환경이 다른 OS의 개발 환경과 어떤 차이가 있는지 자세히는 알지 못했다. 책에서 라이센스에 대한 내용을 읽고 나서야 좀 더 찾아보게 되었고, 깃허브에서 리포지토리를 만들 때 선택하는 라이센스가 무슨 의미인지 이해할 수 있게 되었다.

 

OpensourceSW_License_Guide.pdf|오픈소스SW라이선스종합정보시스템

 

라이센스에 관한 정말 자세한 정보는 다소 딱딱하지만 위 링크에서 얻을 수 있다.

BSD (Permissive)

  1. 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있다. 다만 수정본의 재배포는 의무적인 사항이 아니므로 BSD 라이선스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있다.

소스코드를 공개하지 않아도 되므로, 기업입장에서는 매우 땡큐다.

PostgresSQL, macOS, Windows, React, Flask ... 등이 있다.

GPL (Copyleft)

  1. 컴퓨터 프로그램을 어떠한 목적으로든지 사용할 수 있다. 다만 법으로 제한하는 행위는 할 수 없다.
  2. 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 소스코드를 무료로 배포해야 한다.
  3. 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있다.
  4. 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야 한다.
  5. 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 한다. 즉 GPL 라이선스를 적용해야 한다.

매우 규칙이 많다. 덕지덕지 규칙을 적용해서 오픈소스 정신을 지키려는 노력이 보인다.

Linux(...), Wordpress, Git, GNU ... 등이 있다.


책에서는 이 두 라이센스에 대해서만 간략하게 설명되어 있다. 공부하는 입장에서는 당장 중요하지도 않아서 그냥 이런게 있다, GPL과 BSD의 차이점에 대해서만 짚고 넘어갔다.

Linux kernel licensing rules — The Linux Kernel documentation

 

Linux kernel licensing rules — The Linux Kernel documentation

Linux kernel licensing rules The Linux Kernel is provided under the terms of the GNU General Public License version 2 only (GPL-2.0), as provided in LICENSES/preferred/GPL-2.0, with an explicit syscall exception described in LICENSES/exceptions/Linux-sysca

www.kernel.org

 

리눅스 커널을 배포할 때 관련된 라이센스 역시 포함되어 있을것 같아 찾아보았다. 위 링크에서는 linux/LICENSES/폴더에 있다고 한다.

linux/LICENSES/preferred at master · torvalds/linux

 

linux/LICENSES/preferred at master · torvalds/linux

Linux kernel source tree. Contribute to torvalds/linux development by creating an account on GitHub.

github.com

 

죄다 영어라 뭐 읽지도 못하겠고, 대략 전문에서 핵심 내용만 추출해보았다.

The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.

...

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

 

굵게 표시한 내용을 읽어보면 '자유롭게' 배포 가능하도록 보장하는 라이센스임을 알 수 있다. 여기서 '자유롭게'라는건, 누구나 소프트웨어를 실행할 수 있고, 코드에 접근 가능하고, 수정 가능하고, 배포 가능하다는 것을 포함하지만, 재배포된 코드에서 문제가 생겨도 저작자에게 책임이 전해지지 않음으로 자유롭게 개발할 수 있는 보호 규칙도 포함되어 있다고 해석했다.

그 뒤에는 너무 길어서 읽지 않았다.


이 다음 내용으로는 책에서 사용하는 보드들을 소개하는데, 비글본 블랙과 QEMU, 라즈베리파이4를 소개한다. 근데 QEMU는 처음 들어보는 보드라서 건너뛰었고, 비글본 블랙은 디바이스마트나 가치창조기술같은 사이트에서 모두 품절이었고 해외 배송을 기다리고 싶지는 않았다. 그래서 라즈베리파이를 골라야 했는데, 4랑 5랑 가격차이가 많이 나지 않아서 그냥 라즈베리파이 5를 선택했다.

GPT랑 함께한다면 어떻게든 해낼 수 있지 않을까...라고 생각했다. 앞으로 책에 나온 예제들을 모두 라즈베리파이5를 사용해 실습하고 여기에 그 결과를 정리하려고 한다.

댓글