Jin's Dev Story

[리눅스마스터1급 - 1차] 1과목 - 1. 리눅스의 개요 본문

자격증 & 공부/리눅스마스터 1급

[리눅스마스터1급 - 1차] 1과목 - 1. 리눅스의 개요

woojin._. 2024. 6. 13. 10:56

CH.1 리눅스의 개요

1. 운영체제의 개요

1-1. 운영체제의 이해

* 운영체제의 특징

   - 커널, 미들웨어, 응용 프로그램 실행 환경과 사용자 인터페이스 프레임워크를 모두 포괄하여 정의될 수 있음

   - 운영체제의 처리방식은 일괄 처리 시스템 -> 다중 프로그래밍 시스템 -> 실시간 시스템 -> 시분할 처리 시스템 -> 분산처리 시스템 -> 다중 처리 시스템

   - 스마트폰과 태블릿에 설치되는 모바일 운영체제, 웹 브라우저만 있으면 사용 가능한 웹 운영체제도 사용되고 있음

   - 최근의 운영체제는 유휴 자원의 효율적 활용을 위해 가상화 기술을 기본적으로 내장하거나 커널 단에서 지원하고 있음

 

  1) 운영체제의 주요 역할
     - HW 제어, 사용자들 간에 HW 자원을 공유
     - 스케줄링을 통해 자원의 효율적 사용
     - I/O 용이
     - 오류 방지/복구
     - 편리한 사용자 인터페이스 제공

     - 강력한 네트워크와 가상화 기술을 지원

     - 모바일 OS가 보편화되었음

     - 비간섭


  2) 운영체제 유형
      - 다중 교환(Multi-switching) : 다수의 작업이 동시 실행. 포그라운드 프로그램만 동작
      - 단일 작업(Single-tasking) : 한 번에 하나의 작업만 처리
      - 다중 작업(Multi-tasking) : 여러 개의 작업을 동시에 수행
      - 다중 사용자(Multi user) : 단일 프로세서에서 여러 사용자의 프로그램이 실행
      - 대화형 처리(Interactive Processing) : 대화형으로 작업을 처리 (시분할 처리 기능 필요)
      - 일괄 처리(Batch Processing) : 여러 개의 작업을 묶어 한 번에 처리
      - 실시간 처리(Real Time Processing) : 작업의 처리가 지연없이 즉각적으로 처리
      - 분산 처리(Distributed Processing) : 여러 시스템을 연결하여 작업을 나누어 처리


  3) 시스템 성능을 나타내는 4가지 요소
      - 처리 능력(Throughput) : 단위 시간당 처리 능력
      - 반환 시간(Turnaround Time) : 작업이 제출되어 결과를 얻을 때까지의 총 소요시간
      - 신뢰도(Reliability) : 시스템이 얼마나 정확하게 작동되는지를 나타냄
      - 사용 가능도(Availability) : 시스템에서 곧 사용할 수 있는 정도를 나타냄


4) 가상메모리
      - 하드디스크의 일부를 메모리(RAM)처럼 사용하는 것
      - 하드디스크에서 가상메모리로 쓰이는 영역을 스왑 영역(swap space)이라고 함
      - 스와핑(Swapping) : 메모리와 하드디스크 사이의 데이터 교환


5) 페이지 교체 알고리즘
      - FIFO(First In First Out) : 먼저 적재된 페이지를 제거하는 알고리즘
      - LRU(Least Recently Used) : 가장 오랫동안 참조되지 않은 페이지를 제거하는 알고리즘
      - LFU(Least Frequently Used) : 최근에 가장 적게 사용된(참조된) 페이지를 제거하는 알고리즘
      - NUR(Not Used Recently) : 참조비트와 변형비트를 사용하여 가장 오랫동안 참조되지 않은 페이지를 제거하는 알고리즘(LRU 알고리즘의 변형)
      - SCR(Second Chance Replacement) : FIFO 알고리즘의 단점을 보완한 알고리즘, 참조비트로 한 번의 기회를 더 부여하는 알고리즘


