3과목 리눅스 활용

YunGyu Choi·2023년 5월 29일
0

리눅스마스터2급

목록 보기
3/3

1. Xindows

1) 개념 및 사용법

(1) 개념과 특징

  • 리눅스 환경의 각종 애플리케이션과 유틸리티에 대해 그래픽 사용자 인터페이스를 제공한다.
  • 플랫폼과 독립적으로 작동하는 그래픽 시스템이다.
  • X-윈도우는 X11, X, X Window System이라 한다.
  • 네트워크 기반의 그래픽 환경을 지원한다.
  • 이기종 시스템 사이에서도 사용 가능하다.
  • 스크롤바, 아이콘, 색상 등 그래픽 환경 자원들이 특정 형태로 정의되어 있지 않다.
  • X-윈도우는 네트워크 프로토콜 기반의 클라이언트/서버 시스템이다.
  • 오픈 데스크톱 환경으로 KDE, GNOME, XFCE등이 있다.

(2) 구성요소

Xprotocol

  • 서버와 클라이언트사이의 메시지 타입, 메시지 교환 방법을 규정
  • 요구(request), 응답(response), 오류(error), 입력발생(event)으로 구성
  • Xlib라는 저수준 인터페이스와 Xtollkit이라는 상위 수준 인터페이스 사용

Xlib

  • C나 Lisp언어로 만든 Xprotocol 지원 클라이언트 라이브러리

XCB

  • Xlib를 대체하기 위해 등장한 클라이언트 라이브러리
  • Xlib보다 향상된 스레드 기능을 지원하고 확장성이 뛰어남
  • 라이브러리의 크기가 작고 단순
  • XProtocol에 직접 접근도 가능

Xtoolkit

  • Xlib로 스크롤바, 메뉴, 버튼 등의 GUI 부품을 개발 시 효율성 문제 발생
  • 고급 레벨의 GUI생성 시 Xtoolkit 이용
  • Xtoolkit은 Widget과 Xt Intrinsic을 포함

XFree86

  • 인텔 x86계열의 유닉스 운영체계에서 동작하는 X 서버
  • 어떤 목적에 사용하든 무료로 사용할 수 있는 X 시스템

XF8Config

  • XF86Config는 XFree86설정 파일

(3) 윈도우 매니저

  • 윈도우 매니저는 X window상에서 창의 배치와 표현을 담당하는 시스템 프로그램이다.
  • 창 열기와 닫기, 창의 생성 위치, 창 크기 조정, 창의 외양과 테두리를 변화시킬 수 있다.
  • 라이브러리는 Xlib와 XCB를 사용한다.

(4) 데스크톱 환경

  • GUI사용자에게 제공하는 인터페이스 스타일로 데스크톱 관리자라고도 한다.
  • 윈도우 매니저, 파일 관리자, 도움말, 제어판 등 다양한 도구를 제공하는 패키지 형태의 프로그램이다.
  • 아이콘, 창, 도구 모음, 폴더, 배경화면, 데스크톱 위젯도 제공한다.
  • 드래그 앤 드롭과 프로세스 간의 통보 기능을 지원한다.
  • 대표적인 데스크톱 환경에는 KDE, GNOME, LXDE, XFCE 등이 있다.

(5) 디스플레이 매니저

  • X window system상에서 작동하는 프로그램이다.
  • 로컬 또는 리모트 컴퓨터의 X server의 접속과 세션 시작을 담당한다.
  • 사용자에게 그래픽 로그인 화면을 띄워주고 아이디와 패스워드를 입력받아 인증을 진행하고 인증이 정상적으로 완료되면 세션을 시작한다.

2) X윈도우 활용


2. 인터넷 활용

1) 네트워크 개념

(1) 통신망의 종류

LAN(Local Area Network, 근거리 통신망)

  • 빌딩 내 혹은 근접한 거리의 빌딩들로 제한된 지역에 설치된 정보 기기들 사이의 고속 통신을 제공하는 통신망
  • Ethernet, Token Ring, FDDI 등이 있다.

