유닉스와 리눅스, GNU GPL 그리고 리눅스 배포판 종류

2021. 4. 22. 17:20 OS/Unix

유닉스(UNIX)와 리눅스(Linux)

  UNIX는 다중 사용자, 다중 작업을 지원하는 신뢰성 높은 운영체제이다. Linux UNIX '계열'의 운영체제이며 UNIX의 무료 공개 버전이다. 핀란드의 리누스 토르발스(Linus Benedict Torvalds)가 UNIX의 소스코드를 사용하지 않고 최초로 독립적 커널을 이용해서 개발했다. Linux는 독점, 배타되지 않는 자유 소프트웨어로 'GNU GPL(General Public License, 일반 공개 라이선스)'에 따라 누구에게나 자유롭게 배포될 수 있기 때문에 전 세계의 수많은 프로그래머에 의해 지속적으로 발전되어왔다.

 

유닉스의 등장과 발전

Multics → Unics → Unix → UNIX

 

  AT&T의 Multics는 1969년에 어셈블리 언어로 개발된 메인프레임용 운영체제로, 시분할 운영체제의 효시이다. 이를 바탕으로 마이크로 컴퓨터용 작고 심플한 운영체제 Unics가 개발됐고 Unix로 이름이 바뀌었다. 1973년에 이식성을 높이기위해 C언어로 다시 작성한 UNIX V5가 개발됐다. 이후 여러 버전의 UNIX가 만들어졌고 그 중 중요한 UNIX 변형이 버클리 대학에서 개발한 BSD(Berkeley Software Distribution) 버전이다. 현재 UNIX 계열의 운영체제는 크게 AT&T 직계인 System V 계열 BSD 계열로 분류된다.

 

System V 계열(주로 상업적인 목적) IBM AIX, HP-UX, Sun Microsystems Solaris
BSD 계열 FreeBSD, OpenBSD, NetBSD, SunOS, Mac OS X, GNU/Linux

 

리눅스의 등장

리누스 베네딕트 토르발스(Linus Benedict Torvalds)와 리눅스 마스코트 턱스(Tux)

  1984년 MIT 연구원 리처드 스톨먼은 UNIX와 유사한 공개 운영체제를 개발하기 위해 'GNU(GNU is Not Unix) 프로젝트'를 시작했다. 1991년 유닉스와 유사하면서 더 나은 운영체제를 만들고자 했던 헬싱키 대학의 리누스 토르발스가 리눅스 커널의 최초 버전을 개발, 공개했다. 이후 이 리눅스 커널은 많은 개발자들의 협력을 통해 빠르게 발전했고 스톨먼의 GNU 프로젝트의 GNU 운영체제 커널로 도입되었다. 리눅스 커널과 GNU 프로젝트의 여러가지 자유 소프트웨어들이 합쳐져 완전한 운영체제 GNU/Linux가 완성됐다. 뿐만 아니라 스톨먼의 자유 소프트웨어 재단은 자유 소프트웨어에 대한 사용 규정을 명확히 정의하기 위해 오픈소스 소프트웨어 라이센스인 'GNU GPL(General Public License)'를 만들었다. 리눅스도 이 GPL을 따르고 있다.

 

커널(kernel) : 하드웨어를 제어하고 응용 프로그램과의 상호작용을 제공하는 운영체제의 핵심 구성요소.

 

 리눅스 개발 과정은 개인, 회사가 단독으로 수행하는 것보다 다수가 참여하는 협력 프로젝트의 성과가 더 우수함을 보여주는 성공 모델이 되었다. 리눅스는 역사상 가장 규모가 크고 가장 널리 보급되었으며 가장 중요한 오픈소스 프로젝트라고 할 수 있다.

 

리눅스 재단 : https://www.linuxfoundation.org/about

 

GNU 프로젝트 : http://www.gnu.org 

 

 


 

리눅스의 특징

  리눅스는 유닉스를 모델로 만들어진 운영체제인 만큼 유닉스와 유사한 특징을 갖고 있지만 리눅스만의 독특한 특징을 갖기도 한다.

 

