1과목 CH01 리눅스의 개요

정희수·2021년 2월 1일
post-thumbnail

1과목. 리눅스 실무의 이해

출제 빈도 높은 주제

  • 스와핑 개념

  • Redhat & Debian 계열의 리눅스 종류, 리눅스의 역사 및 특징

  • Shell 프로그래밍

  • 시그널의 종류, 번호(시그널 보는 법 + 번호 다 외우기)

  • X윈도

  • RAID 종류와 특징

  • 라이선스들 차이점 및 특징 (BSD, Apache, GPL)

  • 리눅스 배포판 중 다른 것 중 하나 묻기

  • IP(서브네트워크 또는 호스트 수 등)

  • 클라우드 사물인터넷, 빅데이터, 임베디드, 가상콘솔, 스와핑, 가상메모리 등 설명주고 단어 고르기

Chapter 01. 리눅스의 개요


1. 리눅스와 주요 라이선스

  • GPL
    - 리눅스는 GNU프로젝트와 연계해 발전해 왔다 👉 FSF(free software foundation)의 GPL(general public license)를 따른다.
    - GNU GPL은 5가지 의무를 강제한다.

    1. 어떠한 목적으로든 사용 가능
    2. 실행 복사본은 반드시 소스코드와 함께
    3. 소스코드를 용도에 따라 변경 가능
    4. 수정 후에는 소스코드 공개 배포
    5. 수정 프로그램 역시 GPL 라이선스 적용
  • LGPL (Library General Public license)
    - 독립적인 프로그램에도 사용되나 주로 소프트웨어 라이브러리에 주요 사용
    - 자유 소프트웨어뿐만 아니라 독점소프트웨어에서도 가능(=상업적 사용 가능) 👉 단, 수정시에는 소스코드 제공해야한다.
    - LGPL에서 GPL 변경 ok (반대는 불가)

  • BSD (Berkeley Software Distribution)
    - 누구나 수정 가능, 수정한 것 제한 없이 배포 가능 👉 단, 수정본 재배포는 의무가 아니고 수정된 소스코드 비공개를 허용한다.
    - 상용 소프트웨어에서도 사용 가능

  • Apache
    - 아파치 재단에서 만든 라이선스

    • 아파치 라이선스 2.0에 따르면 누구든 기존 코드 다운 받아 부분 혹은 전체를 개인적 또는 상업적 목적으로 이용 가능
    • 수정 소스코드 공개 의무 X 👉 단, 재배포시 아파치 라이선스 2.0을 포함시키고 아파치 소프트웨어 재단에서 개발된 SW임을 밝혀야한다.
  • MPL
    - 모질라 재단에서 규정한 라이선스
    - BSD와 GPL 혼합적이다
    - MPL 소스코드 수정시 소스코드 공개는 필수 <=> MPL 이 외 코드를 결합해서 만든 프로그램의 경우, MPL 코드 제외한 다른 소스코드는 공개 안 해도 된다.

  • MIT
    - BSD와 유사하다. 단, 라이선스와 저작권 관련 명시만 지켜주면 된다.



2. 리눅스 배포판

  • 리눅스 배포판 순서
    - SLS(softlanding linux system) => Slackware => SUSE
  • 패키지 관리 기법에 따라
    - 슬랙웨어: 소프트웨어를 최상단에서 최대한 수정되어 배포되는 형식 => 패키지를 새로 적용 및 수정 힘들다.
    (ex) SUSE, Vector Linux ..
    - 데비안: dpkg, apt 패키지 관리 도구 사용(=패키지화되어있다) / 이안머독이 데비안 프로젝트 설립
    (ex) Ubuntu, Linux Mint, Elementary OS, 정보보안 테스트를 위해 해킹과 관련된 도구와 설명서 내장한 BackTrack, Kali Linux
    - 레드햇: RPM, YUM 패키지 관리 도구 사용
    (ex) Cent OS, Fedora, Oracle Linux

    • SUSE: 초반엔 슬랙웨어 기반으로 유지되었지만 이후 슬랙웨어 단점인 패지키 관리 기법 보완을 위해 YaST 유틸리티 제공
    • Ubuntu: GNOME 데스크톱 환경 데스크톱 환경 기반의 그래픽 shell인 unity를 사용, 개인 pc에서 가장 인기 많은 리눅스 배포판



3. 리눅스 특징

