Home [UNIX 시스템] 1강 - 리눅스 소개
Post
Cancel

[UNIX 시스템] 1강 - 리눅스 소개

💡해당 게시글은 방송통신대학교 김희천 교수님의 'UNIX 시스템' 강의를 개인 공부 목적으로 메모하였습니다.



학습 목표


  1. 유닉스와 리눅스의 발전사와 특징 확인
  2. 오픈소스 소프트웨어 라이센스의 종류 나열 가능
  3. 주요 리눅스 배포판의 특징 설명 가능



유닉스와 리눅스


UNIX의 특징

  • 다중 사용자, 다중 작업을 지원하는 신뢰성 높은 운영체제
  • 뛰어난 이식성, 강력한 네트워킹 기능, 셸 스크립트, 파이프라인, 명령형 기반 인터페이스, 단순하고 모듈화된 설계 등

UNIX와 리눅스

  • 리눅스는 UNIX의 무료 공개 버전
  • 초기에 리눅스는 PC용 운영체제로 개발되었음

UNIX 발전사

image

  • 최초의 UNIX
    • Multics
      • 1969년 assembly 언어로 작성된 최초의 시분할 운영체제
    • Unics → Unix
      • 작고 심플한 운영체제로 다시 작성됨
      • 1973 대부분이 C언어로 다시 작성됨
  • 대표적인 UNIX 시스템
    • BSD 계열
      • Free BSD, SunOS, GNU/Linux
    • System V
      • HP-UX(HP), AIX(IBM), Solaris(Oracle)
    • 리눅스

리눅스의 등장

  • 1983년 GNU 프로젝트
    • 리처드 스톨만이 UNIX와 유사한 공개 운영체제를 개발하기 위해 GNU 프로젝트를 시작
    • 소프트웨어 상업화에 반대하고 소스코드의 공유, 자유로운 사용과 배포를 주장
    • 1985년 GNU 선언문(Manifesto) 발표
    • 1989년 GPL을 발표
    • 현재 Free Software Foundation(FSF)이라는 이름으로 활동
  • 1991년 리눅스 커널(Kernel)
    • 리누스 토르발스는 리눅스 커널을 작성하여 발표
      • 커널
        • 하드웨어를 제어하고 응용 프로그램과의 상호작용을 제공하는 운영체제의 핵심
    • 개발자인 Linus와 Unix의 이름을 따서 Linux라고 명명
  • 1992년
    • 최초 리눅스 배포판인 MCC Interim 리눅스가 발표됨
    • 보통 리눅스라 함은 리눅스 커널을 사용한 운영체제(리눅스 배포판)를 의미
  • 1998년
    • 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 코드를 포함하지 않은 파일은 공개 의무가 없음
    • 소스 코드의 공개 범위는 다르게 정의됨
      • 전체/파일/모듈 단위 등
  • BSD, Apache, MIT 라이센스
    • 배포 시 소스 코드의 비공개가 허용됨
    • Permissive 라이센스라고 함
    • 코드의 재사용을 높이려는 목적

리눅스 배포판


리눅스 배포판의 역사

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

주요 리눅스 배포판의 종류

배포판관련 URL설명
CentOScentos.orgRHEL의 무료 버전
Debiandebian.orgGNU의 공식 후원
Fedorafedoraproject.orgRHEL의 신기술 시험용
Red Hat Ent.redhat.com상용 버전
Rocky Linuxrockylinux.orgCentOS의 대안
Slackwareslackware.com현존 가장 오래된 배포판
SUSEsuse.com유럽에서 주로 사용
Ubuntuubuntu.comDebian의 개인용 버전
  • 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 리눅스에 비하여 사용 편의성에 중점
  • 개인 사용자에게 인기 있는 리눅스 배포판 중 하나



정리하기


  1. 리눅스는 UNIX의 표준을 준수하여 만들어진 무료 공개 운영체제
  2. 오픈소스 소프트웨어란 소스 코드가 공개된 소프트웨어로 누구나 자유롭게 사용, 수정, 배포할 수 있는 소프트웨어
  3. 리눅스 배포판이란 리눅스 커널을 기반으로 시스템 유틸리티, 응용 프로그램, 설치 프로그램 등을 포함하여 완전한 운영체제로 패키지화한 것
  4. GPL은 진정한 CopyLeft 라이센스로 가장 널리 적용되는 오픈소스 소프트웨어 라이센스

[컴퓨터과학 개론] 2강 - 컴퓨터와 데이터

-