CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
    • 1.클러스터링
    • 2.가상화
    • 3.임베디드와 기술 동향
    • 4.종합 모의 1: 리눅스 일반 + 운영 및 관리
    • 5.종합 모의 2: 리눅스 활용과 최종 정리
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 11/Day 3

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 11 · Day 3읽기 약 15분
핵심 정리
  • 임베디드 시스템은 특정 기능을 위해 기기 안에 내장된 시스템이다. 냉장고·공유기·자동차에 들어 있다.
  • 안드로이드는 리눅스 커널 기반이다. iOS는 아니다 — 이 구분을 묻는다.
  • 리눅스 커널을 쓰는 OS — 안드로이드 · Tizen · webOS · ChromeOS.
  • 클라우드 서비스 모델 셋 — IaaS(인프라) · PaaS(플랫폼) · SaaS(소프트웨어).
  • 빅데이터 분산 처리의 대표는 하둡(Hadoop) 이다.

Day 3 - 임베디드와 기술 동향

임베디드 시스템

항목내용
정의특정 기능을 수행하기 위해 기기 안에 내장된 컴퓨터 시스템
특징정해진 일만 한다 · 자원이 제한적 · 오래 켜져 있다
예공유기, 스마트TV, 냉장고, 자동차, 의료기기, 드론
  • 범용 PC와 달리 하는 일이 정해져 있다. 그래서 필요한 기능만 담아 작게 만든다.
  • 리눅스가 임베디드에 많이 쓰이는 이유는 분명하다.
이유설명
무료라이선스 비용이 없다
소스 공개필요한 부분만 골라 줄여서 넣을 수 있다
이식성ARM·MIPS 등 다양한 CPU를 지원한다
안정성오래 켜 두어도 잘 버틴다
  • RTOS(Real-Time Operating System)는 정해진 시간 안에 반드시 응답해야 하는 시스템용 운영체제다. 자동차 제동장치처럼 늦으면 안 되는 곳에 쓴다.
구분범용 컴퓨터 (PC·서버)임베디드 시스템
하는 일사용자가 정하기 나름만들 때 정해져 있다
자원CPU·메모리·저장 공간이 넉넉하다작고 제한적이다. 전력도 아낀다
저장 장치하드디스크·SSD주로 플래시 메모리
화면·키보드있다없는 경우가 많다
소프트웨어 설치사용자가 자유롭게제조사가 넣어 둔 것만(펌웨어)
CPU주로 x86ARM·MIPS 등 다양

임베디드 리눅스는 무엇으로 이루어지나

2주차의 부팅 순서(부트로더 → 커널 → 루트 파일 시스템)가 크기만 줄어 그대로 들어 있다.

구성임베디드에서 흔한 것하는 일
부트로더U-Boot전원이 들어오면 커널을 메모리에 올린다 (PC의 GRUB 자리)
커널필요한 기능만 남긴 리눅스 커널그 기기에 없는 장치의 드라이버는 빼고 빌드한다
루트 파일 시스템BusyBoxls·cp·sh 같은 기본 명령 수백 개를 실행 파일 하나에 담은 도구
  • "소스 공개"가 임베디드에 중요한 이유가 여기서 드러난다. 커널을 직접 줄여 다시 빌드해야 작은 기기에 들어가는데, 소스가 없으면 불가능하다.
  • 임베디드 기기는 자기 안에서 프로그램을 빌드하기엔 너무 약하다. 그래서 개발용 PC(x86)에서 대상 기기(ARM)용 실행 파일을 만드는 크로스 컴파일을 한다.
   개발 PC (호스트, x86)                    임베디드 보드 (타깃, ARM)
   ┌─────────────────────┐   옮겨 싣는다    ┌──────────────────────┐
   │ 크로스 컴파일러로      │ ───────────►  │ ARM용 실행 파일을 실행 │
   │ ARM용 실행 파일 생성   │               │ (여기서는 빌드하지 않는다)│
   └─────────────────────┘                └──────────────────────┘

실시간의 두 등급

구분기한을 넘기면예
경성 실시간(hard real-time)실패·사고다에어백, 제동장치, 의료기기
연성 실시간(soft real-time)품질이 떨어질 뿐이다동영상 재생, 음성 통화
  • 실시간은 "빠르다"가 아니라 "늦지 않는다는 보장" 이다. 평균은 느려도 기한을 어기지 않으면 실시간이다.
  • 리눅스는 본래 범용 운영체제라 처리량을 우선한다. 엄격한 실시간이 필요한 곳에는 VxWorks·QNX 같은 전용 RTOS를 쓰거나 리눅스에 실시간 패치를 적용한다. VxWorks와 QNX는 리눅스 커널 기반이 아니다.

