728x90

1. 유닉스와 리눅스

 

  • Unix
    • 다중 사용자(multi user), 다중 작업(multitasking)을 지원하는 신뢰성 높은 시분할 방식의 운영체제
    • C언어로 작성되어서 이식성이 좋고 네트워크 기능이 강력함(UNIX 시스템의 발전이 인터넷, 네트워크 발전에 대단한 공헌을 했다고 알려짐)
    • 매우 단순하고 모듈화된 설계가 특징인 운영체제이며 강력한 쉘 스크립트를 제공함
    • 파일 시스템 트리가 하나로 통합되어 있음
  • Linux: Unix의 무료 공개 버전으로 초기에는 PC용 운영체제로 개발되었음

 

🔸Unix 발전사

출처: 방송통신대학교

  • Multics : 유닉스의 기원으로 1969년 assembly 언어로 작성된 최초의 시분할 운영체제
  • Unics → Unix : 작고 심플한 운영체제로 다시 작성되었으며 1973년 대부분이 C언어로 다시 작성됨

 

🔸대표적인 Unix 시스템

  • BSD 계열 : Free BSD, SunOS => 자유롭고 공개된 방식으로 운영체제 개발이 진행
  • System V 계열 : HP-UX, IBM AIX, Solaris => 상업적인 목적으로 제공
  • 리눅스

 

🔸리눅스 등장 과정

  • 1983년 GNU 프로젝트
    • 리처드 스톨만이 Unix와 유사한 공개 운영체제를 개발하기 위해 GNU 프로젝트를 시작소프트웨어 상업화에 반대하고 소스코드의 공유, 자유로운 사용과 배포를 주장
    • Linux 발전에 큰 영향을 줌
    • 1989년 GPL(General Public License) 발표
      • 공개 소프트웨어 라이센스의 대표적인 이름
      • GNU 프로젝트의 가장 큰 산물 
    • GNU 프로젝트는 현재 Free Software Foundation(FSF) 이름으로 계속 진행 중

 

  • 1991년 리눅스 커널(kernel)
    • 리누스 토발즈는 리눅스 커널을 작성하여 발표 - 개발자인 Linus와 Unix의 이름을 따서 Linux
    • 커널: 하드웨어를 제어하고(CPU 스케줄링, 메모리 관리..) 응용 프로그램과의 상호작용을 제공하는 운영체제의 핵심 구성 요소 

 

  • 1992년 최초 Linux 배포판(MCC Interim 리눅스) 발표 
    • 리눅스 배포판 = 리눅스 커널 + 다양한 시스템 유틸리티, 사용자 프로그램을 합쳐서 만들어진 완전한 운영체제
    • 보통 일반적으로 말하는 리눅스란 리눅스 배포판을 의미하는데 정확히 따지면 리눅스라는 명칭은 리눅스 커널만을 의미함!

 

  • 1998년 IBM과 Oracle과 같은 대기업들이 리눅스 지원을 발표

 

 

 

2. 리눅스 개요

 

🔸리눅스 발전상

  • 전 세계 리눅스 사용자는 9160만명 정도로 추산되며 유수의 100만 도메인 중 95% 이상이 리눅스를 사용
  • 스마트폰의 80% 이상이 리눅스 커널 기반의 안드로이드에서 동작
  • 슈퍼 컴퓨터의 95%가 리눅스에서 운영됨
  • 주요 증권거래소, Google, Twitter, Facebook, Amazon 등에서 리눅스 서버를 사용
  • 대다수 전자장비(폰, TV 등)에서 리눅스를 사용

 

✅ 리눅스의 특징

  • 다중 사용자와 다중 작업을 지원
  • 뛰어난 이식성을 제공
  • 모듈화되어 있어 업그레이드 또는 업데이트가 용이함
  • CUIGUI를 지원
    • Character UI(=CLI, Command Line Interface): 셸(Shell)을 통해 커맨드를 입력
    • Graphical UI: X Window와 GNOME, KDE 등의 데스크톱
  • 오픈 소스라서 빠르게 발전하고 보완됨
  • 여러 종류의 파일 시스템을 지원: Minx, ext 계열, FAT, FAT32, NTFS, NFS, ISO-9660 등
  • 효율적 하드웨어의 활용
  • 다양한 응용 프로그램과 소프트웨어 개발 환경을 제공

 

 

 

3. 오픈소스와 라이선스

 

