Unix System 1 | 유닉스 시스템 1

방송통신대학교 컴퓨터과학과 UNIX 시스템을 정리한 것입니다

유닉스와 리눅스

UNIX의 특징

  1. 다중 사용자, 다중 작업을 지원하는 신뢰성 높은 운영체제

UNIX와 리눅스

  1. 리눅스는 UNIX의 무료 공개 버전

  2. 초기에 리눅스는 PC용 운영체제로 개발

UNIX 발전사

  1. 최초의 UNIX

    1. Multics

      1. 1969년 assembly 언어로 작성된 최초의 시분할 운영체제
      2. Unics -> Unix
        1. 작고 심플한 운영체제로 다시 작성
        2. 1973년 대부분이 C 언어로 다시 작성
    2. 대표적인 UNIX 시스템

      1. BSD 계열: Free BSD, SunOS
      2. System V 계열: HP-UX, IBM AIX, Solaris
      3. 리눅스

리눅스의 등장

  1. 1983년 GNU 프로젝트

    1. 리처드 스톨만이 UNIX와 유사한 공개 운영체제를 개발하기 위해 GNU 프로젝트를 시작
    2. 소프트웨어 상업화에 반대하고 소스코드의 공유, 자유로운 사용과 배포를 주장
    3. 1985년 GNU 선언문 발표
    4. 1989년 GPL 발표
    5. 현재 Free Software Foundation(FSF)이라는 이름으로 활동
  2. 1991년 리눅스 커널(kernel)

    1. 리누스 토르발스는 리눅스 커널을 작성하여 발표
      1. 커널은 하드웨어를 제어하고 응용 프로그램과의 상호작용을 제공하는 운영체제의 핵심
    2. 개발자인 Linus와 UNIX의 이름을 따서 Linux라고 명명
  3. 1992년

    1. 최초 리눅스 배포판인 MCC Interim 리눅스가 발표됨
    2. 보통 리눅스라 함은 리눅스 커널을 사용한 운영체제를 의미함
  4. 1998년

    1. IBM과 Oracle이 리눅스 지원을 발표

리눅스 개요

리눅스의 발전상

  1. 전 세계 리눅스 사용자는 9160만 정도로 추산

  2. 유수의 100만 도메인 중 95% 이상이 리눅스를 사용

  3. 스마트폰의 80% 이상이 리눅스 기반의 안드로이드에서 동작

  4. 슈퍼 컴퓨터의 95%가 리눅스에서 운영됨

  5. 주요 증권소, Google, Twitter, Facebook, Amazon 에서 리눅스 서버를 사용

  6. 대다수 전자장비에서 리눅스를 사용

리눅스의 특징

  1. 다중 사용자와 다중 작업을 지원

  2. 뛰어난 이식성을 제공

  3. 모듈화되어 있어 업그레이드 또는 업데이트가 용이함

  4. CUI와 GUI를 지원

    1. Character UI: 셸(shell)을 통해 커맨드를 입력
    2. Graphical UI: X Window와 GNOME, KDE 등의 데스크톱
  5. 소스코드가 공개됨

    1. 공개 소스로서 빠르게 발전하고 보완됨
  6. 여러 종류의 파일 시스템을 지원

    1. Minix, ext 계열, FAT, FAT32, NTFS, NFS, ISO-9660 등
  7. 효율적 하드웨어의 활용

  8. 다양한 응용 프로그램과 소프트웨어 개발 환경을 제공

오픈소스와 라이선스

오픈소스

  1. 개발자(저작권자)가 소스코드를 공개하여 누구나 사용,수정, 공유할 수 있도록 허가한 소프트웨어

  2. 반대 개념은 proprietary(closed) 소프트웨어라고 함

소프트웨어 라이선스

  1. 컴퓨터 프로그램은 지식재산권으로 보호받는 저작물

  2. 원칙적으로 저작자가 공표,복제, 개작할 권한을 가짐

  3. 타인에게 일정한 대가나 조건을 전제로 권한을 부여할 수 있음(라이선스)

오픈소스의 장점

  1. 누구나 잘못된 점을 발견하고, 알리거나 고칠 수 있음

  2. 배울 수 있고, 효율적 프로그램 개발에 적용할 수 있음

  3. 오픈 소스는 여러 사람에 의해 테스트되어 안전함

  4. 오픈소스 운동의 철학은 커뮤니티를 통한 협력, 공유, 개방이 발전을 위해 효율적이라는 것

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

  1. 목적에 상관없이 프로그램을 실행할 수 있는 자유

  2. 프로그램을 복제하고 공유할 수 있는 자유

  3. 소스코드를 개작할 수 있는 자유

  4. 개작된 프로그램을 배포할 수 있는 자유

    1. 소프트웨어의 소스코드는 공개