리눅스 커널 기반 운영체제

운영체제만든 곳쓰이는 곳
안드로이드(Android)구글스마트폰·태블릿
Tizen삼성·인텔스마트워치·TV
webOSLG(원래 팜)스마트TV
ChromeOS구글크롬북
Raspberry Pi OS라즈베리파이 재단소형 보드

⚠️ iOS와 macOS는 리눅스 커널이 아니다. 애플의 Darwin(BSD 계열) 커널을 쓴다. 윈도도 당연히 아니다. "리눅스 커널 기반 운영체제가 아닌 것"이라는 문제에 이 이름들이 오답으로 나온다.

  • 안드로이드는 리눅스 커널 위에 자체 프레임워크를 얹은 것이다. 커널은 공유하지만 GNU 도구 모음은 쓰지 않는다.
   ┌──────────────────────────────────────┐
   │ 앱                 전화 · 카메라 · 내려받은 앱   │
   ├──────────────────────────────────────┤
   │ 애플리케이션 프레임워크   앱이 부르는 자바 API       │
   ├──────────────────────────────────────┤
   │ 네이티브 라이브러리 · 안드로이드 런타임(ART)        │  ← 구글이 만든 층
   ├──────────────────────────────────────┤
   │ 리눅스 커널         드라이버 · 메모리 · 프로세스    │  ← 리눅스와 공유하는 층
   └──────────────────────────────────────┘
층일반 리눅스 배포판안드로이드
커널리눅스 커널리눅스 커널 (같다)
C 라이브러리GNU의 glibc구글의 Bionic
기본 명령·도구GNU 도구 모음자체 도구
앱 실행 방식실행 파일을 직접 실행런타임(ART, 옛 이름은 Dalvik) 위에서 실행
라이선스GPL 중심커널은 GPL, 그 위는 대부분 Apache 2.0
  • 안드로이드는 구글이 2005년 인수한 회사의 운영체제이고, 제조사·통신사 연합인 OHA(Open Handset Alliance)와 함께 공개했다.
  • 1주차에서 "안드로이드는 리눅스 배포판이 아니다"라고 한 근거가 위 표다. 커널 한 층만 같고 나머지가 다르다.

보기에 섞여 나오는 이름을 두 칸으로 갈라 둔다.

리눅스 커널 기반 이다리눅스 커널 기반이 아니다
안드로이드 (구글)iOS · macOS (애플, Darwin)
Tizen (삼성·인텔)윈도 · 윈도 모바일 (마이크로소프트)
webOS (팜 → LG)심비안 (노키아 등)
ChromeOS (구글)QNX · VxWorks (RTOS)
MeeGo (노키아·인텔)FreeBSD · 솔라리스 (유닉스)
Firefox OS (모질라)
  • 왼쪽 칸은 만든 회사가 제각각이라는 점이 중요하다. 리눅스 커널이 GPL로 공개되어 있어 누구든 가져다 자기 운영체제의 바닥으로 쓸 수 있다.
  • Tizen과 webOS는 스마트폰보다 TV·가전에서 살아남았다. "스마트TV의 운영체제"라는 지문이면 이 둘이다.

클라우드 컴퓨팅

모델제공하는 것예
IaaSInfrastructure — 서버·저장소·네트워크AWS EC2
PaaSPlatform — 실행 환경·개발 도구앱 엔진
SaaSSoftware — 완성된 소프트웨어웹 메일, 웹 오피스
   IaaS  ─── 하드웨어만 빌린다.  OS부터 내가 설치
   PaaS  ─── 실행 환경까지 준다.  앱만 올리면 된다
   SaaS  ─── 완성품을 쓴다.      설치할 것이 없다
  • 가운데 글자로 구분한다 — I는 Infrastructure, P는 Platform, S는 Software.
  • 아래로 내려갈수록 내가 관리할 것이 줄어든다.

"누가 관리하나"를 층별로 펼치면 세 모델의 경계가 보인다.