리눅스의 특징

  1. 다중 사용자 및 다중 처리 시스템(multitasking)
  2. 커널뿐만 아니라 함께 내장되어 배포된 대부분 프로그램의 소스가 공개되어있다.
  3. 뛰어난 네트워크 환경: tcp/ip, 이더넷 등 대부분의 네트워크 프로토콜 지원
  4. 리눅스 고유 파일시스템(ext3../시스템 다운시 즉시 복구하는 저널링) 이외에 DOS, Windows, 상용 유닉스 등의 파일 시스템도 지원한다.
  5. 약간의 어셈블리와 대부분의 C언어로 작성되어 이식성이 높다.
  6. 유닉스의 표준인 POSIX를 준수한다.

리눅스 기술적 특징

  1. 장치의 파일화: 시스템에 설치된 HW 자원을 파일화하여 사용한다. => HW에 명령하려면 해당 장치 파일에 명령 내리면 된다.
  2. 가상메모리: 하드디스크 일부를 메모리처럼 사용하는 것.
    • 디스크는 데이터가 저장된 공간, 메모리(RAM)는 작업 공간
    • 스와핑: 디스크와 메모리 사이의 데이터 교환
  3. 동적 라이브러리 지원: 실행 파일 내부에 넣지 않고 프로그램 실행시 라이브러리 가져다 사용 => 메모리 효율성
  4. 가상 콘솔: 여러 개의 가상 화면을 사용하는 기능. 리눅스는 기본적으로 6개 제공(ctrl+alt+F1...F6)
  5. 파이프: 프로세스의 통신을 위한 기능.
    어떤 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 하는 것. => 결과적으로 여러 명령을 조합할때 사용 (|)
  6. 리다이렉션: 어떤 프로세스의 입/출력을 표준 입출력이 아닌 다른 입출력으로 변경할때 사용.
    > 표준 출력에서 다른 출력으로 변경
    >> 출력을 지정한 출력(주로 파일)에 추가한다.

리눅스 활용분야

  1. 리눅스 클러스터링
    서버 분야에서 Cluster는 여러 대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는 것처럼 구성된 시스템
    • 고계산용 클러스터(HPC: high perfermance Computing Cluster)
      (= 베어울프 클러스터)
      슈퍼컴퓨터를 구성한다. 주로 과학계산용으로 활용
      * 사진 속에서 node 포함
    • 부하분산 클러스터(LVS: linux virtual server)
      대규모 서비스를 제공하기 위한 목적 => 이용자 많은 웹 서비스 등에 활용
      여러 대의 Real server에 부하를 분산해주는 로드 밸런서를 두고 운영
    • 고가용성 클러스터(HA: high availability Cluster)
      지속적 서비스 제공을 목적으로 부하분산 클러스터와 연동하여 많이 사용된다.
      다른 하나의 Backup Node가 Primiary Node 상태 체크하고 있다가 이상 발생시, 서비스를 이어 받도록 구성(로드밸랜서 오류 발생시 대응을 위함)

  2. 임베디드 시스템
    마이크로컨트롤러, 마이크로프로세서, DSP(digital signal processor)등을 내장하여 특정한 기능을, 반복적으로 수행하기 위해 HW와 SW를 결합하여 만든 전자 제어 시스템을 일컫는다.
    • 대표적으로는 Android

  3. 클라우드 컴퓨팅
    구름으로 표현되는 IT 자원들은 어디엔가 존재하고, 사용자가 필요한 작업을 제시하면 필요한 자원이 할당되는 'as a Service'로 제공되는 컴퓨팅 환경을 의미한다.
    • IaaS(Infrastructure): 서버, 데스크톱 컴퓨터, 스토리지 같은 IT 하드웨어 자원을 클라우드 서비스로 비려 쓰는 형태
    • PaaS(Platform): 소프트웨어를 개발할 수 있는 환경(플랫폼)을 "
    • SaaS(Software): 소프트웨어를 통째로 빌려쓰는 형태

  4. 빅데이터
    데이터로부터 가치 추출하고 결과를 분석하는 기술 => 예측, 맞춤형 정보
    관련 기술: 분석 인프라 하둡(Hadoop), NoSQL ...

  5. 사물인터넷(IoT: Internet of Things)
    사물들이 유무선 네트워크로 연결해 정보를 공유하는 환경. 다수의 IoT 기기들이 리눅스 운영체제 기반으로 동작하고 있다.
    - 아두이노: 단일 보드 마이크로컨트롤러로 완성된 보드와 관련 개발 도구 및 환경
    - 라즈베리파이: 신용카드 크기의 싱글 보드 컴퓨터이다. (데비안 기반의 라즈비안 이외에 여러 OS 지원)
profile
nonstop sw developer

0개의 댓글