[LINUX] 유닉스와 리눅스
UNIX의 등장과 발전
- 최초의 UNIX : Multics
- 1969년 어셈블리 언어로 개발된 최초의 시분할 운영체제
- Multics → Unics → UNIX로 이름이 바뀌었다.
- 1973년에 UNIX 시스템의 대부분이 C언어로 다시 작성됨 (UNIX V5)
- AT&T에서 대학에 UNIX V6 코드를 무상으로 제공하면서 여러 버전의 UNIX가 만들어짐
- 버클리 대학에서 개발한 BSD(Berkeley Software Distribution)가 대표적
- BSD가 자유롭고 공개된 방식으로 발전해 나간 반면, AT&T 직계의 유닉스는 V7부터 상업적 목적을 가진 System V에 이르게 됨
- 현재 유닉스 계열의 운영체제는 크게 System V 계열과 BSD 계열로 분류된다.
- BSD 계열: FreeBSD, SunOS, macOS, GNU/Linux 등
- System V 계열: HP-UX(HP), AIX(IBM), Solaris(Oracle) 등
리눅스의 등장
- 1983년 MIT의 연구원 리처드 스톨만이 소프트웨어의 상업화에 반대하고 소스 코드의 자유로운 사용 및 배포를 주장하는 GNU 프로젝트를 시작
- 1991년 리누스 토르발스가 리눅스 커널을 완성하여 발표
- 개발자인 Linus와 UNIX의 이름을 따서 Linux라고 명명
- 리눅스 커널을 GNU 운영체제의 커널로 도입
- 보통 리눅스라 함은 리눅스 커널을 사용한 운영체제(리눅스 배포판)을 의미함
- 이후 여러 개발자에 의해 유용한 프로그램과 GUI를 지원하는 리눅스 배포판이 개발됨
리눅스의 발전상
- 전세계 리눅스 사용자는 9,160만명 전도로 추산됨(2017)
- 최상위 100만 도메인 중 95% 이상이 리눅스를 사용
- 스마트폰의 70% 이상이 리눅스 기반의 안드로이드에서 동작
- 슈퍼 컴퓨터의 95%가 리눅스에서 운영됨
- 주요 증권거래소 등에서 리눅스 서버를 사용
리눅스의 특징
- 다중 사용자와 다중 작업을 지원한다.
- 다수의 사용자가 동시에 같은 컴퓨터 시스템에서 작업을 수행할 수 있다.
- 여러 개의 작업이 교대로 컴퓨터의 자원을 사용할 수 있다.
- 뛰어난 이식성을 제공한다.
- 리눅스는 대부분 C 언어로 작성되어 다른 시스템에 쉽게 이식할 수 있다.
- CUI와 GUI를 지원한다.
- CUI(Character UI): 셸(shell)을 통해 커맨드를 입력
- GUI(Graphical UI): X Window 기반의 GNOME이나 K 데스크톱 환경(KDE)을 제공
- 소스 코드가 공개되어 있다.
- 커널뿐 아니라 함께 배포되는 응용 프로그램의 소스 코드가 공개되어 있다.
- 여러 종류의 파일 시스템을 지원한다.
- 파일 시스템이란 파일과 디렉토리에 관한 구성을 말하며, 디스크 공간에 파일을 구성하는 규칙을 규정한다.
- Minix, ext, FAT, ISO-9660 등의 파일 시스템을 지원한다.
- 다양한 응용 프로그램과 소프트웨어 개발 환경을 제공한다.
오픈소스와 라이선스
GNU 프로젝트와 자유 소프트웨어 운동
- GNU 프로젝트: 소프트웨어의 상업화에 반대하고 프로그램에 대한 자유로운 권리를 지키기 위한 프로젝트로 아래 자유를 보장한다.
- 목적에 상관없이 프로그램을 실행할 수 있는 자유
- 프로그램을 복제하고 이를 공유할 수 있는 자유
- 소스 코드를 개작할 수 있는 자유
- 개작된 프로그램을 배포할 수 있는 자유
오픈소스 소프트웨어
- 개발자(저작권자)가 소스 코드를 공개하여 누구나 사용·복제·수정·재배포 할 수 있도록 개방한 소프트웨어
- 소스 코드를 개방한 것일 뿐 오픈소스 소프트웨어도 지식재산권으로 보호받는 저작물이다.
- 대표적인 오픈소스 소프트웨어로 Linux 커널과 GNU 소프트웨어, Apache 웹 서버, FireFox 웹브라우저, MySQL 데이터베이스 시스템 등이 있다.
오픈소스 소프트웨어 라이선스
- 개발자(저작권자)가 사용자에게 사용·복제·수정·재배포 등에 대한 권한을 부여하는 것
- 오픈소스 소프트웨어라도 라이선스에 따라 사용해야 하며, 라이선스 종류에 따라 의무사항이 다르다.
- 주로 GNU GPL을 따른다.
GNU GPL
- 자유롭게 사용·복제·배포 가능
- 필요에 따라 수정하고 배포할 수 있다.
- 수정하여 배포하는 경우 소스 코드를 공개해야 한다.
- 수정된 소프트웨어에 저작권자를 표시하고, 같은 라이선스인 GPL 조건으로 배포해야 한다.
주요 오픈소스 소프트웨어 라이선스 비교
라이선스 | 무료 이용 | 수정 가능 | 배포 가능 | 2차저작물 재공개 의무 | 독점 SW와 결합 허용 |
---|---|---|---|---|---|
GPL | O | O | O | O-전체 | X |
LGPL | O | O | O | △ | O |
MPL | O | O | O | O-파일 | O |
BSD | O | O | O | X | O |
Apache | O | O | O | X | O |
- LGPL은 주로 오픈소스 라이브러리에 적용됨
- MPL은 MPL코드를 포함한 파일만 소스 코드 공개 의무
- BSD, Apache, MIT 라이선스는 수정 후 배포 시 소스 코드의 비공개가 허용됨
리눅스 배포판
리눅스 커널 외에 시스템 유틸리티, 응용 프로그램, 설치 프로그램 등을 포함한 운영체제
리눅스 배포판의 종류
- Debian 계열: Debian, Ubuntu 등
- Red Hat 계열: Redhat, Fedora, CentOS, Rocky Linux 등
- Slackware 계열: Slackware, SUSE 등
Debian 리눅스
- GNU 정신에 가장 충실한 배포판으로 GNU의 공식적인 후원을 받는 유일한 배포판
Ubuntu 리눅스
- Debian 리눅스로부터 파생
- 데스크톱 환경인 Unity를 제공했으나 최근 GNOME을 다시 사용
- 개인 사용자에게 인기 있는 배포판
Red Hat 리눅스
- 가장 널리 알려진 리눅스 배포판
- RPM 패키지 관리도구 사용
CentOS 리눅스
- Red Hat 리눅스로부터 파생
- 최근에는 RHEL의 업스트림 버전인 Cent OS Stream만 지원
Rocky 리눅스
- 기존 CentOS 리눅스의 대체 제품
- RHEL 소스 코드 사용
Slackware 리눅스
- 가장 먼저 대중화된 가장 오래된 배포판
SUSE 리눅스
- Slackware 리눅스로부터 파생
- 독일에서 만든 배포판으로 유럽에서 많이 사용
This post is licensed under CC BY 4.0 by the author.