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

2024. 6. 13. 10:56·자격증 & 공부/리눅스마스터 1급

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

저작자표시 비영리 변경금지 (새창열림)

'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글

[리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리  (1) 2024.06.13
[리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리  (0) 2024.06.13
[리눅스마스터1급 - 1차] 1과목 - 3-2. 네트워크의 이해  (0) 2024.06.13
[리눅스마스터1급 - 1차] 1과목 - 3-1. 네트워크 기초  (0) 2024.06.13
[리눅스마스터1급 - 1차] 1과목 - 2. 리눅스 시스템의 이해  (1) 2024.06.13
'자격증 & 공부/리눅스마스터 1급' 카테고리의 다른 글
  • [리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리
  • [리눅스마스터1급 - 1차] 1과목 - 3-2. 네트워크의 이해
  • [리눅스마스터1급 - 1차] 1과목 - 3-1. 네트워크 기초
  • [리눅스마스터1급 - 1차] 1과목 - 2. 리눅스 시스템의 이해
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    programmers
    스프링
    baekjoon
    백준
    리눅스마스터 1급
    플러터
    pcce 기출문제
    DB
    python
    Java
    스프링 부트 쇼핑몰 프로젝트 with JPA
    데이터
    Linux
    리눅스
    데이터베이스
    CS지식
    backjoon
    spring
    postgresql
    스프링부트
    Flutter
    Oracle
    CS
    Spring Security
    자바
    프로그래머스
    시큐리티
    springboot
    리눅스마스터
    JPA
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[리눅스마스터1급 - 1차] 1과목 - 1. 리눅스의 개요
상단으로

티스토리툴바