1-2. 운영체제의 종류

  * 리눅스 기반 운영체제

    : Tizen, webOS, GENIVI

 

  * Limo : 리눅스 기반 모바일 운영체제, 리모재단 개발

  * QNX : 유닉스 계열의 서버 운영체제

 

  * 리눅스

     : 최근 리눅스 운영체제는 SSD(Solid State Drive)를 지원함

     : 이더넷 등 대부분의 네트워크 인터페이스를 지원함

     : 대부분 리눅스 배포판에서는 인텔사의 x86 계열 CPU를 기본적으로 지원함

     : 다른 운영체제에 비해 이식성, 확장성 등이 뛰어나지만, 특정 하드웨어에 설치가 어렵고 모든 플랫폼에서 작동하지는 않음

     : 서버, 개발용, PC용 등 다양한 목적으로 사용할 수 있고, 이에 따른 다양한 배포판이 존재하며, 유료/무료 버전이 존재함

     : 저널링 파일시스템을 지원함

     : 단일형 커널

 

  1) 리눅스의 특징
      - CPU 최적화 : 인텔 CPU 뿐만 아니라 AMD와 Cyrix CPU에도 최적화되어 있음
      - 뛰어난 네트워킹 : TCP/IP 뿐만 아니라 IPX/SPX, SLIP, PPP 등의 여러 네트워킹 프로토콜을 지원
      - 뛰어난 이식성/확장성 : 다른 OS에 비해 이식성, 확장성이 뛰어남
      - 6개의 가상 콘솔 제공 : 하나의 모니터를 장착한 시스템에서 기본적으로 6개의 가상 콘솔을 제공
      - 효율적인 가상메모리

 

  2) 리눅스의 기술적인 특징

       - 파이프

          : 특정 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 쓰이게 하는 것으로 대표적인 프로세스 간 통신 기술

       - 스와핑

          : 프로그램 실행 시 메모리의 공간이 부족하면 가상메모리를 설정하여 메모리와 하드디스크 사이의 데이터 교환을 통해 새로운 프로그램을 실행시킬 수 있게 함

       - 리다이렉션

          : 표준 스트림의 입력과 출력의 방향을 다른 곳으로 바꿈

       - 라이브러리

          : 특정한 코드(함수/클래스) 포함하고 있는 컴파일된 파일

          : 프로그램에서 특정한 기능을 하는 루틴들을 모아놓은 것으로 효율적인 메모리 사용뿐만 아니라 디스크 관리에도 유용

       - 가상 콘솔

          : 리눅스 운영체제에서 사용할 수 있는 가상 모니터로 한 컴퓨터에서 여러 개의 텍스트 콘솔을 실행할 수 있음

 

2. 리눅스 기초

2-1. 리눅스의 철학
  1) GNU 프로젝트
       - GNU : Gnu is Not Unix 라는 뜻의 재귀적 약어
       - 유닉스 호환 자유 소프트웨어들을 개발하는 프로젝트
       - GNU 소프트웨어에는 gcc, emacs, Bash 쉘, GNOME 등이 있음


  2) GPL(General Public License)
       - FSF에 의해 만들어진 특별한 오픈소스 라이선스, “카피레프트(copyleft)”
       - FSF(Free Software Foundation, 자유 소프트웨어 재단)
          : 리차드 스톨만이 설립한 비영리 조직
       - 주요 특징
          : 해당 프로그램을 마음대로 배포 복사, 소스코드 수정이 가능
          : GPL 프로그램의 소스코드를 수정해 만든 프로그램 또한 GPL을 가짐
          : 다른 소프트웨어와의 완전한 통합은 해당 소프트웨어가 GPL을 수용한다는 조건하에서만 허용
            (독점 소프트웨어와 결합이 불가능)
          : 독점 소프트웨어와 결합 시 해당 영역의 소스를 공개해야 함

           : 수정한 소스코드 및 GPL 소스코드 사용 시 모두 GPL로 공개


  3) LGPL(Lesser General Public License)
       - GPL의 조건을 완화시킨 라이선스 (GPL 특징 중 전염성을 완화)
       - LGPL 프로그램의 소스코드를 이용하여 만든 프로그램을 판매 배포 시 프로그램 소스 공개 의무가 없고 LGPL 소스코드를 사용했음을 명시하면 됨. 하지만 수정한 경우는 전체 코드를 공개해야 함
       - 독점 소프트웨어와 결합이 가능함

        - LGPL 소스코드를 단순 라이브러리 이상으로 사용하는 경우에 소스코드 공개


  4) BSD(Berkeley Software Distribution) 라이선스
       - BSD 계열 소프트웨어에 적용되는 오픈소스 라이선스
       - 주요 특징
          : 소스코드 공개의 의무가 없음
          : 저작권자 표기. BSD 라이선스의 소프트웨어를 이용하는 경우, 해당 저작권자의 이름과 BSD 라이센스의 내용을 같이 배포해야 함
       : 독점 소프트웨어와 결합 시 원래 소스의 저작권자와 관련 사항을 표기하면 소스 공개 의무는 없음

 

  5) Apache License (제약 : )

        - 누구든 자유롭게 부분 혹은 전체를 개인적 또는 상업적 목적으로 이용 가능

        - 또한, 재배포 시에도 소스코드 또는 수정한 소스코드를 포함하여 반드시 공개할 필요 없음

        - 다만, 재배포할 경우에 해당 라이센스를 포함시키고 관련 소프트웨어임을 밝혀야 함

        - 대표적인 프로그램 : Hadoop, Tomcat

 

  6) MIT (제약 : )

        - 소스코드 공개의무 없음

        - X 윈도 시스템

 

  7) MPL (제약 : )

        - 수정한 소스코드 MPL 라이센스로 공개

        - 소스코드는 MPL로 공개, 제작자에게 수정 사실 알려야 함

        - 파이어폭스


  8) GNU/FSF에서 규정한 자유 소프트웨어 조건
       - 프로그램을 어떠한 목적으로도 실행할 수 있는 자유
       - 프로그램의 작동 원리를 연구하고 이를 자신의 필요에 맞게 수정할 수 있는 자유
       - 이웃을 돕기 위해서 프로그램을 복제하고 배포할 수 있는 자유
       - 프로그램을 향상시키고 이를 공동체 전체의 이익을 위해서 다시 환원시킬 수 있는 자유

 

