학습 목표
- 유닉스와 리눅스의 발전사와 특징 확인
- 오픈소스 소프트웨어 라이센스의 종류 나열 가능
- 주요 리눅스 배포판의 특징 설명 가능
유닉스와 리눅스
UNIX의 특징
- 다중 사용자, 다중 작업을 지원하는 신뢰성 높은 운영체제
- 뛰어난 이식성, 강력한 네트워킹 기능, 셸 스크립트, 파이프라인, 명령형 기반 인터페이스, 단순하고 모듈화된 설계 등
UNIX와 리눅스
- 리눅스는 UNIX의 무료 공개 버전
- 초기에 리눅스는 PC용 운영체제로 개발되었음
UNIX 발전사
- 최초의 UNIX
- Multics
- 1969년 assembly 언어로 작성된 최초의 시분할 운영체제
- Unics → Unix
- 작고 심플한 운영체제로 다시 작성됨
- 1973 대부분이 C언어로 다시 작성됨
- Multics
- 대표적인 UNIX 시스템
- BSD 계열
- Free BSD, SunOS, GNU/Linux
- System V
- HP-UX(HP), AIX(IBM), Solaris(Oracle)
- 리눅스
- BSD 계열
리눅스의 등장
- 1983년 GNU 프로젝트
- 리처드 스톨만이 UNIX와 유사한 공개 운영체제를 개발하기 위해 GNU 프로젝트를 시작
- 소프트웨어 상업화에 반대하고 소스코드의 공유, 자유로운 사용과 배포를 주장
- 1985년 GNU 선언문(Manifesto) 발표
- 1989년 GPL을 발표
- 현재 Free Software Foundation(FSF)이라는 이름으로 활동
- 1991년 리눅스 커널(Kernel)
- 리누스 토르발스는 리눅스 커널을 작성하여 발표
- 커널
- 하드웨어를 제어하고 응용 프로그램과의 상호작용을 제공하는 운영체제의 핵심
- 커널
- 개발자인 Linus와 Unix의 이름을 따서 Linux라고 명명
- 리누스 토르발스는 리눅스 커널을 작성하여 발표
- 1992년
- 최초 리눅스 배포판인 MCC Interim 리눅스가 발표됨
- 보통 리눅스라 함은 리눅스 커널을 사용한 운영체제(리눅스 배포판)를 의미
- 1998년
- IBM과 Oracle이 리눅스 지원을 발표
- IBM과 Oracle이 리눅스 지원을 발표
리눅스 개요
리눅스의 발전상
- 전 세계 리눅스 사용자는 9,160만명 정도로 추산됨
- 유수의 100만 도메인 중 95% 이상이 리눅스를 사용
- 스마트폰의 70% 이상이 리눅스 기반의 안드로이드에서 동작
- 슈퍼 컴퓨터의 95%가 리눅스에서 운영됨
- 주요 증권 거래소, Google, Twitter, Facebook, Amazon 등에서 리눅스 서버를 사용
- 대다수 전자 장비(폰, TV 등)에서 리눅스를 사용
리눅스의 특징
- 다중 사용자와 다중 작업을 지원
- 뛰어난 이식성을 제공
- 모듈화되어 있어 업그레이드 또는 업데이트가 용이
- CUI와 GUI를 지원
- Character UI : 셸(shell)을 통해 커맨드를 입력
- Graphical UI : X Window 기반의 GNOME이나 KDE 등의 데스크톱 환경
- 소스 코드가 공개됨
- 공개 소스로서 문제점이 빠르게 발견되고 보완됨
- 여러 종류의 파일 시스템을 지원
- Minix, ext 계열, FAT, FAT32, NTFS, NFS, ISO-9660 등
- 효율적 하드웨어의 활용
- 다양한 응용 프로그램과 소프트웨어 개발 환경을 제공
오픈소스와 라이센스
오픈소스 소프트웨어(OSS)
- 개발자(저작권자)가 소스 코드를 공개하여 누구나 사용, 수정, 공유할 수 있도록 허가한 소프트웨어
- 반대 개념은 proprietary(closed) 소프트웨어
소프트웨어 라이센스
- 컴퓨터 프로그램은 지식 재산권으로 보호 받는 저작물
- 원칙적으로 저작자가 공표, 복제, 배포, 개작할 권한 가짐
- 타인에게 일정한 대가나 조건을 전제로 권한을 부여할 수 있음(라이센스)
- OSS도 보호받는 저작물이며 OSS 라이센스가 있음
- https://opensource.org/licenses/
오픈 소스의 장점
- 누구나 잘못된 점을 발견하고, 알리거나 고칠 수 있음
- 배울 수 있고, 프로그램 개발에 효율적으로 적용 가능
- 오픈 소스는 여러 사람에 의해 테스트 되어 안전
- 커뮤니티를 통한 협력, 공유, 개방이 발전을 위해 효율적이라는 것이 오픈 소스 운동의 철학
GNU 프로젝트와 자유 소프트웨어 운동
- 목적에 상관 없이 프로그램을 실행할 수 있는 자유
- 프로그램을 복제하고 공유할 수 있는 자유
- 소스 코드를 개작할 수 있는 자유
- 개작된 프로그램을 배포할 수 있는 자유
- 소프트웨어의 소스코드는 공개
리눅스의 라이센스
- 리눅스는 독점되거나 배타되지 않는 자유 소프트 웨어
- 공개 라이센스에 따라 자유롭게 수정하고 배포 가능
- 주로 GPL(GNU General Public License)를 따름
- 일부는 LGPL(GNU Lesser General Public License)
- X Window는 MIT 라이센스
GNU GPL
- 자유롭게 사용, 복제, 배포
- 필요에 따라 자유롭게 수정하고 배포
- 수정하여 배포하는 경우 소스코드를 공개해야함
- 수정된 소프트웨어에 저작권자를 표시하고 똑같이 GPL 조건으로 배포해야함
다양한 오픈소스 소프트웨어 라이센스
- GPL, LGPL, MPL
- 소스 코드를 공개해야 하는 CopyLeft 라이센스
- 기본적으로 코드를 공개하도록 함
- LGPL은 주로 오픈소스 라이브러리에 적용됨
- MPL 코드와 결합하여 프로그램을 만들 때, MPL 코드를 포함하지 않은 파일은 공개 의무가 없음
- 소스 코드의 공개 범위는 다르게 정의됨
- 전체/파일/모듈 단위 등
- 소스 코드를 공개해야 하는 CopyLeft 라이센스
- BSD, Apache, MIT 라이센스
- 배포 시 소스 코드의 비공개가 허용됨
- Permissive 라이센스라고 함
- 코드의 재사용을 높이려는 목적
리눅스 배포판
리눅스 배포판의 역사
- 리눅스 배포판은 리눅스 커널 외에 시스템 유틸리티, 응용프로그램, 설치 프로그램을 포함한 완전한 운영체제
- 리눅스 커널은 1991년 처음 개발됨
- 1994년에 커널 1.0이 발표되었고 최신 안정 버전은 6.4
- 1992년 최초의 배포판 MCC Interim과 SLS(Softlanding Linux System) 배포판이 발표됨
- 1993년부터 주요 배포판이 나오기 시작
주요 리눅스 배포판의 종류
배포판 | 관련 URL | 설명 |
---|---|---|
CentOS | centos.org | RHEL의 무료 버전 |
Debian | debian.org | GNU의 공식 후원 |
Fedora | fedoraproject.org | RHEL의 신기술 시험용 |
Red Hat Ent. | redhat.com | 상용 버전 |
Rocky Linux | rockylinux.org | CentOS의 대안 |
Slackware | slackware.com | 현존 가장 오래된 배포판 |
SUSE | suse.com | 유럽에서 주로 사용 |
Ubuntu | ubuntu.com | Debian의 개인용 버전 |
- Debian 계열
- Debian, Ubuntu 등
- Slackware 계열
- Slackware, SUSE 등
- Red Hat 계열
- Redhat, Fedora, CentOS, Rocky Linux 등
Debian 리눅스
- Debian 프로젝트
- 자유 운영체제를 만들어가는 사람들의 독자적인 모임
- lan Murdock에 의해 1994년에 비영리 조직으로 설립
- GNU 정신에 가장 충실한 배포판
- GNU의 공식적인 후원을 받는 유일한 배포판
- 세 가지 릴리스를 유지
- stable, testing, unstable
- 숫자 버전 외에 코드명을 가지며 unstable 버전은 항상 코드명이 sid
Red Hat 리눅스
- 배포판 가운데 가장 널리 알려진 리눅스 배포판
- Red Hat Linux
- 2003년 지원 중단(마지막 버전 9)
- Red Hat Enterprise Linux(RHEL)
- Red Hat 사에 의해 지원(최신 버전 9)
- Fedora와 CentOS라는 오픈소스 프로젝트를 지원
- RPM(Red Hat Package Manager)
- 바이너리, 설정 파일, 라이브러리, 문서 등의 일괄 관리 기능
- RPM 데이터 베이스를 검색하여 패키지나 특정 파일의 검색 기능
- 패키지에 필요한 파일, 의존성 유무 등을 조사하는 기능
CentOS 리눅스
- Red Hat 리눅스로부터 파생
- Red Hat Enterprise Linux(RHEL) 기반의 무료 버전
- RHEL의 소스 코드를 기반으로 만들어지는 무료 배포판
- RHEL 자체는 유료로 기술지원을 제공하는 엔터프라이즈 버전
- 서버용으로 많이 사용됨
- 최근에는 RHEL의 업스트림 버전(개발 버전)인 CentOS Stream만 지원
Rocky 리눅스
- 기존 CentOS 리눅스의 대체 제품
- CentOS의 릴리스 정책이 변경됨
- CentOS Stream은 RHEL의 안정적 버전이 아닌 개발 버전 → 기존 CentOS의 대안이 필요해짐
- 그레고리 커처가 Rocky Linux 프로젝트 시작
- RHEL 소스 코드 기반의 다운스트림 버전
- RHEL과 실행 코드가 호환됨
- 엔터프라이즈 환경에서 안정적이고 신뢰성 있는 운영 환경 제공하는 것이 목표
SuSE 리눅스
- Slackware 리눅스로부터 파생
- 독일에서 만든 배포판, 유럽에서 많이 사용
- Software Und System Entwicklung의 약자
- 풍부한 기능, 안정성, 보안 기능 포함
- Novell 사에 의해 지원
- 두가지 종류
- SUSE Linux Enterprise(유료)
- openSUSE(무료)
Slackware 리눅스
- SLS 리눅스로부터 파생
- 가장 먼저 대중화된 현존하는 가장 오래된 배포판
- 1992년 Patrick Volkerding에 의해 시작
- 간결함을 설계 철학으로 함(the KISS principle)
- 현재 GNOME desktop이 제외되어 있음
- 유닉스 자체 학습에 적합
Ubuntu 리눅스
- Debian 리눅스로부터 파생
- 영국 기업 Canonical의 지원
- 데스크톱 환경 Unity를 제공했으나 최근 GNOME을 다시 사용
- Debian 리눅스에 비하여 사용 편의성에 중점
- 개인 사용자에게 인기 있는 리눅스 배포판 중 하나
정리하기
- 리눅스는 UNIX의 표준을 준수하여 만들어진 무료 공개 운영체제
- 오픈소스 소프트웨어란 소스 코드가 공개된 소프트웨어로 누구나 자유롭게 사용, 수정, 배포할 수 있는 소프트웨어
- 리눅스 배포판이란 리눅스 커널을 기반으로 시스템 유틸리티, 응용 프로그램, 설치 프로그램 등을 포함하여 완전한 운영체제로 패키지화한 것
- GPL은 진정한 CopyLeft 라이센스로 가장 널리 적용되는 오픈소스 소프트웨어 라이센스