리눅스의 라이선스

  1. 리눅스는 독점되거나 배타되지 않는 자유 소프트웨어
    1. 공개 라이선스에 따라 자유롭게 고치고 배포 가능
  2. 주로 GPL(GNU General Public License)를 따름
  3. 일부는 LGPL(GNU Lesser General Public License)
  4. X Window는 MIT 라이선스

GNU GPL

  1. 자유롭게 사용, 복제, 배포
  2. 필요에 따라 자유롭게 수정하고 배포
  3. 수정하여 배포하는 경우 소스코드를 공개하여야 함
  4. 수정된 소프트웨어에 저작권을 표시하고 똑같이 GPL 조건으로 배포하여야 함

다양한 오픈소스 소프트웨어 라이선스

  1. GPL, LGPL, MPL

    1. 소스코드를 공개하여야 하는 카피레프트 라이선스
      1. 기본적으로 코드를 공개
    2. LGPL은 주로 오픈소스 라이브러리에 적용됨
    3. MPL 코드와 결합하여 프로그램을 만들 때 MPL 코드를 포함하지 않은 파일은 공개 의무가 없음
    4. 소스코드의 공개 범위는 다르게 정의됨
      1. 전체/ 파일/ 모듈 단위 등
  2. BSD, Apache, MIT 라이선스

    1. 배포 시 소스코드의 비공개가 허용됨
    2. Permissive 라이선스라고 함
    3. 코드의 재사용을 높이려는 목적

리눅스 배포판

리눅스 배포판의 역사

  1. 리눅스 배포판은 리눅스 커널 외에 시스템 유틸리티, 응용프로그램, 설치 프로그램을 포함한 완전한 운영체제
  2. 리눅스 커널은 1991년 처음 개발됨
    1. 1994년에 커널 1.0이 발표되었고 최신 안정 버전은 4.12
  3. 1992년 최초의 배포판 MCC Interim과 SLS(Softlan Linux System) 배포판이 발표됨
  4. 1993년부터 주요 배포판이 나오기 시작

주요 리눅스 배포판의 종류

  1. Debian 계열: Debian, Ubuntu
  2. Slackware 계열: Slackware, SUSE 등
  3. Red Hat 계열: Redhat, Fedora, CentOS 등

Debian 리눅스

  1. Debian 프로젝트
    1. 자유 운영 체제를 만들어가는 사람들의 독자적인 모임
    2. lan Murdock에 의해 1994년에 비영리 조직으로 설립
  2. GNU 정신에 가장 충실한 배포판
    1. GNU의 공식적인 후원을 받는 유일한 배포판
  3. 세 가지 릴리스를 유지
    1. stable, testing, unstable
    2. 코드명을 가지며 unstable 버전은 항상 코드명이 sid

Red Hat 리눅스

  1. 배포판 가운데 가장 널리 알려진 리눅스
  2. Red Hat Linux
    1. 2003년 지원 중단: 마지막 버전은 9
  3. Red Hat Enterprise Linux(RHEL)
    1. Red Hat 사에 의해 지원: 최신 버전은 7
  4. Fedora라는 오픈소스 프로젝트를 지원
  5. RPM(Red Hat Package Manager)
    1. 바이너리, 설정파일, 라이브러리, 문서 등을 일괄 관리 기능
    2. 데이터베이스를 검색하여 패키지나 특정 파일의 검색 기능
    3. 패키지에 필요한 파일, 의존성 유뮤 등을 조사하는 기능

CentOS 리눅스

  1. Red Hat 리눅스로부터 파생
  2. Red Hat Enterprise Linux(RHEL) 기반의 무료 버전
    1. RHEL의 소스코드를 기반으로 만들어지는 무료 배포판
    2. RHEL은 유료로 지원
  3. 서버용으로 많이 사용됨
  4. 최신 버전: 7.3

SuSE 리눅스

  1. Slackware 리눅스로부터 파생
  2. 독일에서 만든 배포판, 유럽에서 많이 사용
  3. Software und System Entwicklung의 약자
  4. 풍부한 기능, 안정성, 보안 기능을 포함
  5. Novell 사에 의해 지원
  6. 두 가지 종류
    1. SUSE Linux Enterprise(유료)
    2. openSUSE(무료)

Slackware 리눅스

  1. SLS 리눅스로부터 파생
  2. 가장 먼저 대중화된, 현존하는 가장 오래된 배포판
  3. 1992년 Patrick Volkerding에 의해 시작됨
  4. 간결함을 설계 철학으로 함 (the KISS principle)
    1. 현재 GNOME desktop이 제외되어 있음
  5. 유닉스 자체 학습에 적합

Ubuntu 리눅스

  1. Debian 리눅스로부터 파생
  2. 데스크톱 Unity를 제공하여 리눅스를 쉽게 사용할 수 있도록 함
  3. Debian 리눅스에 비하여 사용 편리성에 중점을 둠
  4. 인기 있는 리눅스 배포판 중 하나