Post

[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%가 리눅스에서 운영됨
  • 주요 증권거래소 등에서 리눅스 서버를 사용

리눅스의 특징

  1. 다중 사용자와 다중 작업을 지원한다.
    • 다수의 사용자가 동시에 같은 컴퓨터 시스템에서 작업을 수행할 수 있다.
    • 여러 개의 작업이 교대로 컴퓨터의 자원을 사용할 수 있다.
  2. 뛰어난 이식성을 제공한다.
    • 리눅스는 대부분 C 언어로 작성되어 다른 시스템에 쉽게 이식할 수 있다.
  3. CUI와 GUI를 지원한다.
    • CUI(Character UI): 셸(shell)을 통해 커맨드를 입력
    • GUI(Graphical UI): X Window 기반의 GNOME이나 K 데스크톱 환경(KDE)을 제공
  4. 소스 코드가 공개되어 있다.
    • 커널뿐 아니라 함께 배포되는 응용 프로그램의 소스 코드가 공개되어 있다.
  5. 여러 종류의 파일 시스템을 지원한다.
    • 파일 시스템이란 파일과 디렉토리에 관한 구성을 말하며, 디스크 공간에 파일을 구성하는 규칙을 규정한다.
    • Minix, ext, FAT, ISO-9660 등의 파일 시스템을 지원한다.
  6. 다양한 응용 프로그램과 소프트웨어 개발 환경을 제공한다.

오픈소스와 라이선스

GNU 프로젝트와 자유 소프트웨어 운동

  • GNU 프로젝트: 소프트웨어의 상업화에 반대하고 프로그램에 대한 자유로운 권리를 지키기 위한 프로젝트로 아래 자유를 보장한다.
    • 목적에 상관없이 프로그램을 실행할 수 있는 자유
    • 프로그램을 복제하고 이를 공유할 수 있는 자유
    • 소스 코드를 개작할 수 있는 자유
    • 개작된 프로그램을 배포할 수 있는 자유

오픈소스 소프트웨어

  • 개발자(저작권자)가 소스 코드를 공개하여 누구나 사용·복제·수정·재배포 할 수 있도록 개방한 소프트웨어
  • 소스 코드를 개방한 것일 뿐 오픈소스 소프트웨어도 지식재산권으로 보호받는 저작물이다.
  • 대표적인 오픈소스 소프트웨어로 Linux 커널과 GNU 소프트웨어, Apache 웹 서버, FireFox 웹브라우저, MySQL 데이터베이스 시스템 등이 있다.

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

  • 개발자(저작권자)가 사용자에게 사용·복제·수정·재배포 등에 대한 권한을 부여하는 것
  • 오픈소스 소프트웨어라도 라이선스에 따라 사용해야 하며, 라이선스 종류에 따라 의무사항이 다르다.
  • 주로 GNU GPL을 따른다.

GNU GPL

  • 자유롭게 사용·복제·배포 가능
  • 필요에 따라 수정하고 배포할 수 있다.
  • 수정하여 배포하는 경우 소스 코드를 공개해야 한다.
  • 수정된 소프트웨어에 저작권자를 표시하고, 같은 라이선스인 GPL 조건으로 배포해야 한다.

주요 오픈소스 소프트웨어 라이선스 비교

라이선스무료 이용수정 가능배포 가능2차저작물
재공개 의무
독점 SW와
결합 허용
GPLOOOO-전체X
LGPLOOOO
MPLOOOO-파일O
BSDOOOXO
ApacheOOOXO
  • 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.