(1) 다중 사용자와 멀티태스킹(multitasking) 지원

다중 사용자 지원 : 허가된 계정을 가진 다수의 사용자가 같은 서버에 접속하여 동시에 작업을 수행할 수 있는 것이다. 이를 위해 운영체제는 제한된 컴퓨터 자원을 최대한 효율적으로 활용, 공유하게 함으로써 시스템 전체의 사용 효율을 높여야 한다.

 

멀티태스킹 지원 : 여러 개의 작업이 동시에 실행될 수 있음을 의미한다. 각 작업은 교대로 컴퓨터의 자원을 사용할 수 있어야 하고 다른 작업으로부터 보호되어야 한다.

 

지금은 대부분의 운영체제가 다중 사용자와 멀티태스킹을 지원하지만 리눅스가 처음 보급되던 때만 해도 이는 큰 장점이었다.

 

(2) 뛰어난 이식성

리눅스는 다양한 종류의 하드웨어 플랫폼에서 사용될 수 있어 임베디드 시스템과 멀티 프로세서 운영체제로 사용된다.

 

(3) CUI와 GUI 지원

  CUI(Character User Interface)와 GUI(Graphical User Inteface)를 모두 지원한다. 대부분의 리눅스 배포판은 X Window에 기초한 기본 GUI 환경으로 GNOME 데스크톱 관리자를 제공하며 KDE(K-Desktop Environment) 등의 다른 데스크톱 관리자를 제공하기도 한다.

 

(4) 리눅스의 소스 공개

  리눅스 커널뿐만 아니라 함께 배포되는 다른 응용 프로그램들이 대부분 오픈 소프트웨어이기 때문에 소스코드 및 관련 자료가 공개되어 있다. 누구나 프로그램의 소스를 보고 학습할 수 있으며 자신의 의도대로 패치하고 새로운 기능을 첨가해 더 좋은 프로그램을 만들 수 있다.

 

(5) 다양한 파일 시스템 지원

파일 시스템 : 파일과 디렉터리에 관한 전체적 구성. 디스크 공간에 어떤 식으로 파일을 구성할 것인가에 관한 규칙을 규정.

  리눅스용 ext 계열의 파일 시스템 외에 Minix-1, Xenix, DOS의 FAT, 윈도우의 FAT32, NTFS, CD-ROM에 사용되는 ISO-9660 및 상용 유닉스의 파일 시스템을 지원한다. 이 외에 시스템이 비정상 종료되었을 때 파일 시스템을 복구할 수 있는 저널링 파일 시스템과 네트워크를 통한 원격지 파일 공유를 위한 네트워크 파일 시스템(NFS)를 지원한다.

 

(6) 다양한 응용 프로그램과 소프트웨어 개발 환경 지원

  리눅스 배포판 GNU 프로젝트의 많은 응용 프로그램을 포함한다. 명령어 해석기인 쉘(Shell), 편집기 vi와 emacs, 웹 서버/메일 서버/ftp 서버와 같은 인터넷 서버 프로그램, 인터프리터/컴파일러 및 라이브러리와 디버거, 보안도구 등을 포함한다.

 

이 외에 리눅스만의 가장 큰 특징은 오픈 소스로서 빠르게 발전하고 보완되고 있다는 사실이다.

 


 

오픈소스와 라이센스

  리눅스 소스가 완전히 공개된 운영체제로, 우리가 자주 접하는 다른 운영체제와는 다르다. 마이크로소프트의 윈도우나 애플의 Mac OS는 상업용 독점 소프트웨어이며 소스가 공개되어 있지 않다.

 

자유 소프트웨어

  1980년대 소프트웨어 산업이 새로운 고부가가치 산업으로 인식되기 시작하며 상업용 유닉스가 등장했다. 이후 유닉스 소스코드와 상표권을 둘러싼 소송이 제기되기도 했다. 이와 같은 소프트웨어의 상업적 흐름에 반대하고 소프트웨어의 자유로운 사용/복제/수정/배포에 관한 권리를 위해 GNU 프로젝트 자유 소프트웨어 운동이 등장했다. GNU 프로젝트에서는 소프트웨어에 대해 다음과 같은 자유를 보장하고 있다.

 