MAN(Metropolitan Area Network)

  • MAN은 LAN보다는 큰 규모를 가지지만 WAN보다는 지리적으로 작은 규모에서 컴퓨터 자원들과 호스트들을 연결하는 도시권 통신망이다.
  • 같은 도시나 지역 사회와 같이 지리적으로 같은 위치에 존재하는 여러 개의 랜을 연결한다.
  • 몇몇 근ㄹ거리 통신 망을 연결하여 백본라인을 형성한다.
  • 고가의 라우터나 광전송 장비 없이도 저렴하게 인터넷 서비스를 이용할 수 있는 장점이 있다.

WAN(Wide Area Network, 원거리 통신망)

  • 국가, 대륙 등과 같이 넓은 지역을 연결하는 네트워크이다.
  • 거리의 제한은 없으나 다양한 경로를 경유해 도달하므로 속도가 느리고 전송 에러율도 높다.
  • 장거리 망 사이의 연결을 위한 WAN 구성 방식으로는 전용선, 회선교환망, 패킷교환망이 있다.

SAN(Storage Area Network)

  • 스토리지를 위해 고안된 스토리지 전용 고속 네트워크이다.
  • 파이버 채널을 이용하여 구성되는 저장장치 네트워크이다.
  • 호스트 컴퓨터의 종류에 구애받지 않고 별도의 연결된 저장장치 사이에 대용량의 데이터를 전송시킬 수 있는 고속 네트워크이다.
  • 서버가 클라이언트로부터 받은 파일 I/O 요청을 직접 블록 I/O로 전환하여 SAN에 연결된 스트로지로 전송한다.

2) 인터넷 서비스의 종류

3) 인터넷 서비스의 설정


3. 응용 분야

1) 기술 동향

(1) 클러스트링

정의

  • 여러개의 시스템이 하나의 거대한 시스템으로 보이게 만드는 기술이다.
  • 여러 개의 컴퓨터를 네트워크를 통해 연결하여 하나의 컴퓨터처럼 동작하도록 제작한 시스템이다.

구성 요소

  • 클러스터 노드 : 클러스터의 실질적인 작업을 처리
  • 클러스터 관리자 : 각 노드에 대한 자원 분배 및 관리

구축 목적

  • 공유 프로세싱을 통해 여러 시스템의 프로세싱 능력을 조합하여 대용량의 프로세싱 능력을 갖는 하나의 시스템을 제공하여 고성능 컴퓨팅을 구축한다.
  • 여러 대의 웹서버 노드를 두고 중앙 관리 툴에서 부하를 조정한다.
  • 평소엔 동작하지 않고 주 서버에 문제가 발생했을 시에 백업 서버로 가동한다. 이러한 기능을 fail-over라고 한다.

종류

  • 고계산용 클러스터(HPC;Hight Performance Computing Cluster)
  • 부하 분산 클러스터(LCS;Linux Virtual Server Cluster)
  • 고가용성 클러스터(HA;High Available Cluster)

(2) 임베디드 시스템

정의

  • 컴퓨터의 하드웨어 제어인 프로세스, 메모리 입출력장치와 하드웨어를 제어하는 소프트웨어가 조합되어 특정한 목적을 수행하는 시스템이다.
  • 미리 정해진 특정기능을 수행하는 프로그램이 내장되어 있는 시스템이다.
  • 하드웨어와 소프트웨어를 포함하는 특정 응용 시스템이다.
  • 개인 휴대 정보 단말, 지리 저오 시스템, 의료 정보 단말, 정보가전, 게임기기, 자동차, 항공기 및 우저선, 의료 및 산업 원경 조정 장비 등의 시스템을 총친한다.

특징

  • 특정 목적에 부합하는 최적화 설계가 가능하다.
  • 실시간 처리를 지원한다.
  • 높은 신뢰성을 보장한다.
  • 소형, 경량 및 저전력을 지원한다.

장점

  • 기능성과 확장성이 우수하다.
  • 다양한 CPU platform을 지원한다.
  • 로열티가 없으므로 가격 졍쟁력이 우수하다.
  • 사용자층이 넓어 오류 수정이 빠르고 안정성이 우수하다.
  • 기존의 데스크탑 개발 환경과 동일하여 개발이 용이하다.