층직접 구축IaaSPaaSSaaS
애플리케이션나나나제공자
실행 환경 (런타임·미들웨어)나나제공자제공자
운영체제나나제공자제공자
서버·저장소·네트워크·가상화나제공자제공자제공자
  • IaaS와 PaaS의 경계는 운영체제다. "운영체제부터 사용자가 설치한다"면 IaaS, "앱만 올리면 된다"면 PaaS다.
  • PaaS와 SaaS의 경계는 애플리케이션이다. 내가 만든 프로그램을 올리면 PaaS, 남이 만든 완성품을 쓰기만 하면 SaaS다.
  • 보기에 DaaS(Desktop as a Service — 데스크톱 화면을 빌려 쓰는 서비스) 같은 낯선 이름이 섞이기도 한다. 기본 세 모델이 아니라는 것만 알면 걸러 낼 수 있다.
  • 클라우드는 어제 배운 가상화 위에 세운 서비스다. 물리 서버 한 대를 가상 머신 여럿으로 쪼개 여러 고객에게 빌려준다. 그래서 IaaS의 맨 아래 칸에 "가상화"가 들어간다.
특징뜻
필요할 때 바로사람을 거치지 않고 사용자가 직접 자원을 켜고 끈다
쓴 만큼 지불장비를 사지 않고 사용량에 따라 낸다
탄력성접속이 몰리면 늘리고 한가하면 줄인다
구축 형태뜻
퍼블릭 클라우드누구나 빌려 쓰는 공용
프라이빗 클라우드조직 내부 전용
하이브리드둘을 섞어 쓰는 형태
  • OpenStack은 프라이빗 클라우드를 구축하는 대표적인 오픈소스 플랫폼이다.
  • OpenStack은 NASA와 랙스페이스(Rackspace) 가 2010년에 시작했다. 서비스 모델로는 IaaS 를 만드는 도구이고, 리눅스 서버 위에 설치한다.
  • 같은 부류의 오픈소스로 CloudStack, Eucalyptus 가 있다. 셋 다 "클라우드를 빌려 쓰는 서비스"가 아니라 "클라우드를 직접 만드는 소프트웨어"다.
헷갈리는 짝가르는 기준
퍼블릭 vs 프라이빗누가 쓰나 — 불특정 다수인가, 한 조직인가
IaaS vs PaaS vs SaaS무엇을 빌리나 — 인프라인가, 플랫폼인가, 소프트웨어인가
클라우드 vs 가상화가상화는 기술, 클라우드는 그 기술로 만든 서비스 형태
클라우드 vs 그리드클라우드는 빌려 쓰고, 그리드는 흩어진 남는 자원을 모은다

빅데이터

기술하는 일
Hadoop(하둡)대용량 데이터를 여러 서버에 나눠 저장·처리
HDFS하둡의 분산 파일 시스템
MapReduce나눠서 처리하고(Map) 합치는(Reduce) 방식
Spark하둡보다 메모리 기반으로 빠른 처리
NoSQL정형화되지 않은 데이터용 데이터베이스 (MongoDB 등)
  • 빅데이터의 특징을 3V — Volume(양) · Velocity(속도) · Variety(다양성) 로 설명한다.
  • 하둡과 스파크 모두 리눅스 위에서 동작한다.

하둡은 저장(HDFS) 과 처리(MapReduce) 두 부분으로 읽는다.

   HDFS — 큰 파일을 블록으로 잘라 여러 서버에 복제해 둔다
 
     네임노드 (어느 블록이 어디 있는지 기억 — 목록만 가진다)
        │
     ┌──┴─────────┬────────────┐
   데이터노드1    데이터노드2    데이터노드3     ← 실제 데이터를 저장
    블록 A        블록 A        블록 A         같은 블록을 기본 3벌
이름역할
네임노드(NameNode)파일이 어떤 블록으로 나뉘어 어디에 있는지를 관리
데이터노드(DataNode)블록을 실제로 저장
복제같은 블록을 기본 3벌 둔다. 서버 한 대가 고장 나도 데이터가 남는다