- 프로그램을 목적에 상관없이 실행할 수 있는 자유
- 복제하고 함께 공유할 수 있는 자유
- 프로그램을 학습하고 소스코드를 자신의 필요에 맞게 개작할 수 있는 자유
- 개작된 프로그램을 배포할 수 있는 자유

 

오픈소스 소프트웨어(OSS)

  오픈소스는 자유 소프트웨어를 포함하는 폭넓은 의미로 오픈소스 소프트웨어 소스코드를 공개하여 누구나 자유롭게 사용, 복제, 수정, 재배포할 수 있도록 개방한 소프트웨어를 말한다. 소스코드를 개방한 것일 뿐 오픈소스 소프트웨어도 지적 재산권으로 보호받는 저작물이다. 소프트웨어 개발자와 사용자 간의 사용 방법(복제/수정), 사용 범위(내부용/판매용)  의무사항(공개범위/공개방법/고지의무 등)을 명시한 오픈소스 라이센스로 권리를 보호받을 수 있다.

 

오픈소스 소프트웨어의 대표적인 예

- Linux 커널
- GNU 소프트웨어
- Apache 웹 서버
- FireFox 웹 브라우저
- MySQL 데이터베이스 시스템
- Python
- PHP
- Perl
- Eclipse

 

오픈소스 소프트웨어 라이센스

  오픈소스 소프트웨어는 라이센스를 통해 지적 재산권으로서의 법적 보호를 받을 수 있다. 오픈소스 소프트웨어 라이센스는 저작권자(개발자)와 사용자 간에 소프트웨어 사용, 수정 및 공유 등에 대한 방법 및 조건을 제한한다. 따라서 오픈소스 소프트웨어를 사용할때는 그 소프트웨어의 라이센스에 따라 사용해야 하며 위반 시 법적 처벌을 받는다.

  다양한 오픈소스 라이센스가 있는데 가장 많은 소프트웨어가 채택하고 있는 라이센스는 GPL이다. 다른 라이센스에 비해 의무사항이 엄격한 편이며 주요 내용은 다음과 같다.

 

- 소프트웨어를 자유롭게 복사, 배포할 수 있다.
- 필요에 따라 소프트웨어를 자유롭게 수정, 배포할 수 있다.
- 소프트웨어를 배포하는 경우 소스코드를 공개해야 한다.
- 수정된 소프트웨어에 저작권자를 표시하고 같은 라이센스인 GPL 조건에 의해 배포되어야 한다.

 

라이센스 무료 이용 소스코드 수정 배포 2차 저작물 공개 의무 독점 SW와 결합 허용
GPL O O O O X
LGPL O O O O
MPL O O O O
BSD O O O X O
Apache O O O X O

표- 주요 오픈소스 라이센스 비교

 

LGPL은 사용한 오픈소스 라이브러리의 소스코드만, MPL은 MPL 코드를 포함하는 파일만 공개 의무가 있다.

 

OSI(Open Source Initiative, 오픈소스 소프트웨어 인증 관장) : https://opensource.org

 


 

리눅스 배포판이란?

  '리눅스'는 엄밀히 말하면 리눅스의 커널을 의미한다. 커널은 CPU와 메모리의 자원 관리, 프로세스 관리, 디스크와 주변 장치 제어 등의 기능을 수행한다. '리눅스 배포판'이 실제 우리가 '리눅스'라고 지칭하는 것의 정확한 표현이며 커널과 함께 시스템 유틸리티, 응용 프로그램 등을 포함한 완전한 리눅스 운영체제를 의미한다. Red Hat Linux, Fedora, Debian, Ubuntu 등의 다양한 리눅스 배포판이 있다. 리눅스 배포판의 종류는 크게 상업적인 것 비상업적인 것으로 분류된다. 상업적 배포판은 유료 서비스를 제공한다. 비상업적 배포판은 무료이며 오픈소스 커뮤니티에 의해 지원된다.

 