단점

  • 기존의 RTOS(Real Time Operating System)보다 많은 메모리를 요구한다.
  • 개발 환경이 Text 기반의 환경이므로 개발에 어려움이 있다.
  • GUI환경을 개발하기 어렵다.
  • 사용자모드와 커널모드 메모리 접근이 복잡하여 제품화하기 위한 솔루션 구성이 어렵다.
  • 많은 업체들과 개발자들이 독자적으로 개발하고 있어 표준화가 어렵다.

2) 활용 기술

(1) 리눅스 서버 분야

① 서버가상화

가상화는 단일의 물리적은 IT 자원이 동시에 다수의 논리적인 IT자원으로 사용될 수 있도록 하는 기술이다. 가상화 기술에는 데스크탑 가상화, 서버 가상화, 스토리지 가상화, 네트워크 가상화등이 있다.

정의

  • 서버를 구성하는 모든 자원의 가상화를 의미한다.
  • 하나의 물리적인 서버 호스트에서 여러 개의 서버 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍처이다.
  • 여러 개의 애플리케이션, 미들웨어 및 운영체제들이 서로 영향을 미치지 않으면서 동시에 사용될 수 있도록 해준다.
  • 하이퍼바이저는 기존의 물리적인 머신의 자원을 추상화하여 가상 머신상에서 운영된다.

목적

  • 서버들을 하나의 서버로 통합하여 가상환경을 구동시킴으로써 물리서버 및 공간을 절감한다.
  • 하나의 서버가 오작동하더라도 다른 서버에서 동일 애플리케이션을 구동하므로 리던던시(redundacny)를 확보할 수 있다.
  • 서버 자원 통합 운영으로 하드웨어 가용성을 증가시킨다.
  • 체계적이고 안정적인 정보 센터 이전으로 업무 연속성을 확보할 수 있다.
  • 정보 시스템의 효율적인 배치를 통한 그린 IT 환경을 구성한다.
  • 통합 구축, 공동 활용, 유지 관리, 전력 및 관리 비용 등 중복 투자 낭비 및 예산을 절감한다.

하이퍼바이저

  • 가상머신과 하드웨어 사이에 위차하며 다수의 가상머신들이 동작할 수 있게 해준다.
  • CPU 및 메모리 등을 포함한 하드웨어 자원을 각 가상머신에 논리적으로 분할 할당하며 이들의 스케줄링을 담당한다.
  • 하드웨어 자원을 공유함에 있어 가상머신 간의 고립화를 보장한다.
  • 하이퍼바이저는 운영 방식에 따라 네이티브 방식과 호스티드 방식으로 나뉜다.

② 클라우드 컴퓨팅

정의

  • 공유 구성이 가능한 컴퓨팅 리소스를 통합 운영하여 어디서나 간편하게 요청에 따라 네트워크를 통해 접근하는 것을 가능하게 한다.
  • 클라우드 컴퓨팅은 인터넷을 통해 서버, 저장소, 데이터베이스, 네트워킹, 소프트웨어, 분석등의 컴퓨터 서비스를 제공한다.

특징

  • 사업자와 직접 상호작용하지 않고 사용자의 개별 관리 화면을 통해 서비스를 이용할 수 있다.
  • 모바일 기기 등의 다양한 디바이스를 통해 서비스에 접속할 수 있다.
  • 사업자의 컴퓨팅 리소스를 여러 사용자가 공유하는 형태로 이용한다.
  • 필요에 따라 필요한 만큼의 스케일업과 스케일 다운이 가능하다.
  • 이용한 만큼 요금이 부과되어 증량이 측정 가능한 서비스이다.

장점

  • 소프트웨어와 데이터를 통합관리함으로써 소트웨어 업데이트 작업 및 데이터 유지보수 효율성을 높여 비용을 절약할 수 있다.
  • 컴퓨팅 리소스를 필요한 만큼 확장하고 필요하지 않을 때 축소하는 등 유연한 활용이 가능하다.
  • 하드웨어 장애가 발생하더라도 서비스를 계속해서 사용할 수 있도록 구성되어 있기 때문에 자체 시스템을 구축할 때보다 낮은 가격에 가용성이 높은 환경을 사용할 수 있다.
  • 클라우드가 제공하는 하드웨어와 소프트웨어를 이용하여 시스템을 신속하게 구축할 수 있다.

