본문 바로가기
CS/Unix 시스템

유닉스와 리눅스, UNIX 발전사, 오픈소스와 라이선스, 리눅스 배포판

by Renechoi 2023. 11. 28.

유닉스와 리눅스

유닉스의 특징

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

유닉스와 리눅스

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

유닉스는 유료 상용 운영체제로, 자유롭게 소스 코드를 보거나 수정하는 것이 제한적이다. 반면, 리눅스는 유닉스의 표준을 따르는 무료 공개 운영체제로 다양한 배포판이 있으며, 사용에 제약이 적다. 유닉스는 초기에 미니 컴퓨터 또는 고성능 워크스테이션을 타겟으로 개발된 반면, 리눅스는 사양이 낮은 PC용 운영체제로 시작되었다.

UNIX 발전사

최초의 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 프로젝트

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

1991년 리눅스 커널(kernel)

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

1992년

  • 최초 리눅스 배포판인 MCC Interim 리눅스가 발표됨
  • 보통 리눅스라 함은 리눅스 커널을 사용한 운영체제(리눅스 배포판)을 의미함

1998년

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

리눅스 개요

리눅스의 발전상

  • 전세계 리눅스 사용자는 9,160만명 정도로 추산
  • 유수의 100만 도메인 중 95% 이상이 리눅스 사용
  • 스마트폰의 70% 이상이 리눅스 기반의 안드로이드
  • 기타 등등...

리눅스의 특징

  • 다중 사용자와 다중 작업을 지원
  • 뛰어난 이식성 제공
  • 모듈화가 되어 있어 업그레이드 또는 업데이트가 용이
  • CUI와 GUI를 지원
    • Character UI: 셸을 통해 커맨드 입력
    • Graphical UI: X Window 기반의 GNOME이나 KDE 등의 데스크톱 환경
  • 소스코드 공개
  • 여러 종류의 파일 시스템 지원 : Minix, ext, FAT, FAT32, ISO-9660 등
  • 효율적 하드웨어 활용
  • 다양한 응용프로그램과 소프트웨어 개발 환경 제공

오픈소스와 라이선스

오픈소스 소프트웨어(OSS)

  • 개발자가 소스코드를 공개하여 누구나 사용, 수정, 공유할 수 있도록 허가한 소프트웨어
  • 반대 개념은 "proprietary(closed) 소프트웨어"라고 함

소프트웨어 라이선스

  • 컴퓨터 프로그램은 지식재산권으로 보호받는 저작물
  • 원칙적으로 저작자가 공표, 복제, 배포, 개작 권한을 가짐
  • 타인에게 일정한 대가나 조건을 전제로 권한을 부여할 수 있음(라이선스)
  • OSS도 보호받는 저작물이며 OSS 라이선스가 있음

오픈소스의 장점

  • 누구나 잘못된 점을 발견하고, 알리거나 고칠 수 있음
  • 배울 수 있고, 프로그램 개발에 효율적으로 적용하 수 있음
  • 오픈 소스는 여러 사람에 의해 테스트 되어 안전함
  • 오픈소스 운동의 철학은 커뮤니티를 통한 협력, 공유, 개방이 발전을 위해 효율적이라는 것

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

  • 목적에 상관없이 프로그램을 실행할 수 있는 자유
  • 프로그램을 복제하고 공유할 수 있는 자유
  • 소스코드를 개작할 수 있는 자유
  • 개작된 프로그램을 배포할 수 있는 자유
    • 소프트웨어의 소스코드는 공개

리눅스의 라이선스

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

GNU GPL

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

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

GPL, LGPL, MPL

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

BSD, Apache, MIT 라이선스

  • 배포시 소스코드의 비공개가 허용됨
  • permissive 라이선스라고 함
  • 코드의 재사용성을 높이려는 목적

리눅스 배포판

리눅스 배포판의 역사

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

주요 리눅스 배포판 종류

  • Debian 계열: Debian, Ubuntu
  • Slackware 계열: Slackware, SUSE 등
  • Red Hat 계열: Redhat, Redora, CentOS, Rocky Linux 등