MapReduce는 "단어 세기"로 따라가 보면 이름의 뜻이 풀린다.

   입력        서버1: linux unix linux        서버2: unix linux
 
   Map        (linux,1) (unix,1) (linux,1)   (unix,1) (linux,1)     ← 각자 쪼개어 표시
   모으기      linux → 1,1,1                  unix → 1,1             ← 같은 단어끼리
   Reduce     linux 3                        unix 2                 ← 합친다
  • Map은 흩어서 각자 처리, Reduce는 모아서 합산이다. 데이터가 있는 서버에서 바로 계산하므로 큰 데이터를 한곳으로 옮길 필요가 없다.
  • 하둡은 아파치 재단의 오픈소스이고 자바로 작성되었다. 값싼 서버 여러 대를 묶는다는 점에서 첫날의 클러스터와 뿌리가 같다.
  • 하둡과 고계산용 클러스터는 둘 다 "나눠서 처리"하지만 대상이 다르다. 고계산용은 큰 계산, 하둡은 큰 데이터다.
빅데이터의 V뜻
Volume양이 많다
Velocity생기고 처리되는 속도가 빠르다
Variety형태가 다양하다 (글·사진·로그 등)
Veracity · Value정확성 · 가치 — 넷째·다섯째로 덧붙이는 V
  • 기본은 3V(양·속도·다양성)다. 보기에 Virtual·Visual 같은 그럴듯한 V가 섞여 나온다.

리눅스가 쓰이는 분야

분야내용
서버웹·메일·DB·파일 서버 — 가장 큰 시장
슈퍼컴퓨터세계 상위 슈퍼컴퓨터는 사실상 전부 리눅스
모바일안드로이드
임베디드공유기, TV, 자동차
클라우드대부분의 클라우드 인스턴스가 리눅스
데스크톱비중은 작지만 꾸준하다
  • 슈퍼컴퓨터 분야에서 리눅스의 점유율이 압도적이라는 사실이 출제 범위에 든다. 소스를 고쳐 하드웨어에 맞출 수 있기 때문이다.
  • 세계 슈퍼컴퓨터 순위표인 TOP500 은 2017년 11월 이후 500대 전부가 리눅스다.
  • 분야마다 리눅스가 선택된 이유는 결국 두 가지로 모인다 — 비용이 들지 않는다, 소스를 고쳐 맞출 수 있다. 임베디드는 줄이려고, 슈퍼컴퓨터는 하드웨어에 맞추려고, 클라우드는 수많은 인스턴스의 라이선스 비용을 없애려고 고른다.

최근 기술 용어

용어뜻
IoTInternet of Things — 사물인터넷
5G5세대 이동통신. 표준은 3GPP 가 만든다
엣지 컴퓨팅중앙이 아니라 가까운 곳에서 처리
컨테이너 오케스트레이션컨테이너를 자동 관리 — 쿠버네티스
  • IoT는 가전·센서·자동차 같은 사물이 인터넷에 연결되어 서로 데이터를 주고받는 것이다. 그 사물 안에 든 것이 오늘 처음에 배운 임베디드 시스템이다.
  • 5G의 특징은 셋으로 요약한다 — 초고속 · 초저지연 · 초연결. 표준을 만드는 곳은 9주차에 나온 그대로 3GPP 다.
  • 엣지 컴퓨팅은 클라우드의 반대편이다. 모든 데이터를 먼 데이터센터로 보내면 느리므로 기기 가까이에서 먼저 처리한다.
구분클라우드 컴퓨팅엣지 컴퓨팅
처리하는 곳멀리 있는 중앙 데이터센터기기와 가까운 곳
강점큰 용량, 대규모 분석짧은 지연 시간
어울리는 일데이터 저장·통계자율주행·공장 제어처럼 즉시 반응할 일
  • 쿠버네티스는 구글이 시작한 오픈소스다. 어제의 Docker가 컨테이너 하나를 띄우는 도구라면 쿠버네티스는 수많은 컨테이너를 여러 서버에 배치하고 죽으면 다시 띄우는 도구다.

지문으로 가려내기

지문에 나온 표현답
"특정 기능을 위해 기기에 내장"임베디드 시스템
"정해진 시간 안에 응답을 보장"RTOS
"리눅스 커널 기반의 모바일 운영체제"안드로이드
"서버·저장소를 빌리고 운영체제는 직접 설치"IaaS
"개발·실행 환경까지 제공, 앱만 올린다"PaaS
"웹 브라우저로 쓰는 완성된 소프트웨어"SaaS
"프라이빗 클라우드를 구축하는 오픈소스"OpenStack
"대용량 데이터를 분산 저장·처리"하둡
"하둡의 분산 파일 시스템"HDFS
"메모리 기반으로 더 빠른 처리"Spark
"컨테이너를 자동으로 배치·관리"쿠버네티스
"사물이 인터넷으로 연결"IoT

