바로가기 >> 리눅스마스터 기출문제 목록
과목2 (49-80)
KDE
1996년 튀빙겐 대학교 학생이었던 마티아스 에트리히가 Qt 라이브러리를 기반으로 만들기 시작했고 그이후 많은 프로그래머들이 합류하면서 1998년에 첫번째 버전이 출시되었다.
그러나 Qt는 자유 소프트웨어 라이선스를 사용하지 않았기 때문에 GNU 프로젝트 회원들은 또 다른 데스크톱 환경인 GNOME 프로젝트를 시작하게 되었다.
주요 프로그램
konqueror : 웹 브라우저 및 파일 관리 프로그램
dolphin : 파일관리 프로그램
kwrite : 텍스트 편집기 프로그램
Gwenview : 이미지 뷰어 프로그램
Okular : 문서 뷰어 프로그램
KGet : 다운로드 관리자 프로그램
KMail : 메일 클라이언트 프로그램
KUser : 사용자 관리 프로그램
Krib : 데스크톱 공유 프로그램
데스크톱 환경(Desktop Environment, DE)
데스크톱 환경이란 GUI 환경을 이용하기 위해 서용자에게 제공되는 인터페이스 스타일을 말한다. 보통 윈도 매니저(Window Manager)를 포함하여 파일관라지, 아이콘, 창, 도구 모음, 폴더, 배경화면, 데스트톱 위젯을 제공하고, Drag & Drop 과 프로세스 간의 통보와 같은 기능도 지원한다. 리눅스에서 사용하는 대표적인 데스크톱 환경에는 GNOME, KDE, Xfce, LXDE 등이 있다.
X.org
X.org 는 X.org Foundation 에서 관리되는 X 서버 패키지로 소스가 공개된 자유 소프트웨어이다.
2004년에 XFree86 프로젝트의 라이선스 정책 변화로 인하여 관련 개발자들 대부분이 이 프로젝트에 합류하였다.
현재 리눅스를 비롯하여 유닉스의 대부분이 이 프로젝트 기반의 X 윈도 시스템을 사용하고 있으며, freedesktop.org 와 함께 지속적으로 발전시키고 있다.
GNOME
GNOME 은 GNU 에서 만든 공개형 데스크톱 환경으로 GPL 라이선스를 따르지 않는 Qt 라이브러리 기반의 KDE 에 대안으로 시작되었다. GNOME 은 Qt 대신에 LGPL 을 따르는 GTK+ 라이브러리를 사용하여 개발되었다.데스크톱 부분과 라이브러리는 LGPL 을 따르고 응용 프로그램은 GPL 을 따르도록 하였다.
DISPLAY
X 클라이언트 프로그램이 실행될 때 표시되는 창이 설정되어 있는 환경변수이다.
X 클라이언트에서 원격지의 X 서버에 프로그램이 전달되기 위해서는 실행되는 터미널이 정의 되어 있는 환경 변수인 DISPLAY 를 수정해야 한다.
X 윈도의 실행
X 윈도를 실행하는 방법에는 부팅 시에 X 윈도를 실행하는 방법(Runlevel 5)와 텍스트 모드(Runlevel 3)에서 실행하는 방법으로 나눌 수 있다. 런 레벨 5로 설정된 상태라면 부팅 시에 X 윈도가 시작되고, 디스플레이 매니저(Display Manager)라는 프로그램이 실행되면서 로그인 창이 나타나게 된다. 디스플레이 매니저는 사용자 이름과 암호를 요청하고 유효한 값이 입력되면 세션을 시작해 주는 역할을 해준다.
LibreOffice Impress : 프리젠테이션 프로그램
LibreOffice Calc : 스프레드시트 프로그램
LibreOffice Draw : 드로잉 프로그램
원격지에서 X 클라이언트 이용
X 윈도는 X 서버와 X 클라이언트가 독립적으로 동작하는 네트워크 지향 시스템이기 때문에 원격지의 X 클라이언트를 다른 시스템의 X 서버에서 실행시킬 수 있다. X 서버에서 원격지의 X 클라이언트를 실행하기 위해서는 접근을 허가해야 하는데 이 때 사용하는 명령이 xhost 이다.
xhost
X 서버에 접근할 수 있느 클라이언트를 지정하거나 해제하는 명령
사용예
# xhost
현재 설정된 접근 목록을 출력한다.
메일 관련 프로토콜
1) SMTP(Simple Mail Transfer Protocol)
인터넷에서 이메일을 보낼 때 사용되는 프로토콜로 메일 서버간의 송수신뿐만 아니라 메일 클라이언트에서 메일 서버로 메일을 보낼 때 사용된다. TCP 포트 번호는 25 번이다.
2) POP3(Post Office Protocol Version 3)
서버에 도착한 메일을 클라이언트에서 직접 내려받아 읽도록 해주는 프로토콜로 110 번 포트를 사용한다. POP3 는 구현이 용이하고, 기존의 많은 클라리언트 프로그램이 지원한다는 장점이 있으나, 메일을 확인하면 서버로부터 메일을 클라이언트로 가지고 온 후 서버에서 해당 메일을 삭제한다. 따라서 다른 곳에서 다시 메일을 확인하려면 남아 있지 않아 확인할 수 없게 되는 단점이 있다.
3) IMAP(Internet Mail Access Protocol)
POP3 와 마찬가지로 클라이언트 사용자가 메일 서버에 도착한 메일을 확인할 때 사용하는 프로토콜로 143 번 포트를 사용하다. POP3 와의 차이점은 메일을 확인한 후에도 서버에 해당 메일이 계속적으로 존재하여 다른 곳에서 메일 확인이 가능하다는 장점이 있으나 메일 서버의 통신 트래픽을 높이는 단점이 있다.
네트워크 관련 파일
/etc/sysconfig/network : 네트워크 사용 유무 지정, 호스트명 설정, 게이트웨이 주소 설정, 게이트웨이 장치파일 설정, NIS 도메인 이름 등이 기록되는 파일이다.
/etc/sysconfig/network-scripts 디렉터리 : 네트워크 인터페이스 환경 설정과 관련된 파일들이 저장 되는 디렉토리.
/etc/resolv.conf : 시스템에서 사용하는 DNS 서버를 설정하는 파일
/etc/hosts : DNS 서버를 사용하기 이전에 많이 이용된 파일로 IP 주소와 호스트명을 매핑시켜 데이터베이스처럼 사용하는 파일. 자주 이용하는 IP 주소에 별칭을 설정하여 접속을 쉽게 할 수 있다.
system-config-network : 네트워크 환경 설정
서브넷마스크 255.255.255.128 을 사용하면
네트워크 수는 2 개
192.168.5.0 과 192.168.5.128 로 나누어지고
호스트 수는 128 이 됩니다.
첫 번째 서브네트워크에 속하는 IP 주소는 192.168.5.1-126
두 번째 서브네트워크에 속하는 IP 주소는 192.168.5.129-254
두 번째 서브네트워크에 속하는 IP 주소 중 가장 작은 값은 192.168.5.129 입니다.
netstat
네트워크 연결 상태를 출력하는 명령이다.
네트워크 연결 상태 이외에도 라우팅 테이블 정보, 네트워크 인터페이스 상태, 매스커레이드 연결 상태, 멀티캐스트 멤버 등의 정보를 출력한다.
-a : 모든 소켓 정보를 출력한다.
-n : 기호화된 호스트명이나 포트명 대신에 숫자값으로 표시. 예를 들면 www 대신에 80으로 출력한다.
-p : 소켓애 대한 PID와 프로그램명을 출력
-r : 라우팅 테이블 정보 출력
-l : 대기하고 있는 포트인 리슨(Listen) 포트를 출력
-s : 네트워크 프로토콜에 대한 통계 정보 출력
-u : UDP 프로토콜 기반으로 접속한 목록을 출력한다.
-t : TCP 프로토콜 기반으로 접속한 목록을 출력한다.
# netstat -anp
리눅스에 열려있는 포트를 확인할 때 사용
삼바(SAMBA) 서버관리
삼바는 SMB를 이용하여 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 및 하드웨어를 공유할 수 있도록 해준다.
현재 SMB 프로토콜은 유닉스와 윈도 환경을 동시에 지원하는 CIFS 로 확장 되었다.
TCP/IP를 사용하며 NetBIOS 프로토콜을 지원, LanManager 기능도 제공한다.
NFS(Network File System)의 개요
NFS는 1984년 Sun Microsystems 사에서 개발한 프로토콜로 TCP/IP 네트워크상에서 다른 컴퓨터 파일 시스템을 마운트하고 공유하여 상대방의 파일 시스템 일부를 마치 자기 자신의 디렉터리인 것처럼 사용할 수 있게 해준다. NFS 는 NIS 와 더불어 RPC(Remote Procedure Call) 기반으로 작동되므로, 해당 서비스를 해주는 rpcbind(구 portmap) 데몬을 먼저 실행시켜야 한다. 또한 NFS 는 사용이 편리한 대신에 보안에 상당히 미약하기 때문에 주의해서 사용해야 한다.
delete : remote시스템의 파일을 삭제한다
사설IP 범위
A class 1개 : 10.0.0.0 – 10.255.255.255
B class 16개 : 172.16.0.0 – 172.31.255.255
C class 256개 : 192.168.0.0 – 192.168.255.255
OSI 7계층
1계층 – 물리계층
실제 장치들을 연결하기 위해 필요한 케이블 및 연결장치 등과 같은 기계적인 항목과 전압, 신호 방식 등의 전기적인 항목에 대한 특성을 규정한다.
이 계층에서 동작하는 장치에는 허브나 리피터 등이 있다.
2계층 – 데이터링크 계층
신뢰성 있는 데이터 전송을 보장하기 위한 계층으로 오류 제어와 흐름 제어를 담당한다.
데이터를 전송하는 단위로 분할하는 기능 , 프레임 전달, 전송단위의 순서 제어 기능, 에러 제어 기능, 데이터 흐름 제어 기능 등을 제공한다.
네트워크의 오류 제어는 데이터를 재전송하는 방법으로 처리한다.
이 계층에서 동작하는 장치에는 브리지나 스위치 등이 있다.
3계층 – 네트워크 계층
네트워크 계층은 송신 호스트에서 전송한 데이터가 수신 호스트에 도착하기 위한 올바른 경로를 선택을 지원하는 역할을 한다.
송수신 호스트 사이의 패킷경로를 결정하는 라우팅, 트래픽이 집중되지 않도록 하는 혼잡 제어, 패킷의 분할과 병합, 인터네트워킹 등의 역할을 수행한다.
이계층에서 동작하는 장치에는 라우터가 있다.
4계층 – 전송 계층
전송계층은 송신 프로세스와 수신 프로세스간의 연결기능을 제공하고 안전한 데이터 전송을 지원한다.
계층 4까지의 기능은 운영체제에서 시스템 콜 형태로 상위 계층에 제공한다.
5계층 – 세션 계층
세션 계층은 전송 계층과 유사하게 송수신 호스트의 세션연결을 지원하지만 더욱 더 상위의 논리적 연결을 지원한다.
즉 사용자간의 대화를 제어하는 대화 제어자로서 사용자들을 동기화하고 유효한 설정인지를 확인한다.
6계층 – 표현 계층
표현 계층은 송수신 호스트 간에 서로 다르게 사용하는 코드와 문자 등을 번역하여 일관되게 전송 데이터를 서로 이해할 수 있도록 하는 기능을 제공한다.
데이터의 암호화와 해독을 수행하고 효율적인 전송을 위해 필요에 따라 압축과 압축해제를 수행한다.
7계층 – 응용 계층
응용 계층은 응용 프로그램과 연계하여 사용자에게 편리한 환경을 제공하는 역할을 수행한다.
전자우편, 웹, 파일전송 등과 같은 응용 프로그램 환경에서 이루어진다.
UTP 케이블의 배열
8가닥중 실질적으로 쓰이는 선은 4개로 1, 2, 3, 6번인 ‘흰주, 주, 흰녹, 녹’ 이다.
T568B 1번과 3번 2번과 6번의 위치를 바꾸면 T568A 가 된다.
배열순서
T568B 흰주 – 주 – 흰녹 – 파 – 흰파 – 녹 – 흰갈 – 갈
T568A 흰녹 – 녹 – 흰주 – 파 – 흰파 – 주 – 흰갈 – 갈
도커(Docker)
도커는 하이퍼바이저를 사용하거나 게스트 운영체제도 설치하지 않고, 서버 운영에 필요한 프로그램과 라이브러리만 이미지로 만들어 프로세스처럼 동작시키는 경량화된 가상화 방식이다.
Docker가 시작되면 docker0 라는 virtual interface 가 생성된다.
이 인터페이스는 컨테이너가 호스트와 통신하기 위한 기본적인 bridge interface 이다.
ifconfig(interface config)
네트워크 인터페이스를 설정하거나 확인하는 명령이다. IP주소, 넷마스크 주소, MAC 주소 등을 설정하고 확인할 수 있다.
사용법
# ifconfig [interface] [adress] [option]
ex)
# ifconfig eth0 down
eth0 카드의 작동을 중지
# ifconfig eth0 up
eth0 카드의 작동을 활성화
localhost는 컴퓨터 네트워크에서 사용하는 루프백 호스트명으로 자신의 컴퓨터를 의미한다.
IPv4에서의 IP 주소는 127.0.0.1 이다.
포트 번호와 주요 프로토콜
20 : FTP-data 포트로 FTP 전송 시에 사용
21 : FTP 제어에 사용
22 : SSH 에 사용
23 : TELNET 에 사용
25 : SMTP 에 사용
53 : DNS 에서 사용
80 : WWW 프로토콜인 HTTP 에서 사용
110 : POP3 에서 사용
143 : IMAP 에서 사용
161 : SNMP 에서 사용
443 : HTTPS 에서 사용
정답 : 3, 4
공인IP 범위
Class A : 1 ~ 126
Class B : 128 ~ 191
Class C : 192 ~ 223
물리 계층 비트(스트림)
데이터 링크 계층 – 전달정보(프레임)
네트워크 계층 – 패킷 혹은 UDP의 데이터그램
전송 계층 – TCP 세그먼트
세션/표현/응용계층 – 메시지
LAN
집, 사무실, 학교 등의 건물과 가까운 지역을 네트워크 매체를 이용하여 하나로 묶는 근거리 통신망을 말한다.
스타형, 버스형, 링형, 망형 으로 나뉜다.
Web OS : 리눅스 커널에서 구동되는 모바일 운영 체제
TIZEN : 리눅스 재단, 리모 재단, 삼성전자, 인텔이 공동으로 개발한 모바일 운영 체제
리눅스 클러스터링
여러대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는 것처럼 구성된 시스템
종류
고계산용 클러스터(HPC)
HPC 클러스터는 고성능의 계산 능력을 제공하기 위한 목적으로 제작되는데 주로 과학계산용으로 활용되고, 흔히 부르는 슈퍼컴퓨터가 HPC 클러스터로 구성하여 제작된다. 다른 말로 베어울프 클러스터라고도 한다. 최근에 CPU, Motherboard, Disk 등 하드웨어의 성능 개선, 저렴한 가격과 개발 도구인 GNU C Compiler, 관련 프로그램 툴, PVM 및 MPI 같은 메시지 패싱 라이브러리들이 등장하면서 더욱 더 높은 성능을 내고 있다.
부하분산 클러스터(LVS)
대규모의 서비스를제공하기 위한 목적으로 사용되는 클러스터 기법으로 이용자가 많은 웹 서비스 등에 활용가치가 높다. 보통 여러 대의 리얼 서버에 부하를 분산해 주는 로드 밸런서를 두고 운영한는 방법이다.
고가용성 클러스터(HA)
지속적인 서비스 제공을 목적으로 하는 클러스터로 위에 열거된 부하분산 클러스터와 연동하여 많이 사용된다. 부하분산 클러스터에서 로드 밸런서의 오류가 발생하여 동작을 하지 않는다면 리얼 서버가 정상적인 동작을 하더라도 서비스를 제공하지 못하게 된다. 이러한 문제점을 해결하기 위해 하나으 Primary Node 가 부하분산의 처리를 수행하고 다른 하나의 Backup Node 가 Primary Node 의 상태를 체크하고 있다가 이상이 발생하면 서비스를 받도록 구성하는 바법이다.
클라우드 컴퓨팅에서 제공하는 서비스
클라우드 컴퓨팅이 발전하면서 모든 IT 자원을 서비스 형태로 제공할 수 있는 환경으로 바뀌고 있다. 클라우드 컴퓨팅 서비스는 일정부분 공통적인 요소를 가지고 있지만 IaaS, PaaS, SaaS 세가지로 구분된다.
IaaS : 업무 처리에 필요한 서버, 데스크톱 컴퓨터, 스토리지 같은 IT 하드웨어 자원을 클라우드 서비스로 빌려 쓰는 형태
PaaS : 업무에 필요한 소프트웨어를 개발할 수 있는 환경(플랫폼)을 클라우드에서 제공받는다.
SaaS : 기업에서 사용하는 소프트웨어를 통째로 클라우드 사업자에게 빌려 쓰는 개념
78번 문제해설 참조