Debian 리눅스

  • Debian 프로젝트
    • 자유 운영체제를 만들어가는 사람들의 독자적인 모임
    • Ian 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 리눅스

  • 기존 CenOS 리눅스의 대체 제품

    • CentOS의 릴리스 정책이 변경됨
    • CentOS Stream은 RHEL의 안정적 버전이 아닌 개발 버전
    • CentOS의 대안이 필요해짐 -> 그레고리 커처가 Rocky Linux 프로젝트 시작
    • RHEL 소스코드 기반의 다운스트림 버전
      • RHEL과 실행코드가 호환됨
    • 엔터프라이즈 환경에서 안정적이고 신뢰성 있는 운영 환경을 제공하는 것이 목표임

SuSE 리눅스

  • Slackware 리눅스로부터 파생
  • 독일에서 만든 배포판, 유럽에서 많이 사용
  • 풍부한 기능, 안정성, 보안 기능 포함
  • 엔터프라이즈 유로와 오픈수세 무료를 제공

Slackware 리눅스

  • SLS 리눅스로부터 파생
  • 가장 먼저 대중화된, 현존하는 가장 오래된 배포판
  • 간결함을 설계 철학으로 함 (the KISS principle)
    • GNOME 데스크탑 제외
  • 유닉스 자체 학습에 적함

Ubuntu 리눅스

  • Debian 리눅스로부터 파생
  • 영국 기업 Canonical의 지원
  • 데스크톱 환경 Unity를 제공했으나 최근 다시 GNOME 사용
  • Debian 리눅스에 비하여 사용 편의성에 중점을 둠
  • 개인에게 가장 인기 있는 리눅스 배포판 중 하나

요약

  • 유닉스는 다중 사용자와 멀티태스킹을 지원하고 이식성이 뛰어나며, 서버용으로 많이 사용되는 운영체제다.
  • 자유소프트웨어재단(FSF)이 지원한 GNU 프로젝트는 소프트웨어의 상업화에 반대하고 소스코드의 공유와 자유로운 배포를 주장하였다.
  • 리누스 토발스는 리눅스 커널을 개발했고 이것이 GNU 운영체제의 커널로 도입되어 완전한 리눅스 운영체제가 완성되었다.
  • 커널은 자원관리, 프로세스 관리, 입출력 장치 제어 등 운영체제의 핵심 기능을 수행한다.
  • 오픈소스 소프트웨어란 소스 코드가 공개되어 있는 소프트웨어를 말하며, 일반적으로 자유롭게 사용, 복제, ㅂ배포, 수정할 수 있다.
  • GPL은 상업적 저작권에 반대하는 대표적인 오픈소스 소프트웨어 라이선스이다.
  • 리눅스 배포판이란 리눅스 커널을 기반으로 편리한 인터페이스와 유틸리티 및 응용 프로그램을 추가하여 패키지화한 운영체제이다.
  • 대표적인 리눅스 배포판: 우분투, 데비안, 세트오에스, 록키 리눅스 등

문제

1. 유닉스 시스템의 특징에 대한 설명으로 올바르지 않은 것은?
  • A) 다중 사용자와 다중 작업을 지원
  • B) 이식성이 뛰어남
  • C) 명령행 기반 인터페이스 제공
  • D) 모든 버전이 무료로 제공됨
  • 정답: D
  • 해설: 유닉스 시스템은 다중 사용자 및 작업 지원, 뛰어난 이식성, 명령행 인터페이스를 제공하지만, 모든 버전이 무료인 것은 아니다.
2. 리눅스의 초기 개발 목적은 무엇이었는가?
  • A) 상용 운영체제 대체
  • B) 모바일 운영체제 개발
  • C) PC용 운영체제 개발
  • D) 네트워킹 기능 강화
  • 정답: C
  • 해설: 리눅스는 초기에 PC용 운영체제로 개발되었다.