✅ 오픈소스

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

open source software(OSS) <=> proprietary(closed) 소프트웨어소

 

🔸소프트웨어 라이선스

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

 

🔸오픈 소스의 장점

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

 

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

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

 

🔸리눅스 라이선스

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

 

🔸GNU GPL

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

 

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

  • GPL, LGPL, MPL
    • 소스코드를 공개해야 하는 카피레프트 라이선스(기본적으로 코드를 공개하도록 함→ GPL이 가장 강력하게 적용)
      • LGPL
        • 주로 오픈소스 라이브러리에 적용됨
        • 프로그램 전체 코드를 공개하지 않아도 되고, 오픈소스 라이브러리 소스 코드만 수정해서 쓸 수가 있어서 해당 오픈 소스 라이브러리 코드만 공개하면 됨
      • MPL: 코드와 결합하여 프로그램을 만들 때 MPL 코드를 포함하지 않은 파일은 공개 의무가 없음
    • 소스코드의 공개 범위는 다르게 정의됨(전체/파일/모듈 단위 등)
  • BSD, Apache, MIT 라이선스(=Permissive 라이선스)
    • 배포 시 소스코드의 비공개가 허용
    • 코드의 재사용을 높이려는 목적

 

 

 

4. 리눅스 배포판

 

🔸리눅스 배포판의 역사

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

 

✅ 주요 리눅스 배포판의 종류

  • Debian 계열: Debian, Ubuntu 등
  • Slackware 계열: Slackware, SUSE 등
  • Red Hat 계열: Redhat, Fedora, CentOS 등

 

✅ Debian 리눅스

  • Debian 프로젝트
    • 자유 운영 체제를 만들어가는 사람들의 독자적인 모임
    • Ian Murdock에 의해 1994년에 비영리 조직으로 설립
  • GNU 정신에 가장 충실한 배포판 → GNU의 공식적인 후원을 받는 유일한 배포판
  • 새로운 배포판이 나왔을 때 숫자 버전 외에 버전마다 코드명을 붙임 
    • 코드명은 크게 세가지(stable, testing, unstable)로 분류되고  unstable 버전은 항상 코드명이 sid (토이스토리에 나온 장난감 이름)
  • 설치 시간이 굉장히 오래 걸리며 패키지 관리를 위해서 데비안 패키지(dpkg) 사용하고, 패키지 install은 apt advanced 패키지 툴을 사용

 

✅ Ubuntu 리눅스

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

 

✅ Slackware 리눅스

  • SLS 리눅스로부터 파생되어 가장 먼저 대중화된, 현존하는 가장 오래된 배포판
  • 1992년 Patrick Volkerding에 의해 시작됨
  • 간결함을 설계 철학으로 함 (the KISS principle) → 현재 GNOME desktop이 제외되어 있음
  • 유닉스를 공부하려는 목적이라면 슬랙웨어 리눅스를 사용하는 것이 적합

 

✅ SUSE 리눅스 (Software und System Entwicklug ) 

  • Slackware 리눅스로부터 파생
  • 독일에서 만든 배포판으로 유럽에서 많이 사용
  • 풍부한 기능, 안정성, 보안 기능을 포함
  • SUSE Linux Enterprise(유료) / openSUSE(무료)

 

✅ Red Hat 리눅스

  • 1994년에 처음 배포된, 배포판 가운데 가장 널리 알려진 리눅스
  • Red Hat Linux : 무료 배포판으로 2003년 지원 중단됨(마지막 버전은 9) → 무료 배포판 유지 개발을 위해 Fedora라는 오픈소스 프로젝트를 지원 (RHEL의 테스트 베드로 사용됨)
  • Red Hat Enterprise Linux(RHEL) : 유료 배포판으로 최신 버전은 7
  • 패키지 관리 : RPM(Red Hat Package Manager)

 

✅ CentOS 리눅스

  • Red Hat 리눅스로부터 파생
  • Red Hat Enterprise Linux(RHEL)의 소스코드를 기반으로 만들어지는 무료 배포판이며 상당히 안정된 버전
  • 서버용으로 많이 사용되며 최신 버전은 7.3

 

728x90

'KNOU > UNIX시스템' 카테고리의 다른 글

[UNIX 시스템] 3. 셸 사용하기  (0) 2022.09.15
[UNIX 시스템] 2. 리눅스 설치  (1) 2022.09.11

+ Recent posts