자주 틀리는 지점

  1. iOS도 리눅스 커널 기반이다 → 아니다. 애플의 Darwin 이다. 유닉스 계열이라는 점이 닮았을 뿐이다.
  2. 안드로이드는 리눅스 배포판이다 → 커널만 공유한다. GNU 도구를 쓰지 않는다.
  3. Tizen·webOS는 독자 커널이다 → 둘 다 리눅스 커널 기반이다.
  4. 임베디드 시스템은 클러스터의 한 종류다 → 전혀 다른 개념이다. 첫날 문제의 오답 보기였다.
  5. RTOS는 처리 속도가 가장 빠른 운영체제다 → 빠름이 아니라 기한 보장이다.
  6. PaaS는 운영체제부터 직접 설치한다 → 그건 IaaS 다. PaaS는 실행 환경까지 받는다.
  7. SaaS가 인프라를 빌려주는 모델이다 → 순서가 반대다. I가 인프라, S가 소프트웨어다.
  8. OpenStack은 빅데이터 기술이다 → 클라우드 구축 플랫폼이다. 빅데이터는 하둡.
  9. HDFS가 데이터를 처리한다 → HDFS는 저장, 처리는 MapReduce 다.
  10. 쿠버네티스가 컨테이너를 만드는 도구다 → 만드는 쪽은 Docker, 쿠버네티스는 관리(오케스트레이션) 다.

줄임말 풀어 읽기

줄임말풀네임
RTOSReal-Time Operating System
IoTInternet of Things
IaaSInfrastructure as a Service
PaaSPlatform as a Service
SaaSSoftware as a Service
HDFSHadoop Distributed File System
OHAOpen Handset Alliance

내일부터는 지금까지 배운 전부를 모아 종합 문제를 푼다.

📖 용어

  • 임베디드 시스템 : 특정 기능을 위해 기기 안에 내장된 컴퓨터 시스템.
  • RTOS : 정해진 시간 안에 반드시 응답해야 하는 실시간 운영체제.
  • 안드로이드 : 리눅스 커널을 기반으로 구글이 만든 모바일 운영체제.
  • IaaS / PaaS / SaaS : 인프라 / 플랫폼 / 소프트웨어를 제공하는 클라우드 서비스 모델.
  • OpenStack : 프라이빗 클라우드를 구축하는 오픈소스 플랫폼.
  • 하둡(Hadoop) : 대용량 데이터를 여러 서버에 나눠 저장하고 처리하는 빅데이터 기술.
  • HDFS : 하둡의 분산 파일 시스템.
  • MapReduce : 데이터를 여러 서버에서 나눠 처리한 뒤(Map) 결과를 모아 합치는(Reduce) 처리 방식.
  • 크로스 컴파일 : 개발용 PC에서 다른 CPU 구조의 기기용 실행 파일을 만드는 일.
  • 쿠버네티스 : 컨테이너를 자동으로 배치하고 관리하는 오케스트레이션 도구.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 리눅스 커널을 기반으로 만들어진 모바일 운영체제로 알맞은 것은?

문제 2

다음 중 임베디드 시스템에 대한 설명으로 알맞은 것은?

문제 3

다음 중 정해진 시간 안에 반드시 처리를 완료해야 하는 시스템에 사용되는 운영체제로 알맞은 것은?

문제 4

다음 중 대용량 데이터를 여러 서버에 분산 저장하고 처리하는 대표적인 빅데이터 기술로 알맞은 것은?

문제 5

다음 중 서버와 저장소 같은 하드웨어 자원을 빌려 주고 운영체제부터는 사용자가 직접 설치하는 클라우드 서비스 모델로 알맞은 것은?

이전가상화Week 11 · Day 2다음 종합 모의 1: 리눅스 일반 + 운영 및 관리Week 11 · Day 4

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 임베디드 시스템
  • 임베디드 리눅스는 무엇으로 이루어지나
  • 실시간의 두 등급
  • 리눅스 커널 기반 운영체제
  • 클라우드 컴퓨팅
  • 빅데이터
  • 리눅스가 쓰이는 분야
  • 최근 기술 용어
  • 지문으로 가려내기
  • 자주 틀리는 지점
  • 줄임말 풀어 읽기
  • 용어
  • 연습 문제