서비스 종류

  • IaaS(Infrastructure as a Service)
    서버나 스토리지 같은 하드웨어 자원만을 임대해주는 클라우드 서비스
    사용자는 하드웨어를 보유하지 않고 서버와 스토리지, 네트워크 등의 리소스와 기능을 사용할 수 있다.
    언제든지 신속하게 자원을 추가하거나 제거할 수 있다.
    아마존 웹서비스의 EC2와 같은 서비스가 있다.
  • Paas(Plaform as as Service)
    소프트웨어 서비스를 개발하기 위한 플랫폼을 제공하는 클라우드 서비스이다.
    사용자는 클라우드 사업자가 제공하는 애플리케이션 개발 환경을 이용하여 환경 구축의 수고를 덜게 하고 단기간의 서비스 개발 및 제공할 수 있다.
    대표적인 서비스 기업으로는 구글 앱 엔진이 있다.
  • SaaS(Software as a Serivce)
    클라우드 환경에서 동작하는 응용 프로그램을 서비스 형태로 제공한다.
    기존의 패키지 소프트웨어처럼 모든 기능을 라이센스별로 구매하는 것이 아니다.
    필요한 기능을 필요한 기간만큼 임대하는 방식으로 이용한다.
    네이버메일, G메일, 네이버 클라우드, 구글 드라이브 등이 해당한다.

서비스 모델

  • 사설 클라우드(Private Cloud)
    기업들이 '자체적'으로 데이터센터 안에 클라우드 환경을 구축해 사용하는 방식이다.
    자사의 네트워크에 직원용으로 구축하는 클라우드 환경이다.
    자사의 정책에 맞추어 구축할 수 있지만 높으 ㄴ기술력고 ㅏ운영 능력이 필요하고 비용이 소요된다.
    회사 내 IT 리소스를 이용하려는 사용자가 자유롭게 어플리케이션 개발 및 운용이 가능ㅎ나 환경 제공을 목표로 한다.
  • 공용 클라우드(Public Cloud)
    클라우드 사업자가 시스템을 구축하고 인터넷 망 등의 네트워크를 통해 불특정 다수의 기업과 개인에게 서비스를 제공한다.
    인터넷 망을 통해 불특정 다수에게 서비스를 제공하는 클라우드 환경이다.
    클라우드 사업자 정책에 따르지만 저렴한 비용으로 이용할 수 있어 운영 관리 부담이 적다.
    기업 또는 개인의 방화벽 외부에 구축된다.
    필요한 컴퓨팅 자원을 단기간에 저비용으로 마련할 수 잇고 운용 관리 부담이 적다.
  • 하이브리드 클라우드(Hybrid Cloud)
    사설 클라우드와 공용 클라우드를 동시에 제공하고 양쪽의 장점만 선택해 사용도 가능한 클라우드 서비스를 의미한다.
    필요에 의해 데이터나 컴퓨팅 자원의 위치를 조절도 가능하고, 데이터의 중요도와 비즈니스 핵심 업무 여부 등에 따라 선택 가능하다는 장점도 있다.
    구축 환경
  • 오픈 스택(Open Stack)
    IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트이다.
    5개의 코어 프로젝트 노바, 스위프트, 클랜스, 키스톤, 호라이즌, 퀀텀이 유기적으로 연결되어 하나의 커다란 클라우드 컴퓨팅 시스템을 구축한다.
  • 클라우드 스택(Cloud Stack)
    IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트이다.
    스트릭스에서 오픈 소스로 공개한 제품이다.
    클라우드 인프라 스트럭처를 만드는 네트워크, 스토리지, 컴퓨터들의 노드를 관리한다.
    클라우드 서비스를 위한 자원의 배치, 관리, 클라우드 컴퓨팅 환경 구성을 하기 위해 클라우드 스택을 이용한다.
  • 유칼립투스(Eucalyptus)
    IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트이다.
    아마존 EC2 API와 동일한 API를 쓰고 있고 완벽하게 호환된다.
    분리된 물지 자원에서 유칼립투스 컴포넌트들을 운영할 수 있는 환경을 지원한다.