3. GNU 프로젝트의 주요 목적은 무엇이었나?
  • A) 상업적 소프트웨어 개발
  • B) 유닉스와 유사한 공개 운영체제 개발
  • C) 독점 소프트웨어 개발
  • D) 네트워크 기능 개선
  • 정답: B
  • 해설: GNU 프로젝트는 유닉스와 유사한 공개 운영체제 개발을 목표로 시작되었다.
4. 다음 중 리눅스의 특징으로 올바른 것은?
  • A) 소스코드 비공개
  • B) 다양한 파일 시스템 지원
  • C) 하드웨어에 대한 비효율적 사용
  • D) CUI만을 지원
  • 정답: B
  • 해설: 리눅스는 다양한 파일 시스템을 지원하며, 소스코드 공개, 효율적인 하드웨어 사용, CUI 및 GUI 지원 등의 특징을 갖고 있다.
5. GPL(GNU General Public License)의 주요 특징은 무엇인가?
  • A) 상용 소프트웨어 개발 지원
  • B) 소스코드 비공개 원칙
  • C) 소프트웨어 저작권 보호
  • D) 수정 및 배포 시 소스코드 공개 요구
  • 정답: D
  • 해설: GPL은 수정 및 배포 시 소스코드의 공개를 요구하는 주요 특징을 가지고 있다.
6. 유닉스와 리눅스의 관계에 대한 설명으로 올바른 것은?
  • A) 유닉스는 리눅스의 상용 버전이다.
  • B) 리눅스는 유닉스의 무료 공개 버전이다.
  • C) 리눅스는 유닉스와 전혀 관련이 없다.
  • D) 유닉스와 리눅스는 동일한 시스템이다.
  • 정답: B) 리눅스는 유닉스의 무료 공개 버전이다.
  • 해설: 리눅스는 유닉스의 표준을 준수하여 만들어진 무료 공개 운영체제로, PC용 운영체제로 개발되었다.
7. GNU 프로젝트에 대한 설명으로 올바른 것은?
  • A) 상업 소프트웨어 개발을 목적으로 한다.
  • B) 오직 리눅스 커널 개발에만 집중한다.
  • C) 소프트웨어의 상업화에 반대하고 소스코드의 공유를 주장한다.
  • D) 유닉스의 비공개 버전을 개발하는 프로젝트다.
  • 정답: C) 소프트웨어의 상업화에 반대하고 소스코드의 공유를 주장한다.
  • 해설: GNU 프로젝트는 리처드 스톨만이 시작한 프로젝트로, 소프트웨어의 상업화에 반대하며 소스코드의 공유 및 자유로운 사용과 배포를 주장한다.
9. 리눅스의 특징 중 하나가 아닌 것은?
  • A) 다중 사용자 및 다중 작업 지원
  • B) 뛰어난 이식성 제공
  • C) 모든 리눅스 시스템은 상업용으로만 사용된다.
  • D) CUI와 GUI를 지원
  • 정답: C) 모든 리눅스 시스템은 상업용으로만 사용된다.
  • 해설: 리눅스는 다중 사용자와 다중 작업을 지원하며 뛰어난 이식성을 제공하고, CUI와 GUI를 모두 지원한다. 리눅스는 상업용 뿐만 아니라 개인용으로도 널리 사용된다.
10. 오픈소스 소프트웨어(OSS)의 장점으로 올바르지 않은 것은?
  • A) 소스 코드의 공개로 인해 다양한 개발자의 참여가 가능하다.
  • B) 수정 및 배포에 대한 제한이 엄격하다.
  • C) 여러 사람에 의해 테스트되어 안전하다.
  • D) 프로그램 개발에 효율적으로 적용할 수 있다.
  • 정답: B) 수정 및 배포에 대한 제한이 엄격하다.
  • 해설: 오픈소스 소프트웨어는 소스 코드의 공개로 인해 개발에 누구나 참여할 수 있으며, 프로그램 개발에 효율적으로 적용될 수 있다. 또한, 여러 사람에 의해 테스트되어 안전함

참고 자료: Unix 시스템 (김희천, 김진욱 공저, KNOU press 출판)

반응형