리눅스 배포판의 종류

  모든 리눅스 배포판은 같은 커널을 사용하기 때문에 본질적으로는 동일하다. 커널과 함께 패키징되는 프로그램, 지원 수준, 대중성 등이 배포판 별로 차이가 있는 것이다. 리눅스 배포판은 리눅스 커널 아카이브(http://www.kernel.org)에 등록되어 있는 하나의 커널을 기초로 시장의 관심사를 반영하도록 패치되어 만들어진다.

 

 

The Linux Kernel Archives

 

www.kernel.org

 

데비안 계열 Debian, Ubuntu, Linux Mint
레드햇 계열 RHEL, Fedora, CentOS, Mandriva, Oracle Enterprise Linux
슬랙웨어 계열 Slackware, SUSE, openSUSE

표 - 주요 리눅스 배포판 계열 분류

 

배포판 설명
Debian 유일한 순수 비 상용 배포판으로 GNU 정신에 가장 충실
Ubuntu Debian의 개인용 버전
Linux Mint Ubuntu 기반
Red Hat Enterprise(RHEL) 레드햇 리눅스의 상용 버전
Oracle Enterprise Linux RHEL의 오라클 버전
Fedora 레드햇 리눅스의 신기술 시험용 버전
CentOS RHEL의 무료 버전
Mandriva 오랜 역사, 쉬운 설치와 사용
Slackware 현존하는 가장 오래된 배포판
SUSE Linux Enterprise 유럽에서 주로 사용되는 기업 버전
openSUSE SUSE Linux Enterprise의 무료 버전

표 - 주요 리눅스 배포판 종류

 

데비안(Debian)

  데비안은 GNU 정신에 가장 충실한 배포판으로 GNU 프로젝트의 공식 후원을 받는 유일한 배포판이다. 패키지 인스톨러로 apt-get을 사용한다. stable, testing, unstable의 세 가지 릴리즈를 유지한다.

 

우분투(Ubuntu)

  데비안에 기초한 배포판으로 고유한 데스크톱 환경인 Unity를 사용한다. 'Ubuntu'라는 이름은 '공통체 의식에 바탕을 둔 인간애(humanity towards others)'를 의미한다. 편의성이 높고 다양한 언어를 지원한다. 개인용으로 인기가 많은 리눅스 배포판이다.

 

레드햇(Red Hat)

  리눅스 배포판 중 가장 널리 알려진 리눅스 중 하나로 빨간 모자 로고가 유명하다. RPM(Red hat Package Manager)라는 패키지 관리 도구를 사용한다. 2004년 Red Hat Linux 버전 9를 마지막으로 무상 배포와 공식 지원을 종료했다. 이후 상용 엔터프라이즈 버전 RHEL을 제공한다. RHEL은 업데이트, 기술 지원, 품질 보증에 대해 사용료를 받는다. RHEL에 적용하기 전에 페도라(Fedora)를 Test Bed로 사용한다.

 

CentOS

RHEL 기반의 무료 배포판이다. Fedora에 비해 안정적이며 주로 서버 용도로 사용된다.

 

슬랙웨어(Slackware)

  가장 먼저 대중화된, 가장 오래된 리눅스 배포판이며 다른 리눅스 배포판의 기초가 되었다. 패키지 업그레이드와 관리 기능이 취약하나 구조가 간결하고 파악하기 쉬워 현재는 유닉스 학습용으로 많이 사용된다.

 

SUSE

  독일에서 만든 배포판으로 유럽에서 가장 인기가 많으며 가장 오래된 상용 배포판이다. 무료 버전인 oepnSUSE 프로젝트가 별도로 운영되고 있다.

 

출처 : atoz-develop.tistory.com/entry/%EC%9C%A0%EB%8B%89%EC%8A%A4%EC%99%80-%EB%A6%AC%EB%88%85%EC%8A%A4-GNU-GPL-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%B0%B0%ED%8F%AC%ED%8C%90-%EC%A2%85%EB%A5%98