③ 빅데이터

3대요소

  • 볼륨(volume)
    수십 테라바이트 혹은 수십 페타바이트 이상의 범위에 해당한다.
  • 속도(velocity)
    데이터 수집, 저장, 분석 등이 실시간으로 처리되어야 한다.
    모든 데이터가 실시간 처리만을 요구하는 것은 아니다.
    수집된 대량의 데이터를 다양한 분석 기법과 표현 기술로 분석해야 하는데, 이는 장기적이고 전략적인 차원에서 접근할 필요가 있다.
  • 다양성(variety)
    정형화 정도에 따라 정형, 반정형, 비정형으로 구분한다.

하둡
대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크이다.
분산 파일 시스템인 HDFS(Hadoop Distributed File System)에 데이터를 저장하고, 분산 처리 시스템인 맵리듀스를 이용해 데이터를 처리한다.
오픈 소스 프로젝트이기에 소프트웨어 라이선스 비용에 대한 부담이 없다.
데이터 저장 용량이 부족할 경우 필요한 만큼 리눅스 서버만 추가하면 된다.
하둡은 데이터의 복제본을 저장하기 때문에 데이터의 유실이나 장애가 발생했을 때도 데이터의 복구가 가능하다.
여러 대의 서버에 데이터를 저장하고, 데이터가 저장된 각 서버에 동시에 데이터를 처리하는 방식이다.

(2) 임베디드 시스템

① 모바일

정의
스마트폰의 OS란 스모트폰을 구성하고 있는 하드웨어 부팜인 메모리, LCD, CPU등의 기계적인 부품들을 효율적으로 관리 및 구동하게 하며, 사용자와의 편리한 의사 소통을 위해 만들어진 소프트웨어 플랫폼이다.
리눅스 기반의 공개형 운영체제

  • 마에모
  • 모블린
  • 미고
  • 리모
  • 타이젠
  • IOS
  • AOS

② 스마트 TV

정의
텔레비전에 인터넷 접속 기능이 결합되어, 각종 앱을 설치하여 TV 방송 시청이외의 다양한 기능을 활용할 수 있는 다기능 TV이다.
콘텐츠를 인터넷에서 실시간으로 다운받아 볼 수 있고, 뉴스・날씨・이메일 등을 바로 확인할 수 있는 커뮤니케이션 센터의 역할을 한다.
스마트 TV 운영체제
-타이젠
-웹OS

③ IVI(In-Vehicle Infotainment)

정의
인포테인먼트(Infotainment)란 정보와 오락의 합성어로 정보전달에 오락성을 가미한 시스템이다.
내비게이션이나 계기판, 트립 컴퓨터와 AV시스템, DMB, MP3, 오디오 및 외부 기기와의 연결까지 가능한 통합적인 차량 내부 시스템을 포함한다.
최신 인포테인먼트 시스템에는 차량 관련 정보 및 정기점검 안내, 운전자 음성인식 기능, 도난 방지 경보 기능 등의 최첨단 기술이 적용된다.
특징
GENIVI표준 플랫폼 기반의 인포테인먼트 시스템이다.
운전자 편의성 및 안전성을 증대시킨다.
소프트웨어 품질관리 프로세스를 거쳐 소프트웨어 품질을 확보한다.
CE4A 표준 터널 모드와 확장 API 기술을 퐇마한 스마트폰 연동 기술을 탑재하고 있다.
AUTOSAR 연계 소프트웨어 진단(DLT) 서비스 기술을 탑재한다.
GENIVI(GENEVA In-Vehicle Infotainment)
오픈 소스 기반 플랫폼 얼라이언스다.
오픈소스 기반의 차량 멀티미디어 플랫폼 표준화 활동이다.

profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글