2-2. 리눅스의 역사

    - Kail Linux

       : 시스템 보안을 공부하기 위해 해킹 및 보안도구가 많이 내장된 리눅스 배포판을 사용하고자 함

    - MINUX(미닉스)

        : 앤드류 스튜어트 타넨바움이 개발

    - UNIX(유닉스)

        : 켐 톤슨 개발

    - 리눅스 토발즈 : 리눅스 커널과 깃을 최초로 개발

    - 리처드 스톨먼 : GNU 프로젝트 및 자유 소프트웨어 재단 설립자

    - 데니스리치 : C와 유닉스의 개발자

 

  * 배포된 리눅스의 순서

   - 1992 : SLS

   - 1993 : Slackware, Debian

   - 1994 : SUSE, RedHat

   - 2003 : CentOS

   - 2004 : Ubuntu


  1) 리눅스 배포판의 종류
       - 레드햇(RedHat)
          : RPM 기반으로 제작된 리눅스 배포판
          : 현재는 기업용 배포판으로 상업적으로 배포하고 있으며 무료 버전으로는 페도라가 있음

             : 레드햇 계열 리눅스 배포판 : CentOS, Scientific Linux, Oracle Linux
       - 페도라(Fedora)
          : RPM 기반. 레드햇 계열
          : 레드햇의 지원을 받아 개발 및 유지보수가 이루어짐
          : 페도라의 업데이트 후에 문제점을 파악하여 레드햇 리눅스(RHEL)에 업데이트를 반영하는 방식으로 운영되고 있음
       - 데비안(Debian)
          : GNU의 후원을 받는 리눅스 배포판
          : 패키지 설치 및 업그레이드가 단순함(패키지 관리 - dpkg, apt)

             : 데비안 계열 리눅스 배포판 : 우분투, Linux Mint, Elementary OS

        - 우분투(Ubuntu)
            : 데비안 계열
            : 영국 회사인 캐노니컬의 지원을 받음
            : 유니티(Unity)라는 고유한 데스크톱 환경을 사용
        - 슬랙웨어(Slackware)
            : 초창기에 나온 배포판으로 현재까지 살아있는 가장 오래된 배포판
            : 패트릭 볼커딩에 의해 만들어짐
            : 구조가 간결하지만 설치과정이 어렵고 패키지 관리가 어려워 많이 사용되지는 않음

             : 슬랙웨어 계열 리눅스 배포판 : Vector Linux
        - 오픈 수세(open SUSE)
            : 대표 기능으로 YaST 유틸리티가 있음 (오프라인)
            : 여러가지 데스크탑 환경(KDE, GNOME 등)의 버전이 있으며, KDE 판이 가장 유명함
        - 맨드레이크(Mandrake)
            : RPM 기반
            : 단순함을 추구하며 다양한 데스크탑 환경을 제공함
            : 우리나라의 리눅스 배포판
            : SU Linux, 안녕 리눅스 아시아눅스 등
        - Chrome OS
            : 구글에서 개발한 리눅스 기반 OS
            : 인터페이스는 웹 브라우저인 크롬과 비슷함
  2) 리눅스 커널이 사용된 모바일 OS
        - 안드로이드(Android)
            : C /C++ 라이브러리들을 포함하는 오픈소스 플랫폼
            : 가상머신은 Java 가상머신이 아니라 구글에서 자체 개발한 달빅(Dalvik) 가상머신을 사용
        - 바다(Bada) OS
            : 삼성에서 개발한 리눅스 커널 기반의 OS
            : 미고(MeeGo)와 리모(LiMo)가 통합된 타이젠(Tizen)과 통합되었음
        - 타이젠(Tizen) OS
           : 삼성과 인텔의 주축으로 개발된 오픈소스 OS
            : HTML5 기반으로 만들어졌으며, 자바스크립트 CSS와 같은 웹 표준을 지원

 

 


 

해당 블로그를 참고하여 정리했습니다.

https://bangu4.tistory.com/139

 

[Linux Master] 리눅스 마스터 공부법, 기출문제, 요약집

www.ihd.or.kr/main.do KAIT 자격검정 시험접수 정보통신 자격검정 시험 원서등록을 하실 수 있습니다 www.ihd.or.kr 시험에 대한 모든 내용이 홈페이지에 있지만 다시한번 정리하겠습니다. 1급 기준으로 1

bangu4.tistory.com